@copyright Copyright (C) 2015. All Rights Reserved @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html A sermon distributor that links to Dropbox. /----------------------------------------------------------------------------------------------------------------------------------*/ namespace TrueChristianChurch\Component\Sermondistributor\Administrator\Field; use Joomla\CMS\Factory; use Joomla\CMS\Form\Field\ListField; use Joomla\CMS\Language\Text; use Joomla\CMS\HTML\HTMLHelper as Html; use Joomla\CMS\Component\ComponentHelper; use TrueChristianChurch\Component\Sermondistributor\Administrator\Helper\SermondistributorHelper; // No direct access to this file \defined('_JEXEC') or die; /** * Externalsourcesfilterexternalsources Form Field class for the Sermondistributor component * * @since 1.6 */ class ExternalsourcesfilterexternalsourcesField extends ListField { /** * The externalsourcesfilterexternalsources field type. * * @var string */ public $type = 'Externalsourcesfilterexternalsources'; /** * Method to get a list of options for a list input. * * @return array An array of Html options. * @since 1.6 */ protected function getOptions() { // Get a db connection. $db = Factory::getContainer()->get(\Joomla\Database\DatabaseInterface::class); // Create a new query object. $query = $db->getQuery(true); // Select the text. $query->select($db->quoteName('externalsources')); $query->from($db->quoteName('#__sermondistributor_external_source')); $query->order($db->quoteName('externalsources') . ' ASC'); // Reset the query using our newly populated query object. $db->setQuery($query); $_results = $db->loadColumn(); $_filter = []; $_filter[] = Html::_('select.option', '', '- ' . Text::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_EXTERNAL_SOURCES') . ' -'); if ($_results) { // get external_sourcesmodel $_model = SermondistributorHelper::getModel('external_sources'); $_results = array_unique($_results); foreach ($_results as $externalsources) { // Translate the externalsources selection $_text = $_model->selectionTranslation($externalsources,'externalsources'); // Now add the externalsources and its text to the options array $_filter[] = Html::_('select.option', $externalsources, Text::_($_text)); } } return $_filter; } }