Component-Builder/admin/models/fields/siteviewfolderlist.php
Robot c55fc67db4
Release of v3.2.3-alpha2
Fix missing scripts and styles fields and methods in the site admin view model. Update subform field layout across JCB for cleaner look. Remove expansion feature. Fix helper area.
2024-07-26 18:33:01 +02:00

68 lines
1.9 KiB
PHP

<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper as Html;
use VDM\Joomla\Utilities\StringHelper;
use Joomla\CMS\Filesystem\Folder;
// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
/**
* Siteviewfolderlist Form Field class for the Componentbuilder component
*/
class JFormFieldSiteviewfolderlist extends JFormFieldList
{
/**
* The siteviewfolderlist field type.
*
* @var string
*/
public $type = 'siteviewfolderlist';
/**
* Method to get a list of options for a list input.
*
* @return array An array of Html options.
*/
protected function getOptions()
{
// get custom folder files
$localfolders = [];
$localfolders[] = JPATH_SITE . '/components/com_componentbuilder/views';
$localfolders[] = JPATH_SITE . '/components/com_componentbuilder/src/View';
// set the default
$options = [];
// now check if there are files in the folder
foreach ($localfolders as $localfolder)
{
if (is_dir($localfolder) && $folders = Folder::folders($localfolder))
{
if ($this->multiple === false)
{
$options[] = Html::_('select.option', '', Text::_('COM_COMPONENTBUILDER_SELECT_A_SITE_VIEW'));
}
foreach ($folders as $folder)
{
$options[] = Html::_('select.option', StringHelper::safe($folder), StringHelper::safe($folder, 'W'));
}
}
}
return $options;
}
}