Source for file helper.php

Documentation is available at helper.php

  1. <?php
  2. /**
  3.  * @package     Joomla.Site
  4.  * @subpackage  mod_articles_latest
  5.  *
  6.  * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
  7.  * @license     GNU General Public License version 2 or later; see LICENSE.txt
  8.  */
  9.  
  10. defined('_JEXEC'or die;
  11.  
  12. require_once JPATH_SITE '/components/com_content/helpers/route.php';
  13.  
  14. JModelLegacy::addIncludePath(JPATH_SITE '/components/com_content/models''ContentModel');
  15.  
  16. /**
  17.  * Helper for mod_articles_latest
  18.  *
  19.  * @package     Joomla.Site
  20.  * @subpackage  mod_articles_latest
  21.  */
  22. abstract class ModArticlesLatestHelper
  23. {
  24.     public static function getList(&$params)
  25.     {
  26.         // Get the dbo
  27.         $db JFactory::getDbo();
  28.  
  29.         // Get an instance of the generic articles model
  30.         $model JModelLegacy::getInstance('Articles''ContentModel'array('ignore_request' => true));
  31.  
  32.         // Set application parameters in model
  33.         $app JFactory::getApplication();
  34.         $appParams $app->getParams();
  35.         $model->setState('params'$appParams);
  36.  
  37.         // Set the filters based on the module params
  38.         $model->setState('list.start'0);
  39.         $model->setState('list.limit'(int) $params->get('count'5));
  40.         $model->setState('filter.published'1);
  41.  
  42.         // Access filter
  43.         $access !JComponentHelper::getParams('com_content')->get('show_noauth');
  44.         $authorised JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id'));
  45.         $model->setState('filter.access'$access);
  46.  
  47.         // Category filter
  48.         $model->setState('filter.category_id'$params->get('catid'array()));
  49.  
  50.         // User filter
  51.         $userId JFactory::getUser()->get('id');
  52.         switch ($params->get('user_id'))
  53.         {
  54.             case 'by_me':
  55.                 $model->setState('filter.author_id'(int) $userId);
  56.                 break;
  57.             case 'not_me':
  58.                 $model->setState('filter.author_id'$userId);
  59.                 $model->setState('filter.author_id.include'false);
  60.                 break;
  61.  
  62.             case '0':
  63.                 break;
  64.  
  65.             default:
  66.                 $model->setState('filter.author_id'(int) $params->get('user_id'));
  67.                 break;
  68.         }
  69.  
  70.         // Filter by language
  71.         $model->setState('filter.language'$app->getLanguageFilter());
  72.  
  73.         //  Featured switch
  74.         switch ($params->get('show_featured'))
  75.         {
  76.             case '1':
  77.                 $model->setState('filter.featured''only');
  78.                 break;
  79.             case '0':
  80.                 $model->setState('filter.featured''hide');
  81.                 break;
  82.             default:
  83.                 $model->setState('filter.featured''show');
  84.                 break;
  85.         }
  86.  
  87.         // Set ordering
  88.         $order_map array(
  89.             'm_dsc' => 'a.modified DESC, a.created',
  90.             'mc_dsc' => 'CASE WHEN (a.modified = ' $db->quote($db->getNullDate()) ') THEN a.created ELSE a.modified END',
  91.             'c_dsc' => 'a.created',
  92.             'p_dsc' => 'a.publish_up',
  93.             'random' => 'RAND()',
  94.         );
  95.         $ordering JArrayHelper::getValue($order_map$params->get('ordering')'a.publish_up');
  96.         $dir 'DESC';
  97.  
  98.         $model->setState('list.ordering'$ordering);
  99.         $model->setState('list.direction'$dir);
  100.  
  101.         $items $model->getItems();
  102.  
  103.         foreach ($items as &$item)
  104.         {
  105.             $item->slug $item->id ':' $item->alias;
  106.             $item->catslug $item->catid ':' $item->category_alias;
  107.  
  108.             if ($access || in_array($item->access$authorised))
  109.             {
  110.                 // We know that user has the privilege to view the article
  111.                 $item->link JRoute::_(ContentHelperRoute::getArticleRoute($item->slug$item->catslug));
  112.             }
  113.             else
  114.             {
  115.                 $item->link JRoute::_('index.php?option=com_users&view=login');
  116.             }
  117.         }
  118.  
  119.         return $items;
  120.     }
  121. }

Documentation generated on Tue, 19 Nov 2013 15:04:35 +0100 by phpDocumentor 1.4.3