public static function getCategoriesPerLanguage($config = array('filter.published' => array(0, 1), 'filter.languages' => array()), $index = null) { $hash = md5(serialize($config)); if (!isset(self::$_categoriesDataPerLanguage[$hash])) { $config = (array)$config; $db = JFactory::getDbo(); $query = "SELECT c.*, g.title AS groupname, exfg.name as extra_fields_group FROM #__k2_categories as c LEFT JOIN #__viewlevels AS g ON g.id = c.access"." LEFT JOIN #__k2_extra_fields_groups AS exfg ON exfg.id = c.extraFieldsGroup WHERE c.id>0"; if (!empty($config['filter.published'])) { $query .= ' and c.published in ('.ShlDbHelper::arrayToIntvalList($config['filter.published']).')'; } if (!empty($config['filter.languages'])) { $query .= ' and c.language in ('.ShlDbHelper::arrayToQuotedList($config['filter.languages']).')'; } $db->setQuery($query); $items = $db->loadObjectList($index); foreach ($items as &$item) { $item->title = $item->name; $item->parent_id = $item->parent; } self::$_categoriesDataPerLanguage[$hash] = $items; } return self::$_categoriesDataPerLanguage[$hash]; }