public function action_admin_show()
 {
     // Incoming Variables
     $currentPage = (int) $this->request->getParameter('page');
     $resultsPerPage = (int) self::getConfigValue('resultsPerPage', '10');
     // SmartyColumnSort -- Easy sorting of html table columns.
     include ROOT_LIBRARIES . 'smarty/libs/SmartyColumnSort.class.php';
     // A list of database columns to use in the table.
     $columns = array('gb_id', 'gb_added', 'gb_nick', 'gb_email', 'gb_icq', 'gb_website', 'gb_town', 'gb_text', 'gb_admincomment', 'gb_ip');
     // Create the columnsort object
     $columnsort = new SmartyColumnSort($columns);
     // And set the the default sort column and order.
     $columnsort->setDefault('gb_added', 'desc');
     // Get sort order from columnsort
     $sortorder = $columnsort->sortOrder();
     // Returns 'name ASC' as default
     // fetch entries
     $guestbookQuery = Doctrine::getTable('CsGuestbook')->fetchAllGuestbookEntries($currentPage, $resultsPerPage, true, $sortorder);
     // import array variables into the current symbol table ($newsQuery is an array('news','pager','pager_layout')
     extract($guestbookQuery);
     unset($guestbookQuery);
     // fetch the BBCode formatter object
     $bbcode = new Clansuite_Bbcode($this->getInjector());
     // Transform RAW text from DB to BB-formatted Text
     foreach ($guestbook_entries as $key => $value) {
         $guestbook_entries[$key]['gb_text'] = $bbcode->parse($value['gb_text']);
         $guestbook_entries[$key]['gb_comment'] = $bbcode->parse($value['gb_comment']);
     }
     // get Number of Rows
     $count = count($guestbook_entries);
     // Get view and assign placeholders
     $view = $this->getView();
     $view->assign('guestbook_counter', $count);
     $view->assign('guestbook', $guestbook_entries);
     $view->assignGlobal('pager', $pager);
     $view->assignGlobal('pager_layout', $pager_layout);
     $this->display();
 }
 public function action_show()
 {
     // Set Pagetitle and Breadcrumbs
     Clansuite_Breadcrumb::add(_('Show'), '/guestbook/show');
     // Defining initial variables
     // Pager Chapter in Doctrine Manual  -> http://www.phpdoctrine.org/documentation/manual/0_10?one-page#utilities
     $currentPage = $this->request->getParameter('page');
     $resultsPerPage = (int) self::getConfigValue('resultsPerPage', '10');
     // Creating Pager Object with a Query Object inside
     $pager_layout = new Doctrine_Pager_Layout(new Doctrine_Pager(Doctrine_Query::create()->select('i.*,g.*,u.nick')->from('CsGuestbook g')->leftJoin('g.CsImages i')->leftJoin('g.CsUsers u')->orderby('g.gb_added DESC'), $currentPage, $resultsPerPage), new Doctrine_Pager_Range_Sliding(array('chunk' => 5)), '?mod=guestbook&action=show&page={%page}');
     // Assigning templates for page links creation
     $pager_layout->setTemplate('[<a href="{%url}">{%page}</a>]');
     $pager_layout->setSelectedTemplate('[{%page}]');
     // Retrieving Doctrine_Pager instance
     $pager = $pager_layout->getPager();
     // Fetching guestbook entries
     #var_dump($pager->getExecuted());
     $guestbook = $pager->execute(array(), Doctrine::HYDRATE_ARRAY);
     // if array contains data proceed, else show empty message
     if (!is_array($guestbook)) {
         $error['gb_empty'] = '1';
     } else {
         // total number of guestbook entries by counting the array
         $number_of_guestbook_entries = count($guestbook);
         // Finally: assign total number of rows to SmartyPaginate
         #$SmartyPaginate->setTotal($number_of_guestbook_entries);
         // assign the {$paginate} to $tpl (smarty var)
         #$SmartyPaginate->assign($tpl);
         $bbcode = new Clansuite_Bbcode($this->getInjector());
         // Set 'not specified's
         foreach ($guestbook as $entry_key => $entry_value) {
             foreach ($entry_value as $key => $value) {
                 switch ($key) {
                     case 'gb_comment':
                         if (empty($value)) {
                             unset($guestbook[$entry_key][$key]);
                         } else {
                             $guestbook[$entry_key][$key] = $bbcode->parse($guestbook[$entry_key][$key]);
                         }
                         break;
                     case 'gb_text':
                         $guestbook[$entry_key][$key] = $bbcode->parse($guestbook[$entry_key][$key]);
                         break;
                     default:
                         $guestbook[$entry_key][$key] = empty($value) ? '<span class="not_specified">' . _('not specified') . '</span>' : $value;
                         break;
                 }
             }
         }
     }
     $view = $this->getView();
     $view->assign('guestbook', $guestbook);
     if (isset($error)) {
         $view->assign('error', $error);
     }
     $view->assignGlobal('pager', $pager);
     $view->assignGlobal('pager_layout', $pager_layout);
     $form = new Clansuite_Form('eingabe', 'post', $_SERVER['PHP_SELF']);
     $view->assign('form', $form);
     $this->display();
 }