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(); }