/administrator/modules/mod_popular/helper.php
https://bitbucket.org/eternaware/joomus · PHP · 113 lines · 64 code · 15 blank · 34 comment · 9 complexity · 22271968a74e562aebc61f85845cdba7 MD5 · raw file
- <?php
- /**
- * @package Joomla.Administrator
- * @subpackage mod_popular
- *
- * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
- * @license GNU General Public License version 2 or later; see LICENSE.txt
- */
- defined('_JEXEC') or die;
- JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_content/models', 'ContentModel');
- /**
- * Helper for mod_popular
- *
- * @package Joomla.Administrator
- * @subpackage mod_popular
- * @since 1.6
- */
- abstract class modPopularHelper
- {
- /**
- * Get a list of the most popular articles
- *
- * @param JObject The module parameters.
- *
- * @return array
- */
- public static function getList($params)
- {
- $user = JFactory::getuser();
- // Get an instance of the generic articles model
- $model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
- // Set List SELECT
- $model->setState('list.select', 'a.id, a.title, a.checked_out, a.checked_out_time, ' .
- ' a.created, a.hits');
- // Set Ordering filter
- $model->setState('list.ordering', 'a.hits');
- $model->setState('list.direction', 'DESC');
- // Set Category Filter
- $categoryId = $params->get('catid');
- if (is_numeric($categoryId)){
- $model->setState('filter.category_id', $categoryId);
- }
- // Set User Filter.
- $userId = $user->get('id');
- switch ($params->get('user_id')) {
- case 'by_me':
- $model->setState('filter.author_id', $userId);
- break;
- case 'not_me':
- $model->setState('filter.author_id', $userId);
- $model->setState('filter.author_id.include', false);
- break;
- }
- // Set the Start and Limit
- $model->setState('list.start', 0);
- $model->setState('list.limit', $params->get('count', 5));
- $items = $model->getItems();
- if ($error = $model->getError()) {
- JError::raiseError(500, $error);
- return false;
- }
- // Set the links
- foreach ($items as &$item) {
- if ($user->authorise('core.edit', 'com_content.article.'.$item->id)){
- $item->link = JRoute::_('index.php?option=com_content&task=article.edit&id='.$item->id);
- } else {
- $item->link = '';
- }
- }
- return $items;
- }
- /**
- * Get the alternate title for the module
- *
- * @param JObject The module parameters.
- * @return string The alternate title for the module.
- */
- public static function getTitle($params)
- {
- $who = $params->get('user_id');
- $catid = (int) $params->get('catid');
- if ($catid)
- {
- $category = JCategories::getInstance('Content')->get($catid);
- if ($category) {
- $title = $category->title;
- }
- else {
- $title = JText::_('MOD_POPULAR_UNEXISTING');
- }
- }
- else
- {
- $title = '';
- }
- return JText::plural('MOD_POPULAR_TITLE' . ($catid ? "_CATEGORY" : '') . ($who != '0' ? "_$who" : ''), (int) $params->get('count'), $title);
- }
- }