primo commit

This commit is contained in:
2024-12-17 17:34:10 +01:00
commit e650f8df99
16435 changed files with 2451012 additions and 0 deletions

View File

@ -0,0 +1,581 @@
<?php
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use Joomla\CMS\Date\Date;
BaseDatabaseModel::addIncludePath(JPATH_SITE.'/components/com_jem/models', 'JemModel');
/**
* Module-Jubilee
*/
abstract class ModJemJubileeHelper
{
/**
* Method to get the events
*
* @access public
*
* @param (J)Registry &$params Reference to module's parameters
*
* @return array
*/
public static function getList(&$params)
{
mb_internal_encoding('UTF-8');
static $formats = array('year' => 'Y', 'month' => 'F', 'day' => 'j', 'weekday' => 'l', 'md' => 'md');
static $defaults = array('year' => '&nbsp;', 'month' => '', 'day' => '?', 'weekday' => '', 'md' => '');
$db = Factory::getContainer()->get('DatabaseDriver');
$user = JemFactory::getUser();
$levels = $user->getAuthorisedViewLevels();
$uri = Uri::getInstance();
# Retrieve Eventslist model for the data
$model = BaseDatabaseModel::getInstance('Eventslist', 'JemModel', array('ignore_request' => true));
# Set params for the model
# has to go before the getItems function
$model->setState('params', $params);
# filter published
# 0: unpublished
# 1: published
# 2: archived
# -2: trashed
$status = (int)$params->get('status', 2);
$offset_days = (int)$params->get('offset_days', 0);
$date_match_mode = (int)$params->get('date_match_mode', 0);
$max_title_length = (int)$params->get('cuttitle', '25');
$max_desc_length = (int)$params->get('descriptionlength', 300);
$orderdir = $params->get('order', 0) ? 'ASC' : 'DESC';
# date/time
$dateFormat = $params->get('formatdate', '');
$timeFormat = $params->get('formattime', '');
$showtime = $params->get('showtime', 0);
$addSuffix = empty($timeFormat); // if we use component's default time format we can also add corresponding suffix
$now = self::_get_local_now(false);
if ($offset_days > 0) {
$now->add(new DateInterval('P'.$offset_days.'D'));
} elseif ($offset_days < 0) {
$now->sub(new DateInterval('P'.abs($offset_days).'D'));
}
$date = self::_format_date_fields($now->toSql(true), $formats);
$date['date'] = JemOutput::formatdate($now, $dateFormat);
$params->set('date', $date);
$cur_md = $date['md'];
if (empty($cur_md)) { // oops...
return array();
}
# count
$count = min(max($params->get('count', '5'), 1), 100); // range 1..100, default 5
# shuffle
$shuffle = (bool)$params->get('shuffle', 0);
if ($shuffle) {
$max_count = min(max((int)$params->get('shuffle_count', 20), $count), 100);
} else {
$max_count = $count;
}
$model->setState('list.limit', $max_count);
# replace bbCodes in intro text
$intro = (string)$params->get('introtext', '');
if (!empty($intro)) {
$tokens = array('day', 'month', 'year');
$tmp = $intro;
foreach ($tokens as $token) {
$tmp = preg_replace("/\[$token\]/", $date[$token], $tmp);
}
if ($tmp !== $intro) {
$params->set('introtext', $tmp);
}
}
switch ($status) {
case 1: # published
$published = 1;
break;
case 2: # archived
default:
$published = 2;
break;
case 3: # both
$published = array(1, 2);
break;
}
# filter by day + month
switch ($date_match_mode) {
case 0: # somewhen from start date to end date
$cal_from = " IF(YEAR(IFNULL(a.enddates, a.dates)) > YEAR(a.dates)";
$cal_from .= " , (DATE_FORMAT(a.dates, '%m%d') <= $cur_md) OR ($cur_md <= DATE_FORMAT(IFNULL(a.enddates, a.dates), '%m%d'))";
$cal_from .= " , (DATE_FORMAT(a.dates, '%m%d') <= $cur_md) AND ($cur_md <= DATE_FORMAT(IFNULL(a.enddates, a.dates), '%m%d'))";
$cal_from .= " ) ";
break;
case 1: # on start date
default:
$cal_from = " (DATE_FORMAT(a.dates, '%m%d') = $cur_md) ";
break;
case 2: # on end date
$cal_from = " (DATE_FORMAT(IFNULL(a.enddates, a.dates), '%m%d') = $cur_md) ";
break;
case 3: # on start or end date
$cal_from = " ((DATE_FORMAT(a.dates, '%m%d') = $cur_md) OR ";
$cal_from .= " (DATE_FORMAT(IFNULL(a.enddates, a.dates), '%m%d') = $cur_md)) ";
break;
}
$cal_to = false;
$model->setState('filter.opendates', 0);
$model->setState('filter.published', $published);
$model->setState('filter.orderby', array('a.dates '.$orderdir, 'a.times '.$orderdir, 'a.created '.$orderdir));
if (!empty($cal_from)) {
$model->setState('filter.calendar_from', $cal_from);
}
if (!empty($cal_to)) {
$model->setState('filter.calendar_to', $cal_to);
}
$model->setState('filter.groupby', 'a.id');
# clean parameter data
$catids = JemHelper::getValidIds($params->get('catid'));
$venids = JemHelper::getValidIds($params->get('venid'));
$stateloc = $params->get('stateloc');
$stateloc_mode = $params->get('stateloc_mode', 0);
# filter category's
if ($catids) {
$model->setState('filter.category_id', $catids);
$model->setState('filter.category_id.include', true);
}
# filter venue's
if ($venids) {
$model->setState('filter.venue_id', $venids);
$model->setState('filter.venue_id.include', true);
}
# filter venue's state/province
if ($stateloc) {
$model->setState('filter.venue_state', $stateloc);
$model->setState('filter.venue_state.mode', $stateloc_mode); // 0: exact, 1: partial
}
####
# Retrieve the available Events
####
$events = $model->getItems();
$color = $params->get('color');
$user_color = $params->get('usercolor', '#EEEEEE');
$user_color_is_dark = self::_is_dark($user_color);
$params->set('usercolor_is_dark', $user_color_is_dark);
// Don't shuffle original array to keep ordering of remaining events intact.
$indices = array_keys($events);
if (count($events) > $count) {
if ($shuffle) {
shuffle($indices);
}
array_splice($indices, $count);
}
# Loop through the result rows and prepare data
$lists = array();
$i = -1; // it's easier to increment first
foreach ($events as $key => $row)
{
if (!in_array($key, $indices)) {
continue; // skip removed events
}
# create thumbnails if needed and receive imagedata
$dimage = $row->datimage ? JemImage::flyercreator($row->datimage, 'event') : null;
$limage = $row->locimage ? JemImage::flyercreator($row->locimage, 'venue') : null;
#################
## DEFINE LIST ##
#################
$lists[++$i] = new stdClass(); // add new object
# check view access
if (in_array($row->access, $levels)) {
# We know that user has the privilege to view the event
$lists[$i]->link = Route::_(JemHelperRoute::getEventRoute($row->slug));
$lists[$i]->linkText = Text::_('MOD_JEM_JUBILEE_READMORE');
} else {
$lists[$i]->link = Route::_('index.php?option=com_users&view=login');
$lists[$i]->linkText = Text::_('MOD_JEM_JUBILEE_READMORE_REGISTER');
}
# cut title
$fulltitle = htmlspecialchars($row->title, ENT_COMPAT, 'UTF-8');
if (mb_strlen($fulltitle) > $max_title_length) {
$title = mb_substr($fulltitle, 0, $max_title_length) . '&hellip;';
} else {
$title = $fulltitle;
}
$lists[$i]->eventid = $row->id;
$lists[$i]->title = $title;
$lists[$i]->fulltitle = $fulltitle;
$lists[$i]->venue = htmlspecialchars($row->venue ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->catname = implode(", ", JemOutput::getCategoryList($row->categories, $params->get('linkcategory', 1)));
$lists[$i]->state = htmlspecialchars($row->state ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->street = htmlspecialchars($row->street ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->postalCode = htmlspecialchars($row->postalCode ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->city = htmlspecialchars($row->city ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->eventlink = $params->get('linkevent', 1) ? Route::_(JemHelperRoute::getEventRoute($row->slug)) : '';
$lists[$i]->venuelink = $params->get('linkvenue', 1) ? Route::_(JemHelperRoute::getVenueRoute($row->venueslug)) : '';
# time/date
/* depending on settongs we need:
* showcalendar 1, datemethod 1 : month, weekday, day + time
* showcalendar 1, datemethod 2 : month, weekday, day + relative date + time
* showcalendar 0, datemethod 1 : (long) date + time
* showcalendar 0, datemethod 2 : relative date + time
*/
$lists[$i]->startdate = empty($row->dates) ? $defaults : self::_format_date_fields($row->dates, $formats);
$lists[$i]->enddate = empty($row->enddates) ? $defaults : self::_format_date_fields($row->enddates, $formats);
list($lists[$i]->date,
$lists[$i]->time) = self::_format_date_time($row, $params->get('datemethod', 1), $dateFormat, $timeFormat, $addSuffix);
$lists[$i]->dateinfo = JemOutput::formatDateTime($row->dates, $row->times, $row->enddates, $row->endtimes, $dateFormat, $timeFormat, $addSuffix, $showtime);
$lists[$i]->dateschema = JEMOutput::formatSchemaOrgDateTime($row->dates, $row->times, $row->enddates, $row->endtimes, $showTime = true);
if ($dimage == null) {
$lists[$i]->eventimage = '';
$lists[$i]->eventimageorig = '';
} else {
$lists[$i]->eventimage = $uri->base(true).'/'.$dimage['thumb'];
$lists[$i]->eventimageorig = $uri->base(true).'/'.$dimage['original'];
}
if ($limage == null) {
$lists[$i]->venueimage = '';
$lists[$i]->venueimageorig = '';
} else {
$lists[$i]->venueimage = $uri->base(true).'/'.$limage['thumb'];
$lists[$i]->venueimageorig = $uri->base(true).'/'.$limage['original'];
}
# append <br /> tags on line breaking tags so they can be stripped below
$description = preg_replace("'<(hr[^/>]*?/|/(div|h[1-6]|li|p|tr))>'si", "$0<br />", $row->introtext);
# strip html tags but leave <br /> tags
$description = strip_tags($description, "<br>");
# switch <br /> tags to space character
if ($params->get('br') == 0) {
$description = mb_ereg_replace('<br[ /]*>',' ', $description);
}
if (empty($description)) {
$lists[$i]->eventdescription = Text::_('MOD_JEM_JUBILEE_NO_DESCRIPTION');
} elseif (mb_strlen($description) > $max_desc_length) {
$lists[$i]->eventdescription = mb_substr($description, 0, $max_desc_length) . '&hellip;';
} else {
$lists[$i]->eventdescription = $description;
}
$lists[$i]->readmore = mb_strlen(trim($row->fulltext));
$lists[$i]->colorclass = $color;
if ($color == 'alpha') {
$lists[$i]->color = $user_color;
$lists[$i]->color_is_dark = $user_color_is_dark;
}
# provide custom fields
for ($n = 1; $n <= 10; ++$n) {
$var = 'custom'.$n;
$lists[$i]->$var = htmlspecialchars($row->$var, ENT_COMPAT, 'UTF-8');
}
} // foreach ($events as $row)
return $lists;
}
/**
* Method to decide if given color is dark.
*
* @access protected
*
* @param string $color color value in form '#rgb' or '#rrggbb'
*
* @return bool given color is dark (true) or not (false)
*
* @since 2.2.1
*/
protected static function _is_dark($color)
{
$gray = false;
# we understand '#rgb' or '#rrggbb' colors only
# r:77, g:150, b:28
if (strlen($color) < 5) {
$scan = sscanf($color, '#%1x%1x%1x');
if (is_array($scan) && count($scan) == 3) {
$gray = (17 * $scan[0] * 77) / 255
+ (17 * $scan[1] * 150) / 255
+ (17 * $scan[2] * 28) / 255;
}
} else {
$scan = sscanf($color, '#%2x%2x%2x');
if (is_array($scan) && count($scan) == 3) {
$gray = ($scan[0] * 77) / 255
+ ($scan[1] * 150) / 255
+ ($scan[2] * 28) / 255;
}
}
return ($gray <= 160) ? 1 : 0;
}
/**
* Method to get current day repecting local time.
*
* @access protected
*
* @param bool $cleartime clear time values (default) or keep them
*
* @return Date user's today
*
* @since 2.2.1
*/
protected static function _get_local_now($cleartime = true)
{
$app = Factory::getApplication();
$user = Factory::getUser();
$offset = $app->get('offset');
$userTz = $user->getParam('timezone', $offset);
# Set the time to be the beginning of today, local time.
$today = new Date('now', $userTz);
if ($cleartime) {
$today->setTime(0, 0, 0);
}
return $today;
}
/**
* Method used by _format_date_time() to format day difference string
*
* @access private
*
* @param DateInterval $dateDiff difference to current day
* @param string $fmt2 one of '_STARTED', '_ENDED', or empty (default)
* @param string $fmt5 one of '_AGO' (default) or '_AHEAD'
*
* @return string day difference string
*
* @since 2.2.1
*/
private static function _format_relative_date($dateDiff, $fmt2 = '', $fmt5 = '_AGO')
{
if (!is_a($dateDiff, 'DateInterval')) {
return false;
}
$years = $dateDiff->format('%y');
$months = $dateDiff->format('%m');
$days = $dateDiff->format('%a');
# prepare / sanitize token parts
$fmt1 = 'MOD_JEM_JUBILEE';
if (($fmt2 !== '_STARTED') && ($fmt2 !== '_ENDED')) {
$fmt2 = '';
}
if ($fmt5 !== '_AGO') {
$fmt5 = '_AHEAD';
}
# influent months
if ($months > 10) {
++$years;
$fmt3 = '_NEARLY';
} elseif ($months > 0) {
$fmt3 = '_OVER';
} else {
$fmt3 = '';
}
# construct date string
if ($years > 0) {
$fmt4 = $years === 1 ? '_YEAR' : '_YEARS';
$date = Text::sprintf($fmt1 . $fmt2 . $fmt3 . $fmt4 . $fmt5, $years);
} elseif ($months > 1) {
$fmt4 = '_MONTHS';
$date = Text::sprintf($fmt1 . $fmt2 . $fmt3 . $fmt4 . $fmt5, $months);
} else {
$fmt4 = '_DAYS';
$date = Text::sprintf($fmt1 . $fmt2 . $fmt3 . $fmt4 . $fmt5, $days);
}
return $date;
}
/**
* Method to format date and time information
*
* @access protected
*
* @param object $row event as got from db
* @param int $method 1 for absolute date, or 2 for relative date
* @param string $dateFormat format string for date (optional)
* @param string $timeFormat format string for time (optional)
* @param bool $addSuffix show or hide (default) time suffix, e.g. 'h' (optional)
*
* @return array(string, string) returns date and time strings as array
*/
protected static function _format_date_time($row, $method, $dateFormat = '', $timeFormat = '', $addSuffix = false)
{
if (empty($row->dates)) {
# open date
$date = JemOutput::formatDateTime('', ''); // "Open date"
$times = $row->times;
$endtimes = $row->endtimes;
} else {
# Get needed timestamps and format
$today_stamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$dates_stamp = $row->dates ? strtotime($row->dates) : null;
$enddates_stamp = $row->enddates ? strtotime($row->enddates) : null;
// $enddates_stamp = null; // it doesn't make sense on a Jubilee list
$times = $row->times; // show starttime by default
# datemethod show day difference
if ($method == 2) {
$dateToday = self::_get_local_now();//new DateTime('today');
$diffStart = !empty($row->dates) ? $dateToday->diff(date_create($row->dates)) : null;
// $diffEnd = !empty($row->enddates) ? $dateToday->diff(date_create($row->enddates)): null;
$diffEnd = null; // it doesn't make sense on a Jubilee list
$daysStart = is_object($diffStart) ? $diffStart->format('%r%a') : null;
$daysEnd = is_object($diffEnd) ? $diffEnd->format('%r%a') : null;
# Check if today, tomorrow, or yesterday
if (is_object($diffStart) && ($daysStart == 0)) {
$date = Text::_('MOD_JEM_JUBILEE_TODAY');
} elseif (is_object($diffStart) && ($daysStart == 1)) {
$date = Text::_('MOD_JEM_JUBILEE_TOMORROW');
} elseif (is_object($diffStart) && ($daysStart == -1)) {
$date = Text::_('MOD_JEM_JUBILEE_YESTERDAY');
}
# This one isn't very different from the DAYS AGO output but it seems
# adequate to use different language strings here.
# NOTE: We ignore end dates (see above) because it's not really usefull on a Jubilee list.
#
# The event has an enddate and it's earlier than yesterday
elseif (is_object($diffEnd) && ($daysEnd < -1)) {
$date = self::_format_relative_date($diffEnd, '_ENDED', '_AGO');
# show endtime instead of starttime
$times = false;
$endtimes = $row->endtimes;
}
# The event has an enddate and it's later than today but the startdate is earlier than today
# means a currently running event
elseif (is_object($diffStart) && is_object($diffEnd) && ($daysStart < 0) && ($daysEnd > 0)) {
$date = self::_format_relative_date($diffStart, '_STARTED', '_AGO');
}
# The events date is earlier than yesterday
elseif (is_object($diffStart) && ($daysStart < -1)) {
$date = self::_format_relative_date($diffStart, '', '_AGO');
}
# The events date is later than tomorrow
elseif (is_object($diffStart) && ($daysStart > 1)) {
$date = self::_format_relative_date($diffStart, '', '_AHEAD');
}
else {
$date = JemOutput::formatDateTime('', ''); // Oops - say "Open date"
}
}
# datemethod show date
elseif ($method == 1) {
///@todo check date+time to be more acurate
/*
* On Jubilee module differentiation between upcoming, running, and past is unimportant.
* Let's show us "From ... Until ..." and "On ..." only.
*/
# (-Upcoming-) multiday event (From 16.10.2008 Until 18.08.2008)
if (/*($dates_stamp >= $today_stamp) &&*/ ($enddates_stamp > $dates_stamp)) {
$startdate = JemOutput::formatdate($row->dates, $dateFormat);
$enddate = JemOutput::formatdate($row->enddates, $dateFormat);
$date = Text::sprintf('MOD_JEM_JUBILEE_FROM_UNTIL', $startdate, $enddate);
# additionally show endtime
$endtimes = $row->endtimes;
}
/* (not useful on Jubilee list)
# Currently running multiday event (Until 18.08.2008)
elseif ($row->enddates && ($enddates_stamp >= $today_stamp) && ($dates_stamp < $today_stamp)) {
$enddate = JEMOutput::formatdate($row->enddates, $dateFormat);
$date = Text::sprintf('MOD_JEM_JUBILEE_UNTIL', $enddate);
# show endtime instead of starttime
$times = false;
$endtimes = $row->endtimes;
}*/
# Singleday event
else {
$startdate = JEMOutput::formatdate($row->dates, $dateFormat);
$date = Text::sprintf('MOD_JEM_JUBILEE_ON_DATE', $startdate);
# additionally show endtime, but on single day events only to prevent user confusion
if (empty($row->enddates)) {
$endtimes = $row->endtimes;
}
}
} else {
$date = '';
}
}
$time = empty($times) ? '' : JemOutput::formattime($times, $timeFormat, $addSuffix);
$time .= empty($endtimes) ? '' : ('&nbsp;-&nbsp;' . JemOutput::formattime($row->endtimes, $timeFormat, $addSuffix));
return array($date, $time);
}
/**
* Method to format different parts of a date as array
*
* @access public
*
* @param mixed date in form 'yyyy-mm-dd' or as Date object
* @param array formats to get as assotiative array (e.g. 'day' => 'j'; see {@link PHP_MANUAL#date})
*
* @return mixed array of formatted date parts or false
*/
protected static function _format_date_fields($date, array $formats)
{
if (empty($formats)) {
return false;
}
$result = array();
$jdate = ($date instanceof Date) ? $date : new Date($date);
foreach ($formats as $k => $v) {
$result[$k] = $jdate->format($v, false, true);
}
return $result;
}
}

View File

@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@ -0,0 +1,155 @@
; @package JEM
; @subpackage JEM Jubilee Module
; @copyright (C) 2013-2024 joomlaeventmanager.net
; @copyright (C) 2005-2009 Christoph Lukes
; @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
;
; All translations can be found at https://app.transifex.com/jemproject/
; Please join the translation team if you want to contribute your changes to the translations
;
; Note: All ini files need to be saved as UTF-8, no BOM
MOD_JEM_JUBILEE_EVENTS_IN_MODULE="Events in module"
MOD_JEM_JUBILEE_EVENTS_IN_MODULE_DESC="Number of events shown in module."
MOD_JEM_JUBILEE_PUBLISHING_STATE="Publishing State"
MOD_JEM_JUBILEE_PUBLISHING_STATE_DESC="Select if you want to display archived events, published events, or both. If you let JEM archive old events you can here decide between \"Today's events\" (published) and \"Anniversary events\" (archived)."
MOD_JEM_JUBILEE_PUBLISHED_EVENTS="Published events"
MOD_JEM_JUBILEE_ARCHIVED_EVENTS="Archived events"
MOD_JEM_JUBILEE_BOTH_EVENTS="Both"
MOD_JEM_JUBILEE_OFFSET_DAYS="Day Offset"
MOD_JEM_JUBILEE_OFFSET_DAYS_DESC="Moves date into future (positive values) or into past (negative values)."
MOD_JEM_JUBILEE_DATE_MATCH_MODE="Date Match Mode"
MOD_JEM_JUBILEE_DATE_MATCH_MODE_DESC="Show multiday events if day and month matches their start date, their end date, one of both, or any date between start and end date. On singleday events there is no difference."
MOD_JEM_JUBILEE_DATE_MATCH_FROM_START_TO_END="Somewhen from start to end date"
MOD_JEM_JUBILEE_DATE_MATCH_ON_START="Exact on start date"
MOD_JEM_JUBILEE_DATE_MATCH_ON_END="Exact on end date"
MOD_JEM_JUBILEE_DATE_MATCH_ON_START_OR_END="Exact on start or end date"
MOD_JEM_JUBILEE_VENUE="Venue"
; MOD_JEM_JUBILEE_TITLE="Title"
MOD_JEM_JUBILEE_MAX_TITLE_LENGTH="Max. Title Length"
MOD_JEM_JUBILEE_MAX_TITLE_LENGTH_DESC="Max. length of the title."
MOD_JEM_JUBILEE_LINK_TO_DETAILS="Link to Event on Title"
MOD_JEM_JUBILEE_LINK_TO_DETAILS_DESC="Link to the event page on Title."
MOD_JEM_JUBILEE_SHOWDESC="Show Description"
MOD_JEM_JUBILEE_SHOWDESC_DESC="Show or Hide Eventdescription"
MOD_JEM_JUBILEE_SHOWFLYER="Show Flyer"
MOD_JEM_JUBILEE_SHOWFLYER_DESC="Show or hide event's image."
MOD_JEM_JUBILEE_SHOWVENUE="Show Venue"
MOD_JEM_JUBILEE_SHOWVENUE_DESC="Show or hide venue."
MOD_JEM_JUBILEE_SHOWCATEGORY="Show Category"
MOD_JEM_JUBILEE_SHOWCATEGORY_DESC="Show or hide category."
MOD_JEM_JUBILEE_LINK_TO_CATEGORY="Link to Category"
MOD_JEM_JUBILEE_LINK_TO_CATEGORY_DESC="Link to the Category. Only if Show Category was chosen above!"
MOD_JEM_JUBILEE_LINK_TO_VENUE="Link to Venue"
MOD_JEM_JUBILEE_LINK_TO_VENUE_DESC="Link to the Venue. Only if Show Venue was chosen above!"
; MOD_JEM_JUBILEE_USE_MODAL="Modal Window"
; MOD_JEM_JUBILEE_USE_MODAL_DESC="The modal window shows the image in original size after a click with a nice effect within the current screen"
MOD_JEM_JUBILEE_FLYER_LINKS_TO="Flyer Links to..."
MOD_JEM_JUBILEE_FLYER_LINKS_TO_DESC="A click on the flyer image will show the image in original size on full page, in a modal popup window, or opens event's details view. This setting requires Show Flyer set to Yes."
MOD_JEM_JUBILEE_FLYER_LINK_IMAGE_PAGE="Image on full page"
MOD_JEM_JUBILEE_FLYER_LINK_IMAGE_MODAL="Image in modal window"
MOD_JEM_JUBILEE_FLYER_LINK_EVENT_DETAILS="Event's details view"
MOD_JEM_JUBILEE_DATE="Date"
MOD_JEM_JUBILEE_CATEGORY_ID="Categories"
MOD_JEM_JUBILEE_CATEGORY_ID_DESC="Choose categories to limit the output to them. Leave blank if you want to show all events."
MOD_JEM_JUBILEE_VENUE_ID="Venues"
MOD_JEM_JUBILEE_VENUE_ID_DESC="Choose venues to limit the output to them. Leave blank if you want to show all events."
MOD_JEM_JUBILEE_STATE="County"
MOD_JEM_JUBILEE_STATE_DESC="Type in comma separated counties to limit the events to the choosen ones. Leave blank to display events from all states."
MOD_JEM_JUBILEE_STATE_MODE="County Match Mode"
MOD_JEM_JUBILEE_STATE_MODE_DESC="Select if county must completely match one of the strings given above, or only contain one."
MOD_JEM_JUBILEE_STATE_MODE_EXACTMATCH="Complete Match"
MOD_JEM_JUBILEE_STATE_MODE_CONTAINS="Contain"
MOD_JEM_JUBILEE_SHOW_DATE_OR_YEAR_DIFFERENCE="Date Display-Type"
MOD_JEM_JUBILEE_SHOW_DATE_OR_YEAR_DIFFERENCE_DESC="Select to hide date or show the formatted date or the difference in years from current day to the Event date."
MOD_JEM_JUBILEE_HIDE_DATE="Hide date"
MOD_JEM_JUBILEE_SHOW_DATE="Show date"
MOD_JEM_JUBILEE_SHOW_YEAR_DIFFERENCE="Show year difference"
MOD_JEM_JUBILEE_DATE_FORMAT="Date Format"
MOD_JEM_JUBILEE_DATE_FORMAT_DESC="Date format using the PHP Date format, for example: \"j. M Y\". For more information <a href=\"https://www.php.net/manual/en/datetime.format.php\" target=\"_blank\">visit the PHP manual</a>."
MOD_JEM_JUBILEE_SHOWTIME="Show Time"
MOD_JEM_JUBILEE_SHOWTIME_DESC="Show or hide time."
MOD_JEM_JUBILEE_TIME_FORMAT="Time Format"
MOD_JEM_JUBILEE_TIME_FORMAT_DESC="Time format using the PHP time format, for example: \"H:i\". For more information <a href=\"https://www.php.net/manual/en/datetime.format.php\" target=\"_blank\">visit the PHP manual</a>."
MOD_JEM_JUBILEE_MODULE_CLASS_SUFFIX="Module Class Suffix"
MOD_JEM_JUBILEE_MODULE_CLASS_SUFFIX_DESC="A suffix to be applied to the css class of the module, this allows individual module styling."
MOD_JEM_JUBILEE_CACHING="Caching"
MOD_JEM_JUBILEE_CACHING_DESC="Select whether to cache the content of this module."
MOD_JEM_JUBILEE_USE_GLOBAL="Use global"
MOD_JEM_JUBILEE_NO_CACHING="No caching"
MOD_JEM_JUBILEE_CACHE_TIME="Cache Time"
MOD_JEM_JUBILEE_CACHE_TIME_DESC="The time before the module is recached."
MOD_JEM_JUBILEE_ALLOW_LINEBREAK="Allow Linebreak"
MOD_JEM_JUBILEE_ALLOW_LINEBREAK_DESC="Allow linebreaks or replace them by a space."
MOD_JEM_JUBILEE_MAX_DESCRIPTION_LENGTH="Max Description Length"
MOD_JEM_JUBILEE_MAX_DESCRIPTION_LENGTH_DESC="Limit description shown to this amount of characters."
MOD_JEM_JUBILEE_FIELD_READMORE_DESC="If set to Show, the 'Read more...' link will show if Main text has been provided for an Event."
MOD_JEM_JUBILEE_FIELD_READMORE_LABEL="'Read more...' Link"
MOD_JEM_JUBILEE_SHOWCALENDAR="Show Calendar"
MOD_JEM_JUBILEE_SHOWCALENDAR_DESC="Shows a calendar image with the day and month the module is searching events for."
MOD_JEM_JUBILEE_COLOR="Color"
MOD_JEM_JUBILEE_COLOR_DESC="Color of the Calendar image. If \"user-defined\" is choosen color value will be taken from field below."
MOD_JEM_JUBILEE_BLUE="Blue"
MOD_JEM_JUBILEE_GREEN="Green"
MOD_JEM_JUBILEE_ORANGE="Orange"
MOD_JEM_JUBILEE_RED="Red"
MOD_JEM_JUBILEE_USER="user-defined"
MOD_JEM_JUBILEE_USER_COLOR="User Color"
MOD_JEM_JUBILEE_USER_COLOR_DESC="Color used if \"user-defined\" is choosen above."
MOD_JEM_JUBILEE_SHUFFLE="Shuffle Events"
MOD_JEM_JUBILEE_SHUFFLE_DESC="If there are more events to show randomly choose events from pool."
MOD_JEM_JUBILEE_SHUFFLE_COUNT="Shuffle Pool Limit"
MOD_JEM_JUBILEE_SHUFFLE_COUNT_DESC="Limits events read from database by max. amount, but will be corrected to at least number of events to show."
MOD_JEM_JUBILEE_INTROTEXT="Intro Text"
MOD_JEM_JUBILEE_INTROTEXT_DESC="Text shown above the events right beside the calendar image. Supported bbCodes are [day], [month], [year]. Keep empty to show no intro text."
MOD_JEM_JUBILEE_ORDER="Event Order"
MOD_JEM_JUBILEE_ORDER_DESC="The order that events will show in."
MOD_JEM_JUBILEE_ORDER_ASCENDING="Date ascending"
MOD_JEM_JUBILEE_ORDER_DESCENDING="Date descending"
MOD_JEM_JUBILEE="JEM - Module-Jubilee"
MOD_JEM_JUBILEE_XML_DESCRIPTION="JEM Anniversary Events Jubilee Module."
;Frontend
MOD_JEM_JUBILEE_TODAY="Today"
MOD_JEM_JUBILEE_TOMORROW="Tomorrow"
MOD_JEM_JUBILEE_YESTERDAY="Yesterday"
; MOD_JEM_JUBILEE_YEAR_AGO="%s year ago"
; MOD_JEM_JUBILEE_YEARS_AGO="%s years ago"
; MOD_JEM_JUBILEE_NEARLY_YEAR_AGO="Nearly %s year ago"
; MOD_JEM_JUBILEE_NEARLY_YEARS_AGO="Nearly %s years ago"
; MOD_JEM_JUBILEE_OVER_YEAR_AGO="More than %s year ago"
; MOD_JEM_JUBILEE_OVER_YEARS_AGO="More than %s years ago"
; MOD_JEM_JUBILEE_MONTHS_AGO="%s months ago"
; MOD_JEM_JUBILEE_DAYS_AGO="%s days ago"
; MOD_JEM_JUBILEE_YEAR_AHEAD="%s year ahead"
; MOD_JEM_JUBILEE_YEARS_AHEAD="%s years ahead"
; MOD_JEM_JUBILEE_NEARLY_YEAR_AHEAD="Nearly %s year ahead"
; MOD_JEM_JUBILEE_NEARLY_YEARS_AHEAD="Nearly %s years ahead"
; MOD_JEM_JUBILEE_OVER_YEAR_AHEAD="More than %s year ahead"
; MOD_JEM_JUBILEE_OVER_YEARS_AHEAD="More than %s years ahead"
; MOD_JEM_JUBILEE_MONTHS_AHEAD="%s months ahead"
; MOD_JEM_JUBILEE_DAYS_AHEAD="%s days ahead"
; MOD_JEM_JUBILEE_DAYS_LEFT="%s days left"
; MOD_JEM_JUBILEE_ENDED_YEAR_AGO="Ended %s year ago"
; MOD_JEM_JUBILEE_ENDED_YEARS_AGO="Ended %s years ago"
; MOD_JEM_JUBILEE_ENDED_NEARLY_YEAR_AGO="Ended nearly %s year ago"
; MOD_JEM_JUBILEE_ENDED_NEARLY_YEARS_AGO="Ended nearly %s years ago"
; MOD_JEM_JUBILEE_ENDED_OVER_YEAR_AGO="Ended more than %s year ago"
; MOD_JEM_JUBILEE_ENDED_OVER_YEARS_AGO="Ended more than %s years ago"
; MOD_JEM_JUBILEE_ENDED_DAY_AGO="Ended %s day ago"
; MOD_JEM_JUBILEE_ENDED_DAYS_AGO="Ended %s days ago"
; MOD_JEM_JUBILEE_STARTED_YEAR_AGO="Started %s year ago"
; MOD_JEM_JUBILEE_STARTED_YEARS_AGO="Started %s years ago"
; MOD_JEM_JUBILEE_STARTED_NEARLY_YEAR_AGO="Started nearly %s year ago"
; MOD_JEM_JUBILEE_STARTED_NEARLY_YEARS_AGO="Started nearly %s years ago"
; MOD_JEM_JUBILEE_STARTED_OVER_YEAR_AGO="Started more than %s year ago"
; MOD_JEM_JUBILEE_STARTED_OVER_YEARS_AGO="Started more than %s years ago"
; MOD_JEM_JUBILEE_STARTED_DAYS_AGO="Started %s days ago"
MOD_JEM_JUBILEE_FROM="From %s"
MOD_JEM_JUBILEE_UNTIL="Until %s"
MOD_JEM_JUBILEE_FROM_UNTIL="From %s Until %s"
MOD_JEM_JUBILEE_ON_DATE="On %s"
MOD_JEM_JUBILEE_READMORE="Read more..."
MOD_JEM_JUBILEE_READMORE_REGISTER="Login to read more details."
MOD_JEM_JUBILEE_NO_DESCRIPTION=""
MOD_JEM_JUBILEE_NO_EVENTS="No events found."

View File

@ -0,0 +1,13 @@
; @package JEM
; @subpackage JEM Jubilee Module
; @copyright (C) 2013-2024 joomlaeventmanager.net
; @copyright (C) 2005-2009 Christoph Lukes
; @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
;
; All translations can be found at https://app.transifex.com/jemproject/
; Please join the translation team if you want to contribute your changes to the translations
;
; Note: All ini files need to be saved as UTF-8, no BOM
MOD_JEM_JUBILEE="JEM - Jubilee Module"
MOD_JEM_JUBILEE_XML_DESCRIPTION="This module shows anniversary events as banner."

View File

@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@ -0,0 +1,58 @@
<?php
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
// get module helper
require_once __DIR__ . '/helper.php';
//require needed component classes
require_once(JPATH_SITE.'/components/com_jem/helpers/helper.php');
require_once(JPATH_SITE.'/components/com_jem/helpers/route.php');
require_once(JPATH_SITE.'/components/com_jem/classes/image.class.php');
require_once(JPATH_SITE.'/components/com_jem/classes/output.class.php');
require_once(JPATH_SITE.'/components/com_jem/factory.php');
Factory::getApplication()->getLanguage()->load('com_jem', JPATH_SITE.'/components/com_jem');
switch($params->get('color')) {
case 'red':
case 'blue':
case 'green':
case 'orange':
case 'alpha':
$color = $params->get('color');
break;
default:
$color = "red";
// ensure getList() always gets a valid 'color' setting
$params->set('color', $color);
break;
}
$list = ModJemJubileeHelper::getList($params);
// check if any results returned
if (empty($list)) {
// return;
}
$mod_name = 'mod_jem_jubilee';
$jemsettings = JemHelper::config();
$iconcss = $mod_name . (($jemsettings->useiconfont == 1) ? '_iconfont' : '_iconimg');
JemHelper::loadModuleStyleSheet($mod_name);
JemHelper::loadModuleStyleSheet($mod_name, $color);
JemHelper::loadModuleStyleSheet($mod_name, $iconcss);
// load icon font if needed
JemHelper::loadIconFont();
require(JemHelper::getModuleLayoutPath($mod_name));

View File

@ -0,0 +1,305 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5" client="site" method="upgrade">
<name>mod_jem_jubilee</name>
<author>JEM Community</author>
<authorEmail>info@joomlaeventmanager.net</authorEmail>
<authorUrl>https://www.joomlaeventmanager.net</authorUrl>
<creationDate>October 2024</creationDate>
<copyright>copyright (C) 2015-2023 joomlaeventmanager.net</copyright>
<license>https://www.gnu.org/licenses/gpl-3.0 GNU/GPL</license>
<version>4.3.1</version>
<description>MOD_JEM_JUBILEE_XML_DESCRIPTION</description>
<scriptfile>script.php</scriptfile>
<files>
<filename module="mod_jem_jubilee">mod_jem_jubilee.php</filename>
<filename>helper.php</filename>
<filename>script.php</filename>
<filename>index.html</filename>
<folder>tmpl</folder>
<folder>language</folder>
</files>
<languages>
<language tag="en-GB">language/en-GB/mod_jem_jubilee.ini</language>
<language tag="en-GB">language/en-GB/mod_jem_jubilee.sys.ini</language>
</languages>
<help key="Modules" />
<config>
<fields name="params">
<fieldset name="basic" addfieldpath="/administrator/components/com_jem/models/fields">
<field name="introtext" type="textarea"
filter="safehtml"
default=""
rows="3"
cols="30"
label="MOD_JEM_JUBILEE_INTROTEXT"
description="MOD_JEM_JUBILEE_INTROTEXT_DESC"
/>
<field name="status" type="list"
default="2"
label="MOD_JEM_JUBILEE_PUBLISHING_STATE"
description="MOD_JEM_JUBILEE_PUBLISHING_STATE_DESC"
>
<option value="1">MOD_JEM_JUBILEE_PUBLISHED_EVENTS</option>
<option value="2">MOD_JEM_JUBILEE_ARCHIVED_EVENTS</option>
<option value="3">MOD_JEM_JUBILEE_BOTH_EVENTS</option>
</field>
<field name="count" type="text"
default="5"
label="MOD_JEM_JUBILEE_EVENTS_IN_MODULE"
description="MOD_JEM_JUBILEE_EVENTS_IN_MODULE_DESC"
/>
<field name="offset_days" type="text"
default=""
label="MOD_JEM_JUBILEE_OFFSET_DAYS"
description="MOD_JEM_JUBILEE_OFFSET_DAYS_DESC"
/>
<field name="date_match_mode" type="list"
default="0"
label="MOD_JEM_JUBILEE_DATE_MATCH_MODE"
description="MOD_JEM_JUBILEE_DATE_MATCH_MODE_DESC"
>
<option value="0">MOD_JEM_JUBILEE_DATE_MATCH_FROM_START_TO_END</option>
<option value="1">MOD_JEM_JUBILEE_DATE_MATCH_ON_START</option>
<option value="2">MOD_JEM_JUBILEE_DATE_MATCH_ON_END</option>
<option value="3">MOD_JEM_JUBILEE_DATE_MATCH_ON_START_OR_END</option>
</field>
<field name="shuffle" type="radio"
default="0"
label="MOD_JEM_JUBILEE_SHUFFLE"
description="MOD_JEM_JUBILEE_SHUFFLE_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="shuffle_count" type="text"
default=""
label="MOD_JEM_JUBILEE_SHUFFLE_COUNT"
description="MOD_JEM_JUBILEE_SHUFFLE_COUNT_DESC"
/>
<field name="order" type="list"
default="0"
label="MOD_JEM_JUBILEE_ORDER"
description="MOD_JEM_JUBILEE_ORDER_DESC"
>
<option value="0">MOD_JEM_JUBILEE_ORDER_DESCENDING</option>
<option value="1">MOD_JEM_JUBILEE_ORDER_ASCENDING</option>
</field>
<field name="cuttitle" type="text"
default="25"
label="MOD_JEM_JUBILEE_MAX_TITLE_LENGTH"
description="MOD_JEM_JUBILEE_MAX_TITLE_LENGTH_DESC"
/>
<field name="linkevent" type="radio"
default="1"
label="MOD_JEM_JUBILEE_LINK_TO_DETAILS"
description="MOD_JEM_JUBILEE_LINK_TO_DETAILS_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="showcalendar" type="radio"
default="1"
label="MOD_JEM_JUBILEE_SHOWCALENDAR"
description="MOD_JEM_JUBILEE_SHOWCALENDAR_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="color" type="list"
default="1"
label="MOD_JEM_JUBILEE_COLOR"
description="MOD_JEM_JUBILEE_COLOR_DESC"
>
<option value="red">MOD_JEM_JUBILEE_RED</option>
<option value="blue">MOD_JEM_JUBILEE_BLUE</option>
<option value="green">MOD_JEM_JUBILEE_GREEN</option>
<option value="orange">MOD_JEM_JUBILEE_ORANGE</option>
<option value="alpha">MOD_JEM_JUBILEE_USER</option>
</field>
<field name="usercolor" type="color"
class="inputbox"
default="#EEEEEE"
size="8"
label="MOD_JEM_JUBILEE_USER_COLOR"
description="MOD_JEM_JUBILEE_USER_COLOR_DESC"
/>
<field name="showflyer" type="radio"
default="1"
label="MOD_JEM_JUBILEE_SHOWFLYER"
description="MOD_JEM_JUBILEE_SHOWFLYER_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="flyer_link_type" type="list"
default="0"
label="MOD_JEM_JUBILEE_FLYER_LINKS_TO"
description="MOD_JEM_JUBILEE_FLYER_LINKS_TO_DESC"
>
<option value="0">MOD_JEM_JUBILEE_FLYER_LINK_IMAGE_PAGE</option>
<option value="1">MOD_JEM_JUBILEE_FLYER_LINK_IMAGE_MODAL</option>
<option value="2">MOD_JEM_JUBILEE_FLYER_LINK_EVENT_DETAILS</option>
<option value="3">COM_JEM_NO_LINK</option>
</field>
<field name="showdesc" type="radio"
default="1"
label="MOD_JEM_JUBILEE_SHOWDESC"
description="MOD_JEM_JUBILEE_SHOWDESC_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="descriptionlength" type="text"
default="300"
label="MOD_JEM_JUBILEE_MAX_DESCRIPTION_LENGTH"
description="MOD_JEM_JUBILEE_MAX_DESCRIPTION_LENGTH_DESC"
/>
<field name="br" type="radio"
default="0"
label="MOD_JEM_JUBILEE_ALLOW_LINEBREAK"
description="MOD_JEM_JUBILEE_ALLOW_LINEBREAK_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="readmore" type="radio"
default="0"
label="MOD_JEM_JUBILEE_FIELD_READMORE_LABEL"
description="MOD_JEM_JUBILEE_FIELD_READMORE_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="datemethod" type="list"
default="0"
label="MOD_JEM_JUBILEE_SHOW_DATE_OR_YEAR_DIFFERENCE"
description="MOD_JEM_JUBILEE_SHOW_DATE_OR_YEAR_DIFFERENCE_DESC"
>
<option value="0">MOD_JEM_JUBILEE_HIDE_DATE</option>
<option value="1">MOD_JEM_JUBILEE_SHOW_DATE</option>
<option value="2">MOD_JEM_JUBILEE_SHOW_YEAR_DIFFERENCE</option>
</field>
<field name="formatdate" type="text"
default=""
label="MOD_JEM_JUBILEE_DATE_FORMAT"
description="MOD_JEM_JUBILEE_DATE_FORMAT_DESC"
/>
<field name="showtime" type="radio"
default="0"
label="MOD_JEM_JUBILEE_SHOWTIME"
description="MOD_JEM_JUBILEE_SHOWTIME_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="formattime" type="text"
default=""
label="MOD_JEM_JUBILEE_TIME_FORMAT"
description="MOD_JEM_JUBILEE_TIME_FORMAT_DESC"
/>
<field name="showcategory" type="radio"
default="0"
label="MOD_JEM_JUBILEE_SHOWCATEGORY"
description="MOD_JEM_JUBILEE_SHOWCATEGORY_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="linkcategory" type="radio"
default="1"
label="MOD_JEM_JUBILEE_LINK_TO_CATEGORY"
description="MOD_JEM_JUBILEE_LINK_TO_CATEGORY_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="showvenue" type="radio"
default="0"
label="MOD_JEM_JUBILEE_SHOWVENUE"
description="MOD_JEM_JUBILEE_SHOWVENUE_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="linkvenue" type="radio"
default="1"
label="MOD_JEM_JUBILEE_LINK_TO_VENUE"
description="MOD_JEM_JUBILEE_LINK_TO_VENUE_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="catid" type="categoryedit"
default=""
multiple="true"
removeroot="true"
label="MOD_JEM_JUBILEE_CATEGORY_ID"
description="MOD_JEM_JUBILEE_CATEGORY_ID_DESC"
/>
<field name="venid" type="venueoptions"
default=""
multiple="true"
label="MOD_JEM_JUBILEE_VENUE_ID"
description="MOD_JEM_JUBILEE_VENUE_ID_DESC"
/>
<field name="stateloc" type="text"
default=""
label="MOD_JEM_JUBILEE_STATE"
description="MOD_JEM_JUBILEE_STATE_DESC"
/>
<field name="stateloc_mode" type="list"
default="0"
label="MOD_JEM_JUBILEE_STATE_MODE"
description="MOD_JEM_JUBILEE_STATE_MODE_DESC"
>
<option value="0">MOD_JEM_JUBILEE_STATE_MODE_EXACTMATCH</option>
<option value="1">MOD_JEM_JUBILEE_STATE_MODE_CONTAINS</option>
</field>
<field name="moduleclass_sfx" type="text"
default=""
label="MOD_JEM_JUBILEE_MODULE_CLASS_SUFFIX"
description="MOD_JEM_JUBILEE_MODULE_CLASS_SUFFIX_DESC"
/>
</fieldset>
<fieldset name="advanced">
<field name="cache" type="list"
default="1"
label="MOD_JEM_JUBILEE_CACHING"
description="MOD_JEM_JUBILEE_CACHING_DESC"
>
<option value="1">MOD_JEM_JUBILEE_USE_GLOBAL</option>
<option value="0">MOD_JEM_JUBILEE_NO_CACHING</option>
</field>
<field name="cache_time" type="text"
default="900"
label="MOD_JEM_JUBILEE_CACHE_TIME"
description="MOD_JEM_JUBILEE_CACHE_TIME_DESC"
/>
</fieldset>
</fields>
</config>
</extension>

View File

@ -0,0 +1,131 @@
<?php
/**
* @package JEM
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\Registry\Registry;
/**
* Script file of JEM component
*/
class mod_jem_jubileeInstallerScript
{
private $name = 'mod_jem_jubilee';
private $oldRelease = "";
private $newRelease = "";
/**
* method to run before an install/update/uninstall method
* (it seams method is not called on uninstall)
*
* @return void
*/
function preflight($type, $parent)
{
// abort if the release being installed is not newer than the currently installed version
if (strtolower($type) == 'update') {
// Installed component version
$this->oldRelease = $this->getParam('version');
// Installing component version as per Manifest file
$this->newRelease = (string) $parent->getManifest()->version;
if (version_compare($this->newRelease, $this->oldRelease, 'lt')) {
return false;
}
}
}
/**
* Method to run after an install/update/uninstall method
* (it seams method is not called on uninstall)
*
* @return void
*/
function postflight($type, $parent)
{
if (strtolower($type) == 'update') {
// Changes between 2.1.5 -> 2.1.6
if (version_compare($this->oldRelease, '2.1.6-rc3', 'le') && version_compare($this->newRelease, '2.1.6-rc3', 'ge')) {
// change category/venue/event ID lists from string to array
$this->updateParams216();
}
}
}
/**
* Get a parameter from the manifest file (actually, from the manifest cache).
*
* @param $name The name of the parameter
*
* @return The parameter
*/
private function getParam($name)
{
$db = Factory::getContainer()->get('DatabaseDriver');
$query = $db->getQuery(true);
$query->select('manifest_cache')->from('#__extensions')->where(array("type = 'module'", "element = '".$this->name."'"));
$db->setQuery($query);
$manifest = json_decode($db->loadResult(), true);
return $manifest[$name];
}
/**
* Increment category ids in params of JEM modules.
* (required when updating from 1.9.4 or below to 1.9.5 or newer)
*
* @return void
*/
private function updateParams216()
{
// get all "mod_jem..." entries
$db = Factory::getContainer()->get('DatabaseDriver');
$query = $db->getQuery(true);
$query->select('id, params');
$query->from('#__modules');
$query->where('module = "' . $this->name . '"');
$db->setQuery($query);
$items = $db->loadObjectList();
foreach ($items as $item) {
// Decode the item params
$reg = new Registry;
$reg->loadString($item->params);
$modified = false;
// catid - if string then convert to array
$ids = $reg->get('catid');
if (!empty($ids) && is_string($ids)) {
$reg->set('catid', explode(',', $ids));
$modified = true;
}
// venid - if string then convert to array
$ids = $reg->get('venid');
if (!empty($ids) && is_string($ids)) {
$reg->set('venid', explode(',', $ids));
$modified = true;
}
// write back
if ($modified) {
// write changed params back into DB
$query = $db->getQuery(true);
$query->update('#__modules');
$query->set('params = '.$db->quote((string)$reg));
$query->where(array('id = '.$db->quote($item->id)));
$db->setQuery($query);
$db->execute();
}
}
}
}

View File

@ -0,0 +1,55 @@
.jem-jubilee-calendar {
width: 80px;
height: 80px;
position: relative;
overflow: hidden;
box-shadow: 3px 4px 4px -3px rgba(0, 0, 0, 0.3), -3px 4px 4px -3px rgba(0, 0, 0, 0.3);
border-radius: 0 0 5px 5px;
}
.jem-jubilee-calendar .color-bar {
position: absolute;
top: 5px;
left: 0;
right: 0;
height: 24px;
border-radius: 5px 5px 0 0;
}
.jem-jubilee-calendar .lower-background {
position: absolute;
top: 29px;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to top, #ddd 0%, #fff 50%);
}
.jem-jubilee-calendar .background-image {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url('img/cal.png');
background-repeat: no-repeat;
background-position: top;
background-size: contain;
z-index: 1;
}
#jemmodulejubilee [class|="calendar"] .monthjubilee.monthcolor-dark {
color: black;
text-shadow: -1px -1px 0 rgba(255,255,255,0.2),
1px -1px 0 rgba(255,255,255,0.2),
-1px 1px 0 rgba(255,255,255,0.2),
1px 1px 0 rgba(255,255,255,0.2);
}
#jemmodulejubilee [class|="calendar"] .monthjubilee.monthcolor-light {
color: #FFF;
text-shadow: -1px -1px 0 rgba(0,0,0,0.2),
1px -1px 0 rgba(0,0,0,0.2),
-1px 1px 0 rgba(0,0,0,0.2),
1px 1px 0 rgba(0,0,0,0.2);
}

View File

@ -0,0 +1,181 @@
<?php
/**
* @version 2.3.6
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2014-2019 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
defined('_JEXEC') or die;
$datemethod = (int)$params->get('datemethod', 0);
$showtime = (int)$params->get('showtime', 0);
$showcalendar = (int)$params->get('showcalendar', 1);
$introtext = $params->get('introtext', '');
$showflyer = (int)$params->get('showflyer', 1);
$flyer_link_type = (int)$params->get('flyer_link_type', 0);
$colorclass = $params->get('color');
$user_color = $params->get('usercolor', '#EEEEEE');
$user_color_is_dark = $params->get('usercolor_is_dark', false);
$date = (array)$params->get('date');
if ($flyer_link_type == 1) {
JHtml::_('behavior.modal', 'a.flyermodal');
$modal = 'flyermodal';
} elseif ($flyer_link_type == 0) {
$modal = 'notmodal';
} else {
$modal = '';
}
?>
<div class="jemmodulejubilee<?php echo $params->get('moduleclass_sfx'); ?>" id="jemmodulejubilee">
<?php ?>
<div class="eventset" summary="mod_jem_jubilee">
<?php if ($showcalendar == 1) :?>
<div>
<div class="calendar<?php echo '-'.$colorclass; ?>"
<?php if (($colorclass == 'alpha') && !empty($user_color)) : ?>
style="background-color: <?php echo $user_color; ?>"
<?php endif; ?>
>
<div class="monthjubilee monthjubilee-<?php echo ($user_color_is_dark ? 'light' : 'dark'); ?>">
<?php echo $date['month']; ?>
</div>
<div class="dayjubilee">
<?php /*echo $date['weekday'];*/ ?>
</div>
<div class="daynumjubilee">
<?php echo $date['day']; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if (!empty($introtext)) :?>
<div class="intro">
<?php echo $introtext; ?>
</div>
<?php endif; ?>
<?php $i = count($list); ?>
<?php if ($i == 0) : ?>
<div class="clr"></div>
<div class="hr"><hr /></div>
<p><?php echo JText::_('MOD_JEM_JUBILEE_NO_EVENTS'); ?></p>
<?php else : ?>
<?php foreach ($list as $item) : ?>
<div class="clr"></div>
<div class="hr"><hr /></div>
<h2 class="event-title">
<?php echo $item->startdate['year'] . ': '; ?>
<?php if ($item->eventlink) : ?>
<a href="<?php echo $item->eventlink; ?>" title="<?php echo $item->fulltitle; ?>"><?php echo $item->title; ?></a>
<?php else : ?>
<?php echo $item->title; ?>
<?php endif; ?>
</h2>
<div>
<?php if (($showflyer == 1) && !empty($item->eventimage)) : ?>
<div>
<div class="banner-jem">
<div>
<a href="<?php echo ($flyer_link_type == 2) ? $item->eventlink : $item->eventimageorig; ?>" class="<?php echo $modal;?>"
title="<?php echo ($flyer_link_type == 2) ? $item->fulltitle : JText::_('MOD_JEM_JUBILEE_CLICK_TO_ENLARGE'); ?> ">
<img class="float_right <?php echo 'image-preview2'; ?>" src="<?php echo $item->eventimageorig; ?>" alt="<?php echo $item->title; ?>" />
</a>
</div>
</div>
</div>
<div class="clr"></div>
<?php else /* showflyer == 0 or no image */ : ?>
<div>
<div class="banner-jem">
</div>
</div>
<?php endif; ?>
<?php if ($params->get('showdesc', 1) == 1) :?>
<div class="desc">
<?php echo $item->eventdescription; ?>
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) :
echo '</br><a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>';
endif;?>
</div>
<?php endif; ?>
</div>
<div class="clr"></div>
<?php /* Datum und Zeitangabe:
* showcalendar 1, datemethod 1 : date inside calendar image + time
* showcalendar 1, datemethod 2 : date inside calendar image + relative date + time
* showcalendar 0, datemethod 1 : no calendar image, date + time
* showcalendar 0, datemethod 2 : no calendar image, relative date + time
*/
?>
<?php /* wenn kein Kalenderblatt angezeigt wird */ ?>
<?php if (1/*$showcalendar == 0*/) : ?>
<?php if ($item->date && $datemethod == 2) :?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php endif; ?>
<?php if ($item->date && $datemethod == 1) :?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php if ($showtime == 1 && $item->time && $datemethod == 1) :?>
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->time; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<?php /* wenn Kalenderblatt angezeigt wird */ ?>
<?php else : ?>
<?php /* wenn Zeitdifferenz angezeigt werden soll */ ?>
<?php if ($item->date && $datemethod == 2) : ?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php endif; ?>
<?php /* wenn Datum angezeigt werden soll */ ?>
<?php if ($showtime == 1 && $item->time && $datemethod == 1) :?>
<?php /* es muss nur noch die Zeit angezeigt werden (da Datum auf Kalenderblatt schon angezeigt) */ ?>
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->time; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="clr"></div>
<?php /*venue*/ ?>
<?php if (($params->get('showvenue', 1) == 1) && !empty($item->venue)) :?>
<div class="venue-title">
<?php if ($item->venuelink) : ?>
<a href="<?php echo $item->venuelink; ?>" title="<?php echo $item->venue; ?>"><?php echo $item->venue; ?></a>
<?php else : ?>
<?php echo $item->venue; ?>
<?php endif; ?>
</div>
<?php endif; ?>
<?php /*category*/ ?>
<?php if (($params->get('showcategory', 1) == 1) && !empty($item->catname)) :?>
<div class="category">
<?php echo $item->catname; ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
<div class="clr"></div>
<?php endif; ?>
</div>
</div>

View File

@ -0,0 +1,150 @@
/**
* @version 2.3.6
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2014-2019 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
div#jemmodulejubilee {
width: 100%;
}
div#jemmodulejubilee .banner-jem {
font-size: smaller;
}
#jemmodulejubilee [class|="calendar"] {
background-repeat: no-repeat;
width: 84px;
height: 82px; /* + padding = 87px */
font-family: 'Lucida Grande',Geneva,Arial,Verdana,sans-serif;
text-align: center;
padding: 5px 0 0 0;
float:left;
margin-right:10px;
line-height: 24px;
}
#jemmodulejubilee span.share {
margin-left:95px;
}
#jemmodulejubilee [class|="calendar"] .yearjubilee {
font-size: 6px;
height:5px;
color: #e1e1e1;
}
#jemmodulejubilee [class|="calendar"] .monthjubilee {
font-size: 8px;
color: white;
text-transform:uppercase;
font-weight:bold;
text-shadow: #666 1px 1px 1px;
height:20px;
}
#jemmodulejubilee [class|="calendar"] .dayjubilee {
font-weight:bold;
font-size: 12px;
padding-top:3px;
min-height: 16px;
color: #333;
}
#jemmodulejubilee [class|="calendar"] .daynumjubilee {
font-size: 29px;
font-weight:bold;
color: #FF6400;
text-shadow: #000 1px 1px 1px;
}
div#jemmodulejubilee .eventset {
margin-bottom: 10px;
padding: 5px;
border: 1px dotted silver;
text-align: left;
}
div#jemmodulejubilee .event-title {
padding-left: 0px;
font-size: x-large;
margin: 0 0 5px;
}
div#jemmodulejubilee .desc {
padding-left: 0px;
padding-top: 2px;
font-size: small;
}
div#jemmodulejubilee .time {
padding-left: 20px;
background: url(../img/time.png) 0 center no-repeat;
padding-top: 2px;
font-weight: normal;
font-size: smaller;
float: left;
}
div#jemmodulejubilee div.date {
padding-left: 20px;
background: url(../img/date.png) 0 center no-repeat;
padding-top: 2px;
font-weight: normal;
font-size: smaller;
float: left;
margin-right: 4px;
}
div#jemmodulejubilee .category {
position: relative;
padding-left: 20px;
background: url(../img/category.png) 0 center no-repeat;
font-size: smaller;
float: left;
}
div#jemmodulejubilee .venue-title {
position: relative;
padding-left: 20px;
background: url(../img/venue.png) 0 center no-repeat;
font-size: smaller;
float: left;
margin-right: 8px;
}
div#jemmodulejubilee .event-image-cell {
}
div#jemmodulejubilee .venue-image-cell {
}
div#jemmodulejubilee .image-preview {
max-width: 110px;
border: 0px solid #CCCCCC;
padding: 3px;
background-color: white;
margin: 2px;
}
div#jemmodulejubilee .image-preview2 {
max-width: 200px;
border: 0px solid #CCCCCC;
padding: 3px;
background-color: white;
margin: 2px;
}
div#jemmodulejubilee .hr {
color: silver;
height: 12px;
}
div#jemmodulejubilee .clr {
clear: both;
}

