__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ 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) 2014 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\Model;
\defined('_JEXEC') or die();
use DigitalPeak\Component\DPCalendar\Administrator\Helper\DPCalendarHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use Joomla\CMS\Plugin\PluginHelper;
class CpanelModel extends BaseDatabaseModel
{
public function getEvents(string $start, string $ordering = 'a.start_date', string $direction = 'asc'): array
{
$model = $this->bootComponent('dpcalendar')->getMVCFactory()->createModel('Events', 'Site', ['ignore_request' => true]);
$model->getState();
$model->setState('list.limit', 3);
$model->setState('category.recursive', true);
$model->setState('filter.ongoing', 1);
$model->setState('filter.expand', true);
$model->setState('filter.state', [1, 3]);
$model->setState('filter.publish_date', true);
$model->setState('list.start-date', $start);
$model->setState('list.ordering', $ordering);
$model->setState('list.direction', $direction);
return $model->getItems();
}
public function getTotalEvents(): int
{
$query = $this->getDatabase()->getQuery(true);
$query->select('count(id) as total');
$query->from('#__dpcalendar_events');
$this->getDatabase()->setQuery($query);
return $this->getDatabase()->loadResult() ?: 0;
}
public function getCalendars(): array
{
$model = $this->bootComponent('dpcalendar')->getMVCFactory()->createModel('Calendar', 'Site', ['ignore_request' => true]);
$calendars = $model->getAllItems();
PluginHelper::importPlugin('dpcalendar');
$tmp = Factory::getApplication()->triggerEvent('onCalendarsFetch');
if (!empty($tmp)) {
foreach ($tmp as $tmpCalendars) {
$calendars = array_merge($calendars, $tmpCalendars);
}
}
return $calendars;
}
public function getTotalBookings(): array
{
$data = [];
$date = DPCalendarHelper::getDate();
$query = $this->getDatabase()->getQuery(true);
$query->select('count(id) as total, sum(price) as price');
$query->from('#__dpcalendar_bookings');
$query->where('book_date > ' . $this->getDatabase()->quote($date->format('Y') . '-01-01'));
$query->where('state = 1');
$this->getDatabase()->setQuery($query);
$data['year'] = $this->getDatabase()->loadAssoc();
$query = $this->getDatabase()->getQuery(true);
$query->select('count(id) as total, sum(price) as price');
$query->from('#__dpcalendar_bookings');
$query->where('book_date > ' . $this->getDatabase()->quote($date->format('Y-m') . '-01'));
$query->where('state = 1');
$this->getDatabase()->setQuery($query);
$data['month'] = $this->getDatabase()->loadAssoc();
$date->modify('last monday');
$query = $this->getDatabase()->getQuery(true);
$query->select('count(id) as total, sum(price) as price');
$query->from('#__dpcalendar_bookings');
$query->where('book_date > ' . $this->getDatabase()->quote($date->format('Y-m-d')));
$query->where('state = 1');
$this->getDatabase()->setQuery($query);
$data['week'] = $this->getDatabase()->loadAssoc();
$query = $this->getDatabase()->getQuery(true);
$query->select('count(id) as total, sum(price) as price');
$query->from('#__dpcalendar_bookings');
$query->where('state != 1');
$this->getDatabase()->setQuery($query);
$data['notactive'] = $this->getDatabase()->loadAssoc();
return $data;
}
public function getTotalTaxRates(): int
{
$query = $this->getDatabase()->getQuery(true);
$query->select('count(id) as total');
$query->from('#__dpcalendar_taxrates');
$this->getDatabase()->setQuery($query);
return $this->getDatabase()->loadResult() ?: 0;
}
public function getExtensionsWithDifferentVersion(string $version): array
{
$query = $this->getDatabase()->getQuery(true);
$query->select('*');
$query->from("#__extensions where name like '%dpcalendar%'");
$this->getDatabase()->setQuery($query);
$extensions = [];
foreach ($this->getDatabase()->loadObjectList() as $extension) {
$manifest = json_decode((string)$extension->manifest_cache) ?: new \stdClass();
if ($version === $manifest->version) {
continue;
}
$extension->version = $manifest->version;
$extensions[] = $extension;
}
return $extensions;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| BookingsModel.php | File | 10.01 KB | 0664 |
|
| CaldavModel.php | File | 1.97 KB | 0664 |
|
| CalendarModel.php | File | 2.01 KB | 0664 |
|
| CountriesModel.php | File | 3.99 KB | 0664 |
|
| CountryModel.php | File | 2.86 KB | 0664 |
|
| CouponModel.php | File | 3.76 KB | 0664 |
|
| CouponsModel.php | File | 4.04 KB | 0664 |
|
| CpanelModel.php | File | 4.28 KB | 0664 |
|
| CurrencyModel.php | File | 4.32 KB | 0664 |
|
| EventModel.php | File | 30.82 KB | 0664 |
|
| EventsModel.php | File | 14.41 KB | 0664 |
|
| ExtcalendarModel.php | File | 5.59 KB | 0664 |
|
| ExtcalendarsModel.php | File | 4.92 KB | 0664 |
|
| FieldsOrderModel.php | File | 5.9 KB | 0664 |
|
| GeoModel.php | File | 19.71 KB | 0664 |
|
| IcalModel.php | File | 14.81 KB | 0664 |
|
| ImportModel.php | File | 7.37 KB | 0664 |
|
| LayoutModel.php | File | 704 B | 0664 |
|
| LocationModel.php | File | 12.06 KB | 0664 |
|
| LocationsModel.php | File | 8.94 KB | 0664 |
|
| PluginModel.php | File | 784 B | 0664 |
|
| TaxrateModel.php | File | 4.62 KB | 0664 |
|
| TaxratesModel.php | File | 4.33 KB | 0664 |
|
| TicketsModel.php | File | 10.21 KB | 0664 |
|
| ToolsModel.php | File | 1.61 KB | 0664 |
|
| VersionModel.php | File | 2.5 KB | 0664 |
|