uawdijnntqw1x1x1
IP : 216.73.216.219
Hostname : webm015.cluster127.gra.hosting.ovh.net
Kernel : Linux webm015.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
pteabiscqq
/
www
/
188ee
/
..
/
components
/
com_k2
/
controllers
/
..
/
models
/
itemlist.php
/
/
<?php /** * @version 2.11 (rolling release) * @package K2 * @author JoomlaWorks https://www.joomlaworks.net * @copyright Copyright (c) 2009 - 2024 JoomlaWorks Ltd. All rights reserved. * @license GNU/GPL: https://gnu.org/licenses/gpl.html */ // no direct access defined('_JEXEC') or die; jimport('joomla.application.component.model'); JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_k2/tables'); class K2ModelItemlist extends K2Model { private $getTotal; public function getData($ordering = null) { $user = JFactory::getUser(); $aid = $user->get('aid'); $db = JFactory::getDbo(); $task = JRequest::getCmd('task'); $limitstart = JRequest::getInt('limitstart', 0); $limit = JRequest::getInt('limit', 10); $config = JFactory::getConfig(); $params = K2HelperUtilities::getParams('com_k2'); if ($task == 'search') { $params->set('googleSearch', 0); } // For Falang $falang_driver = JPluginHelper::getPlugin('system', 'falangdriver'); $jnow = JFactory::getDate(); $now = (K2_JVERSION == '15') ? $jnow->toMySQL() : $jnow->toSql(); /* if (version_compare(JVERSION, '3.3', 'ge')) { $now = $jnow->format('%Y-%m-%d %H:%M:00'); } else { $now = $jnow->toFormat('%Y-%m-%d %H:%M:00'); } */ $nullDate = $db->getNullDate(); $query = "/* Frontend / K2 / Items */ SELECT /*+ MAX_EXECUTION_TIME(60000) */ SQL_CALC_FOUND_ROWS i.*,"; if ($task == 'search') { $query = "/* Frontend / K2 / Items */ SELECT /*+ MAX_EXECUTION_TIME(90000) */ SQL_CALC_FOUND_ROWS i.*,"; } if ($ordering == 'modified') { $query .= " CASE WHEN i.modified = 0 THEN i.created ELSE i.modified END AS lastChanged,"; } $query .= " 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"; } $query .= " FROM #__k2_items AS i"; // Enforce certain INDEX when filtering by dates if ($ordering == 'date' || $ordering == 'rdate') { $query .= " USE INDEX (idx_item)"; } $query .= " INNER JOIN #__k2_categories AS c USE INDEX (idx_category) ON c.id = i.catid"; if ($ordering == 'best') { $query .= " LEFT JOIN #__k2_rating AS r ON r.itemID = i.id"; } /* // Changed the query for the tag case for better performance if ($task == 'tag') { $query .= " LEFT JOIN #__k2_tags_xref AS tags_xref ON tags_xref.itemID = i.id LEFT JOIN #__k2_tags AS tags ON tags.id = tags_xref.tagID"; } */ if ($task == 'user' && !$user->guest && $user->id == JRequest::getInt('id')) { $query .= " WHERE"; } else { $query .= " WHERE i.published = 1 AND"; } if (K2_JVERSION != '15') { $userACL = array_unique($user->getAuthorisedViewLevels()); $query .= " i.access IN(".implode(',', $userACL).") AND i.trash = 0 AND c.published = 1 AND c.access IN(".implode(',', $userACL).") AND c.trash = 0"; $app = JFactory::getApplication(); $languageFilter = $app->getLanguageFilter(); if ($languageFilter) { $languageTag = JFactory::getLanguage()->getTag(); $query .= " AND c.language IN(".$db->quote($languageTag).", ".$db->quote('*').") AND i.language IN(".$db->quote($languageTag).", ".$db->quote('*').")"; } } else { $query .= " i.access <= {$aid} AND i.trash = 0 AND c.published = 1 AND c.access <= {$aid} AND c.trash = 0"; } if (!($task == 'user' && !$user->guest && $user->id == JRequest::getInt('id'))) { $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.publish_up IS NULL OR i.publish_up <= NOW()) AND (i.publish_down IS NULL OR i.publish_down >= NOW())"; */ } // Build query depending on task switch ($task) { case 'category': $id = JRequest::getInt('id'); $category = JTable::getInstance('K2Category', 'Table'); $category->load($id); $cparams = class_exists('JParameter') ? new JParameter($category->params) : new JRegistry($category->params); if ($cparams->get('inheritFrom')) { $parent = JTable::getInstance('K2Category', 'Table'); $parent->load($cparams->get('inheritFrom')); $cparams = class_exists('JParameter') ? new JParameter($parent->params) : new JRegistry($parent->params); } if ($cparams->get('catCatalogMode')) { $query .= " AND c.id={$id} "; } else { $categories = $this->getCategoryTree($id); sort($categories); $sql = @implode(',', $categories); $query .= " AND c.id IN({$sql})"; } break; case 'user': $id = JRequest::getInt('id'); $query .= " AND i.created_by={$id} AND i.created_by_alias=''"; $categories = $params->get('userCategoriesFilter', null); if (is_array($categories)) { if (count($categories)) { sort($categories); $query .= " AND c.id IN(".implode(',', $categories).")"; } } if (is_string($categories) && $categories > 0) { $query .= " AND c.id = {$categories}"; } break; case 'search': $badchars = array( '#', '>', '<', '\\' ); $search = JString::trim(JString::str_ireplace($badchars, '', JRequest::getString('searchword', null))); $sql = $this->prepareSearch($search); if (!empty($sql)) { $query .= $sql; } else { $rows = array(); return $rows; } break; case 'date': if ((JRequest::getInt('month')) && (JRequest::getInt('year'))) { $month = JRequest::getInt('month'); $year = JRequest::getInt('year'); $query .= " AND MONTH(i.created) = {$month} AND YEAR(i.created)={$year}"; if (JRequest::getInt('day')) { $day = JRequest::getInt('day'); $query .= " AND DAY(i.created) = {$day}"; } if (JRequest::getInt('catid')) { $catid = JRequest::getInt('catid'); $query .= " AND c.id={$catid}"; } } break; case 'tag': $tag = JRequest::getString('tag'); jimport('joomla.filesystem.file'); if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_joomfish/joomfish.php') && $task == 'tag') { $lang = (K2_JVERSION == '30') ? $config->get('jflang') : $config->getValue('config.jflang'); $sql = "SELECT reference_id FROM #__jf_content AS jfc LEFT JOIN #__languages AS jfl ON jfc.language_id = jfl.".K2_JF_ID." WHERE jfc.value = ".$db->Quote($tag)." AND jfc.reference_table = 'k2_tags' AND jfc.reference_field = 'name' AND jfc.published=1"; $db->setQuery($sql, 0, 1); $result = $db->loadResult(); } if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_falang/falang.php') && $task == 'tag') { $lang = (K2_JVERSION == '30') ? $config->get('jflang') : $config->getValue('config.jflang'); $sql = "SELECT reference_id FROM #__falang_content AS fc LEFT JOIN #__languages AS fl ON fc.language_id = fl.lang_id WHERE fc.value = ".$db->Quote($tag)." AND fc.reference_table = 'k2_tags' AND fc.reference_field = 'name' AND fc.published=1"; $db->setQuery($sql, 0, 1); $result = $db->loadResult(); } if (!isset($result) || $result < 1) { $sql = "SELECT id FROM #__k2_tags WHERE name=".$db->Quote($tag); $db->setQuery($sql, 0, 1); $result = $db->loadResult(); } $query .= " AND i.id IN(SELECT itemID FROM #__k2_tags_xref WHERE tagID=".(int)$result.")"; /* if (isset($result) && $result > 0) { $query .= " AND (tags.id) = {$result}"; } else { $query .= " AND (tags.name) = ".$db->Quote($tag); } */ $categories = $params->get('categoriesFilter', null); if (is_array($categories)) { sort($categories); $query .= " AND c.id IN(".implode(',', $categories).")"; } if (is_string($categories)) { $query .= " AND c.id = {$categories}"; } break; default: $searchIDs = $params->get('categories'); if (is_array($searchIDs) && count($searchIDs)) { if ($params->get('catCatalogMode')) { sort($searchIDs); $sql = @implode(',', $searchIDs); $query .= " AND c.id IN({$sql})"; } else { $result = $this->getCategoryTree($searchIDs); if (count($result)) { sort($result); $sql = @implode(',', $result); $query .= " AND c.id IN({$sql})"; } } } break; } // Set featured flag if ($task == 'category' || empty($task)) { if (JRequest::getInt('featured') == '0') { $query .= " AND i.featured != 1"; } elseif (JRequest::getInt('featured') == '2') { $query .= " AND i.featured = 1"; } } // Set ordering 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 (JRequest::getInt('featured') == '2') { $orderby = 'i.featured_ordering'; } else { $orderby = 'c.ordering, i.ordering'; } break; case 'rorder': if (JRequest::getInt('featured') == '2') { $orderby = 'i.featured_ordering DESC'; } else { $orderby = 'c.ordering DESC, i.ordering DESC'; } break; case 'featured': $orderby = 'i.featured DESC, i.created DESC'; break; case 'hits': $orderby = 'i.hits DESC'; break; case 'rand': $orderby = 'RAND()'; break; case 'best': $orderby = 'rating DESC'; break; case 'modified': $orderby = 'lastChanged DESC'; break; case 'publishUp': $orderby = 'i.publish_up DESC'; break; case 'id': default: $orderby = 'i.id DESC'; break; } if ($task == 'tag') { $query .= ' GROUP BY i.id'; } $query .= ' ORDER BY '.$orderby; JPluginHelper::importPlugin('k2'); $dispatcher = JDispatcher::getInstance(); $dispatcher->trigger('onK2BeforeSetQuery', array(&$query)); $db->setQuery($query, $limitstart, $limit); $rows = $db->loadObjectList(); if (count($rows)) { // For Falang if (!empty($falang_driver)) { $db->setQuery($query, $limitstart, $limit); $db->loadResult(false); $db->setQuery('SELECT FOUND_ROWS();'); $this->getTotal = $db->loadResult(false); return $rows; } $db->setQuery('SELECT FOUND_ROWS();'); $this->getTotal = $db->loadResult(); } return $rows; } public function getTotal() { return $this->getTotal; } public function getCategoryTree($categories, $associations = false) { $app = JFactory::getApplication(); $db = JFactory::getDbo(); $user = JFactory::getUser(); $aid = (int)$user->get('aid'); if (!is_array($categories)) { $categories = (array)$categories; } JArrayHelper::toInteger($categories); $categories = array_unique($categories); sort($categories); $key = implode('|', $categories); $clientID = $app->getClientId(); static $K2CategoryTreeInstances = array(); if (isset($K2CategoryTreeInstances[$clientID]) && array_key_exists($key, $K2CategoryTreeInstances[$clientID])) { return $K2CategoryTreeInstances[$clientID][$key]; } $array = $categories; while (count($array)) { $query = "SELECT id FROM #__k2_categories WHERE parent IN(".implode(',', $array).") AND id NOT IN(".implode(',', $array).")"; if ($app->isSite()) { $query .= " AND published=1 AND trash=0"; if (K2_JVERSION != '15') { $query .= " AND access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND access<={$aid}"; } } $db->setQuery($query); $array = (K2_JVERSION == '30') ? $db->loadColumn() : $db->loadResultArray(); $categories = array_merge($categories, $array); } JArrayHelper::toInteger($categories); $categories = array_unique($categories); $K2CategoryTreeInstances[$clientID][$key] = $categories; return $categories; } public function getCategoryFirstChildren($catid, $ordering = null) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $aid = $user->get('aid'); $db = JFactory::getDbo(); $query = "SELECT * FROM #__k2_categories WHERE parent={$catid} AND published=1 AND trash=0"; if (K2_JVERSION != '15') { $query .= " AND access IN(".implode(',', $user->getAuthorisedViewLevels()).") "; if ($app->getLanguageFilter()) { $query .= " AND language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND access<={$aid} "; } switch ($ordering) { case 'order': $order = " ordering ASC"; break; case 'alpha': $order = " name ASC"; break; case 'ralpha': $order = " name DESC"; break; case 'reversedefault': $order = " id DESC"; break; default: $order = " id ASC"; break; } $query .= " ORDER BY {$order}"; $db->setQuery($query); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } return $rows; } public function countCategoryItems($id) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $aid = (int)$user->get('aid'); $id = (int)$id; $db = JFactory::getDbo(); $jnow = JFactory::getDate(); $now = (K2_JVERSION == '15') ? $jnow->toMySQL() : $jnow->toSql(); $nullDate = $db->getNullDate(); $categories = $this->getCategoryTree($id); $query = "SELECT COUNT(*) FROM #__k2_items WHERE catid IN(".implode(',', $categories).") AND published=1 AND trash=0"; if (K2_JVERSION != '15') { $query .= " AND access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND access<=".$aid; } $query .= " AND (publish_up = ".$db->Quote($nullDate)." OR publish_up <= ".$db->Quote($now).") AND (publish_down = ".$db->Quote($nullDate)." OR publish_down >= ".$db->Quote($now).")"; $db->setQuery($query); $total = $db->loadResult(); return $total; } public function getUserProfile($id = null) { $db = JFactory::getDbo(); if (is_null($id)) { $id = JRequest::getInt('id'); } else { $id = (int)$id; } $query = "SELECT id, gender, description, image, url, `group`, plugins FROM #__k2_users WHERE userID={$id}"; $db->setQuery($query); $row = $db->loadObject(); return $row; } public function getAuthorLatest($itemID, $limit, $userID) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $aid = (int)$user->get('aid'); $itemID = (int)$itemID; $userID = (int)$userID; $limit = (int)$limit; $db = JFactory::getDbo(); $params = K2HelperUtilities::getParams('com_k2'); $jnow = JFactory::getDate(); $now = (K2_JVERSION == '15') ? $jnow->toMySQL() : $jnow->toSql(); $nullDate = $db->getNullDate(); $query = "SELECT i.*, c.alias AS categoryalias FROM #__k2_items AS i LEFT JOIN #__k2_categories c ON c.id = i.catid WHERE i.id != {$itemID} AND i.published = 1 AND (i.publish_up = ".$db->Quote($nullDate)." OR i.publish_up <= ".$db->Quote($now).") AND (i.publish_down = ".$db->Quote($nullDate)." OR i.publish_down >= ".$db->Quote($now).")"; if (K2_JVERSION != '15') { $query .= " AND i.access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND i.language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND i.access <= {$aid}"; } $query .= " AND i.trash = 0 AND i.created_by = {$userID} AND i.created_by_alias='' AND c.published = 1"; if (K2_JVERSION != '15') { $query .= " AND c.access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND c.language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND c.access <= {$aid}"; } $query .= " AND c.trash = 0 ORDER BY i.created DESC"; $db->setQuery($query, 0, $limit); $rows = $db->loadObjectList(); foreach ($rows as $item) { // Image $item->imageXSmall = ''; $item->imageSmall = ''; $item->imageMedium = ''; $item->imageLarge = ''; $item->imageXLarge = ''; $imageTimestamp = ''; $dateModified = ((int) $item->modified) ? $item->modified : ''; if ($params->get('imageTimestamp', 1) && $dateModified) { $imageTimestamp = '?t='.strftime("%Y%m%d_%H%M%S", strtotime($dateModified)); } $imageFilenamePrefix = md5("Image".$item->id); $imagePathPrefix = JUri::base(true).'/media/k2/items/cache/'.$imageFilenamePrefix; // Check if the "generic" variant exists if (JFile::exists(JPATH_SITE.'/media/k2/items/cache/'.$imageFilenamePrefix.'_Generic.jpg')) { $item->imageGeneric = $imagePathPrefix.'_Generic.jpg'.$imageTimestamp; $item->imageXSmall = $imagePathPrefix.'_XS.jpg'.$imageTimestamp; $item->imageSmall = $imagePathPrefix.'_S.jpg'.$imageTimestamp; $item->imageMedium = $imagePathPrefix.'_M.jpg'.$imageTimestamp; $item->imageLarge = $imagePathPrefix.'_L.jpg'.$imageTimestamp; $item->imageXLarge = $imagePathPrefix.'_XL.jpg'.$imageTimestamp; $item->imageProperties = new stdClass(); $item->imageProperties->filenamePrefix = $imageFilenamePrefix; $item->imageProperties->pathPrefix = $imagePathPrefix; } } return $rows; } public function getRelatedItems($itemID, $tags, $params) { $app = JFactory::getApplication(); $limit = $params->get('itemRelatedLimit', 10); $itemID = (int)$itemID; foreach ($tags as $tag) { $tagIDs[] = $tag->id; } JArrayHelper::toInteger($tagIDs); sort($tagIDs); $sql = implode(',', $tagIDs); $user = JFactory::getUser(); $aid = (int)$user->get('aid'); $db = JFactory::getDbo(); $jnow = JFactory::getDate(); $now = (K2_JVERSION == '15') ? $jnow->toMySQL() : $jnow->toSql(); $nullDate = $db->getNullDate(); $query = "SELECT itemID FROM #__k2_tags_xref WHERE tagID IN({$sql}) AND itemID != {$itemID} GROUP BY itemID"; $db->setQuery($query); $itemsIDs = (K2_JVERSION == '30') ? $db->loadColumn() : $db->loadResultArray(); if (!count($itemsIDs)) { return array(); } sort($itemsIDs); $sql = implode(',', $itemsIDs); $query = "SELECT i.*, c.alias AS categoryalias FROM #__k2_items AS i LEFT JOIN #__k2_categories AS c ON c.id = i.catid WHERE i.published = 1 AND i.trash = 0 AND (i.publish_up = ".$db->Quote($nullDate)." OR i.publish_up <= ".$db->Quote($now).") AND (i.publish_down = ".$db->Quote($nullDate)." OR i.publish_down >= ".$db->Quote($now).")"; if (K2_JVERSION != '15') { $query .= " AND i.access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND i.language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND i.access <= {$aid}"; } if (K2_JVERSION != '15') { $query .= " AND c.access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND c.language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND c.access <= {$aid}"; } $query .= " AND c.published = 1 AND c.trash = 0 AND i.id IN({$sql}) ORDER BY i.id DESC"; $db->setQuery($query, 0, $limit); $rows = $db->loadObjectList(); K2Model::addIncludePath(JPATH_COMPONENT.'/models'); $model = K2Model::getInstance('Item', 'K2Model'); for ($key = 0; $key < count($rows); $key++) { if (!$params->get('itemRelatedMedia')) { $rows[$key]->video = null; } if (!$params->get('itemRelatedImageGallery')) { $rows[$key]->gallery = null; } $rows[$key] = $model->prepareItem($rows[$key], 'relatedByTag', ''); $rows[$key] = $model->execPlugins($rows[$key], 'relatedByTag', ''); K2HelperUtilities::setDefaultImage($rows[$key], 'relatedByTag', $params); } return $rows; } public function prepareSearch($search) { jimport('joomla.filesystem.file'); $db = JFactory::getDbo(); $language = JFactory::getLanguage(); $defaultLang = $language->getDefault(); $currentLang = $language->getTag(); $search = trim($search); $length = JString::strlen($search); $sql = ''; if (JRequest::getVar('categories')) { $categories = @explode(',', JRequest::getVar('categories')); JArrayHelper::toInteger($categories); sort($categories); $sql .= " AND c.id IN(".@implode(',', $categories).")"; } if (empty($search)) { return $sql; } if (JString::substr($search, 0, 1) == '"' && JString::substr($search, $length - 1, 1) == '"') { $type = 'exact'; } else { $type = 'any'; } if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_joomfish/joomfish.php') && $currentLang != $defaultLang) { $conditions = array(); $search_ignore = array(); $ignoreFile = $language->getLanguagePath().'/'.$currentLang.'/'.$currentLang.'.ignore.php'; if (JFile::exists($ignoreFile)) { include $ignoreFile; } if ($type == 'exact') { $word = JString::substr($search, 1, $length - 2); if (JString::strlen($word) > 3 && !in_array($word, $search_ignore)) { $escaped = (K2_JVERSION == '15') ? $db->getEscaped($word, true) : $db->escape($word, true); $langField = (K2_JVERSION == '15') ? 'code' : 'lang_code'; $word = $db->Quote('%'.$escaped.'%', false); $jfQuery = "SELECT reference_id FROM #__jf_content AS jfc LEFT JOIN #__languages AS jfl ON jfc.language_id = jfl.".K2_JF_ID." WHERE jfc.reference_table = 'k2_items' AND jfl.".$langField." = ".$db->Quote($currentLang)." AND jfc.published = 1 AND jfc.value LIKE ".$word." AND ( jfc.reference_field = 'title' OR jfc.reference_field = 'introtext' OR jfc.reference_field = 'fulltext' OR jfc.reference_field = 'image_caption' OR jfc.reference_field = 'image_credits' OR jfc.reference_field = 'video_caption' OR jfc.reference_field = 'video_credits' OR jfc.reference_field = 'extra_fields_search' OR jfc.reference_field = 'metadesc' OR jfc.reference_field = 'metakey' )"; $db->setQuery($jfQuery); $result = (K2_JVERSION == '30') ? $db->loadColumn() : $db->loadResultArray(); $result = @array_unique($result); JArrayHelper::toInteger($result); if (count($result)) { $conditions[] = "i.id IN(".implode(',', $result).")"; } } } else { $search = explode(' ', JString::strtolower($search)); foreach ($search as $searchword) { if (JString::strlen($searchword) > 3 && !in_array($searchword, $search_ignore)) { $escaped = (K2_JVERSION == '15') ? $db->getEscaped($searchword, true) : $db->escape($searchword, true); $word = $db->Quote('%'.$escaped.'%', false); $langField = (K2_JVERSION == '15') ? 'code' : 'lang_code'; $jfQuery = "SELECT reference_id FROM #__jf_content AS jfc LEFT JOIN #__languages AS jfl ON jfc.language_id = jfl.".K2_JF_ID." WHERE jfc.reference_table = 'k2_items' AND jfl.".$langField." = ".$db->Quote($currentLang)." AND jfc.published = 1 AND jfc.value LIKE ".$word." AND ( jfc.reference_field = 'title' OR jfc.reference_field = 'introtext' OR jfc.reference_field = 'fulltext' OR jfc.reference_field = 'image_caption' OR jfc.reference_field = 'image_credits' OR jfc.reference_field = 'video_caption' OR jfc.reference_field = 'video_credits' OR jfc.reference_field = 'extra_fields_search' OR jfc.reference_field = 'metadesc' OR jfc.reference_field = 'metakey' )"; $db->setQuery($jfQuery); $result = (K2_JVERSION == '30') ? $db->loadColumn() : $db->loadResultArray(); $result = @array_unique($result); foreach ($result as $id) { $allIDs[] = $id; } if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_joomfish/joomfish.php') && $currentLang != $defaultLang) { if (isset($allIDs) && count($allIDs)) { JArrayHelper::toInteger($allIDs); $conditions[] = "i.id IN(".implode(',', $allIDs).")"; } } } } } if (count($conditions)) { $sql .= " AND (".implode(" OR ", $conditions).")"; } } else { if ($type == 'exact') { $search = JString::trim($search, '"'); $escaped = (K2_JVERSION == '15') ? $db->getEscaped($search, true) : $db->escape($search, true); $quoted = $db->Quote('%'.$escaped.'%', false); $sql .= " AND ( LOWER(i.title) LIKE ".$quoted." OR LOWER(i.introtext) LIKE ".$quoted." OR LOWER(i.`fulltext`) LIKE ".$quoted." OR LOWER(i.extra_fields_search) LIKE ".$quoted." OR LOWER(i.image_caption) LIKE ".$quoted." OR LOWER(i.image_credits) LIKE ".$quoted." OR LOWER(i.video_caption) LIKE ".$quoted." OR LOWER(i.video_credits) LIKE ".$quoted." OR LOWER(i.metadesc) LIKE ".$quoted." OR LOWER(i.metakey) LIKE ".$quoted." )"; } else { $search = strtolower(trim(preg_replace('/[^\p{L}\p{N}\s\-_]/u', '', $search))); $searchwords = explode(' ', $search); if (count($searchwords)) { } else { $searchwords = [$search]; } foreach ($searchwords as $searchword) { if (strlen($searchword) > 2) { $escaped = (K2_JVERSION == '15') ? $db->getEscaped($searchword, true) : $db->escape($searchword, true); $quoted = $db->Quote('%'.$escaped.'%', false); $sql .= " AND ( LOWER(i.title) LIKE ".$quoted." OR LOWER(i.introtext) LIKE ".$quoted." OR LOWER(i.`fulltext`) LIKE ".$quoted." OR LOWER(i.extra_fields_search) LIKE ".$quoted." OR LOWER(i.image_caption) LIKE ".$quoted." OR LOWER(i.image_credits) LIKE ".$quoted." OR LOWER(i.video_caption) LIKE ".$quoted." OR LOWER(i.video_credits) LIKE ".$quoted." OR LOWER(i.metadesc) LIKE ".$quoted." OR LOWER(i.metakey) LIKE ".$quoted." )"; } } } } return $sql; } public function getModuleItems($moduleID) { $db = JFactory::getDbo(); $query = "SELECT * FROM #__modules WHERE id={$moduleID} AND published=1 AND client_id=0"; $db->setQuery($query, 0, 1); $module = $db->loadObject(); $format = JRequest::getWord('format'); if (is_null($module)) { JError::raiseError(404, JText::_('K2_NOT_FOUND')); } else { $params = class_exists('JParameter') ? new JParameter($module->params) : new JRegistry($module->params); switch ($module->module) { case 'mod_k2_content': require_once(JPATH_SITE.'/modules/mod_k2_content/helper.php'); $helper = new modK2ContentHelper(); $items = $helper->getItems($params, $format); break; case 'mod_k2_comments': if ($params->get('module_usage') == 1) { JError::raiseError(404, JText::_('K2_NOT_FOUND')); } require_once(JPATH_SITE.'/modules/mod_k2_comments/helper.php'); $helper = new modK2CommentsHelper(); $items = $helper->getLatestComments($params); foreach ($items as $item) { $item->title = $item->userName.' '.JText::_('K2_COMMENTED_ON').' '.$item->title; $item->introtext = $item->commentText; $item->created = $item->commentDate; $item->id = $item->itemID; } break; default: JError::raiseError(404, JText::_('K2_NOT_FOUND')); } $result = new stdClass(); $result->items = $items; $result->title = $module->title; $result->module = $module->module; $result->params = $module->params; return $result; } } public function getCategoriesTree() { $app = JFactory::getApplication(); $clientID = $app->getClientId(); $db = JFactory::getDbo(); $user = JFactory::getUser(); $aid = (int)$user->get('aid'); $query = "SELECT id, name, parent FROM #__k2_categories"; if ($app->isSite()) { $query .= " WHERE published=1 AND trash=0"; if (K2_JVERSION != '15') { $query .= " AND access IN(".implode(',', $user->getAuthorisedViewLevels()).")"; if ($app->getLanguageFilter()) { $query .= " AND language IN(".$db->Quote(JFactory::getLanguage()->getTag()).", ".$db->Quote('*').")"; } } else { $query .= " AND access<={$aid}"; } } $query .= " ORDER BY parent"; $db->setQuery($query); $categories = $db->loadObjectList(); $tree = array(); return $this->buildTree($categories); } public function buildTree(array &$categories, $parent = 0) { $branch = array(); foreach ($categories as &$category) { if ($category->parent == $parent) { $children = $this->buildTree($categories, $category->id); if ($children) { $category->children = $children; } $branch[$category->id] = $category; } } return $branch; } public function getTreePath($tree, $id) { if (array_key_exists($id, $tree)) { return array($id); } else { foreach ($tree as $key => $root) { if (isset($root->children) && is_array($root->children)) { $retry = $this->getTreePath($root->children, $id); if ($retry) { $retry[] = $key; return $retry; } } } } return null; } // Deprecated function, left for compatibility reasons public function getCategoryChildren($catid, $clear = false) { static $array = array(); if ($clear) { $array = array(); } $user = JFactory::getUser(); $aid = (int)$user->get('aid'); $catid = (int)$catid; $db = JFactory::getDbo(); $query = "SELECT * FROM #__k2_categories WHERE parent={$catid} AND published=1 AND trash=0 AND access<={$aid} ORDER BY ordering"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $row) { array_push($array, $row->id); if ($this->hasChildren($row->id)) { $this->getCategoryChildren($row->id); } } return $array; } // Deprecated function, left for compatibility reasons public function hasChildren($id) { $user = JFactory::getUser(); $aid = (int)$user->get('aid'); $id = (int)$id; $db = JFactory::getDbo(); $query = "SELECT * FROM #__k2_categories WHERE parent={$id} AND published=1 AND trash=0 AND access<={$aid} "; $db->setQuery($query); $rows = $db->loadObjectList(); if (count($rows)) { return true; } else { return false; } } }
/home/pteabiscqq/www/188ee/../components/com_k2/controllers/../models/itemlist.php