View File

@ -0,0 +1,10 @@
/**
* @version 2.3.6
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2014-2019 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
/* This template uses images in any case, so keep this empty file to prevent legacy fallback. */

View File

@ -0,0 +1,10 @@
/**
* @version 2.3.6
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2014-2019 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
/* This template uses images in any case, so keep this empty file to prevent legacy fallback. */

View File

@ -0,0 +1,12 @@
#jemmodulejubilee .calendar-blue {
background-image: url(img/calendar_blue.png);
background-size: 100%;
}
#jemmodulejubilee .calendar-blue .monthjubilee {
color: #fff;
text-shadow: -1px -1px 0 rgba(0,0,0,0.2),
1px -1px 0 rgba(0,0,0,0.2),
-1px 1px 0 rgba(0,0,0,0.2),
1px 1px 0 rgba(0,0,0,0.2);
}

View File

@ -0,0 +1,196 @@
<?php
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Language\Text;
$datemethod = (int)$params->get('datemethod', 0);
$showtime = (int)$params->get('showtime', 0);
$showcalendar = (int)$params->get('showcalendar', 1);
$introtext = $params->get('introtext', '');
$showflyer = (int)$params->get('showflyer', 1);
$flyer_link_type = (int)$params->get('flyer_link_type', 0);
$colorclass = $params->get('color');
$user_color = $params->get('usercolor', '#EEEEEE');
$user_color_is_dark = $params->get('usercolor_is_dark', false);
$date = (array)$params->get('date');
if ($flyer_link_type == 1) {
echo JemOutput::lightbox();
$modal = 'lightbox';
} elseif ($flyer_link_type == 0) {
$modal = 'notmodal';
} else {
$modal = '';
}
?>
<div class="jemmodulejubilee<?php echo $params->get('moduleclass_sfx'); ?>" id="jemmodulejubilee">
<?php ?>
<div class="eventset">
<?php if ($showcalendar == 1) :?>
<?php if ($colorclass === "alpha"): ?>
<div class="calendar<?php echo '-' . $colorclass; ?> jem-jubilee-calendar">
<div class="color-bar" style="background-color:<?php echo !empty($user_color) ? $user_color : 'rgb(128,128,128)'; ?>"></div>
<div class="lower-background"></div>
<div class="background-image"></div>
<?php else: ?>
<div class="calendar<?php echo '-' . $colorclass; ?> jem-jubilee-calendar">
<?php endif; ?>
<?php if (isset($user_color_is_dark)) : ?>
<div class="monthjubilee monthcolor-<?php echo !empty($user_color_is_dark) ? 'light' : 'dark'; ?>">
<?php else : ?>
<div class="monthjubilee">
<?php endif;
echo $date['month']; ?>
</div>
<div class="dayjubilee">
<?php /*echo $date['weekday'];*/ ?>
</div>
<div class="daynumjubilee">
<?php echo $date['day']; ?>
</div>
</div>
<?php endif; ?>
<?php if (!empty($introtext)) :?>
<div class="intro">
<?php echo $introtext; ?>
</div>
<?php endif; ?>
<?php $i = count($list); ?>
<?php if ($i == 0) : ?>
<div class="clr"></div>
<div class="hr"><hr /></div>
<p><?php echo Text::_('MOD_JEM_JUBILEE_NO_EVENTS'); ?></p>
<?php else : ?>
<?php foreach ($list as $item) : ?>
<div class="clr"></div>
<div class="hr"><hr /></div>
<div class="event_id<?php echo $item->eventid; ?>" itemprop="event" itemscope itemtype="https://schema.org/Event">
<h2 class="event-title" itemprop="name" content="<?php echo $item->title; ?>">
<?php echo $item->startdate['year'] . ': '; ?>
<?php if ($item->eventlink) : ?>
<a href="<?php echo $item->eventlink; ?>" title="<?php echo $item->fulltitle; ?>" itemprop="url"><?php echo $item->title; ?></a>
<?php else : ?>
<?php echo $item->title; ?>
<?php endif; ?>
</h2>
<div>
<?php if (($showflyer == 1) && !empty($item->eventimage)) : ?>
<div>
<div class="banner-jem">
<?php if ($flyer_link_type != 3) : ?>
<a href="<?php echo ($flyer_link_type == 2) ? $item->eventlink : $item->eventimageorig; ?>" rel="<?php echo $modal;?>" class="jubilee-flyerimage" title="<?php echo ($flyer_link_type == 2) ? $item->fulltitle : Text::_('COM_JEM_CLICK_TO_ENLARGE'); ?>" data-title="<?php echo $item->title; ?>"><?php endif; ?>
<img class="float_right <?php echo 'image-preview2'; ?>" src="<?php echo $item->eventimageorig; ?>" alt="<?php echo $item->title; ?>" />
<?php if ($flyer_link_type != 3) { echo '</a>'; } ?>
</div>
</div>
<div class="clr"></div>
<?php else /* showflyer == 0 or no image */ : ?>
<div>
<div class="banner-jem">
</div>
</div>
<?php endif; ?>
<?php if ($params->get('showdesc', 1) == 1) :?>
<div class="desc" itemprop="description">
<?php echo $item->eventdescription; ?>
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) :
echo '</br><a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>';
endif;?>
</div>
<?php endif;
echo $item->dateschema; ?>
<div itemprop="location" itemscope itemtype="https://schema.org/Place" style="display:none;">
<meta itemprop="name" content="<?php echo $item->venue; ?>" />
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress" style="display:none;">
<meta itemprop="streetAddress" content="<?php echo $item->street; ?>" />
<meta itemprop="addressLocality" content="<?php echo $item->city; ?>" />
<meta itemprop="addressRegion" content="<?php echo $item->state; ?>" />
<meta itemprop="postalCode" content="<?php echo $item->postalCode; ?>" />
</div>
</div>
</div>
<div class="clr"></div>
<?php /* Datum und Zeitangabe:
* showcalendar 1, datemethod 1 : date inside calendar image + time
* showcalendar 1, datemethod 2 : date inside calendar image + relative date + time
* showcalendar 0, datemethod 1 : no calendar image, date + time
* showcalendar 0, datemethod 2 : no calendar image, relative date + time
*/
?>
<?php /* wenn kein Kalenderblatt angezeigt wird */ ?>
<?php if (1/*$showcalendar == 0*/) : ?>
<?php if ($item->date && $datemethod == 2) :?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php endif; ?>
<?php if ($item->date && $datemethod == 1) :?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php if ($showtime == 1 && $item->time && $datemethod == 1) :?>
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->time; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<?php /* wenn Kalenderblatt angezeigt wird */ ?>
<?php else : ?>
<?php /* wenn Zeitdifferenz angezeigt werden soll */ ?>
<?php if ($item->date && $datemethod == 2) : ?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php endif; ?>
<?php /* wenn Datum angezeigt werden soll */ ?>
<?php if ($showtime == 1 && $item->time && $datemethod == 1) :?>
<?php /* es muss nur noch die Zeit angezeigt werden (da Datum auf Kalenderblatt schon angezeigt) */ ?>
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->time; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="clr"></div>
<?php /*venue*/ ?>
<?php if (($params->get('showvenue', 1) == 1) && !empty($item->venue)) :?>
<div class="venue-title">
<?php if ($item->venuelink) : ?>
<a href="<?php echo $item->venuelink; ?>" title="<?php echo $item->venue; ?>"><?php echo $item->venue; ?></a>
<?php else : ?>
<?php echo $item->venue; ?>
<?php endif; ?>
</div>
<?php endif; ?>
<?php /*category*/ ?>
<?php if (($params->get('showcategory', 1) == 1) && !empty($item->catname)) :?>
<div class="category">
<?php echo $item->catname; ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
<div class="clr"></div>
<?php endif; ?>
</div>
</div>

