/
home
/
assocoweys
/
cdc93
/
plugins
/
system
/
nrframework
/
NRFramework
/
Conditions
/
Conditions
/
Component
/
Upload File
HOME
<?php /** * @author Tassos.gr * @link https://www.tassos.gr * @copyright Copyright © 2024 Tassos All Rights Reserved * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later */ namespace NRFramework\Conditions\Conditions\Component; defined('_JEXEC') or die; class K2Base extends ComponentBase { /** * The component's Single Page view name * * @var string */ protected $viewSingle = 'item'; /** * The component's option name * * @var string */ protected $component_option = 'com_k2'; /** * Get single page's assosiated categories * * @param integer The Single Page id * * @return integer */ protected function getSinglePageCategories($id) { $item = $this->getK2Item(); return isset($item->catid) ? $item->catid : null; } /** * Indicates whether the current view concerns a Category view * * @return boolean */ protected function isCategoryPage() { return ($this->request->layout == 'category' || $this->request->task == 'category' || $this->request->view == 'latest'); } /** * Returns a K2 item * * @return object|null */ public function getK2Item() { $cache = $this->factory->getcache(); $hash = md5('k2assitem'); if ($cache->has($hash)) { return $cache->get($hash); } // K2 doesn't have a Joomla 4+ version, bail early if (!class_exists('JModelLegacy')) { return; } // Ignore JModelLegacy here because K2 doesn't have a J4+ version, so we don't care. return $cache->set($hash, \JModelLegacy::getInstance('Item', 'K2Model')->getData()); } /** * Return tags of a K2 item * * @param int $id K2 item ID * * @return array */ public function getK2tags($id = null) { $id = is_null($id) ? $this->request->id : $id; if (!$id) { return []; } $cache = $this->factory->getcache(); $hash = md5('k2_item_tags' . $id); if ($cache->has($hash)) { return $cache->get($hash); } $q = $this->db->getQuery(true) ->select('t.id') ->from('#__k2_tags_xref AS tx') ->join('LEFT', '#__k2_tags AS t ON t.id = tx.tagID') ->where('tx.itemID = ' . $this->db->q($id)) ->where('t.published = 1'); $this->db->setQuery($q); return $cache->set($hash, $this->db->loadColumn()); } /** * Get current view layout string * * @return string */ public function getPageType() { $view = $this->request->view; $layout = $this->request->layout; if (is_null($layout)) { switch ($view) { case 'item': $layout = 'item'; break; default: $layout = $this->request->task; break; } } $pagetype = $view . '_' . $layout; return $pagetype; } }