07.01 php saved
grncdr
Tags add more
elements, paginator and paging  
Note
The variable $events contains the exact same array of data in both cases, but in the categories/view case the paginator doesn't seem to have any options defined like it should.
  1. /* /views/elements/events/paging.ctp */
  2. <?php
  3.     $paginator->options(array(
  4.         'update' => 'EventPaging',
  5.         'url' => '/event/index',
  6.         'model' => 'Event',
  7.         'indicator' => 'LoadIndicator'
  8.     ));
  9. ?>
  10. <div id="events">
  11.     <?php echo debug($events); ?>
  12.     <p>
  13.         <?php
  14.         echo $paginator->counter(array(
  15.             'model' => 'Event',
  16.             'format' => __('Events %start% - %end% of %count%, Page %page% of %pages%', true))
  17.         );
  18.         ?>
  19. </p>
  20. <?php echo $paginator->sort('Start Time', 'start', array('model' => 'Event'));?>
  21. <?php echo $paginator->sort('Category', 'Category.name', array('model' => 'Event'));?>
  22. <?php echo $paginator->sort('Venue', 'Venue.name', array('model' => 'Event'));?>
  23. <?php echo $paginator->sort('Newest', 'created', array('model' => 'Event'));?>
  24. <ul id="event-list">
  25. <?php
  26. /* ------- I snipped the foreach loop, as it seems fine ------- */
  27. ?>
  28. </ul>
  29. <div class="paging">
  30.     <?php echo $paginator->prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));?>
  31.  |  <?php echo $paginator->numbers();?>
  32.     <?php echo $paginator->next(__('next', true).' >>', array(), null, array('class'=>'disabled'));?>
  33. </div>
  34. </div>
  35.  
  36.  
  37. /* /controllers/events_controller.php */
  38. /* I snipped the irrelevant actions here */
  39.  
  40. class EventsController extends AppController {
  41.  
  42.     var $helpers = array('Html', 'Form', 'Ajax', 'NiceRange', 'Paginator');
  43.  
  44.     function index() {
  45.         $events = $this->paginate();
  46.         if(isset($this->params['requested'])) {
  47.             return $events;
  48.         } else {
  49.             $this->set('events', $events);
  50.         }
  51.     }
  52. }
  53.  
  54. /* /controllers/categories_controller.php */
  55.  
  56. class CategoriesController extends AppController {
  57.  
  58.     var $paginate = array('Event' => array('limit' => 5));
  59.     var $uses = array('Event', 'Category');
  60.  
  61.     function view($id = null) {
  62.         if (!$id) {
  63.             $this->Session->setFlash(__('Invalid Category.', true));
  64.             $this->redirect(array('action'=>'index'));
  65.         }
  66.         $this->set('events', $this->requestAction('/events/index'));
  67.         $this->set('category', $this->Category->read(null, $id));
  68.     }
  69. }
  70.  
  71. /* /views/categories/view.ctp
  72.  
  73. <div class="categories view">
  74. <h1><?php echo $category['Category']['name']; ?></h1>
  75.     <h2>Events</h2>
  76.  
  77. <div id="EventPaging">
  78. <?php echo $this->element('events/paging'); ?>
  79. </div>
  80.  
Parsed in 0.188 seconds, using GeSHi 1.0.7.14

Modify this Paste