View File

@ -0,0 +1,12 @@
#jemmodulejubilee .calendar-green {
background-image: url(img/calendar_green.png);
background-size: 100%;
}
#jemmodulejubilee .calendar-green .monthjubilee {
color: #fff;
text-shadow: -1px -1px 0 rgba(0,0,0,0.2),
1px -1px 0 rgba(0,0,0,0.2),
-1px 1px 0 rgba(0,0,0,0.2),
1px 1px 0 rgba(0,0,0,0.2);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View File

@ -0,0 +1 @@
<!DOCTYPE html><title></title>

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

View File

@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@ -0,0 +1,155 @@
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
div#jemmodulejubilee {
width: 100%;
}
div#jemmodulejubilee .jubilee-jem {
font-size: smaller;
}
#jemmodulejubilee [class|="calendar"] {
background-repeat: no-repeat;
width: 81px;
height: 85px;
text-align: center;
padding: 5px 1px 0 0;
margin: 0 10px 10px 0;
line-height: 24px;
box-shadow: 3px 4px 4px -3px rgba(0, 0, 0, 0.3), -3px 4px 4px -3px rgba(0, 0, 0, 0.3);
}
#jemmodulejubilee span.share {
margin-left:95px;
}
#jemmodulejubilee [class|="calendar"] .yearjubilee,
#jemmodulejubilee [class|="calendar"] .monthjubilee {
font-size: 13px;
height: 24px;
}
#jemmodulejubilee [class|="calendar"] .monthjubilee,
#jemmodulejubilee [class|="calendar"] .dayjubilee,
#jemmodulejubilee [class|="calendar"] .daynumjubilee {
font-weight: bold;
position: relative;
z-index: 2;
display: block;
padding: 0;
text-align: center;
}
#jemmodulejubilee [class|="calendar"] .monthjubilee {
padding-top: 2px;
}
#jemmodulejubilee [class|="calendar"] .dayjubilee {
font-size: 12px;
min-height: 0.8rem;
}
#jemmodulejubilee [class|="calendar"] .daynumjubilee {
font-size: 150%;
}
#jemmodulejubilee span.share {
margin-left:95px;
}
#jemmodulejubilee [class|="calendar"] .yearjubilee {
font-size: 6px;
height:5px;
color: #e1e1e1;
}
div#jemmodulejubilee .eventset {
margin-bottom: 10px;
padding: 5px;
border: 1px dotted silver;
text-align: left;
}
div#jemmodulejubilee .event-title {
padding-left: 0;
font-size: x-large;
margin: 0 0 5px;
}
div#jemmodulejubilee .desc {
padding-left: 0;
padding-top: 2px;
font-size: small;
}
div#jemmodulejubilee .time {
padding-top: 2px;
font-weight: normal;
font-size: smaller;
float: left;
}
div#jemmodulejubilee div.date {
padding-top: 2px;
font-weight: normal;
font-size: smaller;
float: left;
margin-right: 4px;
}
div#jemmodulejubilee .category {
position: relative;
font-size: smaller;
float: left;
}
div#jemmodulejubilee .venue-title {
position: relative;
font-size: smaller;
float: left;
margin-right: 8px;
}
div#jemmodulejubilee .event-image-cell {
}
div#jemmodulejubilee .venue-image-cell {
}
div#jemmodulejubilee .image-preview {
max-width: 110px;
border: 0 solid #CCCCCC;
padding: 3px;
background-color: white;
margin: 2px;
}
div#jemmodulejubilee .image-preview2 {
max-width: 200px;
border: 0 solid #CCCCCC;
padding: 3px;
background-color: white;
margin: 2px;
}
div#jemmodulejubilee .hr {
color: silver;
height: 12px;
}
div#jemmodulejubilee .clr {
clear: both;
}

