paginator-control.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.paginator.control">
  5. <title>Seitenkontrolle und ScrollingStyles</title>
  6. <para>
  7. Die Darstellung von Elementen für eine Bildschirmseite ist ein guter Start. In den Code
  8. Abschnitten der vorhergehenden Sektion haben wir die
  9. <methodname>setCurrentPageNumber()</methodname> Methode gesehen um die aktive Seitenzahl zu
  10. setzen. Der nächste Schritt ist die Navigation durch die Seiten. Um das zu tun bietet
  11. Paginator zwei wichtige Tools: die Möglichkeit den Paginator mit Hilfe eines View Partials
  12. darzustellen und Unterstützung von sogenannten ScrollingStyles.
  13. </para>
  14. <para>
  15. Der View Partial ist ein kleines View Skript welches die Seitenkontrollen darstellt, wie
  16. Buttons um zur nächsten oder vorigen Seite zu gehen. Welche Seitenkontrollen dargestellt
  17. werden hängt vom Inhalt des View Partials ab. Die Arbeit mit View Partials benötigt deren
  18. Einrichtung in <classname>Zend_View</classname>. Um mit den Seitenkontrollen anzufangen muss
  19. irgendwo in eigenen View Skript Pfad ein neues View Skript erstellt werden. Man kann es
  20. benennen wie man will, aber wir nennen es in diesem Text "controls.phtml". Das Referenz
  21. Handbuch enthält verschiedene Beispiele darüber was im View Skript möglich ist. Hier ist ein
  22. Beispiel:
  23. </para>
  24. <programlisting language="php"><![CDATA[
  25. <?php if ($this->pageCount): ?>
  26. <!-- Link zur ersten Seite -->
  27. <?php if (isset($this->previous)): ?>
  28. <a href="<?php echo $this->url(array('page' => $this->first)); ?>">
  29. Erste
  30. </a> |
  31. <?php else: ?>
  32. <span class="disabled">Erste</span> |
  33. <?php endif; ?>
  34. <!-- Link zur vorherigen Seite -->
  35. <?php if (isset($this->previous)): ?>
  36. <a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
  37. &lt; Vorherige
  38. </a> |
  39. <?php else: ?>
  40. <span class="disabled">&lt; Vorherige</span> |
  41. <?php endif; ?>
  42. <!-- Link zur nächsten Seite -->
  43. <?php if (isset($this->next)): ?>
  44. <a href="<?php echo $this->url(array('page' => $this->next)); ?>">
  45. Nächste &gt;
  46. </a> |
  47. <?php else: ?>
  48. <span class="disabled">Nächste &gt;</span> |
  49. <?php endif; ?>
  50. <!-- Link zur letzten Seite -->
  51. <?php if (isset($this->next)): ?>
  52. <a href="<?php echo $this->url(array('page' => $this->last)); ?>">
  53. Letzte
  54. </a>
  55. <?php else: ?>
  56. <span class="disabled">Letzte</span>
  57. <?php endif; ?>
  58. </div>
  59. <?php endif; ?>
  60. ]]></programlisting>
  61. <para>
  62. Der nächste Schritt ist es <classname>Zend_Paginator</classname> zu sagen welche View
  63. Partials verwendet werden können um die Navigationskontrollen darzustellen. Die folgende
  64. Zeile ist in die Bootstrap Datei der Anwendung zu geben.
  65. </para>
  66. <programlisting language="php"><![CDATA[
  67. Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
  68. ]]></programlisting>
  69. <para>
  70. Der letzte Schritt ist möglicherweise der einfachste. Man muss sicherstellen dass das
  71. Paginator Objekt dem Skript zugeordnet ist (NICHT dem 'controls.phtml' Skript!). Das einige
  72. was noch zu tun ist, ist es den Paginator im View Skript auszugeben. Das stellt automatisch
  73. den Paginator dar und verwendet den PaginationControl View Helfer. Im nächsten Beispiel
  74. wird das Paginator Objekt der 'paginator' View Variable zugeordnet. Keine Angst, man muss
  75. jetzt nicht vollständig verstehen wie alles funktioniert. Das nächste Kapitel zeigt ein
  76. komplettes Beispiel.
  77. </para>
  78. <programlisting language="php"><![CDATA[
  79. <?php echo $this->paginator; ?>
  80. ]]></programlisting>
  81. <para>
  82. <classname>Zend_Paginator</classname>, stellt zusammen mit dem View Skript 'controls.phtml'
  83. das geschrieben wurde, sicher das die Seitenkontrollen richtig dargestellt werden. Um
  84. auszuwählen welche Seitenzahlen am Schirm angezeigt werden müssen, verwendet Paginator
  85. sogenannte ScrollingStyles. Der Standardstil wird "Sliding" genannt, was so ähnlich ist
  86. wie die Navigation für Yahoo's Suchergebnisse arbeitet. Um Googl's ScrollingStyle zu mimen,
  87. muss der Elastic Style verwendet werden. Man kann einen standardmäßigen ScrollingStyle
  88. mit der statischen <methodname>setDefaultScrollingStyle()</methodname> Methode setzen, oder
  89. man kann einen ScrollingStyle dynamisch spezifizieren wenn der Paginator im View Skript
  90. dargestellt wird. Das benötigt den manuellen Aufruf des View Helfers im View Skript.
  91. </para>
  92. <programlisting language="php"><![CDATA[
  93. // $this->paginator ist ein Paginator Objekt
  94. <?php echo $this->paginationControl($this->paginator, 'Elastic', 'controls.phtml'); ?>
  95. ]]></programlisting>
  96. <para>
  97. Für eine Liste aller vorhandenen ScrollingStyles, kann in das Referenz Handbuch gesehen
  98. werden.
  99. </para>
  100. </sect1>