public static function getCategory($catId, $select = '*', $checkLanguage = false, $checkAccess = true) { if (empty($catId)) { return null; } if (strpos(",", $select) !== false) { $selectColumnArr = array_map('trim', explode(',', $select)); sort($selectColumnArr); $select = implode(",", $selectColumnArr); } $storeId = md5(__METHOD__ . "::$catId::$select" . (int) $checkLanguage . "::" . (int) $checkAccess); if (!isset(self::$cache[$storeId])) { $db = JFactory::getDbo(); $nullDate = $db->getNullDate(); $nowDate = JFactory::getDate()->toSql(); $query = $db->getQuery(true); $query->select($select); $query->from('#__judownload_categories'); $query->where('published = 1'); $query->where('(publish_up = ' . $db->quote($nullDate) . ' OR publish_up <= ' . $db->quote($nowDate) . ')'); $query->where('(publish_down = ' . $db->quote($nullDate) . ' OR publish_down > ' . $db->quote($nowDate) . ')'); if ($checkAccess) { $user = JFactory::getUser(); $levels = $user->getAuthorisedViewLevels(); $levelsStr = implode(',', $levels); $query->where('access IN (' . $levelsStr . ')'); } if ($checkLanguage) { $app = JFactory::getApplication(); $tagLanguage = JFactory::getLanguage()->getTag(); if ($app->getLanguageFilter()) { $query->where('language IN (' . $db->quote($tagLanguage) . ',' . $db->quote('*') . ',' . $db->quote('') . ')'); } } $query->where('id = ' . $catId); $db->setQuery($query); $catObj = $db->loadObject(); if (!is_object($catObj)) { self::$cache[$storeId] = false; return false; } if (isset($catObj->images)) { $registry = new JRegistry; $registry->loadString($catObj->images); $catObj->images = $registry->toObject(); } if (isset($catObj->id)) { $catObj->params = JUDownloadFrontHelperCategory::getCategoryDisplayParams($catObj->id); } if (isset($catObj->template_params)) { $catObj->template_params = new JRegistry($catObj->template_params); } self::$cache[$storeId] = $catObj; } return self::$cache[$storeId]; }