private function seoPages($task) { $mainframe =& JFactory::getApplication(); $this->addSubmenu('pages_view'); require_once "classes/MetatagsContainerFactory.php"; $itemType = JRequest::getVar('type', null, '', 'string'); if (!$itemType) { $itemType = key(MetatagsContainerFactory::getFeatures()); } $metatagsContainer = MetatagsContainerFactory::getContainerById($itemType); if (!is_object($metatagsContainer)) { //TODO: throw error here. } switch ($task) { case "pages_save_text": $metatagsContainer->setMetadata($id = JRequest::getVar('id', '', '', 'int'), array("title" => JRequest::getVar('title', '', '', 'string'), "metatitle" => JRequest::getVar('metatitle', '', '', 'string'), "metakeywords" => JRequest::getVar('metakeywords', '', '', 'string'), "metadescription" => JRequest::getVar('metadescription', '', '', 'string'))); echo "<script>window.parent.document.adminForm.submit();</script>"; break; case "pages_edit_text": $id = JRequest::getVar('id', '', '', 'int'); $data = $metatagsContainer->getMetadata($id); $data["id"] = $id; $view =& $this->getView('Pages'); $view->assignRef('itemType', $itemType); $view->assignRef('data', $data); $view->display('edit'); break; default: $limit = JRequest::getVar('limit', $mainframe->getCfg('list_limit')); $limitstart = JRequest::getVar('limitstart', 0); $db =& JFactory::getDBO(); $pages = $metatagsContainer->getPages($limitstart, $limit); $db->setQuery('SELECT FOUND_ROWS();'); //no reloading the query! Just asking for total without limit jimport('joomla.html.pagination'); $pageNav = new JPagination($db->loadResult(), $limitstart, $limit); require_once "algorithm/KeywordsCounter.php"; for ($i = 0; $i < count($pages); $i++) { $stat_arr = array(); for ($j = 0; $j < count($pages[$i]->metakey); $j++) { $stat_arr[] = getStat($pages[$i]->metakey[$j], $pages[$i]->content); } $pages[$i]->stat = $stat_arr; } $view =& $this->getView('Pages'); $view->assignRef('itemType', $itemType); $view->assignRef('rows', $pages); $view->assignRef('page', $page); $view->assignRef('itemsOnPage', $itemsOnPage); $view->assignRef('filter', $metatagsContainer->getFilter()); $view->assignRef('availableTypes', MetatagsContainerFactory::getFeatures()); $view->assignRef('pageNav', $pageNav); $view->display(); } }