Seite 1 von 1

Pager-Modul

Verfasst: 12.05.2014, 13:03:37
von Coach83
Hallo zusammen,

ich schlage die Erweiterung des Pagers um einen Link für die erste und letzte Seite vor.
Bsp.: ich befinde mich auf Seite 25 und würde gerne zum Anfang springen. Das ist momentan nur durch "Durchklicken" möglich.
Das Gleiche für den Fall ans Ende zu springen.

Code: Alles auswählen

<html:template name="FirstPage_Active_de">
   <a href="<template:placeholder name="Link" />" title="Erste Seite anzeigen!"><<</a>
</html:template>
<html:template name="LastPage_Active_de">
   <a href="<template:placeholder name="Link" />" title="Letzte Seite anzeigen!">>></a>
</html:template>
und

Code: Alles auswählen

...
if ($currentPage > 2) {
                $link = LinkGenerator::generateUrl(Url::fromCurrent()->mergeQuery(array($pageUrlParameterName => '1')));
                $firstActive = & $this->getTemplate('FirstPage_Active_' . $this->getLanguage());
                if (isset($anchorName)) {
                    $firstActive->setPlaceHolder('Link', $link . '#' . $anchorName);
                } else {
                    $firstActive->setPlaceHolder('Link', $link);
                }
                $content->setPlaceHolder('FirstPage', $firstActive->transformTemplate());
            }
...
if ($currentPage < $pageCount - 1) {
                $link = LinkGenerator::generateUrl(Url::fromCurrent()->mergeQuery(array($pageUrlParameterName => $pageCount)));
                $lastActive = & $this->getTemplate('LastPage_Active_' . $this->getLanguage());
                if (isset($anchorName)) {
                    $lastActive->setPlaceHolder('Link', $link . '#' . $anchorName);
                } else {
                    $lastActive->setPlaceHolder('Link', $link);
                }
                $content->setPlaceHolder('LastPage', $lastActive->transformTemplate());
            }
sollten ausreichen.

Re: Pager-Modul

Verfasst: 12.05.2014, 22:30:55
von dr.e.
Hallo Coach,

das ist eine schöne Erweiterung. Magst du auf GitHub dafür einen Pull-Request für Code, ggf. Konfiguration und Dokumentation submitten? Dann kann ich das einbauen.

Re: Pager-Modul

Verfasst: 13.05.2014, 06:33:49
von Coach83
Muss ich am Wochenende von zu Hause erledigen - habe hier keinen Zugriff auf Github.

Re: Pager-Modul

Verfasst: 14.05.2014, 00:15:49
von dr.e.
Alright! :)

Re: Pager-Modul

Verfasst: 16.05.2014, 21:11:28
von Coach83
so.. wie funktioniert das :-)?

Re: Pager-Modul

Verfasst: 16.05.2014, 22:52:28
von dingsda
meinst du das arbeiten mit github allgemein oder speziell beim apf jetzt?

Re: Pager-Modul

Verfasst: 16.05.2014, 23:38:46
von dingsda
ich hoffe mal du meintest github allgemein und meine schritt-für-schritt-anleitung ist nicht umsonst :mrgreen:

erstmal musst du dich bei github anmelden.
zum bequemen arbeiten mit github gibt es für windows und mac auch einen client, den man installieren kann. vielleicht auch für andere betriebssysteme. ich werd das vorgehen jetzt mit diesem client erklären
https://windows.github.com/

geh zum APF repository
https://github.com/AdventurePHP/code

und klick oben rechts auf fork
nun hast du eine kopie des apf-repository in deinem account

starte den installierten github client. dort siehst du alle localen und online reposiries. im moment nur das code repository vom apf.

rechtsklick auf das repository und dann entweder "clone" oder "clone to" anklicken. bei letzterem kannst du ordnername (und pfad?) wählen. bei clone wird das repository in den ordner code in einem verzeichnis abgelegt, dass in den einstellungen des clients als standard-repository-pfad angegeben ist.

nun hast du das repository auf dem pc. wenn du im github-client das repository mit doppelklick öffnest kannst du die gesamte history des rep sehen. oben rechts den brach, der gerade ausgecheckt ist. wird jetzt erstmal master sein. klick auf "master" und erstell einen neuen branch indem du beim textfeld einen namen dafür eingibst.
gut wäre einer, der beschreibt an was du in diesem branch arbeitest.

hier könnte es z.b. "feature-pager-go-to-last-site" oder so sein
wenn man an etwas arbeitet, dass schon im bugtracker eingetragen ist, dann sollte am besten auf die bugtracker-id ganz vorne stehen.

du hast nun den branch erstellt und ausgecheckt. alle änderungen die du machst sind nur in diesem branch. sobald du änderungen im code machst siehst du sie im client wenn du das repo dort wieder öffnest. links oben kannst du sie commiten.

wenn du wieder zurück zum master-branch oder zu einem anderen branch wechseln möchtest, dann commitest du am besten erstmal änderungen am aktuell ausgecheckten branch und wechselst dann den branch in dem du wieder oben rechts einen branch auswählst.

hast du ein feature oder bugfix abgeschlossen und alle anderungen diesem bugfix/feature-branch commited, dann kannst du oben auf publich klicken. dann sind die änderungen online bei github.

natürlich kannst du auch schon früher den branch veröffentlichen. dann können andere auch schon früher änderungen sehen. auch häufiges commiten ist ganz gut bei größeren features. dann kann man besser verfolgen wie wo was geändert wurde. du kannst auch den branch auf den zustand von einem früheren commit zurücksetzen.

nachdem dein neuer branch nun online ist kannst siehst du wenn du das repo auf der github-website öffnest einen button "compare & pull-request". drauf klicken und ins formular den grund für den pull-request schreiben. je nach feature/bugfix kann das ein längerer text sein mit anwendungsbeispiel oder auch nur ein verweis auf den bugtracker. du kannst schreiben ob noch was zu tun ist am code, ob du dir bei etwas unsicher bist. bei jedem pull-request wird ein issue eröffnet wo dann jeder seine meinung dazu schreiben kann.
so z.b. grad mein pull-request eben
https://github.com/AdventurePHP/code/pull/2

für das arbeiten mit den repositories hab ich es inzwischen so gemacht, dass ich mir symlinks für die APF-ordner core, modules, tools und extensions in mein project und in mein lokales sandbox-repository gemacht habe.
man kann das auch mit git und submodulen oder trees machen. aber da blick ich noch nicht ganz durch.

Re: Pager-Modul

Verfasst: 18.05.2014, 10:53:22
von Coach83
vielen Dank für die sehr (!!!) ausführliche Erklärung. Ich werds versuchen.

Re: Pager-Modul

Verfasst: 21.05.2014, 17:21:14
von Coach83
@Doktor: bitte mal prüfen, ob ich das so richtig gemacht hab ^^

Re: Pager-Modul

Verfasst: 23.05.2014, 19:41:53
von dr.e.
Danke, hab deinen Pull-Request gesehen. Schaue mir das die Tage an.