joomla-platform / libraries / joomla / html / parameter / element / filelist.php

<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a filelist element
 *
 * @package     Joomla.Platform
 * @subpackage      Parameter
 * @since       11.1
 */

class JElementFilelist extends JElement
{
    /**
    * Element name
    *
    * @var      string
    */
    protected $_name = 'Filelist';

    public function fetchElement($name, $value, &$node, $control_name)
    {
        jimport('joomla.filesystem.folder');
        jimport('joomla.filesystem.file');

        // path to images directory
        $path       = JPATH_ROOT.DS.$node->attributes('directory');
        $filter     = $node->attributes('filter');
        $exclude    = $node->attributes('exclude');
        $stripExt   = $node->attributes('stripext');
        $files      = JFolder::files($path, $filter);

        $options = array ();

        if (!$node->attributes('hide_none'))
        {
            $options[] = JHtml::_('select.option', '-1', JText::_('JOPTION_DO_NOT_USE'));
        }

        if (!$node->attributes('hide_default'))
        {
            $options[] = JHtml::_('select.option', '', JText::_('JOPTION_USE_DEFAULT'));
        }

        if (is_array($files))
        {
            foreach ($files as $file)
            {
                if ($exclude)
                {
                    if (preg_match(chr(1) . $exclude . chr(1), $file))
                    {
                        continue;
                    }
                }
                if ($stripExt)
                {
                    $file = JFile::stripExt($file);
                }
                $options[] = JHtml::_('select.option', $file, $file);
            }
        }

        return JHtml::_('select.genericlist', $options, $control_name .'['. $name .']',
            array(
                'id' => 'param'.$name,
                'list.attr' => 'class="inputbox"',
                'list.select' => $value
            )
        );
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.