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('#__judirectory_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 = JUDirectoryFrontHelperCategory::getCategoryDisplayParams($catObj->id);
         }
         if (isset($catObj->template_params)) {
             $catObj->template_params = new JRegistry($catObj->template_params);
         }
         self::$cache[$storeId] = $catObj;
     }
     return self::$cache[$storeId];
 }