/** * Get a list of articles from a specific category * * @param \Joomla\Registry\Registry &$params object holding the models parameters * * @return mixed * * @since 1.6 */ public static function getList($start, $limit, $catid, $menuparans, $menu_limit) { // Get an instance of the generic articles model $articles = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true)); // Set application parameters in model $app = JFactory::getApplication(); $appParams = $app->getParams(); $articles->setState('params', $appParams); // Set the filters based on the module params $articles->setState('list.start', (int) $start); $articles->setState('list.limit', (int) $limit); $articles->setState('filter.published', 1); // Access filter $access = !JComponentHelper::getParams('com_content')->get('show_noauth'); $authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id')); $articles->setState('filter.access', $access); $catids = $catid; $items = 'nao'; // Category filter if ($catids) { if ($menuparans['show_subcategory_content'] > 0 || $menuparans['show_subcategory_content'] == '-1') { $categories = JModelLegacy::getInstance('Categories', 'ContentModel', array('ignore_request' => true)); $categories->setState('params', $appParams); $levels = $menuparans['show_subcategory_content'] != '-1' ? $menuparans['show_subcategory_content'] : 99999; $categories->setState('filter.subcategories', $levels); $categories->setState('filter.max_category_levels', true); //$categories->setState('filter.get_children', $levels); $categories->setState('filter.published', 1); $categories->setState('filter.access', $access); $additional_catids = array(); $categories->setState('filter.parentId', $catids); $recursive = true; $items = $categories->getItems($recursive); $testes = array(); if ($items) { foreach ($items as $category) { ///$additional_catids[] = $category->id; $condition = $category->level - $categories->getParent()->level <= $levels; //$testes[] = $category->level.' - '.$categories->getParent()->level.'<= '.$levels; if ($condition) { $additional_catids[] = $category->id; } } } $catids = array($catids); $catids = array_unique(array_merge($catids, $additional_catids)); $items = $catids; } $articles->setState('filter.category_id', $catids); } $items = $articles->getItems(); $testes['menuparans'] = array('orderby_sec' => $menuparans['orderby_sec'], 'order_date' => $menuparans['order_date'], 'orderby_pri' => $menuparans['orderby_pri']); $testes['buildContentOrderBy'] = BlogHelper::_buildContentOrderBy($menuparans); // Ordering $articles->setState('list.ordering', BlogHelper::_buildContentOrderBy($menuparans)); $listOrder = $app->getUserStateFromRequest('com_content.category.list.' . $catid . '.filter_order_Dir', 'filter_order_Dir', '', 'cmd'); if (!in_array(strtoupper($listOrder), array('ASC', 'DESC', ''))) { $listOrder = 'ASC'; } $articles->setState('list.direction', $listOrder); $items = $articles->getItems(); // Find current Article ID if on an article page $option = $app->input->get('option'); $view = $app->input->get('view'); if ($option === 'com_content' && $view === 'article') { $active_article_id = $app->input->getInt('id'); } else { $active_article_id = 0; } // Prepare data for display using display options foreach ($items as &$item) { $item->slug = $item->id . ':' . $item->alias; $item->catslug = $item->catid . ':' . $item->category_alias; if ($access || in_array($item->access, $authorised)) { // We know that user has the privilege to view the article $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language)); } else { $app = JFactory::getApplication(); $menu = $app->getMenu(); $menuitems = $menu->getItems('link', 'index.php?option=com_users&view=login'); if (isset($menuitems[0])) { $Itemid = $menuitems[0]->id; } elseif ($app->input->getInt('Itemid') > 0) { // Use Itemid from requesting page only if there is no existing menu $Itemid = $app->input->getInt('Itemid'); } $item->link = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $Itemid); } // Used for styling the active article $item->active = $item->id == $active_article_id ? 'active' : ''; $item->displayDate = ''; if ($item->catid) { $item->displayCategoryLink = JRoute::_(ContentHelperRoute::getCategoryRoute($item->catid)); //$item->displayCategoryTitle = $show_category ? '<a href="' . $item->displayCategoryLink . '">' . $item->category_title . '</a>' : ''; } else { //$item->displayCategoryTitle = $show_category ? $item->category_title : ''; } } return $items; }