/** * Overriden method, to add indentation to the list of categories * */ public function onJosettaLoadItems($context, $state) { if ((!empty($context) && ($context != $this->_context))) { return null; } // read data. Can't use parent, as this would slice the results // using limitstart and limit. K2 needs to slice later on, // after indenting has been done $items = array(); $db = JFactory::getDbo(); $this->_buildItemsListQuery($state); $db->setQuery($this->_query); $rawItems = $db->loadObjectList(); // Check for a database error. if ($db->getErrorNum()) { ShlSystem_Log::logError(__METHOD__.': '.$db->getErrorMsg()); $rawItems = array(); } // now indent if (!empty($rawItems)) { // Joomla! framework menu utility used to indent // requires fields as parent_id instead of parent foreach ($rawItems as &$item) { $item->title = $item->name; $item->parent_id = $item->parent; } // indent cat list, for easier reading $items = self::indentCategories($rawItems); foreach ($items as &$item) { $item->name = JString::str_ireplace('<sup>|_</sup>', '', $item->treename); } // finally slice up to get the set we need $items = array_slice($items, $state->get('list.start'), $state->get('list.limit')); } return $items; }