Example #1
0
    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];
    }