Source for file category.php
Documentation is available at category.php
* @package Joomla.Libraries
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
* Utility class for categories
* @package Joomla.Libraries
* Cached array of the category items.
protected static $items =
array();
* Returns an array of categories for the given extension.
* @param string $extension The extension option e.g. com_something.
* @param array $config An array of configuration options. By default, only
* published and unpublished categories are returned.
public static function options($extension, $config =
array('filter.published' =>
array(0, 1)))
if (!isset
(static::$items[$hash]))
$config = (array)
$config;
$db =
JFactory::getDbo();
$query =
$db->getQuery(true)
->select('a.id, a.title, a.level')
->from('#__categories AS a')
->where('a.parent_id > 0');
$query->where('extension = ' .
$db->quote($extension));
// Filter on the published state
if (isset
($config['filter.published']))
$query->where('a.published = ' . (int)
$config['filter.published']);
elseif (is_array($config['filter.published']))
$query->where('a.published IN (' .
implode(',', $config['filter.published']) .
')');
// Filter on the language
if (isset
($config['filter.language']))
$query->where('a.language = ' .
$db->quote($config['filter.language']));
elseif (is_array($config['filter.language']))
foreach ($config['filter.language'] as &$language)
$language =
$db->quote($language);
$query->where('a.language IN (' .
implode(',', $config['filter.language']) .
')');
$items =
$db->loadObjectList();
// Assemble the list options.
static::$items[$hash] =
array();
foreach ($items as &$item)
$repeat =
($item->level -
1 >=
0) ?
$item->level -
1 :
0;
$item->title =
str_repeat('- ', $repeat) .
$item->title;
static::$items[$hash][] =
JHtml::_('select.option', $item->id, $item->title);
return static::$items[$hash];
* Returns an array of categories for the given extension.
* @param string $extension The extension option.
* @param array $config An array of configuration options. By default, only published and unpublished categories are returned.
* @return array Categories for the extension
public static function categories($extension, $config =
array('filter.published' =>
array(0, 1)))
if (!isset
(static::$items[$hash]))
$config = (array)
$config;
$db =
JFactory::getDbo();
$query =
$db->getQuery(true)
->select('a.id, a.title, a.level, a.parent_id')
->from('#__categories AS a')
->where('a.parent_id > 0');
$query->where('extension = ' .
$db->quote($extension));
// Filter on the published state
if (isset
($config['filter.published']))
$query->where('a.published = ' . (int)
$config['filter.published']);
elseif (is_array($config['filter.published']))
$query->where('a.published IN (' .
implode(',', $config['filter.published']) .
')');
$items =
$db->loadObjectList();
// Assemble the list options.
static::$items[$hash] =
array();
foreach ($items as &$item)
$repeat =
($item->level -
1 >=
0) ?
$item->level -
1 :
0;
$item->title =
str_repeat('- ', $repeat) .
$item->title;
static::$items[$hash][] =
JHtml::_('select.option', $item->id, $item->title);
// Special "Add to root" option:
static::$items[$hash][] =
JHtml::_('select.option', '1', JText::_('JLIB_HTML_ADD_TO_ROOT'));
return static::$items[$hash];
Documentation generated on Tue, 19 Nov 2013 14:55:17 +0100 by phpDocumentor 1.4.3