Example #1
0
 /**
  * get list k2 items follow setting configuration.
  *
  * @param JParameter $param
  * @return array
  */
 public function getListK2($params)
 {
     if (!ModJASlideshow3::checkComponent('com_k2')) {
         return array();
     }
     $catsid = $params->get('k2catsid');
     $catids = array();
     if (!is_array($catsid)) {
         $catids[] = $catsid;
     } else {
         $catids = $catsid;
     }
     JArrayHelper::toInteger($catids);
     if ($catids) {
         if ($catids && count($catids) > 0) {
             foreach ($catids as $k => $catid) {
                 if (!$catid) {
                     unset($catids[$k]);
                 }
             }
         }
     }
     jimport('joomla.filesystem.file');
     $user = JFactory::getUser();
     $app = JFactory::getApplication();
     $aid = $user->get('aid') ? $user->get('aid') : 1;
     $db = JFactory::getDBO();
     $jnow = JFactory::getDate();
     $now = K2_JVERSION == '15' ? $jnow->toMySQL() : $jnow->toSql();
     $nullDate = $db->getNullDate();
     $query = "SELECT i.*, c.name AS categoryname,c.id AS categoryid, c.alias AS categoryalias, c.name as cattitle, c.params AS categoryparams";
     $query .= "\n FROM #__k2_items as i LEFT JOIN #__k2_categories c ON c.id = i.catid";
     $query .= "\n WHERE i.published = 1 AND i.access <= {$aid} AND i.trash = 0 AND c.published = 1 AND c.access <= {$aid} AND c.trash = 0";
     $query .= "\n AND ( i.publish_up = " . $db->Quote($nullDate) . " OR i.publish_up <= " . $db->Quote($now) . " )";
     $query .= "\n AND ( i.publish_down = " . $db->Quote($nullDate) . " OR i.publish_down >= " . $db->Quote($now) . " )";
     if ($catids) {
         $catids_new = $catids;
         foreach ($catids as $k => $catid) {
             $subcatids = ModJASlideshow3::getK2CategoryChildren($catid, true);
             if ($subcatids) {
                 $catids_new = array_merge($catids_new, array_diff($subcatids, $catids_new));
             }
         }
         $catids = implode(',', $catids_new);
         $query .= "\n AND i.catid IN ({$catids})";
     }
     $featured = $params->get('source-articles-display_model', 2);
     switch ($featured) {
         case 0:
             $query .= " AND i.featured = 0 ";
             break;
         case 1:
             $query .= " AND i.featured = 1 ";
             break;
     }
     // language filter
     $lang = JFactory::getLanguage();
     $languageTag = $lang->getTag();
     if ($app->getLanguageFilter()) {
         $query .= " AND i.language IN ('{$languageTag}','*') ";
     }
     // Set ordering
     $ordering = $params->get('source-articles-sort_order_field', 'created');
     switch ($ordering) {
         case 'created':
             $orderby = 'i.created';
             break;
         case 'hits':
             $orderby = 'i.hits';
             break;
         case 'ordering':
             if (JRequest::getInt('featured') == '2') {
                 $orderby = 'i.featured_ordering';
             } else {
                 $orderby = 'c.ordering, i.ordering';
             }
             break;
     }
     $dir = $params->get('source-articles-sort_order', 'DESC');
     $query .= " ORDER BY " . $orderby . " " . $dir . " ";
     if ((int) trim($params->get('source-articles-max_items', 5)) == 0) {
         $query = str_replace("i.published = 1 AND", "i.published = 10 AND", $query);
     }
     $db->setQuery($query, 0, (int) trim($params->get('source-articles-max_items', 5)));
     $items = $db->loadObjectList();
     if ($items) {
         $i = 0;
         $showHits = $params->get('show_hits', 0);
         $showHits = $showHits == "1" ? true : false;
         $showimg = $params->get('show_image', 1);
         $w = (int) $params->get('width', 80);
         $h = (int) $params->get('height', 96);
         $showdate = $params->get('show_date', 1);
         $thumbnailMode = $params->get('thumbnail_mode', 'crop');
         $aspect = $params->get('use_ratio', '1');
         $crop = $thumbnailMode == 'crop' ? true : false;
         $lists = array();
         foreach ($items as &$item) {
             $item->link = urldecode(JRoute::_(K2HelperRoute::getItemRoute($item->id . ':' . urlencode($item->alias), $item->catid . ':' . urlencode($item->categoryalias))));
             $item->text = htmlspecialchars($item->title);
             if ($showdate) {
                 $item->date = $item->modified == null || $item->modified == "" || $item->modified == "0000-00-00 00:00:00" ? $item->created : $item->modified;
             }
             $this->parseImagesK2($item, $params);
             //Author
             $author = JFactory::getUser($item->created_by);
             $item->creater = $author->name;
             if ($showHits) {
                 $item->hits = isset($item->hits) ? $item->hits : 0;
             } else {
                 $item->hits = null;
             }
         }
     }
     return $items;
 }