From fb4f764bc408773b0142de794f498c363293c53d Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 21 Apr 2026 17:44:49 -0500 Subject: [PATCH] feat: add template overrides for Community Builder and DPCalendar modules Add overrides for all installed third-party modules: - mod_cblogin (login + logout) - mod_comprofilermoderator - mod_comprofileronline - mod_dpcalendar_counter - mod_dpcalendar_map - mod_dpcalendar_mini (with sublayouts) - mod_dpcalendar_upcoming (with scripts) Sourced from waas.dev site installation for template consistency. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/html/mod_cblogin/default.php | 194 +++++++++++++++++ src/html/mod_cblogin/default_logout.php | 127 +++++++++++ src/html/mod_cblogin/index.html | 1 + src/html/mod_comprofilermoderator/default.php | 66 ++++++ src/html/mod_comprofilermoderator/index.html | 1 + src/html/mod_comprofileronline/default.php | 42 ++++ src/html/mod_comprofileronline/index.html | 1 + src/html/mod_dpcalendar_counter/default.php | 122 +++++++++++ src/html/mod_dpcalendar_counter/index.html | 1 + src/html/mod_dpcalendar_map/default.php | 37 ++++ src/html/mod_dpcalendar_map/index.html | 1 + src/html/mod_dpcalendar_mini/_scripts.php | 204 ++++++++++++++++++ src/html/mod_dpcalendar_mini/default.php | 50 +++++ .../mod_dpcalendar_mini/default_icons.php | 22 ++ src/html/mod_dpcalendar_mini/default_map.php | 20 ++ .../mod_dpcalendar_mini/default_quickadd.php | 47 ++++ src/html/mod_dpcalendar_mini/index.html | 1 + src/html/mod_dpcalendar_upcoming/_scripts.php | 22 ++ src/html/mod_dpcalendar_upcoming/default.php | 172 +++++++++++++++ src/html/mod_dpcalendar_upcoming/index.html | 1 + 20 files changed, 1132 insertions(+) create mode 100644 src/html/mod_cblogin/default.php create mode 100644 src/html/mod_cblogin/default_logout.php create mode 100644 src/html/mod_cblogin/index.html create mode 100644 src/html/mod_comprofilermoderator/default.php create mode 100644 src/html/mod_comprofilermoderator/index.html create mode 100644 src/html/mod_comprofileronline/default.php create mode 100644 src/html/mod_comprofileronline/index.html create mode 100644 src/html/mod_dpcalendar_counter/default.php create mode 100644 src/html/mod_dpcalendar_counter/index.html create mode 100644 src/html/mod_dpcalendar_map/default.php create mode 100644 src/html/mod_dpcalendar_map/index.html create mode 100644 src/html/mod_dpcalendar_mini/_scripts.php create mode 100644 src/html/mod_dpcalendar_mini/default.php create mode 100644 src/html/mod_dpcalendar_mini/default_icons.php create mode 100644 src/html/mod_dpcalendar_mini/default_map.php create mode 100644 src/html/mod_dpcalendar_mini/default_quickadd.php create mode 100644 src/html/mod_dpcalendar_mini/index.html create mode 100644 src/html/mod_dpcalendar_upcoming/_scripts.php create mode 100644 src/html/mod_dpcalendar_upcoming/default.php create mode 100644 src/html/mod_dpcalendar_upcoming/index.html diff --git a/src/html/mod_cblogin/default.php b/src/html/mod_cblogin/default.php new file mode 100644 index 0000000..ecfbdfa --- /dev/null +++ b/src/html/mod_cblogin/default.php @@ -0,0 +1,194 @@ + + +
+ + + + + + + getFormTokenInput(); ?> + + +
+

+
+ + + +
+

+ + + + + + + + + + /> +

+

+ + + + + + + + + + /> +

