| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect1 id="learning.paginator.together">
- <title>Putting it all Together</title>
- <para>
- You have seen how to create a Paginator object, how to render the items on the current page,
- and how to render a navigation element to browse through your pages. In this section you
- will see how Paginator fits in with the rest of your MVC application.
- </para>
- <para>
- In the following examples we will ignore the best practice implementation of using a Service
- Layer to keep the example simple and easier to understand. Once you get familiar with using
- Service Layers, it should be easy to see how Paginator can fit in with the best practice
- approach.
- </para>
- <para>
- Lets start with the controller. The sample application is simple, and we'll just put
- everything in the IndexController and the IndexAction. Again, this is for demonstration
- purposes only. A real application should not use controllers in this manner.
- </para>
- <programlisting language="php"><![CDATA[
- class IndexController extends Zend_Controller_Action
- {
- public function indexAction()
- {
- // Setup pagination control view script. See the pagation control tutorial page
- // for more information about this view script.
- Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
- // Fetch an already instantiated database connection from the registry
- $db = Zend_Registry::get('db');
- // Create a select object which fetches blog posts, sorted decending by date of creation
- $select = $db->select()->from('posts')->sort('date_created DESC');
- // Create a Paginator for the blog posts query
- $paginator = Zend_Paginator::factory($select);
- // Read the current page number from the request. Default to 1 if no explicit page number is provided.
- $paginator->setCurrentPageNumber($this->_getParam('page', 1));
- // Assign the Paginator object to the view
- $this->view->paginator = $paginator;
- }
- }
- ]]></programlisting>
- <para>
- The following view script is the index.phtml view script for the IndexController's
- indexAction. The view script can be kept simple. We're assuming the use of the default
- ScrollingStyle.
- </para>
- <programlisting language="php"><![CDATA[
- <ul>
- <?php
- // Render each the title of each post for the current page in a list-item
- foreach ($this->paginator as $item) {
- echo '<li>' . $item->title . '</li>';
- }
- ?>
- </ul>
- <?php echo $this->paginator; ?>
- ]]></programlisting>
- <para>
- Now navigate to your project's index and see Paginator in action. What we have discussed
- in this tutorial is just the tip of the iceberg. The reference manual and
- <acronym>API</acronym> documentation can tell you more about what you can do with
- <classname>Zend_Paginator</classname>.
- </para>
- </sect1>
|