__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* @package DPCalendar
* @copyright Copyright (C) 2018 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\Calendar\CalendarInterface;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\Registry\Registry;
class DpmenuItemsField extends ListField
{
public $type = 'DPMenuItems';
protected function getOptions()
{
$app = Factory::getApplication();
$id = $app->getInput()->getInt('id', 0);
if ($app->getInput()->get('view') == 'extcalendar') {
PluginHelper::importPlugin('dpcalendar');
$tmp = $app->triggerEvent('onCalendarsFetch');
if (!empty($tmp)) {
foreach ($tmp as $calendars) {
foreach ($calendars as $fetchedCalendar) {
if (strpos((string)$fetchedCalendar->id, '-' . $id) > 0) {
$id = $fetchedCalendar->id;
}
}
}
}
}
$calendar = Factory::getApplication()->bootComponent('dpcalendar')->getMVCFactory()->createModel('Calendar', 'Administrator')->getCalendar($id);
if (!$calendar instanceof CalendarInterface) {
return [];
}
$db = $this->getDatabase();
$query = $db->getQuery(true);
// Prepare the query.
$query->select('m.*')
->from('#__menu AS m')
->where('m.client_id = 0')
->where('m.id > 1');
$query->where('m.published = 1');
$query->select('e.element')
->join('LEFT', '#__extensions AS e ON m.component_id = e.extension_id')
->where('(e.enabled = 1 OR e.enabled IS NULL)');
$query->where("e.element = 'com_dpcalendar'");
$query->order('m.lft');
$db->setQuery($query);
$options = parent::getOptions();
foreach ($db->loadObjectList() as $item) {
if (!str_contains((string)$item->link, 'view=calendar')
&& !str_contains((string)$item->link, 'view=map')
&& !str_contains((string)$item->link, 'view=list')) {
continue;
}
$params = new Registry($item->params);
$ids = [];
foreach ($params->get('ids', []) as $calendarId) {
$ids[] = $calendarId;
$cal = Factory::getApplication()->bootComponent('dpcalendar')->getMVCFactory()->createModel('Calendar', 'Administrator')->getCalendar($calendarId);
if (!$cal instanceof CalendarInterface) {
continue;
}
foreach ($cal->getChildren(true) as $child) {
$ids[] = $child->getId();
}
}
if (!in_array($id, $ids)) {
continue;
}
$options[] = HTMLHelper::_('select.option', $item->id, $item->title);
}
return $options;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| DatetimechooserField.php | File | 3.17 KB | 0664 |
|
| DpauthorField.php | File | 1006 B | 0664 |
|
| DpcalendarField.php | File | 1.75 KB | 0664 |
|
| DpcalendareditField.php | File | 3.15 KB | 0664 |
|
| DpcfieldsField.php | File | 1.99 KB | 0664 |
|
| DpcountriesField.php | File | 1.07 KB | 0664 |
|
| DpcroomsField.php | File | 1.16 KB | 0664 |
|
| DpmenuitemsField.php | File | 2.62 KB | 0664 |
|
| DppaymentproviderField.php | File | 1.02 KB | 0664 |
|
| DpradioField.php | File | 2.7 KB | 0664 |
|
| DptokenField.php | File | 1.17 KB | 0664 |
|
| EventField.php | File | 9.04 KB | 0664 |
|
| ExtcalendarField.php | File | 1.36 KB | 0664 |
|
| GeocompleteField.php | File | 1.08 KB | 0664 |
|
| LocationField.php | File | 1006 B | 0664 |
|