/** * 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; }