Back to Tag class

Method tags

public static array
tags
(mixed $config = array('filter.published' => array(0, 1)))
Returns an array of tags.
Parameters
  • array $config An array of configuration options. By default, only published and unpublished tags are returned.
Returns
  • array Tag data
Since
  • 3.1
Class: Tag
Project: Joomla

Method tags - Source code

/**
 * Returns an array of tags.
 *
 * @param   array  $config  An array of configuration options. By default, only published and unpublished tags are returned.
 *
 * @return  array  Tag data
 *
 * @since   3.1
 */
public static function tags($config = array('filter.published' => array(0, 1)))
{
    $hash = md5(serialize($config));
    $config = (array) $config;
    $db = Factory::getDbo();
    $query = $db->getQuery(true)->select([$db->quoteName('a.id'), $db->quoteName('a.title'), $db->quoteName('a.level'), $db->quoteName('a.parent_id')])->from($db->quoteName('#__tags', 'a'))->where($db->quoteName('a.parent_id') . ' > 0');
    // Filter on the published state
    if (isset($config['filter.published'])) {
        if (is_numeric($config['filter.published'])) {
            $query->where($db->quoteName('a.published') . ' = :published')->bind(':published', $config['filter.published'], ParameterType::INTEGER);
        } elseif (is_array($config['filter.published'])) {
            $config['filter.published'] = ArrayHelper::toInteger($config['filter.published']);
            $query->whereIn($db->quoteName('a.published'), $config['filter.published']);
        }
    }
    $query->order($db->quoteName('a.lft'));
    $db->setQuery($query);
    $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][] = HTMLHelper::_('select.option', $item->id, $item->title);
    }
    return static::$items[$hash];
}