View File

@ -0,0 +1,31 @@
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
div#jemmodulejubilee .time:before,
div#jemmodulejubilee div.date:before,
div#jemmodulejubilee .category:before,
div#jemmodulejubilee .venue-title:before {
font-family:var(--fa-style-family,"Font Awesome 6 Free", "Font Awesome 5 Free");
font-weight:var(--fa-style,900);
}
div#jemmodulejubilee .time:before {
content:"\f017";
}
div#jemmodulejubilee div.date:before {
content:"\f133";
}
div#jemmodulejubilee .category:before {
content:"\f02b";
}
div#jemmodulejubilee .venue-title:before {
content:"\f041";
}

View File

@ -0,0 +1,27 @@
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
div#jemmodulejubilee .time {
padding-left: 20px;
background: url(img/time.png) 0 center no-repeat;
}
div#jemmodulejubilee div.date {
padding-left: 20px;
background: url(img/date.png) 0 center no-repeat;
}
div#jemmodulejubilee .category {
padding-left: 20px;
background: url(img/category.png) 0 center no-repeat;
}
div#jemmodulejubilee .venue-title {
padding-left: 20px;
background: url(img/building.png) 0 center no-repeat;
}

View File

@ -0,0 +1,12 @@
#jemmodulejubilee .calendar-orange {
background-image: url(img/calendar_orange.png);
background-size: 100%;
}
#jemmodulejubilee .calendar-orange .monthjubilee {
color: #fff;
text-shadow: -1px -1px 0 rgba(0,0,0,0.2),
1px -1px 0 rgba(0,0,0,0.2),
-1px 1px 0 rgba(0,0,0,0.2),
1px 1px 0 rgba(0,0,0,0.2);
}

