element['class'] ? ' class="' . (string)$this->element['class'] . '"' : ''; // To avoid user's confusion, readonly="true" should imply disabled="true". if ((string)$this->element['readonly'] == 'true' || (string)$this->element['disabled'] == 'true') { $attr .= ' disabled="disabled"'; } $attr .= $this->element['size'] ? ' size="' . (int)$this->element['size'] . '"' : ''; $attr .= $this->element['multiple'] ? ' multiple="multiple"' : ''; // Initialize JavaScript field attributes. $attr .= $this->element['onchange'] ? ' onchange="' . (string)$this->element['onchange'] . '"' : ''; $mitems = array(); if ($this->available()) { $query = 'SELECT m.* FROM #__k2_categories m WHERE published=1 AND trash = 0 ORDER BY parent, ordering'; $db->setQuery($query); $mitems = $db->loadObjectList(); $children = array(); if ($mitems) { foreach ($mitems as $v) { $v->title = $v->name; $v->parent_id = $v->parent; $pt = $v->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push($list, $v); $children[$pt] = $list; } } $list = JHtml::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0); $mitems = array(); foreach ($list as $item) { $item->treename = JString::str_ireplace(' ', '- ', $item->treename); $mitems[] = JHtml::_('select.option', $item->id, ' ' . $item->treename); } } return JHtml::_('select.genericlist', $mitems, $this->name, trim($attr), 'value', 'text', $this->value); } function available() { $db = JFactory::getDBO(); $query = 'select count(*) from #__extensions where element = ' . $db->Quote('com_k2') . ' AND enabled=1'; $db->setQuery($query); $count = (int)$db->loadResult(); if ($count > 0) { return true; } return false; } }