+ 1 ) { ?> +

+ + + + + + + + + + /> +

+ + +

+ + /> +

+ + + + + + +
+ + + + + + + + + +
+

+
+ + +
+ diff --git a/src/html/mod_cblogin/default_logout.php b/src/html/mod_cblogin/default_logout.php new file mode 100644 index 0000000..ed1b6fd --- /dev/null +++ b/src/html/mod_cblogin/default_logout.php @@ -0,0 +1,127 @@ + + +
+ + + + + + getFormTokenInput(); ?> + + +
+

+
+ + + get( 'greeting', 1 ) ) { ?> + + + get( 'show_avatar', 1 ) ) { ?> + + + +
+ +
+ + +

+

+

+ + + +
+

+
+ + +
+ diff --git a/src/html/mod_cblogin/index.html b/src/html/mod_cblogin/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_cblogin/index.html @@ -0,0 +1 @@ + diff --git a/src/html/mod_comprofilermoderator/default.php b/src/html/mod_comprofilermoderator/default.php new file mode 100644 index 0000000..d3766ac --- /dev/null +++ b/src/html/mod_comprofilermoderator/default.php @@ -0,0 +1,66 @@ + + + +
+

+
+ + + + + + + +
+

+
+ + diff --git a/src/html/mod_comprofilermoderator/index.html b/src/html/mod_comprofilermoderator/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_comprofilermoderator/index.html @@ -0,0 +1 @@ + diff --git a/src/html/mod_comprofileronline/default.php b/src/html/mod_comprofileronline/default.php new file mode 100644 index 0000000..7646779 --- /dev/null +++ b/src/html/mod_comprofileronline/default.php @@ -0,0 +1,42 @@ + + + +
+

+
+ + + + + + + +
+

+
+ + diff --git a/src/html/mod_comprofileronline/index.html b/src/html/mod_comprofileronline/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_comprofileronline/index.html @@ -0,0 +1 @@ + diff --git a/src/html/mod_dpcalendar_counter/default.php b/src/html/mod_dpcalendar_counter/default.php new file mode 100644 index 0000000..dd258ef --- /dev/null +++ b/src/html/mod_dpcalendar_counter/default.php @@ -0,0 +1,122 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use Joomla\CMS\HTML\HTMLHelper; + +if (!$events) { + return; +} + +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_YEARS'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_MONTHS'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_WEEKS'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_DAYS'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_HOURS'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_MINUTES'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_SECONDS'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_YEAR'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_MONTH'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_WEEK'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_DAY'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_HOUR'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_MINUTE'); +$translator->translateJS('MOD_DPCALENDAR_COUNTER_LABEL_SECOND'); +$translator->translateJS('COM_DPCALENDAR_CLOSE'); + +$document->loadStyleFile('default.css', 'mod_dpcalendar_counter'); +$document->loadScriptFile('default.js', 'mod_dpcalendar_counter'); +$document->addStyle($params->get('custom_css', '')); +?> +
+
+ translate($params->get('textbefore', ''))); ?> +
+
+ +
+
+
+ translate('MOD_DPCALENDAR_COUNTER_SOON_OUTPUT'); ?> +
+ get('show_field_year', 1)) { ?> + + + + + + get('show_field_month', 1)) { ?> + + + + + + get('show_field_week', 1)) { ?> + + + + + + get('show_field_day', 1)) { ?> + + + + + + get('show_field_hour', 1)) { ?> + + + + + + + + + + + + + +
+
+
+ translate('MOD_DPCALENDAR_COUNTER_ONGOING_OUTPUT'); ?> +
+ + title; ?> + + images->image_intro) { ?> +
+
+ + <?php echo $event->images->image_intro_alt; ?>images->image_intro_dimensions; ?>> + + images->image_intro_caption) { ?> +
images->image_intro_caption; ?>
+ +
+
+ + truncatedDescription) { ?> +
+ truncatedDescription; ?> +
+ +
+
+ +
+
+ translate($params->get('textafter', ''))); ?> +
+
diff --git a/src/html/mod_dpcalendar_counter/index.html b/src/html/mod_dpcalendar_counter/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_dpcalendar_counter/index.html @@ -0,0 +1 @@ + diff --git a/src/html/mod_dpcalendar_map/default.php b/src/html/mod_dpcalendar_map/default.php new file mode 100644 index 0000000..32a9d02 --- /dev/null +++ b/src/html/mod_dpcalendar_map/default.php @@ -0,0 +1,37 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use Joomla\CMS\HTML\HTMLHelper; + +$document->loadStyleFile('default.css', 'mod_dpcalendar_map'); +$document->loadScriptFile('views/map/default.js'); +$document->addStyle($params->get('custom_css', '')); + +$layoutHelper->renderLayout('block.map', $displayData); + +$translator->translateJS('COM_DPCALENDAR_FIELD_CONFIG_EVENT_LABEL_NO_EVENT_TEXT'); +?> +
+
+ translate($params->get('textbefore', ''))); ?> +
+ renderLayout('block.loader', $displayData); ?> + renderLayout('block.filter', $displayData); ?> +
+
+
+ translate($params->get('textafter', ''))); ?> +
+
diff --git a/src/html/mod_dpcalendar_map/index.html b/src/html/mod_dpcalendar_map/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_dpcalendar_map/index.html @@ -0,0 +1 @@ + diff --git a/src/html/mod_dpcalendar_mini/_scripts.php b/src/html/mod_dpcalendar_mini/_scripts.php new file mode 100644 index 0000000..eac51e3 --- /dev/null +++ b/src/html/mod_dpcalendar_mini/_scripts.php @@ -0,0 +1,204 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use DigitalPeak\Component\DPCalendar\Administrator\Helper\DPCalendarHelper; +use DigitalPeak\Component\DPCalendar\Administrator\Router\Router;; +use Joomla\Utilities\ArrayHelper; + +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_ALL_DAY'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_MONTH'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_WEEK'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_DAY'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_LIST'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_UNTIL'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_PAST'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_TODAY'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_TOMORROW'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_THIS_WEEK'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_NEXT_WEEK'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_THIS_MONTH'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_NEXT_MONTH'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_FUTURE'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_WEEK'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_VIEW_TEXTS_MORE'); + +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_TOOLBAR_NEXT'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_TOOLBAR_PREVIOUS'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_TOOLBAR_TODAY'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_SHOW_DATEPICKER'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_TOOLBAR_PRINT'); +$translator->translateJS('COM_DPCALENDAR_VIEW_CALENDAR_TOOLBAR_ADD'); + +$translator->translateJS('JCANCEL'); +$translator->translateJS('COM_DPCALENDAR_CLOSE'); +$translator->translateJS('COM_DPCALENDAR_PREVIOUS'); +$translator->translateJS('COM_DPCALENDAR_NEXT'); +$translator->translateJS('COM_DPCALENDAR_FIELD_CAPACITY_UNLIMITED'); + +$document->addScriptOptions('calendar.names', $dateHelper->getNames()); +$document->addScriptOptions('timezone', $dateHelper->getDate()->getTimezone()->getName()); +$document->addScriptOptions('itemid', $app->getInput()->getInt('Itemid', 0)); + +// The options which will be passed to the js library +$options = []; +$options['requestUrlRoot'] = 'view=events&limit=0&format=raw&module_id=' . $module->id . '&Itemid=' . $app->getInput()->getInt('Itemid', 0); +$options['calendarIds'] = [implode(',', $ids)]; + +// Set the default view +$options['initialView'] = $params->get('default_view', 'month'); + +// Some general calendar options +$options['weekNumbers'] = (bool)$params->get('week_numbers'); +$options['weekends'] = (bool)$params->get('weekend', 1); +$options['fixedWeekCount'] = (bool)$params->get('fixed_week_count', 1); + +$bd = $params->get('business_hours_days', []); +if ($bd && !(is_countable($bd) ? count($bd) : 0 === 1 && !$bd[0])) { + $options['businessHours'] = [ + 'startTime' => $params->get('business_hours_start', ''), + 'endTime' => $params->get('business_hours_end', ''), + 'daysOfWeek' => $params->get('business_hours_days', []) + ]; +} + +$options['firstDay'] = (int)$params->get('weekstart', 1); +$options['hiddenDays'] = ArrayHelper::toInteger($params->get('hidden_days', [])); +$options['scrollTime'] = $params->get('first_hour', 6) === 'now' ? 'now' : $params->get('first_hour', 6) . ':00:00'; +$options['weekNumberCalculation'] = 'ISO'; +$options['displayEventEnd'] = true; +$options['navLinks'] = true; + +$max = $params->get('max_time', 24); +if (is_numeric($max)) { + $max .= ':00:00'; +} +$options['slotMaxTime'] = $max; + +$min = $params->get('min_time', 0); +if (is_numeric($min)) { + $min .= ':00:00'; +} +$options['slotMinTime'] = $min; + +$options['nowIndicator'] = (bool)$params->get('current_time_indicator', 1); +$options['displayEventTime'] = $params->get('compact_events', 2) != 2; + +if ($params->get('event_limit', '') != '-1') { + $options['dayMaxEventRows'] = $params->get('event_limit', '') == '' ? 2 : $params->get('event_limit', '') + 1; +} + +// Set the height +if ($params->get('calendar_height', 0) > 0) { + $options['contentHeight'] = (int)$params->get('calendar_height', 0); +} else { + $options['height'] = 'auto'; +} + +$options['slotEventOverlap'] = (bool)$params->get('overlap_events', 1); + +// Set up the header +$options['headerToolbar'] = ['left' => [], 'center' => [], 'right' => []]; +if ($params->get('header_show_navigation', 1)) { + $options['headerToolbar']['left'][] = 'prev'; + $options['headerToolbar']['left'][] = 'next'; +} +if ($params->get('header_show_today', 0)) { + $options['headerToolbar']['left'][] = 'today'; +} +if ($params->get('header_show_datepicker', 0)) { + $options['headerToolbar']['left'][] = 'datepicker'; +} +if ($params->get('header_show_create', 1) && DPCalendarHelper::canCreateEvent()) { + $options['headerToolbar']['left'][] = 'add'; +} +if ($params->get('header_show_title', 1)) { + $options['headerToolbar']['center'][] = 'title'; +} +if ($params->get('header_show_month', 1)) { + $options['headerToolbar']['right'][] = 'month'; +} +if ($params->get('header_show_week', 1)) { + $options['headerToolbar']['right'][] = 'week'; +} +if ($params->get('header_show_day', 1)) { + $options['headerToolbar']['right'][] = 'day'; +} else { + $options['navLinks'] = false; +} +if ($params->get('header_show_list', 1)) { + $options['headerToolbar']['right'][] = 'list'; +} + +$options['headerToolbar']['left'] = implode(',', $options['headerToolbar']['left']); +$options['headerToolbar']['center'] = implode(',', $options['headerToolbar']['center']); +$options['headerToolbar']['right'] = implode(',', $options['headerToolbar']['right']); + +$resourceViews = $params->get('calendar_resource_views'); +if (!DPCalendarHelper::isFree() && $resourceViews && $resources) { + $options['resources'] = $resources; + $options['resourceViews'] = $resourceViews; + $options['datesAboveResources'] = true; +} + +// Set up the views +$options['views'] = []; +$options['views']['month'] = [ + 'titleFormat' => $dateHelper->convertPHPDateToJS($params->get('titleformat_month', 'F Y')), + 'eventTimeFormat' => $dateHelper->convertPHPDateToJS($params->get('timeformat_month', 'H:i')), + 'dayHeaderFormat' => $dateHelper->convertPHPDateToJS($params->get('columnformat_month', 'D')) +]; +$options['views']['week'] = [ + 'titleFormat' => $dateHelper->convertPHPDateToJS($params->get('titleformat_week', 'M j Y')), + 'eventTimeFormat' => $dateHelper->convertPHPDateToJS($params->get('timeformat_week', 'H:i')), + 'dayHeaderFormat' => $dateHelper->convertPHPDateToJS($params->get('columnformat_week', 'D n/j')), + 'slotDuration' => $dateHelper->minutesToDuration((int)$params->get('agenda_slot_minutes', 30)), + 'slotLabelInterval' => $dateHelper->minutesToDuration((int)$params->get('agenda_slot_minutes', 30)), + 'slotLabelFormat' => $dateHelper->convertPHPDateToJS($params->get('axisformat_week', 'H:i')) +]; +$options['views']['day'] = [ + 'titleFormat' => $dateHelper->convertPHPDateToJS($params->get('titleformat_day', 'F j Y')), + 'eventTimeFormat' => $dateHelper->convertPHPDateToJS($params->get('timeformat_day', 'H:i')), + 'dayHeaderFormat' => $dateHelper->convertPHPDateToJS($params->get('columnformat_day', 'l')), + 'slotDuration' => $dateHelper->minutesToDuration((int)$params->get('agenda_slot_minutes', 30)), + 'slotLabelInterval' => $dateHelper->minutesToDuration((int)$params->get('agenda_slot_minutes', 30)), + 'slotLabelFormat' => $dateHelper->convertPHPDateToJS($params->get('axisformat_day', 'H:i')) +]; +$options['views']['list'] = [ + 'titleFormat' => $dateHelper->convertPHPDateToJS($params->get('titleformat_list', 'M j Y')), + 'eventTimeFormat' => $dateHelper->convertPHPDateToJS($params->get('timeformat_list', 'H:i')), + 'dayHeaderFormat' => $dateHelper->convertPHPDateToJS($params->get('columnformat_list', 'D')), + 'listDayFormat' => $dateHelper->convertPHPDateToJS($params->get('dayformat_list', 'l')), + 'listDaySideFormat' => $dateHelper->convertPHPDateToJS($params->get('dateformat_list', 'F j, Y')), + 'duration' => ['days' => (int)$params->get('list_range', 30)], + 'noEventsContent' => $translator->translate('COM_DPCALENDAR_ERROR_EVENT_NOT_FOUND', true) +]; + +// Some DPCalendar specific options +$options['show_event_as_popup'] = $params->get('show_event_as_popup'); +$options['popupWidth'] = $params->get('popup_width'); +$options['popupHeight'] = $params->get('popup_height'); +$options['show_event_tooltip'] = $params->get('show_event_tooltip', 1); +$options['show_map'] = $params->get('show_map', 1); +$options['event_create_form'] = (int)$params->get('event_create_form', 1); +$options['screen_size_list_view'] = $params->get('screen_size_list_view', 500); +$options['use_hash'] = false; +if (DPCalendarHelper::canCreateEvent()) { + $router = new Router(); + $input = $app->getInput(); + $returnPage = $input->getInt('Itemid', 0) ? 'index.php?Itemid=' . $input->getInt('Itemid', 0) : null; + $options['event_create_url'] = $router->getEventFormRoute('0', $returnPage, null, false); +} + +// Set the actual date +$now = DPCalendarHelper::getDate($params->get('start_date')); +$options['year'] = $now->format('Y', true); +$options['month'] = $now->format('m', true); +$options['date'] = $now->format('d', true); + +$document->addScriptOptions('module.mini.' . $module->id . '.options', $options); diff --git a/src/html/mod_dpcalendar_mini/default.php b/src/html/mod_dpcalendar_mini/default.php new file mode 100644 index 0000000..ede0930 --- /dev/null +++ b/src/html/mod_dpcalendar_mini/default.php @@ -0,0 +1,50 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use Joomla\CMS\Helper\ModuleHelper; +use Joomla\CMS\HTML\HTMLHelper; + +if ($params->get('show_map', 1)) { + $layoutHelper->renderLayout('block.map', $displayData); +} + +$document->loadScriptFile('views/calendar/default.js'); +$document->loadScriptFile('views/calendar/default.js'); +$document->loadStyleFile('default.css', 'mod_dpcalendar_mini'); +$document->addStyle($params->get('custom_css', '')); + +require ModuleHelper::getLayoutPath('mod_dpcalendar_mini', '_scripts'); + +$compact = $params->get('compact_events', 2) == 1 ? 'compact' : 'expanded'; +?> +
+
+ renderLayout('block.loader', $displayData); ?> +
+
+ translate($params->get('textbefore', ''))); ?> +
+
+ + + +
+
+ + + + + +
+
+
+ translate($params->get('textafter', ''))); ?> +
+
diff --git a/src/html/mod_dpcalendar_mini/default_icons.php b/src/html/mod_dpcalendar_mini/default_icons.php new file mode 100644 index 0000000..6c20f6d --- /dev/null +++ b/src/html/mod_dpcalendar_mini/default_icons.php @@ -0,0 +1,22 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use DigitalPeak\Component\DPCalendar\Administrator\HTML\Block\Icon; +?> +
+ renderLayout('block.icon', ['icon' => Icon::DELETE]); ?> + renderLayout('block.icon', ['icon' => Icon::EDIT]); ?> + renderLayout('block.icon', ['icon' => Icon::PLUS]); ?> + renderLayout('block.icon', ['icon' => Icon::PRINTING]); ?> + renderLayout('block.icon', ['icon' => Icon::CALENDAR]); ?> + renderLayout('block.icon', ['icon' => Icon::NEXT]); ?> + renderLayout('block.icon', ['icon' => Icon::BACK]); ?> + renderLayout('block.icon', ['icon' => Icon::USERS]); ?> + renderLayout('block.icon', ['icon' => Icon::MONEY]); ?> +
diff --git a/src/html/mod_dpcalendar_mini/default_map.php b/src/html/mod_dpcalendar_mini/default_map.php new file mode 100644 index 0000000..ce87f48 --- /dev/null +++ b/src/html/mod_dpcalendar_mini/default_map.php @@ -0,0 +1,20 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +if (!$params->get('show_map', 0)) { + return; +} +?> +
+
diff --git a/src/html/mod_dpcalendar_mini/default_quickadd.php b/src/html/mod_dpcalendar_mini/default_quickadd.php new file mode 100644 index 0000000..8743a5e --- /dev/null +++ b/src/html/mod_dpcalendar_mini/default_quickadd.php @@ -0,0 +1,47 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use DigitalPeak\Component\DPCalendar\Administrator\Helper\DPCalendarHelper; +use Joomla\CMS\Uri\Uri; +use Joomla\CMS\HTML\HTMLHelper; + +if (!DPCalendarHelper::canCreateEvent()) { + return; +} +?> +
+
+ renderField('start_date'); ?> + renderField('end_date'); ?> + renderField('title'); ?> + renderField('catid'); ?> + renderField('color'); ?> + + + + get('event_create_form', 1) == '1' || $params->get('event_create_form', 1) == '3') { ?> + + + + + + +
+ + + +
+
+
diff --git a/src/html/mod_dpcalendar_mini/index.html b/src/html/mod_dpcalendar_mini/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_dpcalendar_mini/index.html @@ -0,0 +1 @@ + diff --git a/src/html/mod_dpcalendar_upcoming/_scripts.php b/src/html/mod_dpcalendar_upcoming/_scripts.php new file mode 100644 index 0000000..4fe7c66 --- /dev/null +++ b/src/html/mod_dpcalendar_upcoming/_scripts.php @@ -0,0 +1,22 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +// Load the required modal JS libraries +if ($params->get('show_as_popup') || $params->get('show_map')) { + $document->loadScriptFile('default.js', 'mod_dpcalendar_upcoming'); + $translator->translateJS('COM_DPCALENDAR_CLOSE'); +} + +if ($params->get('show_map')) { + $layoutHelper->renderLayout('block.map', $displayData); +} + +// Load the stylesheet +$document->loadStyleFile(str_replace('_:', '', (string)$params->get('layout', 'default')) . '.css', 'mod_dpcalendar_upcoming'); +$document->addStyle($params->get('custom_css', '')); diff --git a/src/html/mod_dpcalendar_upcoming/default.php b/src/html/mod_dpcalendar_upcoming/default.php new file mode 100644 index 0000000..d4a2893 --- /dev/null +++ b/src/html/mod_dpcalendar_upcoming/default.php @@ -0,0 +1,172 @@ + + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL + */ + +\defined('_JEXEC') or die(); + +use DigitalPeak\Component\DPCalendar\Administrator\Helper\Booking; +use DigitalPeak\Component\DPCalendar\Administrator\Helper\DPCalendarHelper; +use DigitalPeak\Component\DPCalendar\Administrator\HTML\Block\Icon; +use Joomla\CMS\Helper\ModuleHelper; +use Joomla\CMS\HTML\HTMLHelper; + +if (!$events) { + echo $translator->translate($params->get('no_events_text', 'MOD_DPCALENDAR_UPCOMING_NO_EVENT_TEXT')); + + return; +} + +require ModuleHelper::getLayoutPath('mod_dpcalendar_upcoming', '_scripts'); +?> +
+
+ translate($params->get('textbefore', ''))); ?> +
+
+ $events) { ?> + +
+

+ + + + getDate($event->start_date, $event->all_day); ?> +
+ renderLayout('block.flatcalendar', ['date' => $startDate, 'color' => $event->color]); ?> +
+ state == 3) { ?> + [translate('MOD_DPCALENDAR_UPCOMING_CANCELED'); ?>] + + title; ?> + get('show_display_events') && $event->displayEvent->afterDisplayTitle) { ?> +
displayEvent->afterDisplayTitle; ?>
+ + get('show_location') || $params->get('show_map')) && isset($event->locations) && $event->locations) { ?> +
+ get('show_location')) { ?> + renderLayout('block.icon', ['icon' => Icon::LOCATION]); ?> + + locations as $location) { ?> +
+
+ get('show_location')) { ?> + + title; ?> + roomTitles[$location->id])) { ?> + [roomTitles[$location->id]); ?>] + + + +
+ renderLayout('event.tooltip', $displayData); ?> +
+
+ +
+ +
+ renderLayout( + 'block.icon', + ['icon' => Icon::CLOCK, 'title' => $translator->translate('MOD_DPCALENDAR_UPCOMING_DATE')] + ); ?> + getDateStringFromEvent($event, $params->get('date_format'), $params->get('time_format')); ?> +
+ rrule) { ?> +
+ renderLayout( + 'block.icon', + ['icon' => Icon::RECURRING, 'title' => $translator->translate('MOD_DPCALENDAR_UPCOMING_SERIES')] + ); ?> + transformRRuleToString($event->rrule, $event->start_date, $event->exdates)); ?> +
+ + get('show_price') && $event->prices) { ?> + prices as $price) { ?> + value, $event); ?> +
+ renderLayout( + 'block.icon', + [ + 'icon' => Icon::MONEY, + 'title' => $translator->translate('MOD_DPCALENDAR_UPCOMING_PRICES') + ] + ); ?> + + label ?: $translator->translate('MOD_DPCALENDAR_UPCOMING_PRICES'); ?> + + + value === '' ? '' : DPCalendarHelper::renderPrice($price->value); ?> + + value) { ?> + + + + description; ?> + +
+ + +
+ get('show_image', 1) && $event->images->image_intro) { ?> +
+
+ + <?php echo $event->images->image_intro_alt; ?>images->image_intro_dimensions; ?>> + + images->image_intro_caption) { ?> +
images->image_intro_caption; ?>
+ +
+
+ + get('show_booking', 1) && Booking::openForBooking($event)) { ?> + + renderLayout('block.icon', ['icon' => Icon::BOOK]); ?> + + translate('MOD_DPCALENDAR_UPCOMING_BOOK'); ?> + + + + get('show_display_events') && $event->displayEvent->beforeDisplayContent) { ?> +
displayEvent->beforeDisplayContent; ?>
+ +
+ truncatedDescription; ?> +
+ get('show_display_events') && $event->displayEvent->afterDisplayContent) { ?> +
displayEvent->afterDisplayContent; ?>
+ + + renderLayout('schema.event', $displayData); ?> +
+ + +
+ + +
+ get('show_map')) { ?> +
+
+ +
+ translate($params->get('textafter', ''))); ?> +
+
diff --git a/src/html/mod_dpcalendar_upcoming/index.html b/src/html/mod_dpcalendar_upcoming/index.html new file mode 100644 index 0000000..2efb97f --- /dev/null +++ b/src/html/mod_dpcalendar_upcoming/index.html @@ -0,0 +1 @@ +