| Server IP : 104.21.84.107 / Your IP : 104.23.197.209 Web Server : Apache/2.4.63 (Ubuntu) System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.4.5 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/fcs/administrator/components/com_dpcalendar/src/Field/ |
Upload File : |
<?php
/**
* @package DPCalendar
* @copyright Copyright (C) 2015 Digital Peak GmbH. <https://www.digital-peak.com>
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL
*/
namespace DigitalPeak\Component\DPCalendar\Administrator\Field;
\defined('_JEXEC') or die();
use DigitalPeak\Component\DPCalendar\Administrator\HTML\Document\HtmlDocument;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\Field\CategoryField;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Plugin\PluginHelper;
class DPCalendarField extends CategoryField
{
public $type = 'DPCalendar';
protected function getOptions()
{
// @phpstan-ignore-next-line
$this->element['extension'] = 'com_dpcalendar';
$doc = new HtmlDocument();
$doc->loadScriptFile('fields/dpcalendar.js');
$doc->loadStyleFile('dpcalendar/fields/dpcalendar.css');
$options = parent::getOptions();
if ((bool)$this->element->attributes()->internal) {
return $options;
}
PluginHelper::importPlugin('dpcalendar');
$tmp = Factory::getApplication()->triggerEvent('onCalendarsFetch');
if (!empty($tmp)) {
foreach ($tmp as $calendars) {
foreach ($calendars as $calendar) {
// Don't show caldav calendars
if (str_starts_with((string)$calendar->getId(), 'cd-')) {
continue;
}
$options[] = HTMLHelper::_('select.option', $calendar->getId(), $calendar->getTitle());
}
}
}
$ids = (string)$this->element['ids'];
if ($ids !== '' && $ids !== '0') {
$ids = explode(',', $ids);
// Allow options which are empty for placeholder, in defined array or when all are selected
return array_values(
array_filter(
$options,
static fn ($o): bool => $o->value === '' || \in_array($o->value, $ids) || \in_array('-1', $ids)
)
);
}
return $options;
}
}