Exemplo n.º 1
0
 /**
  * List hot articles by visit count
  * 
  * @param array   $options
  * @param string  $module
  * @return boolean 
  */
 public static function hotArticles($options = array(), $module = null)
 {
     if (!$module) {
         return false;
     }
     $limit = isset($options['list-count']) ? (int) $options['list-count'] : 10;
     $config = Pi::config('', $module);
     $image = $config['default_feature_thumb'];
     $image = Pi::service('asset')->getModuleAsset($image, $module);
     $day = $options['day-range'] ? intval($options['day-range']) : 7;
     if ($options['is-topic']) {
         $params = Pi::service('url')->getRouteMatch()->getParams();
         if (is_string($params)) {
             $params['topic'] = Pi::model('topic', $module)->slugToId($params['topic']);
         }
         $articles = Topic::getVisitsRecently($day, $limit, null, isset($params['topic']) ? $params['topic'] : null, $module);
     } else {
         $articles = Entity::getVisitsRecently($day, $limit, null, $module);
     }
     foreach ($articles as &$article) {
         $article['subject'] = mb_substr($article['subject'], 0, $options['max_subject_length'], 'UTF-8');
         $article['summary'] = mb_substr($article['summary'], 0, $options['max_summary_length'], 'UTF-8');
         $article['image'] = $article['image'] ? Media::getThumbFromOriginal(Pi::url($article['image'])) : $image;
     }
     return array('articles' => $articles, 'target' => $options['target'], 'elements' => (array) $options['element'], 'column' => $options['column-number'], 'config' => $config, 'rows' => $options['description_rows']);
 }