| 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/plugins/privacy/dpcalendar/src/Extension/ |
Upload File : |
<?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\Plugin\Privacy\DPCalendar\Extension;
\defined('_JEXEC') or die();
use Joomla\CMS\User\User;
use Joomla\Component\Privacy\Administrator\Plugin\PrivacyPlugin;
use Joomla\Component\Privacy\Administrator\Table\RequestTable;
use Joomla\Database\DatabaseAwareTrait;
class DPCalendar extends PrivacyPlugin
{
use DatabaseAwareTrait;
/**
* @return mixed[]
*/
public function onPrivacyExportRequest(RequestTable $request, ?User $user = null): array
{
if (!$user instanceof User) {
return [];
}
$domains = [];
$db = $this->getDatabase();
// Event data
$domain = $this->createDomain('user_dpcalendar_event', 'joomla_user_dpcalendar_event_data');
$domains[] = $domain;
$query = $db->getQuery(true)
->select('*')
->from('#__dpcalendar_events')
->where('created_by = ' . (int)$user->id)
->order('start_date ASC');
$items = $db->setQuery($query)->loadObjectList();
foreach ($items as $item) {
$data = (array)$item;
$data['calendar_id'] = $data['catid'];
unset($data['catid']);
$domain->addItem($this->createItemFromArray($data));
}
$domains[] = $this->createCustomFieldsDomain('com_dpcalendar.event', $items);
// Booking data
$domain = $this->createDomain('user_dpcalendar_booking', 'joomla_user_dpcalendar_booking_data');
$domains[] = $domain;
$query = $db->getQuery(true)
->select('*')
->from('#__dpcalendar_bookings')
->where('user_id = ' . (int)$user->id)
->order('book_date ASC');
$items = $db->setQuery($query)->loadObjectList();
foreach ($items as $item) {
$domain->addItem($this->createItemFromArray((array)$item));
}
$domains[] = $this->createCustomFieldsDomain('com_dpcalendar.booking', $items);
// Tickets data
$domain = $this->createDomain('user_dpcalendar_ticket', 'joomla_user_dpcalendar_ticket_data');
$domains[] = $domain;
$query = $db->getQuery(true)
->select('*')
->from('#__dpcalendar_tickets')
->where('user_id = ' . (int)$user->id)
->order('created ASC');
$items = $db->setQuery($query)->loadObjectList();
foreach ($items as $item) {
$domain->addItem($this->createItemFromArray((array)$item));
}
$domains[] = $this->createCustomFieldsDomain('com_dpcalendar.ticket', $items);
// Locations data
$domain = $this->createDomain('user_dpcalendar_location', 'joomla_user_dpcalendar_location_data');
$domains[] = $domain;
$query = $db->getQuery(true)
->select('*')
->from('#__dpcalendar_locations')
->where('created_by = ' . (int)$user->id)
->order('created ASC');
$items = $db->setQuery($query)->loadObjectList();
foreach ($items as $item) {
$domain->addItem($this->createItemFromArray((array)$item));
}
$domains[] = $this->createCustomFieldsDomain('com_dpcalendar.location', $items);
return $domains;
}
}