function prepareItem($item, $view, $task) { jimport('joomla.filesystem.file'); JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables'); $limitstart = JRequest::getInt('limitstart'); //Initialize params if ($view != 'item') { $component = JComponentHelper::getComponent('com_k2'); $params = new JParameter($component->params); $itemid = JRequest::getInt('Itemid'); if ($itemid) { $menu = JSite::getMenu(); $menuparams = $menu->getParams($itemid); $params->merge($menuparams); } } else { $params =& JComponentHelper::getParams('com_k2'); } //Category $db =& JFactory::getDBO(); $query = "SELECT * FROM #__k2_categories WHERE id={$item->catid}"; $db->setQuery($query, 0, 1); $category = $db->loadObject(); $item->category = $category; $item->category->link = urldecode(JRoute::_(K2HelperRoute::getCategoryRoute($category->id . ':' . urlencode($category->alias)))); //Read more link $link = K2HelperRoute::getItemRoute($item->id . ':' . urlencode($item->alias), $item->catid . ':' . urlencode($item->category->alias)); $item->link = urldecode(JRoute::_($link)); //Print link $item->printLink = urldecode(JRoute::_($link . '&tmpl=component&print=1')); //Params $cparams = new JParameter($category->params); $iparams = new JParameter($item->params); $item->params = $params; if ($cparams->get('inheritFrom')) { $masterCategoryID = $cparams->get('inheritFrom'); $query = "SELECT * FROM #__k2_categories WHERE id={$masterCategoryID}"; $db->setQuery($query, 0, 1); $masterCategory = $db->loadObject(); $cparams = new JParameter($masterCategory->params); } $item->params->merge($cparams); $item->params->merge($iparams); //Edit link if (K2HelperPermissions::canEditItem($item->created_by, $item->catid)) { $item->editLink = JRoute::_('index.php?option=com_k2&view=item&task=edit&cid=' . $item->id . '&tmpl=component'); } //Tags if ($view == 'item' && ($item->params->get('itemTags') || $item->params->get('itemRelated')) || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemTags') || $view == 'itemlist' && $task == 'user' && $item->params->get('userItemTags') || $view == 'latest' && $params->get('latestItemTags')) { $tags = K2ModelItem::getItemTags($item->id); for ($i = 0; $i < sizeof($tags); $i++) { $tags[$i]->link = urldecode(JRoute::_(K2HelperRoute::getTagRoute($tags[$i]->name))); } $item->tags = $tags; } //Image $item->imageXSmall = ''; $item->imageSmall = ''; $item->imageMedium = ''; $item->imageLarge = ''; $item->imageXLarge = ''; if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_XS.jpg')) { $item->imageXSmall = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_XS.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_S.jpg')) { $item->imageSmall = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_S.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_M.jpg')) { $item->imageMedium = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_M.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_L.jpg')) { $item->imageLarge = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_L.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_XL.jpg')) { $item->imageXLarge = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_XL.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_Generic.jpg')) { $item->imageGeneric = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_Generic.jpg'; } //Extra fields if ($view == 'item' && $item->params->get('itemExtraFields') || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemExtraFields') || $view == 'itemlist' && ($task == 'search' || $task == 'tag' || $task == 'date') && $item->params->get('genericItemExtraFields')) { $item->extra_fields = K2ModelItem::getItemExtraFields($item->extra_fields); } //Attachments if ($view == 'item' && $item->params->get('itemAttachments') || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemAttachments')) { $item->attachments = K2ModelItem::getItemAttachments($item->id); } //Import plugins $dispatcher =& JDispatcher::getInstance(); JPluginHelper::importPlugin('content'); //Gallery if ($view == 'item' && $item->params->get('itemImageGallery') || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemImageGallery')) { $params->set('galleries_rootfolder', 'media/k2/galleries'); $params->set('popup_engine', 'mootools_slimbox'); $params->set('enabledownload', '0'); $item->text = $item->gallery; $dispatcher->trigger('onPrepareContent', array(&$item, &$params, $limitstart)); $item->gallery = $item->text; } //Video if ($view == 'item' && $item->params->get('itemVideo') || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemVideo') || $view == 'latest' && $item->params->get('latestItemVideo')) { if (!empty($item->video) && JString::substr($item->video, 0, 1) !== '{') { $item->video = $item->video; $item->videoType = 'embedded'; } else { $item->videoType = 'allvideos'; $params->set('vfolder', 'media/k2/videos'); if ($view == 'item') { $params->set('vwidth', $item->params->get('itemVideoWidth')); $params->set('vheight', $item->params->get('itemVideoHeight')); $params->set('autoplay', $item->params->get('itemVideoAutoPlay')); } else { if ($view == 'latest') { $params->set('vwidth', $item->params->get('latestItemVideoWidth')); $params->set('vheight', $item->params->get('latestItemVideoHeight')); $params->set('autoplay', $item->params->get('latestItemVideoAutoPlay')); } else { $params->set('vwidth', $item->params->get('catItemVideoWidth')); $params->set('vheight', $item->params->get('catItemVideoHeight')); $params->set('autoplay', $item->params->get('catItemVideoAutoPlay')); } } $item->text = $item->video; $dispatcher->trigger('onPrepareContent', array(&$item, &$params, $limitstart)); $item->video = $item->text; } } //Rating if ($view == 'item' && $item->params->get('itemRating') || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemRating')) { $item->votingPercentage = K2ModelItem::getVotesPercentage($item->id); $item->numOfvotes = K2ModelItem::getVotesNum($item->id); } //Filtering if ($params->get('introTextCleanup')) { $filterTags = preg_split('#[,\\s]+#', trim($params->get('introTextCleanupExcludeTags'))); $filterAttrs = preg_split('#[,\\s]+#', trim($params->get('introTextCleanupTagAttr'))); $filter = new JFilterInput($filterTags, $filterAttrs, 0, 1); $item->introtext = $filter->clean($item->introtext); } if ($params->get('fullTextCleanup')) { $filterTags = preg_split('#[,\\s]+#', trim($params->get('fullTextCleanupExcludeTags'))); $filterAttrs = preg_split('#[,\\s]+#', trim($params->get('fullTextCleanupTagAttr'))); $filter = new JFilterInput($filterTags, $filterAttrs, 0, 1); $item->fulltext = $filter->clean($item->fulltext); } if ($item->params->get('catItemIntroTextWordLimit') && $task == 'category') { $item->introtext = K2HelperUtilities::wordLimit($item->introtext, $item->params->get('catItemIntroTextWordLimit')); } //Plugins $item->text = ''; $params->set('vfolder', NULL); $params->set('vwidth', NULL); $params->set('vheight', NULL); $params->set('autoplay', NULL); $params->set('galleries_rootfolder', NULL); $params->set('popup_engine', NULL); $params->set('enabledownload', NULL); if ($view == 'item') { if ($item->params->get('itemIntroText')) { $item->text .= $item->introtext; } if ($item->params->get('itemFullText')) { $item->text .= '{K2Splitter}' . $item->fulltext; } } else { switch ($task) { case '': case 'category': if ($item->params->get('catItemIntroText')) { $item->text .= $item->introtext; } break; case 'user': if ($item->params->get('userItemIntroText')) { $item->text .= $item->introtext; } break; default: if ($item->params->get('genericItemIntroText')) { $item->text .= $item->introtext; } break; } } $results = $dispatcher->trigger('onBeforeDisplay', array(&$item, &$params, $limitstart)); $item->event->BeforeDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplay', array(&$item, &$params, $limitstart)); $item->event->AfterDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayTitle', array(&$item, &$params, $limitstart)); $item->event->AfterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onBeforeDisplayContent', array(&$item, &$params, $limitstart)); $item->event->BeforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayContent', array(&$item, &$params, $limitstart)); $item->event->AfterDisplayContent = trim(implode("\n", $results)); $dispatcher->trigger('onPrepareContent', array(&$item, &$params, $limitstart)); //Author if ($view == 'item' && ($item->params->get('itemAuthorBlock') || $item->params->get('itemAuthor')) || $view == 'itemlist' && ($task == '' || $task == 'category') && ($item->params->get('catItemAuthorBlock') || $item->params->get('catItemAuthor')) || $view == 'itemlist' && $task == 'user') { if (!empty($item->created_by_alias)) { $item->author->name = $item->created_by_alias; $item->author->avatar = K2HelperUtilities::getAvatar('alias'); } else { $author =& JFactory::getUser($item->created_by); $item->author = $author; $item->author->link = JRoute::_(K2HelperRoute::getUserRoute($item->created_by)); $item->author->profile = K2ModelItem::getUserProfile($item->created_by); $item->author->avatar = K2HelperUtilities::getAvatar($author->id, $author->email, $params->get('userImageWidth')); } if (!is_object($item->author->profile)) { $item->author->profile = new JObject(); $item->author->profile->gender = NULL; } } //Num of comments $item->numOfComments = K2ModelItem::countItemComments($item->id); //K2 plugins $item->event->K2BeforeDisplay = ''; $item->event->K2AfterDisplay = ''; $item->event->K2AfterDisplayTitle = ''; $item->event->K2BeforeDisplayContent = ''; $item->event->K2AfterDisplayContent = ''; if ($view == 'item' && $item->params->get('itemK2Plugins') || $view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemK2Plugins') || $view == 'itemlist' && $task == 'user' && $item->params->get('userItemK2Plugins')) { JPluginHelper::importPlugin('k2'); $results = $dispatcher->trigger('onK2BeforeDisplay', array(&$item, &$params, $limitstart)); $item->event->K2BeforeDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2AfterDisplay', array(&$item, &$params, $limitstart)); $item->event->K2AfterDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2AfterDisplayTitle', array(&$item, &$params, $limitstart)); $item->event->K2AfterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2BeforeDisplayContent', array(&$item, &$params, $limitstart)); $item->event->K2BeforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2AfterDisplayContent', array(&$item, &$params, $limitstart)); $item->event->K2AfterDisplayContent = trim(implode("\n", $results)); $dispatcher->trigger('onK2PrepareContent', array(&$item, &$params, $limitstart)); } if ($view == 'item') { @(list($item->introtext, $item->fulltext) = explode('{K2Splitter}', $item->text)); } else { $item->introtext = $item->text; } return $item; }
<?php
function prepareItem($item, $view, $task){ jimport('joomla.filesystem.file'); JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables'); $limitstart=JRequest::getInt('limitstart'); //Initialize params if ($view!='item'){ $component = JComponentHelper::getComponent( 'com_k2' ); $params = new JParameter( $component->params ); $itemid = JRequest::getInt( 'Itemid' ); if ($itemid) { $menu = JSite::getMenu(); $menuparams = $menu->getParams( $itemid ); $params->merge( $menuparams ); } } else { $params = & JComponentHelper::getParams('com_k2'); } //Category $db = & JFactory::getDBO(); $query = "SELECT * FROM #__k2_categories WHERE id=".(int)$item->catid; $db->setQuery($query, 0, 1); $category = $db->loadObject(); $item->category=$category; $item->category->link=urldecode(JRoute::_(K2HelperRoute::getCategoryRoute($category->id.':'.urlencode($category->alias)))); //Read more link $link = K2HelperRoute::getItemRoute($item->id.':'.urlencode($item->alias),$item->catid.':'.urlencode($item->category->alias)); $item->link=urldecode(JRoute::_($link)); //Print link $item->printLink = urldecode(JRoute::_($link.'&tmpl=component&print=1')); //Params $cparams = new JParameter( $category->params ); $iparams = new JParameter( $item->params ); $item->params= $params; if ($cparams->get('inheritFrom')){ $masterCategoryID = $cparams->get('inheritFrom'); $query = "SELECT * FROM #__k2_categories WHERE id=".(int)$masterCategoryID; $db->setQuery($query, 0, 1); $masterCategory = $db->loadObject(); $cparams = new JParameter( $masterCategory->params ); } $item->params->merge($cparams); $item->params->merge($iparams); //Edit link if (K2HelperPermissions::canEditItem($item->created_by,$item->catid)) $item->editLink = JRoute::_('index.php?option=com_k2&view=item&task=edit&cid='.$item->id.'&tmpl=component'); //Tags if( ($view=='item' && ($item->params->get('itemTags') || $item->params->get('itemRelated'))) || ($view=='itemlist' && ($task=='' || $task=='category') && $item->params->get('catItemTags')) || ($view=='itemlist' && $task=='user' && $item->params->get('userItemTags')) || ($view=='latest' && $params->get('latestItemTags')) ) { $tags = K2ModelItem::getItemTags($item->id); for ($i=0; $i<sizeof($tags); $i++) { $tags[$i]->link = JRoute::_(K2HelperRoute::getTagRoute($tags[$i]->name)); } $item->tags=$tags; } //Image $item->imageXSmall=''; $item->imageSmall=''; $item->imageMedium=''; $item->imageLarge=''; $item->imageXLarge=''; if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_XS.jpg')) $item->imageXSmall = JURI::root().'media/k2/items/cache/'.md5("Image".$item->id).'_XS.jpg'; if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_S.jpg')) $item->imageSmall = JURI::root().'media/k2/items/cache/'.md5("Image".$item->id).'_S.jpg'; if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_M.jpg')) $item->imageMedium = JURI::root().'media/k2/items/cache/'.md5("Image".$item->id).'_M.jpg'; if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_L.jpg')) $item->imageLarge = JURI::root().'media/k2/items/cache/'.md5("Image".$item->id).'_L.jpg'; if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_XL.jpg')) $item->imageXLarge = JURI::root().'media/k2/items/cache/'.md5("Image".$item->id).'_XL.jpg'; if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_Generic.jpg')) $item->imageGeneric = JURI::root().'media/k2/items/cache/'.md5("Image".$item->id).'_Generic.jpg'; //Extra fields if( ($view=='item' && $item->params->get('itemExtraFields')) || ($view=='itemlist' && ($task=='' || $task=='category') && $item->params->get('catItemExtraFields')) || ($view=='itemlist' && ($task=='search' || $task=='tag' || $task=='date') && $item->params->get('genericItemExtraFields')) ) { $item->extra_fields=K2ModelItem::getItemExtraFields($item->extra_fields); } //Attachments if( ($view=='item' && $item->params->get('itemAttachments')) || ($view=='itemlist' && ($task=='' || $task=='category') && $item->params->get('catItemAttachments')) ) { $item->attachments=K2ModelItem::getItemAttachments($item->id); } //Rating if( ($view=='item' && $item->params->get('itemRating')) || ($view=='itemlist' && ($task=='' || $task=='category') && $item->params->get('catItemRating')) ) { $item->votingPercentage = K2ModelItem::getVotesPercentage($item->id); $item->numOfvotes = K2ModelItem::getVotesNum($item->id); } //Filtering if ($params->get('introTextCleanup')){ $filterTags = preg_split( '#[,\s]+#', trim( $params->get( 'introTextCleanupExcludeTags' ) ) ); $filterAttrs = preg_split( '#[,\s]+#', trim( $params->get( 'introTextCleanupTagAttr' ) ) ); $filter = new JFilterInput( $filterTags, $filterAttrs, 0, 1 ); $item->introtext= $filter->clean( $item->introtext ); } if ($params->get('fullTextCleanup')){ $filterTags = preg_split( '#[,\s]+#', trim( $params->get( 'fullTextCleanupExcludeTags' ) ) ); $filterAttrs = preg_split( '#[,\s]+#', trim( $params->get( 'fullTextCleanupTagAttr' ) ) ); $filter = new JFilterInput( $filterTags, $filterAttrs, 0, 1 ); $item->fulltext= $filter->clean( $item->fulltext ); } if ($item->params->get('catItemIntroTextWordLimit') && $task=='category'){ $item->introtext = K2HelperUtilities::wordLimit($item->introtext, $item->params->get('catItemIntroTextWordLimit')); } $item->cleanTitle = $item->title; $item->title = htmlspecialchars($item->title, ENT_QUOTES); $item->image_caption = htmlspecialchars($item->image_caption, ENT_QUOTES); //Author if( ($view=='item' && ($item->params->get('itemAuthorBlock') || $item->params->get('itemAuthor'))) || ($view=='itemlist' && ($task=='' || $task=='category') && ($item->params->get('catItemAuthorBlock') || $item->params->get('catItemAuthor')) ) || ($view=='itemlist' && $task=='user') ) { if (!empty($item->created_by_alias)){ $item->author->name = $item->created_by_alias; $item->author->avatar = K2HelperUtilities::getAvatar('alias'); $item->author->link = JURI::root(); } else { $author=&JFactory::getUser($item->created_by); $item->author = $author; $item->author->link = JRoute::_(K2HelperRoute::getUserRoute($item->created_by)); $item->author->profile = K2ModelItem::getUserProfile($item->created_by); $item->author->avatar = K2HelperUtilities::getAvatar($author->id, $author->email, $params->get('userImageWidth')); } if (!isset($item->author->profile) || is_null($item->author->profile)){ $item->author->profile = new JObject; $item->author->profile->gender = NULL; } } //Num of comments $item->numOfComments = K2ModelItem::countItemComments($item->id); return $item; }
/** * * Get list K2 items * @param string $catid categories id * @param object $params * @return array */ function getListK2($catids, $params) { if (file_exists(JPATH_SITE . '/components/com_k2/helpers/route.php')) { require_once JPATH_SITE . "/components/com_k2/helpers/route.php"; require_once JPATH_ADMINISTRATOR . "/components/com_k2/models/model.php"; require_once JPATH_SITE . "/components/com_k2/models/item.php"; } $db = JFactory::getDBO(); $app = JFactory::getApplication(); $date = JFactory::getDate(); //$now = $date->toMySQL(); if (version_compare(JVERSION, '3.0', 'ge')) { $now = $date->toSql(); } else { if (version_compare(JVERSION, '2.5', 'ge')) { $now = $date->toMySQL(); } else { $now = $date->toMySQL(); } } $user = JFactory::getUser(); $aid = $user->get('aid') ? $user->get('aid') : 1; $jnow = JFactory::getDate(); //$now = $jnow->toMySQL(); if (version_compare(JVERSION, '3.0', 'ge')) { $now = $jnow->toSql(); } else { if (version_compare(JVERSION, '2.5', 'ge')) { $now = $jnow->toMySQL(); } else { $now = $jnow->toMySQL(); } } $nullDate = $db->getNullDate(); $sql = array(); //do not select category /*if ((!empty($catids)) && ($catids[0]==0)) { return $data = array(); }*/ if (!empty($catids)) { $catids_new = $catids; foreach ($catids as $k => $catid) { if ($catid != 0) { $subcatids = modJacontentsliderHelper::getK2CategoryChildren($catid, true); if ($subcatids) { $catids_new = array_merge($catids_new, array_diff($subcatids, $catids_new)); } } } } $query = array(); $arr_cate = ''; JArrayHelper::toInteger($catids_new); if (!empty($catids_new)) { $arr_cate = '(' . implode(',', $catids_new) . ')'; } $select = 'SELECT items.*, cate.name AS cateName, cate.alias AS categoryalias'; $from = ' FROM #__k2_categories as cate INNER JOIN #__k2_items as items ON cate.id = items.catid'; $where = ' WHERE cate.published = 1 AND items.published = 1'; $where .= " AND items.access <= {$aid}" . " AND items.trash = 0" . " AND cate.access <= {$aid}" . " AND cate.trash = 0"; $where .= " AND ( items.publish_up = " . $db->Quote($nullDate) . " OR items.publish_up <= " . $db->Quote($now) . " )"; $where .= " AND ( items.publish_down = " . $db->Quote($nullDate) . " OR items.publish_down >= " . $db->Quote($now) . " )"; if (!empty($arr_cate)) { $where .= ' AND items.catid IN ' . $arr_cate . ' '; } // language filter $lang = JFactory::getLanguage(); $languageTag = $lang->getTag(); if ($app->getLanguageFilter()) { $where .= " AND items.language IN ('{$languageTag}','*') "; } // order by $order = $params->get('sort_order_field', 'created'); $orderDir = $params->get('sort_order', 'DESC'); switch ($order) { case 'created': $orderBy = " items.created {$orderDir}"; break; case 'ordering': $orderBy = " items.ordering {$orderDir}"; break; case 'hits': $orderBy = " items.hits {$orderDir}"; break; default: $orderBy = " RAND() "; break; } $query = $select . $from . $where . ' ORDER BY ' . $orderBy; $query .= ' LIMIT 0,' . $params->get('maxitems', 10); $db->setQuery($query); $data = $db->loadObjectlist(); if (empty($data)) { $data = array(); } $config = array(); $model = new K2ModelItem($config); foreach ($data as $i => $row) { $data[$i]->id = $row->id; $data[$i]->text = $data[$i]->introtext; $data[$i]->title = $data[$i]->title; $data[$i]->introtext = $row->introtext; $data[$i]->catid = $row->catid; $data[$i]->cateName = $row->cateName; $data[$i]->link = urldecode(JRoute::_(K2HelperRoute::getItemRoute($row->id . ':' . urlencode($row->alias), $row->catid . ':' . urlencode($row->categoryalias)))); $data[$i]->featured = $row->featured; // Get rating data from K2 Components $sqlRating = "SELECT * FROM #__k2_rating WHERE itemID = '" . intval($data[$i]->id) . "' "; $db->setQuery($sqlRating); $rating = $db->loadRow(); $data[$i]->rating = $rating; $image = modJacontentsliderHelper::parseImages($data[$i], $params, 'k2'); if ($image) { $data[$i]->image = modJacontentsliderHelper::renderImage($row->title, $data[$i]->link, $image, $params, $params->get('iwidth'), $params->get('iheight')); } else { $data[$i]->image = ''; } $data[$i] = modJacontentsliderHelper::processIntrotext($data[$i], $params->get('numchar', 0)); $data[$i]->params = new JRegistry($data[$i]->params); if ($params->get('show_extra_fields', 0)) { $data[$i]->extra_fields = $model->getItemExtraFields($data[$i]->extra_fields, $data[$i]); } } return $data; }
function getItems(&$params, $format = 'html') { jimport('joomla.filesystem.file'); $limit = $params->get('itemCount', 5); $cid = $params->get('category_id', NULL); $ordering = $params->get('itemsOrdering', ''); $componentParams =& JComponentHelper::getParams('com_k2'); $limitstart = JRequest::getInt('limitstart'); $user =& JFactory::getUser(); $aid = $user->get('aid'); $db =& JFactory::getDBO(); $jnow =& JFactory::getDate(); $now = $jnow->toMySQL(); $nullDate = $db->getNullDate(); if ($params->get('source') == 'specific') { $value = $params->get('items'); $current = array(); if (is_string($value) && !empty($value)) { $current[] = $value; } if (is_array($value)) { $current = $value; } $items = array(); foreach ($current as $id) { $query = "SELECT i.*, c.name AS categoryname,c.id AS categoryid, c.alias AS categoryalias, c.params AS categoryparams"; $query .= " FROM #__k2_items as i LEFT JOIN #__k2_categories c ON c.id = i.catid"; $query .= " 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 .= " AND ( i.publish_up = " . $db->Quote($nullDate) . " OR i.publish_up <= " . $db->Quote($now) . " )"; $query .= " AND ( i.publish_down = " . $db->Quote($nullDate) . " OR i.publish_down >= " . $db->Quote($now) . " )"; $query .= " AND i.id={$id}"; $db->setQuery($query); $item = $db->loadObject(); if ($item) { $items[] = $item; } } } else { $query = "SELECT i.*, c.name AS categoryname,c.id AS categoryid, c.alias AS categoryalias, c.params AS categoryparams"; if ($ordering == 'best') { $query .= ", (r.rating_sum/r.rating_count) AS rating"; } if ($ordering == 'comments') { $query .= ", COUNT(comments.id) AS numOfComments"; } $query .= " FROM #__k2_items as i LEFT JOIN #__k2_categories c ON c.id = i.catid"; if ($ordering == 'best') { $query .= " LEFT JOIN #__k2_rating r ON r.itemID = i.id"; } if ($ordering == 'comments') { $query .= " LEFT JOIN #__k2_comments comments ON comments.itemID = i.id"; } $query .= " 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 .= " AND ( i.publish_up = " . $db->Quote($nullDate) . " OR i.publish_up <= " . $db->Quote($now) . " )"; $query .= " AND ( i.publish_down = " . $db->Quote($nullDate) . " OR i.publish_down >= " . $db->Quote($now) . " )"; if ($params->get('catfilter')) { if (!is_null($cid)) { if (is_array($cid)) { if ($params->get('getChildren')) { require_once JPATH_SITE . DS . 'components' . DS . 'com_k2' . DS . 'models' . DS . 'itemlist.php'; $allChildren = array(); foreach ($cid as $id) { $categories = K2ModelItemlist::getCategoryChilds($id, true); $categories[] = $id; $categories = @array_unique($categories); $allChildren = @array_merge($allChildren, $categories); } $allChildren = @array_unique($allChildren); JArrayHelper::toInteger($allChildren); $sql = @implode(',', $allChildren); $query .= " AND i.catid IN ({$sql})"; } else { JArrayHelper::toInteger($cid); $query .= " AND i.catid IN(" . implode(',', $cid) . ")"; } } else { if ($params->get('getChildren')) { require_once JPATH_SITE . DS . 'components' . DS . 'com_k2' . DS . 'models' . DS . 'itemlist.php'; $categories = K2ModelItemlist::getCategoryChilds($cid, true); $categories[] = $cid; $categories = @array_unique($categories); JArrayHelper::toInteger($categories); $sql = @implode(',', $categories); $query .= " AND i.catid IN ({$sql})"; } else { $query .= " AND i.catid=" . (int) $cid; } } } } if ($params->get('FeaturedItems') == '0') { $query .= " AND i.featured != 1"; } if ($params->get('FeaturedItems') == '2') { $query .= " AND i.featured = 1"; } if ($params->get('videosOnly')) { $query .= " AND (i.video IS NOT NULL AND i.video!='')"; } if ($ordering == 'comments') { $query .= " AND comments.published = 1"; } switch ($ordering) { case 'date': $orderby = 'i.created ASC'; break; case 'rdate': $orderby = 'i.created DESC'; break; case 'alpha': $orderby = 'i.title'; break; case 'ralpha': $orderby = 'i.title DESC'; break; case 'order': if ($params->get('FeaturedItems') == '2') { $orderby = 'i.featured_ordering'; } else { $orderby = 'i.ordering'; } break; case 'rorder': if ($params->get('FeaturedItems') == '2') { $orderby = 'i.featured_ordering DESC'; } else { $orderby = 'i.ordering DESC'; } break; case 'hits': if ($params->get('popularityRange')) { $datenow =& JFactory::getDate(); $date = $datenow->toMySQL(); $query .= " AND i.created > DATE_SUB('{$date}',INTERVAL " . $params->get('popularityRange') . " DAY) "; } $orderby = 'i.hits DESC'; break; case 'rand': $orderby = 'RAND()'; break; case 'best': $orderby = 'rating DESC'; break; case 'comments': if ($params->get('popularityRange')) { $datenow =& JFactory::getDate(); $date = $datenow->toMySQL(); $query .= " AND i.created > DATE_SUB('{$date}',INTERVAL " . $params->get('popularityRange') . " DAY) "; } $query .= " GROUP BY i.id "; $orderby = 'numOfComments DESC'; break; case 'modified': $orderby = 'i.modified DESC'; break; default: $orderby = 'i.id DESC'; break; } $query .= " ORDER BY " . $orderby; $db->setQuery($query, 0, $limit); $items = $db->loadObjectList(); } require_once JPATH_SITE . DS . 'components' . DS . 'com_k2' . DS . 'models' . DS . 'item.php'; $model = new K2ModelItem(); if (count($items)) { foreach ($items as $item) { //Clean title $item->title = JFilterOutput::ampReplace($item->title); //Images if ($params->get('itemImage')) { if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_XS.jpg')) { $item->imageXSmall = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_XS.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_S.jpg')) { $item->imageSmall = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_S.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_M.jpg')) { $item->imageMedium = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_M.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_L.jpg')) { $item->imageLarge = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_L.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_XL.jpg')) { $item->imageXLarge = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_XL.jpg'; } if (JFile::exists(JPATH_SITE . DS . 'media' . DS . 'k2' . DS . 'items' . DS . 'cache' . DS . md5("Image" . $item->id) . '_Generic.jpg')) { $item->imageGeneric = JURI::root() . 'media/k2/items/cache/' . md5("Image" . $item->id) . '_Generic.jpg'; } $image = 'image' . $params->get('itemImgSize', 'Small'); if (isset($item->{$image})) { $item->image = $item->{$image}; } } //Read more link $item->link = urldecode(JRoute::_(K2HelperRoute::getItemRoute($item->id . ':' . urlencode($item->alias), $item->catid . ':' . urlencode($item->categoryalias)))); //Tags if ($params->get('itemTags')) { $tags = $model->getItemTags($item->id); for ($i = 0; $i < sizeof($tags); $i++) { $tags[$i]->link = JRoute::_(K2HelperRoute::getTagRoute($tags[$i]->name)); } $item->tags = $tags; } //Category link if ($params->get('itemCategory')) { $item->categoryLink = urldecode(JRoute::_(K2HelperRoute::getCategoryRoute($item->catid . ':' . urlencode($item->categoryalias)))); } //Extra fields if ($params->get('itemExtraFields')) { $item->extra_fields = $model->getItemExtraFields($item->extra_fields); } //Comments counter if ($params->get('itemCommentsCounter')) { $item->numOfComments = $model->countItemComments($item->id); } //Attachments if ($params->get('itemAttachments')) { $item->attachments = $model->getItemAttachments($item->id); } //Import plugins if ($format != 'feed') { $dispatcher =& JDispatcher::getInstance(); JPluginHelper::importPlugin('content'); } //Video if ($params->get('itemVideo') && $format != 'feed') { $params->set('vfolder', 'media/k2/videos'); $item->text = $item->video; $dispatcher->trigger('onPrepareContent', array(&$item, &$params, $limitstart)); $item->video = $item->text; } // Introtext $item->text = ''; if ($params->get('itemIntroText')) { // Word limit if ($params->get('itemIntroTextWordLimit')) { $item->text .= K2HelperUtilities::wordLimit($item->introtext, $params->get('itemIntroTextWordLimit')); } else { $item->text .= $item->introtext; } } if ($format != 'feed') { $params->set('parsedInModule', 1); // for plugins to know when they are parsed inside this module if ($params->get('JPlugins', 1)) { //Plugins $results = $dispatcher->trigger('onBeforeDisplay', array(&$item, &$params, $limitstart)); $item->event->BeforeDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplay', array(&$item, &$params, $limitstart)); $item->event->AfterDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayTitle', array(&$item, &$params, $limitstart)); $item->event->AfterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onBeforeDisplayContent', array(&$item, &$params, $limitstart)); $item->event->BeforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onAfterDisplayContent', array(&$item, &$params, $limitstart)); $item->event->AfterDisplayContent = trim(implode("\n", $results)); $dispatcher->trigger('onPrepareContent', array(&$item, &$params, $limitstart)); $item->introtext = $item->text; } //Init K2 plugin events $item->event->K2BeforeDisplay = ''; $item->event->K2AfterDisplay = ''; $item->event->K2AfterDisplayTitle = ''; $item->event->K2BeforeDisplayContent = ''; $item->event->K2AfterDisplayContent = ''; $item->event->K2CommentsCounter = ''; if ($params->get('K2Plugins', 1)) { //K2 plugins JPluginHelper::importPlugin('k2'); $results = $dispatcher->trigger('onK2BeforeDisplay', array(&$item, &$params, $limitstart)); $item->event->K2BeforeDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2AfterDisplay', array(&$item, &$params, $limitstart)); $item->event->K2AfterDisplay = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2AfterDisplayTitle', array(&$item, &$params, $limitstart)); $item->event->K2AfterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2BeforeDisplayContent', array(&$item, &$params, $limitstart)); $item->event->K2BeforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onK2AfterDisplayContent', array(&$item, &$params, $limitstart)); $item->event->K2AfterDisplayContent = trim(implode("\n", $results)); $dispatcher->trigger('onK2PrepareContent', array(&$item, &$params, $limitstart)); $item->introtext = $item->text; if ($params->get('itemCommentsCounter')) { $results = $dispatcher->trigger('onK2CommentsCounter', array(&$item, &$params, $limitstart)); $item->event->K2CommentsCounter = trim(implode("\n", $results)); } } } //Clean the plugin tags $item->introtext = preg_replace("#{(.*?)}(.*?){/(.*?)}#s", '', $item->introtext); //Author if ($params->get('itemAuthor')) { if (!empty($item->created_by_alias)) { $item->author = $item->created_by_alias; $item->authorGender = NULL; if ($params->get('itemAuthorAvatar')) { $item->authorAvatar = K2HelperUtilities::getAvatar('alias'); } } else { $author =& JFactory::getUser($item->created_by); $item->author = $author->name; $query = "SELECT `gender` FROM #__k2_users WHERE userID=" . (int) $author->id; $db->setQuery($query, 0, 1); $item->authorGender = $db->loadResult(); if ($params->get('itemAuthorAvatar')) { $item->authorAvatar = K2HelperUtilities::getAvatar($author->id, $author->email, $componentParams->get('userImageWidth')); } //Author Link $item->authorLink = JRoute::_(K2HelperRoute::getUserRoute($item->created_by)); } } $rows[] = $item; } return $rows; } }
public static function getList($params, $count) { $catids = $params->get('k2catids', array()); $ordering = $params->get('ordering', 'a.ordering'); $ordering_direction = $params->get('ordering_direction', 'ASC'); $user_id = $params->get('user_id'); $show_featured = $params->get('show_featured'); $user = JFactory::getUser(); $aid = $user->get('aid'); $db = JFactory::getDBO(); $jnow = JFactory::getDate(); $now = $jnow->toSql(); $nullDate = $db->getNullDate(); $query = "SELECT a.*, c.name as categoryname,c.id as categoryid, c.alias as categoryalias, c.params as categoryparams" . " FROM #__k2_items as a" . " LEFT JOIN #__k2_categories c ON c.id = a.catid"; $query .= " WHERE a.published = 1 AND a.access IN(" . implode(',', $user->getAuthorisedViewLevels()) . ") AND a.trash = 0 AND c.published = 1 AND c.access IN(" . implode(',', $user->getAuthorisedViewLevels()) . ") AND c.trash = 0"; // User filter $userId = JFactory::getUser()->get('id'); switch ($params->get('user_id')) { case 'by_me': $query .= ' AND (a.created_by = ' . (int) $userId . ' OR a.modified_by = ' . (int) $userId . ')'; break; case 'not_me': $query .= ' AND (a.created_by <> ' . (int) $userId . ' AND a.modified_by <> ' . (int) $userId . ')'; break; case '0': break; default: $query .= ' AND (a.created_by = ' . (int) $userId . ' OR a.modified_by = ' . (int) $userId . ')'; break; } //Added Category if (!is_null($catids)) { if (is_array($catids)) { JArrayHelper::toInteger($catids); $query .= " AND a.catid IN(" . implode(',', $catids) . ")"; } else { $query .= " AND a.catid=" . (int) $catids; } } // Featured items filter if ($show_featured == '0') { $query .= " AND a.featured != 1"; } if ($show_featured == '1') { $query .= " AND a.featured = 1"; } // ensure should be published $query .= " AND ( a.publish_up = " . $db->Quote($nullDate) . " OR a.publish_up <= " . $db->Quote($now) . " )"; $query .= " AND ( a.publish_down = " . $db->Quote($nullDate) . " OR a.publish_down >= " . $db->Quote($now) . " )"; //Ordering $orderby = $ordering . ' ' . $ordering_direction; //ordering $query .= " ORDER BY " . $orderby; $db->setQuery($query, 0, $count); $items = $db->loadObjectList(); require_once JPATH_SITE . '/components/com_k2/models/item.php'; $model = new K2ModelItem(); if (count($items)) { foreach ($items as $item) { if (!empty($item->created_by_alias)) { $item->author = $item->created_by_alias; } else { $author = JFactory::getUser($item->created_by); $item->author = $author->name; } $item->created = $item->created; $item->hits = $item->hits; $item->category = $item->categoryname; $item->cat_link = urldecode(JRoute::_(K2HelperRoute::getCategoryRoute($item->catid . ':' . urlencode($item->categoryalias)))); $item->image = self::getImage($item->id, $item->introtext); $item->title = htmlspecialchars($item->title); $item->introtext = $item->introtext; $item->link = urldecode(JRoute::_(K2HelperRoute::getItemRoute($item->id . ':' . urlencode($item->alias), $item->catid . ':' . urlencode($item->categoryalias)))); $item->comment = '<a class="ns2-comments" href="' . $item->link . '#itemCommentsAnchor">' . JText::_('COMMENTS_TEXT') . ' (' . $model->countItemComments($item->id) . ')</a>'; $item->rating = $model->getVotesPercentage($item->id); if ($params->get('article_extra_fields')) { $item->extra_fields = $model->getItemExtraFields($item->extra_fields, $item); } $rows[] = $item; } return $rows; } }
function getData($number) { nextendimport('nextend.database.database'); $db = NextendDatabase::getInstance(); $data = array(); $category = array_map('intval', explode('||', $this->_data->get('k2itemssourcecategory', ''))); $query = 'SELECT '; $query .= 'con.id, '; $query .= 'con.title, '; $query .= 'con.alias, '; $query .= 'con.introtext, '; $query .= 'con.fulltext, '; $query .= 'con.catid, '; $query .= 'cat.name AS cat_title, '; $query .= 'cat.alias AS cat_alias, '; $query .= 'con.created_by, '; $query .= 'usr.name AS created_by_alias, '; $query .= 'con.hits, '; $query .= 'con.image_caption, '; $query .= 'con.image_credits, '; $query .= 'con.extra_fields '; $query .= 'FROM #__k2_items AS con '; $query .= 'LEFT JOIN #__users AS usr ON usr.id = con.created_by '; $query .= 'LEFT JOIN #__k2_categories AS cat ON cat.id = con.catid '; $query .= 'WHERE con.catid IN (' . implode(',', $category) . ') '; $sourceuserid = intval($this->_data->get('k2itemssourceuserid', '')); if ($sourceuserid) { $query .= 'AND con.created_by = ' . $sourceuserid . ' '; } if ($this->_data->get('k2itemssourcepublished', 1)) { $jnow = JFactory::getDate(); $now = version_compare(JVERSION, '1.6.0', '<') ? $jnow->toMySQL() : $jnow->toSql(); $query .= "AND con.published = 1 AND (con.publish_up = '0000-00-00 00:00:00' OR con.publish_up < '" . $now . "') AND (con.publish_down = '0000-00-00 00:00:00' OR con.publish_down > '" . $now . "') "; } $query .= 'AND con.trash = 0 '; if ($this->_data->get('k2itemssourcefeatured', 0)) { $query .= 'AND con.featured = 1 '; } $language = $this->_data->get('k2itemssourcelanguage', '*'); if ($language) { $query .= 'AND con.language = ' . $db->quote($language) . ' '; } $order = NextendParse::parse($this->_data->get('k2itemsorder1', 'con.title|*|asc')); if ($order[0]) { $query .= 'ORDER BY ' . $order[0] . ' ' . $order[1] . ' '; $order = NextendParse::parse($this->_data->get('k2itemsorder2', 'con.title|*|asc')); if ($order[0]) { $query .= ', ' . $order[0] . ' ' . $order[1] . ' '; } } $query .= 'LIMIT 0, ' . $number . ' '; $db->setQuery($query); $result = $db->loadAssocList(); $this->loadExtraFields(); require_once JPATH_SITE . '/components/com_k2/helpers/utilities.php'; require_once JPATH_SITE . '/components/com_k2/models/item.php'; $k2item = new K2ModelItem(); for ($i = 0; $i < count($result); $i++) { $result[$i]['url'] = 'index.php?option=com_k2&view=item&id=' . $result[$i]['id'] . ':' . $result[$i]['alias']; $result[$i]['categoryurl'] = 'index.php?option=com_k2&view=itemlist&task=category&id=' . $result[$i]['catid'] . ':' . $result[$i]['cat_alias']; $result[$i]['thumbnail'] = $result[$i]['image'] = "media/k2/items/cache/" . md5("Image" . $result[$i]['id']) . "_XL.jpg"; if (!NextendFilesystem::fileexists(JPATH_SITE . '/' . $result[$i]['image'])) { $result[$i]['thumbnail'] = $result[$i]['image'] = ''; } $result[$i]['description'] = $result[$i]['introtext']; $result[$i]['url_label'] = 'View article'; $result[$i]['author_name'] = $result[$i]['created_by_alias']; $result[$i]['author_url'] = '#'; $item = (object) $result[$i]; $extras = $k2item->getItemExtraFields($result[$i]['extra_fields'], $item); if (is_array($extras) && count($extras) > 0) { foreach ($extras as $field) { $result[$i]['extra' . $field->id . '_' . preg_replace("/\\W|_/", "", $this->extraFields[$field->id]['group_name'] . '_' . $this->extraFields[$field->id]['name'])] = $field->value; } } } return $result; }