Joomla 2.5 mod_articles_popular按类别

时间:2014-10-15 08:04:21

标签: php joomla joomla2.5 joomla-module

我得到mod_articles_popular并且我限制了它,所以它只显示不到30天的文章,但我不能强迫它显示用户所在类别的文章。任何人都知道如何做到这一点?

modules / mod_articles_popular / helper.php

 <?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_popular
 * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

require_once JPATH_SITE.'/components/com_content/helpers/route.php';

JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_content/models', 'ContentModel');

abstract class modArticlesPopularHelper
{
    public static function getList(&$params)
    {
        // Get an instance of the generic articles model
        $model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));

        // Set application parameters in model
        $app = JFactory::getApplication();
        $appParams = $app->getParams();
        $model->setState('params', $appParams);

        // Set the filters based on the module params
        $model->setState('list.start', 0);
        $model->setState('list.limit', (int) $params->get('count', 5));
        $model->setState('filter.published', 1);
        $model->setState('filter.featured', $params->get('show_front', 1) == 1 ? 'show' : 'hide');

        // Access filter
        $access = !JComponentHelper::getParams('com_content')->get('show_noauth');
        $authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id'));
        $model->setState('filter.access', $access);

        // Category filter
        $model->setState('filter.category_id', $params->get('catid', array()));

        // Filter by language
        $model->setState('filter.language', $app->getLanguageFilter());

        // Ordering
        $model->setState('list.ordering', 'a.hits');
        $model->setState('list.direction', 'DESC');

        //Filter and Set Period (days)
        $model->setState('filter.date_filtering', 'relative');
        $model->setState('filter.relative_date', 30);

        $items = $model->getItems();

        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->catslug, $item->language));
            } else {
                $item->link = JRoute::_('index.php?option=com_users&view=login');
            }
        }

        return $items;
    }
}

0 个答案:

没有答案