View File

@ -0,0 +1,12 @@
#jemmodulejubilee .calendar-red {
background-image: url(img/calendar_red.png);
background-size: 100%;
}
#jemmodulejubilee .calendar-red .monthjubilee{
color: #fff;
text-shadow: -1px -1px 0 rgba(0,0,0,0.2),
1px -1px 0 rgba(0,0,0,0.2),
-1px 1px 0 rgba(0,0,0,0.2),
1px 1px 0 rgba(0,0,0,0.2);
}

View File

@ -0,0 +1,198 @@
<?php
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Language\Text;
$datemethod = (int)$params->get('datemethod', 0);
$showtime = (int)$params->get('showtime', 0);
$showcalendar = (int)$params->get('showcalendar', 1);
$introtext = $params->get('introtext', '');
$showflyer = (int)$params->get('showflyer', 1);
$flyer_link_type = (int)$params->get('flyer_link_type', 0);
$colorclass = $params->get('color');
$user_color = $params->get('usercolor', '#EEEEEE');
$user_color_is_dark = $params->get('usercolor_is_dark', false);
$date = (array)$params->get('date');
if ($flyer_link_type == 1) {
echo JemOutput::lightbox();
$modal = 'lightbox';
} elseif ($flyer_link_type == 0) {
$modal = 'notmodal';
} else {
$modal = '';
}
?>
<div class="jemmodulejubilee<?php echo $params->get('moduleclass_sfx'); ?>" id="jemmodulejubilee">
<?php ?>
<div class="eventset">
<?php if ($showcalendar == 1) :?>
<?php if ($colorclass === "alpha"): ?>
<div class="calendar<?php echo '-' . $colorclass; ?> jem-jubilee-calendar">
<div class="color-bar" style="background-color:<?php echo !empty($user_color) ? $user_color : 'rgb(128,128,128)'; ?>"></div>
<div class="lower-background"></div>
<div class="background-image"></div>
<?php else: ?>
<div class="calendar<?php echo '-' . $colorclass; ?> jem-jubilee-calendar">
<?php endif; ?>
<?php if (isset($user_color_is_dark)) : ?>
<div class="monthjubilee monthcolor-<?php echo !empty($user_color_is_dark) ? 'light' : 'dark'; ?>">
<?php else : ?>
<div class="monthjubilee">
<?php endif;
echo $date['month']; ?>
</div>
<div class="dayjubilee">
<?php /* echo $date['weekday']; */ ?>
</div>
<div class="daynumjubilee">
<?php echo $date['day']; ?>
</div>
</div>
<?php endif; ?>
<?php if (!empty($introtext)) :?>
<div class="intro">
<?php echo $introtext; ?>
</div>
<?php endif; ?>
<?php $i = count($list); ?>
<?php if ($i == 0) : ?>
<div class="clr"></div>
<div class="hr"><hr /></div>
<p><?php echo Text::_('MOD_JEM_JUBILEE_NO_EVENTS'); ?></p>
<?php else : ?>
<?php foreach ($list as $item) : ?>
<div class="clr"></div>
<div class="hr"><hr /></div>
<div class="event_id<?php echo $item->eventid; ?>" itemprop="event" itemscope itemtype="https://schema.org/Event">
<h2 class="event-title" itemprop="name" content="<?php echo $item->title; ?>">
<?php echo $item->startdate['year'] . ': '; ?>
<?php if ($item->eventlink) : ?>
<a href="<?php echo $item->eventlink; ?>" title="<?php echo $item->fulltitle; ?>" itemprop="url"><?php echo $item->title; ?></a>
<?php else : ?>
<?php echo $item->title; ?>
<?php endif; ?>
</h2>
<div>
<?php if (($showflyer == 1) && !empty($item->eventimage)) : ?>
<div>
<div class="banner-jem">
<?php if ($flyer_link_type != 3) : ?>
<a href="<?php echo ($flyer_link_type == 2) ? $item->eventlink : $item->eventimageorig; ?>" rel="<?php echo $modal;?>" class="jubilee-flyerimage" title="<?php echo ($flyer_link_type == 2) ? $item->fulltitle : Text::_('COM_JEM_CLICK_TO_ENLARGE'); ?>" data-title="<?php echo $item->title; ?>"><?php endif; ?>
<img class="float_right <?php echo 'image-preview2'; ?>" src="<?php echo $item->eventimageorig; ?>" alt="<?php echo $item->title; ?>" />
<?php if ($flyer_link_type != 3) { echo '</a>'; } ?>
</div>
</div>
<div class="clr"></div>
<?php else /* showflyer == 0 or no image */ : ?>
<div>
<div class="banner-jem">
</div>
</div>
<?php endif; ?>
<?php if ($params->get('showdesc', 1) == 1) :?>
<div class="desc" itemprop="description">
<?php echo $item->eventdescription; ?>
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) :
echo '</br><a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>';
endif;?>
</div>
<?php endif;
echo $item->dateschema; ?>
<div itemprop="location" itemscope itemtype="https://schema.org/Place" style="display:none;">
<meta itemprop="name" content="<?php echo $item->venue; ?>" />
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress" style="display:none;">
<meta itemprop="streetAddress" content="<?php echo $item->street; ?>" />
<meta itemprop="addressLocality" content="<?php echo $item->city; ?>" />
<meta itemprop="addressRegion" content="<?php echo $item->state; ?>" />
<meta itemprop="postalCode" content="<?php echo $item->postalCode; ?>" />
</div>
</div>
</div>
<div class="clr"></div>
<?php /* Datum und Zeitangabe:
* showcalendar 1, datemethod 1 : date inside calendar image + time
* showcalendar 1, datemethod 2 : date inside calendar image + relative date + time
* showcalendar 0, datemethod 1 : no calendar image, date + time
* showcalendar 0, datemethod 2 : no calendar image, relative date + time
*/
?>
<?php /* wenn kein Kalenderblatt angezeigt wird */ ?>
<?php if (1/*$showcalendar == 0*/) : ?>
<?php if ($item->date && $datemethod == 2) :?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php endif; ?>
<?php if ($item->date && $datemethod == 1) :?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php if ($showtime == 1 && $item->time && $datemethod == 1) :?>
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->time; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<?php /* wenn Kalenderblatt angezeigt wird */ ?>
<?php else : ?>
<?php /* wenn Zeitdifferenz angezeigt werden soll */ ?>
<?php if ($item->date && $datemethod == 2) : ?>
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->date; ?>
</div>
<?php endif; ?>
<?php /* wenn Datum angezeigt werden soll */ ?>
<?php if ($showtime == 1 && $item->time && $datemethod == 1) :?>
<?php /* es muss nur noch die Zeit angezeigt werden (da Datum auf Kalenderblatt schon angezeigt) */ ?>
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->time; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="clr"></div>
<?php /*venue*/ ?>
<?php if (($params->get('showvenue', 1) == 1) && !empty($item->venue)) :?>
<div class="venue-title">
<?php if ($item->venuelink) : ?>
<a href="<?php echo $item->venuelink; ?>" title="<?php echo $item->venue; ?>"><?php echo $item->venue; ?></a>
<?php else : ?>
<?php echo $item->venue; ?>
<?php endif; ?>
</div>
<?php endif; ?>
<?php /*category*/ ?>
<?php if (($params->get('showcategory', 1) == 1) && !empty($item->catname)) :?>
<div class="category">
<?php echo $item->catname; ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
<div class="clr"></div>
<?php endif; ?>
</div>
</div>

