API16:JHtmlCategory/options
From Joomla! Documentation
Description
Returns an array of categories for the given extension.
<! removed transcluded page call, red link never existed >
Syntax
static options($extension, $config=array('filter.published'=> array(0, 1)))
| Parameter Name | Default Value | Description |
|---|---|---|
| $extension | The extension option. | |
| $config | array('filter.published'=> array(0, 1)) | An array of configuration options. By default, only published and unpulbished categories are returned. |
Returns
array
Defined in
libraries/joomla/html/html/category.php
Importing
jimport( 'joomla.html.html.category' );
Source Body
public static function options($extension, $config = array('filter.published' => array(0,1)))
{
$hash = md5($extension.'.'.serialize($config));
if (!isset(self::$items[$hash]))
{
$config = (array) $config;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('a.id, a.title, a.level');
$query->from('#__categories AS a');
$query->where('a.parent_id > 0');
// Filter on extension.
$query->where('extension = '.$db->quote($extension));
// Filter on the published state
if (isset($config['filter.published'])) {
if (is_numeric($config['filter.published'])) {
$query->where('a.published = '.(int) $config['filter.published']);
} else if (is_array($config['filter.published'])) {
JArrayHelper::toInteger($config['filter.published']);
$query->where('a.published IN ('.implode(',', $config['filter.published']).')');
}
}
$query->order('a.lft');
$db->setQuery($query);
$items = $db->loadObjectList();
// Assemble the list options.
self::$items[$hash] = array();
foreach ($items as &$item) {
$item->title = str_repeat('- ', $item->level - 1).$item->title;
self::$items[$hash][] = JHtml::_('select.option', $item->id, $item->title);
}
}
return self::$items[$hash];
}
<! removed transcluded page call, red link never existed >
Examples
Code Examples