View File

@ -0,0 +1,138 @@
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
div#jemmodulejubilee {
width: 100%;
}
div#jemmodulejubilee .jubilee-jem {
font-size: smaller;
}
#jemmodulejubilee [class|="calendar"] {
background-repeat: no-repeat;
width: 81px;
height: 85px;
text-align: center;
padding: 5px 1px 0 0;
margin: 0 10px 10px 0;
line-height: 24px;
box-shadow: 3px 4px 4px -3px rgba(0, 0, 0, 0.3), -3px 4px 4px -3px rgba(0, 0, 0, 0.3);
}
#jemmodulejubilee span.share {
margin-left:95px;
}
#jemmodulejubilee [class|="calendar"] .yearjubilee,
#jemmodulejubilee [class|="calendar"] .monthjubilee {
font-size: 13px;
height: 24px;
}
#jemmodulejubilee [class|="calendar"] .monthjubilee,
#jemmodulejubilee [class|="calendar"] .dayjubilee,
#jemmodulejubilee [class|="calendar"] .daynumjubilee {
font-weight: bold;
position: relative;
z-index: 2;
display: block;
padding: 0;
text-align: center;
}
#jemmodulejubilee [class|="calendar"] .monthjubilee {
padding-top: 2px;
}
#jemmodulejubilee [class|="calendar"] .dayjubilee {
font-size: 12px;
min-height: 0.8rem;
}
#jemmodulejubilee [class|="calendar"] .daynumjubilee {
font-size: 150%;
}
div#jemmodulejubilee .eventset {
margin-bottom: 10px;
padding: 5px;
border: 1px dotted silver;
text-align: left;
}
div#jemmodulejubilee .event-title {
padding-left: 0;
font-size: x-large;
margin: 0 0 5px;
}
div#jemmodulejubilee .desc {
padding-left: 0;
padding-top: 2px;
font-size: small;
}
div#jemmodulejubilee .time {
padding-top: 2px;
font-weight: normal;
font-size: smaller;
float: left;
}
div#jemmodulejubilee div.date {
padding-top: 2px;
font-weight: normal;
font-size: smaller;
float: left;
margin-right: 4px;
}
div#jemmodulejubilee .category {
position: relative;
font-size: smaller;
float: left;
}
div#jemmodulejubilee .venue-title {
position: relative;
font-size: smaller;
float: left;
margin-right: 8px;
}
div#jemmodulejubilee .event-image-cell {
}
div#jemmodulejubilee .venue-image-cell {
}
div#jemmodulejubilee .image-preview {
max-width: 110px;
border: 0 solid #CCCCCC;
padding: 3px;
background-color: white;
margin: 2px;
}
div#jemmodulejubilee .image-preview2 {
max-width: 200px;
border: 0 solid #CCCCCC;
padding: 3px;
background-color: white;
margin: 2px;
}
div#jemmodulejubilee .hr {
color: silver;
height: 12px;
}
div#jemmodulejubilee .clr {
clear: both;
}

View File

@ -0,0 +1,31 @@
/**
* @package JEM
* @subpackage JEM Jubilee Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
div#jemmodulejubilee .time:before,
div#jemmodulejubilee div.date:before,
div#jemmodulejubilee .category:before,
div#jemmodulejubilee .venue-title:before {
font-family:var(--fa-style-family,"Font Awesome 6 Free", "Font Awesome 5 Free");
font-weight:var(--fa-style,900);
}
div#jemmodulejubilee .time:before {
content:"\f017";
}
div#jemmodulejubilee div.date:before {
content:"\f133";
}
div#jemmodulejubilee .category:before {
content:"\f02b";
}
div#jemmodulejubilee .venue-title:before {
content:"\f041";
}