primo commit
578
modules/mod_jem_banner/helper.php
Normal file
@ -0,0 +1,578 @@
|
||||
<?php
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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-Banner
|
||||
*/
|
||||
abstract class ModJemBannerHelper
|
||||
{
|
||||
/**
|
||||
* 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');
|
||||
static $defaults = array('year' => ' ', 'month' => '', 'day' => '?', 'weekday' => '');
|
||||
|
||||
$db = Factory::getContainer()->get('DatabaseDriver');
|
||||
$user = JemFactory::getUser();
|
||||
$levels = $user->getAuthorisedViewLevels();
|
||||
|
||||
# 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
|
||||
|
||||
# type:
|
||||
# 0: upcoming (not started) - dates,times > now+offset
|
||||
# 1: unfinished (not ended) - enddates,endtimes > now+offset
|
||||
# 2: archived - no limit, but from now back to the past
|
||||
# 3: running (today) - enddates,endtimes > today+offset AND dates,times < tomorrow+offset
|
||||
# 4: featured - ? (same as upcoming yet)
|
||||
# 5: open date - no limit
|
||||
$type = (int)$params->get('type');
|
||||
$offset_days = (int)($params->get('offset_hours', 0) / 24); // hours given must be multiple of 24, truncate to full days
|
||||
$offset_minutes = (int)($params->get('offset_hours', 0) * 60);
|
||||
$max_days = (int) $params->get('max_days', 0); // empty = unlimited
|
||||
$max_minutes = $max_days ? ($max_days * 24 * 60 + $offset_minutes) : false;
|
||||
$max_title_length = (int)$params->get('cuttitle', '25');
|
||||
$max_desc_length = (int)$params->get('descriptionlength', 300);
|
||||
$published = 1;
|
||||
$orderdir = 'ASC';
|
||||
$opendates = 0;
|
||||
$cal_from = false;
|
||||
$cal_to = false;
|
||||
|
||||
# date/time
|
||||
$dateFormat = $params->get('formatdate', '');
|
||||
$timeFormat = $params->get('formattime', '');
|
||||
$addSuffix = empty($timeFormat); // if we use component's default time format we can also add corresponding suffix
|
||||
|
||||
# count
|
||||
$count = min(max($params->get('count', '2'), 1), 100); // range 1..100, default 2
|
||||
|
||||
# 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);
|
||||
|
||||
# create type dependent filter rules
|
||||
switch ($type) {
|
||||
case 1: # unfinished events
|
||||
$cal_from = " (a.dates IS NULL OR (TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(a.dates,' ',IFNULL(a.times,'00:00:00'))) > $offset_minutes) ";
|
||||
$cal_from .= " OR (TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(IFNULL(a.enddates,a.dates),' ',IFNULL(a.endtimes,'23:59:59'))) > $offset_minutes)) ";
|
||||
$cal_to = $max_minutes ? " (a.dates IS NULL OR (TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(a.dates,' ',IFNULL(a.times,'00:00:00'))) < $max_minutes)) " : '';
|
||||
break;
|
||||
|
||||
case 2: # archived events
|
||||
$published = 2;
|
||||
$orderdir = 'DESC';
|
||||
break;
|
||||
|
||||
case 3: # running events (one day)
|
||||
$cal_from = " (DATEDIFF(IFNULL(a.enddates, a.dates), CURDATE()) >= $offset_days) ";
|
||||
$cal_to = " (DATEDIFF(a.dates, CURDATE()) < ".($offset_days + 1).") ";
|
||||
break;
|
||||
|
||||
case 5: # open date (only)
|
||||
$opendates = 2;
|
||||
break;
|
||||
|
||||
// case 4: # featured events
|
||||
// $model->setState('filter.featured', 1);
|
||||
// # fall through
|
||||
case 0: # upcoming events
|
||||
default:
|
||||
$cal_from = " (a.dates IS NULL OR (TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(a.dates,' ',IFNULL(a.times,'00:00:00'))) > $offset_minutes)) ";
|
||||
$cal_to = $max_minutes ? " (a.dates IS NULL OR (TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(a.dates,' ',IFNULL(a.times,'00:00:00'))) < $max_minutes)) " : '';
|
||||
break;
|
||||
}
|
||||
|
||||
$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'));
|
||||
$eventids = JemHelper::getValidIds($params->get('eventid'));
|
||||
$stateloc = $params->get('stateloc');
|
||||
$stateloc_mode = $params->get('stateloc_mode', 0);
|
||||
|
||||
# Open date support
|
||||
if (!empty($eventids)) {
|
||||
// allow (also) open dates if limited to specific events
|
||||
$opendates = 1;
|
||||
}
|
||||
$model->setState('filter.opendates', $opendates);
|
||||
|
||||
# featured
|
||||
$featured = (bool)$params->get('featured_only', 0);
|
||||
if ($featured) {
|
||||
$model->setState('filter.featured', 1);
|
||||
}
|
||||
|
||||
# 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 event id's
|
||||
if ($eventids) {
|
||||
$model->setState('filter.event_id', $eventids);
|
||||
$model->setState('filter.event_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');
|
||||
$fallback_color = $params->get('fallbackcolor', '#EEEEEE');
|
||||
$fallback_color_is_dark = self::_is_dark($fallback_color);
|
||||
|
||||
// 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_BANNER_READMORE');
|
||||
} else {
|
||||
$lists[$i]->link = Route::_('index.php?option=com_users&view=login');
|
||||
$lists[$i]->linkText = Text::_('MOD_JEM_BANNER_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) . '…';
|
||||
} 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);
|
||||
$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_BANNER_NO_DESCRIPTION');
|
||||
} elseif (mb_strlen($description) > $max_desc_length) {
|
||||
$lists[$i]->eventdescription = mb_substr($description, 0, $max_desc_length) . '…';
|
||||
} else {
|
||||
$lists[$i]->eventdescription = $description;
|
||||
}
|
||||
|
||||
$lists[$i]->readmore = mb_strlen(trim($row->fulltext));
|
||||
|
||||
$lists[$i]->colorclass = $color;
|
||||
if (($color == 'alpha') || (($color == 'category') && empty($row->categories))) {
|
||||
$lists[$i]->color = $fallback_color;
|
||||
$lists[$i]->color_is_dark = $fallback_color_is_dark;
|
||||
}
|
||||
elseif (($color == 'category') && !empty($row->categories)) {
|
||||
$colors = array();
|
||||
foreach ($row->categories as $category) {
|
||||
if (!empty($category->color)) {
|
||||
$colors[$category->color] = $category->color;
|
||||
}
|
||||
}
|
||||
|
||||
if (count($colors) == 1) {
|
||||
$lists[$i]->color = array_pop($colors);
|
||||
$lists[$i]->color_is_dark = self::_is_dark($lists[$i]->color);
|
||||
} else {
|
||||
$lists[$i]->color = $fallback_color;
|
||||
$lists[$i]->color_is_dark = $fallback_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;
|
||||
}
|
||||
|
||||
/**
|
||||
* format days
|
||||
*
|
||||
* @deprecated since version 2.1.3
|
||||
*/
|
||||
protected static function _format_day($row, &$params)
|
||||
{
|
||||
//Get needed timestamps and format
|
||||
//setlocale (LC_TIME, 'de_DE.UTF8');
|
||||
$yesterday_stamp = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
|
||||
$yesterday = date("Y-m-d", $yesterday_stamp);
|
||||
$today_stamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
|
||||
$today = date('Y-m-d');
|
||||
$tomorrow_stamp = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"));
|
||||
$tomorrow = date("Y-m-d", $tomorrow_stamp);
|
||||
|
||||
$dates_stamp = strtotime($row->dates);
|
||||
$enddates_stamp = $row->enddates ? strtotime($row->enddates) : null;
|
||||
|
||||
//check if today or tomorrow or yesterday and no current running multiday event
|
||||
if (($row->dates == $today) && empty($enddates_stamp)) {
|
||||
$result = Text::_('MOD_JEM_BANNER_TODAY');
|
||||
} elseif ($row->dates == $tomorrow) {
|
||||
$result = Text::_('MOD_JEM_BANNER_TOMORROW');
|
||||
} elseif ($row->dates == $yesterday) {
|
||||
$result = Text::_('MOD_JEM_BANNER_YESTERDAY');
|
||||
} else {
|
||||
//if daymethod show day
|
||||
if ($params->get('daymethod', 1) == 1) {
|
||||
$date = date('l', strtotime($row->dates));
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_ON_DATE', $date);
|
||||
|
||||
//Upcoming multidayevent (From 16.10.2010 Until 18.10.2010)
|
||||
if (($dates_stamp > $tomorrow_stamp) && $enddates_stamp) {
|
||||
$startdate = date('l', strtotime($row->dates));
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_FROM', $startdate);
|
||||
}
|
||||
|
||||
//current multidayevent (Until 18.08.2008)
|
||||
if ($row->enddates && ($enddates_stamp > $today_stamp) && ($dates_stamp <= $today_stamp)) {
|
||||
//format date
|
||||
$enddate = date('l', strtotime($row->enddates));
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_UNTIL', $enddate);
|
||||
}
|
||||
} else { // show day difference
|
||||
//the event has an enddate and it's earlier than yesterday
|
||||
if ($row->enddates && ($enddates_stamp < $yesterday_stamp)) {
|
||||
$days = round( ($today_stamp - $enddates_stamp) / 86400 );
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_ENDED_DAYS_AGO', $days);
|
||||
|
||||
//the event has an enddate and it's later than today but the startdate is today or earlier than today
|
||||
//means a currently running event with startdate = today
|
||||
} elseif ($row->enddates && ($enddates_stamp > $today_stamp) && ($dates_stamp <= $today_stamp)) {
|
||||
$days = round( ($enddates_stamp - $today_stamp) / 86400 );
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_DAYS_LEFT', $days);
|
||||
|
||||
//the events date is earlier than yesterday
|
||||
} elseif ($dates_stamp < $yesterday_stamp) {
|
||||
$days = round( ($today_stamp - $dates_stamp) / 86400 );
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_DAYS_AGO', $days );
|
||||
|
||||
//the events date is later than tomorrow
|
||||
} elseif ($dates_stamp > $tomorrow_stamp) {
|
||||
$days = round( ($dates_stamp - $today_stamp) / 86400 );
|
||||
$result = Text::sprintf('MOD_JEM_BANNER_DAYS_AHEAD', $days);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
$yesterday_stamp = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
|
||||
$yesterday = date("Y-m-d", $yesterday_stamp);
|
||||
$today_stamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
|
||||
$today = date('Y-m-d');
|
||||
$tomorrow_stamp = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"));
|
||||
$tomorrow = date("Y-m-d", $tomorrow_stamp);
|
||||
|
||||
$dates_stamp = $row->dates ? strtotime($row->dates) : null;
|
||||
$enddates_stamp = $row->enddates ? strtotime($row->enddates) : null;
|
||||
|
||||
$times = $row->times; // show starttime by default
|
||||
|
||||
# datemethod show day difference
|
||||
if ($method == 2) {
|
||||
# Check if today, tomorrow, or yesterday
|
||||
if ($row->dates == $today) {
|
||||
$date = Text::_('MOD_JEM_BANNER_TODAY');
|
||||
} elseif ($row->dates == $tomorrow) {
|
||||
$date = Text::_('MOD_JEM_BANNER_TOMORROW');
|
||||
} elseif ($row->dates == $yesterday) {
|
||||
$date = Text::_('MOD_JEM_BANNER_YESTERDAY');
|
||||
}
|
||||
# This one isn't very different from the DAYS AGO output but it seems
|
||||
# adequate to use different language strings here.
|
||||
#
|
||||
# The event has an enddate and it's earlier than yesterday
|
||||
elseif ($row->enddates && ($enddates_stamp < $yesterday_stamp)) {
|
||||
$days = round(($today_stamp - $enddates_stamp) / 86400);
|
||||
$date = Text::sprintf('MOD_JEM_BANNER_ENDED_DAYS_AGO', $days);
|
||||
# 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 ($row->dates && $row->enddates && ($enddates_stamp > $today_stamp) && ($dates_stamp < $today_stamp)) {
|
||||
$days = round(($today_stamp - $dates_stamp) / 86400);
|
||||
$date = Text::sprintf('MOD_JEM_BANNER_STARTED_DAYS_AGO', $days);
|
||||
}
|
||||
# The events date is earlier than yesterday
|
||||
elseif ($row->dates && ($dates_stamp < $yesterday_stamp)) {
|
||||
$days = round(($today_stamp - $dates_stamp) / 86400);
|
||||
$date = Text::sprintf('MOD_JEM_BANNER_DAYS_AGO', $days);
|
||||
}
|
||||
# The events date is later than tomorrow
|
||||
elseif ($row->dates && ($dates_stamp > $tomorrow_stamp)) {
|
||||
$days = round(($dates_stamp - $today_stamp) / 86400);
|
||||
$date = Text::sprintf('MOD_JEM_BANNER_DAYS_AHEAD', $days);
|
||||
}
|
||||
else {
|
||||
$date = JemOutput::formatDateTime('', ''); // Oops - say "Open date"
|
||||
}
|
||||
}
|
||||
# datemethod show date
|
||||
else {
|
||||
///@todo check date+time to be more acurate
|
||||
# Upcoming multidayevent (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_BANNER_FROM_UNTIL', $startdate, $enddate);
|
||||
# additionally show endtime
|
||||
$endtimes = $row->endtimes;
|
||||
}
|
||||
# Current multidayevent (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_BANNER_UNTIL', $enddate);
|
||||
# show endtime instead of starttime
|
||||
$times = false;
|
||||
$endtimes = $row->endtimes;
|
||||
}
|
||||
# Single day event
|
||||
else {
|
||||
$startdate = JEMOutput::formatdate($row->dates, $dateFormat);
|
||||
$date = Text::sprintf('MOD_JEM_BANNER_ON_DATE', $startdate);
|
||||
# additionally show endtime, but on single day events only to prevent user confusion
|
||||
if (empty($row->enddates)) {
|
||||
$endtimes = $row->endtimes;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$time = empty($times) ? '' : JemOutput::formattime($times, $timeFormat, $addSuffix);
|
||||
$time .= empty($endtimes) ? '' : (' - ' . 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;
|
||||
}
|
||||
}
|
||||
1
modules/mod_jem_banner/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
1
modules/mod_jem_banner/language/en-GB/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
127
modules/mod_jem_banner/language/en-GB/mod_jem_banner.ini
Normal file
@ -0,0 +1,127 @@
|
||||
; @package JEM
|
||||
; @subpackage JEM Banner 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_BANNER_EVENTS_IN_MODULE="Events in module"
|
||||
MOD_JEM_BANNER_EVENTS_IN_MODULE_DESC="Number of events shown in module."
|
||||
MOD_JEM_BANNER_UPCOMING_ARCHIVED_OR_CURRENT="Events Display-Type"
|
||||
MOD_JEM_BANNER_UPCOMING_ARCHIVED_OR_CURRENT_DESC="Select if you want to display upcoming, unfinished, archived, today's or only featured events."
|
||||
MOD_JEM_BANNER_UPCOMING_EVENTS="Upcoming events"
|
||||
MOD_JEM_BANNER_UNFINISHED_EVENTS="Unfinished events"
|
||||
MOD_JEM_BANNER_ARCHIVED_EVENTS="Archived events"
|
||||
MOD_JEM_BANNER_CURRENT_EVENTS="Today's events"
|
||||
;MOD_JEM_BANNER_FEATURED_EVENTS="Featured events only"
|
||||
MOD_JEM_BANNER_OPENDATE_EVENTS="Open date events"
|
||||
MOD_JEM_BANNER_SHOW_NO_EVENTS="Show 'No events'"
|
||||
MOD_JEM_BANNER_SHOW_NO_EVENTS_DESC="Show a text if no events has been found. Otherwise module will not be shown."
|
||||
MOD_JEM_BANNER_OFFSET_HOURS="Time offset (in hours)"
|
||||
MOD_JEM_BANNER_OFFSET_HOURS_DESC="Moves time into future (positive values) or into past (negative values). Only used to display not archived events, on today's events it's rounded to full days. <br>Examples: To show events finished at least two hours ago set type to Unfinished Events and offset to -2. To show events starting in one week or later set type to Upcoming Events and offset to 168 (7 * 24). To show events of tomorrow set type to Today and offset to 24."
|
||||
MOD_JEM_BANNER_VENUE="Venue"
|
||||
; MOD_JEM_BANNER_TITLE="Title"
|
||||
MOD_JEM_BANNER_MAX_TITLE_LENGTH="Max. Title length"
|
||||
MOD_JEM_BANNER_MAX_TITLE_LENGTH_DESC="Max. length of the title."
|
||||
MOD_JEM_BANNER_LINK_TO_DETAILS="Link to Event on Title"
|
||||
MOD_JEM_BANNER_LINK_TO_DETAILS_DESC="Link to the event page on Title."
|
||||
MOD_JEM_BANNER_SHOWDESC="Show Description"
|
||||
MOD_JEM_BANNER_SHOWDESC_DESC="Show or Hide Eventdescription"
|
||||
MOD_JEM_BANNER_SHOWFLYER="Show Flyer"
|
||||
MOD_JEM_BANNER_SHOWFLYER_DESC="Show or hide event's image."
|
||||
MOD_JEM_BANNER_SHOWVENUE="Show Venue"
|
||||
MOD_JEM_BANNER_SHOWVENUE_DESC="Show or hide venue."
|
||||
MOD_JEM_BANNER_SHOWCATEGORY="Show Category"
|
||||
MOD_JEM_BANNER_SHOWCATEGORY_DESC="Show or hide category."
|
||||
MOD_JEM_BANNER_LINK_TO_CATEGORY="Link to Category"
|
||||
MOD_JEM_BANNER_LINK_TO_CATEGORY_DESC="Link to the Category. Only if Show Category was chosen above!"
|
||||
MOD_JEM_BANNER_LINK_TO_VENUE="Link to Venue"
|
||||
MOD_JEM_BANNER_LINK_TO_VENUE_DESC="Link to the Venue. Only if Show Venue was chosen above!"
|
||||
; MOD_JEM_BANNER_USE_MODAL="Modal window"
|
||||
; MOD_JEM_BANNER_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_BANNER_FLYER_LINKS_TO="Flyer links to..."
|
||||
MOD_JEM_BANNER_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_BANNER_FLYER_LINK_IMAGE_PAGE="Image on full page"
|
||||
MOD_JEM_BANNER_FLYER_LINK_IMAGE_MODAL="Image in modal window"
|
||||
MOD_JEM_BANNER_FLYER_LINK_EVENT_DETAILS="Event's details view"
|
||||
MOD_JEM_BANNER_DATE="Date"
|
||||
MOD_JEM_BANNER_FEATURED_ONLY="Featured events only"
|
||||
MOD_JEM_BANNER_FEATURED_ONLY_DESC="Limits output to featured events only or shows all relevant events"
|
||||
MOD_JEM_BANNER_CATEGORY_ID="Categories"
|
||||
MOD_JEM_BANNER_CATEGORY_ID_DESC="Choose categories to limit the output to them. Leave blank if you want to show all events."
|
||||
MOD_JEM_BANNER_VENUE_ID="Venues"
|
||||
MOD_JEM_BANNER_VENUE_ID_DESC="Choose venues to limit the output to them. Leave blank if you want to show all events."
|
||||
MOD_JEM_BANNER_STATE="State"
|
||||
MOD_JEM_BANNER_STATE_DESC="Type in comma separated county to limit the events to the choosen ones. Leave blank to display events from all counties."
|
||||
MOD_JEM_BANNER_STATE_MODE="County Match Mode"
|
||||
MOD_JEM_BANNER_STATE_MODE_DESC="Select if county must completely match one of the strings given above, or only contain one."
|
||||
MOD_JEM_BANNER_STATE_MODE_EXACTMATCH="Complete Match"
|
||||
MOD_JEM_BANNER_STATE_MODE_CONTAINS="Contain"
|
||||
MOD_JEM_BANNER_SHOW_DATE_OR_DAY_DIFFERENCE="Date Display-Type"
|
||||
MOD_JEM_BANNER_SHOW_DATE_OR_DAY_DIFFERENCE_DESC="Select to show the formatted date or the difference in days from current day to the Event date. Note: The time will be hidden when the day difference is selected."
|
||||
MOD_JEM_BANNER_SHOW_DATE="Show date"
|
||||
MOD_JEM_BANNER_SHOW_DAY_DIFFERENCE="Show day difference"
|
||||
MOD_JEM_BANNER_DATE_FORMAT="Date format"
|
||||
MOD_JEM_BANNER_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_BANNER_TIME_FORMAT="Time format"
|
||||
MOD_JEM_BANNER_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_BANNER_MODULE_CLASS_SUFFIX="Module Class Suffix"
|
||||
MOD_JEM_BANNER_MODULE_CLASS_SUFFIX_DESC="A suffix to be applied to the css class of the module, this allows individual module styling."
|
||||
MOD_JEM_BANNER_CACHING="Caching"
|
||||
MOD_JEM_BANNER_CACHING_DESC="Select whether to cache the content of this module."
|
||||
MOD_JEM_BANNER_USE_GLOBAL="Use global"
|
||||
MOD_JEM_BANNER_NO_CACHING="No caching"
|
||||
MOD_JEM_BANNER_CACHE_TIME="Cache Time"
|
||||
MOD_JEM_BANNER_CACHE_TIME_DESC="The time before the module is recached."
|
||||
MOD_JEM_BANNER_ALLOW_LINEBREAK="Allow Linebreak"
|
||||
MOD_JEM_BANNER_ALLOW_LINEBREAK_DESC="Allow linebreaks or replace them by a space."
|
||||
MOD_JEM_BANNER_MAX_DESCRIPTION_LENGTH="Max description length"
|
||||
MOD_JEM_BANNER_MAX_DESCRIPTION_LENGTH_DESC="Limit description shown to this amount of characters."
|
||||
MOD_JEM_BANNER_FIELD_READMORE_DESC="If set to Show, the 'Read more...' link will show if Main text has been provided for an Event."
|
||||
MOD_JEM_BANNER_FIELD_READMORE_LABEL="'Read more...' Link"
|
||||
MOD_JEM_BANNER_EVENT_ID="Event ID"
|
||||
MOD_JEM_BANNER_EVENT_ID_DESC="Type in comma separated event ids to limit the output to them. Leave blank if you want to show all events."
|
||||
MOD_JEM_BANNER_SHOWCALENDAR="Show Calendar"
|
||||
MOD_JEM_BANNER_SHOWCALENDAR_DESC="Shows a calendar image with the event's date."
|
||||
MOD_JEM_BANNER_COLOR="Color"
|
||||
MOD_JEM_BANNER_COLOR_DESC="Color of the Calendar image. If \"from Category\" is choosen color value will be taken from categories if unique. Otherwise or if \"user-defined\" is choosen color value will be taken from field below."
|
||||
MOD_JEM_BANNER_BLUE="Blue"
|
||||
MOD_JEM_BANNER_GREEN="Green"
|
||||
MOD_JEM_BANNER_ORANGE="Orange"
|
||||
MOD_JEM_BANNER_RED="Red"
|
||||
MOD_JEM_BANNER_CATEGORY="from Category"
|
||||
MOD_JEM_BANNER_USER="user-defined"
|
||||
MOD_JEM_BANNER_FALLBACK_COLOR="Fallback Color"
|
||||
MOD_JEM_BANNER_FALLBACK_COLOR_DESC="Color used if \"user-defined\" is choosen above, or \"from Category\" is choosen above but no unique color value can be found."
|
||||
MOD_JEM_BANNER_IMAGE_WIDTH_MAX="Image width max (px)"
|
||||
MOD_JEM_BANNER_IMAGE_WIDTH_MAX_DESC="Custom value of maximun width for event image."
|
||||
MOD_JEM_BANNER_MAX_DAYS="Max. days"
|
||||
MOD_JEM_BANNER_MAX_DAYS_DESC="Limit upcoming or unfinished events by max. number of days, related o Time offset."
|
||||
MOD_JEM_BANNER_SHUFFLE="Shuffle events"
|
||||
MOD_JEM_BANNER_SHUFFLE_DESC="If there are more events to show randomly choose events from pool."
|
||||
MOD_JEM_BANNER_SHUFFLE_COUNT="Shuffle pool limit"
|
||||
MOD_JEM_BANNER_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_BANNER="JEM - Banner Module"
|
||||
MOD_JEM_BANNER_XML_DESCRIPTION="JEM Latest Events Banner Module."
|
||||
|
||||
;Frontend
|
||||
MOD_JEM_BANNER_TODAY="Today"
|
||||
MOD_JEM_BANNER_TOMORROW="Tomorrow"
|
||||
MOD_JEM_BANNER_YESTERDAY="Yesterday"
|
||||
MOD_JEM_BANNER_DAYS_AGO="%s days ago"
|
||||
MOD_JEM_BANNER_DAYS_AHEAD="%s days ahead"
|
||||
MOD_JEM_BANNER_DAYS_LEFT="%s days left"
|
||||
MOD_JEM_BANNER_ENDED_DAYS_AGO="Ended %s days ago"
|
||||
MOD_JEM_BANNER_STARTED_DAYS_AGO="Started %s days ago"
|
||||
MOD_JEM_BANNER_FROM="From %s"
|
||||
MOD_JEM_BANNER_UNTIL="Until %s"
|
||||
MOD_JEM_BANNER_FROM_UNTIL="From %s Until %s"
|
||||
MOD_JEM_BANNER_ON_DATE="On %s"
|
||||
MOD_JEM_BANNER_READMORE="Read more..."
|
||||
MOD_JEM_BANNER_READMORE_REGISTER="Login to read more details."
|
||||
MOD_JEM_BANNER_NO_DESCRIPTION=""
|
||||
MOD_JEM_BANNER_NO_EVENTS="No events found."
|
||||
13
modules/mod_jem_banner/language/en-GB/mod_jem_banner.sys.ini
Normal file
@ -0,0 +1,13 @@
|
||||
; @package JEM
|
||||
; @subpackage JEM Banner 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_BANNER="JEM - Banner Module"
|
||||
MOD_JEM_BANNER_XML_DESCRIPTION="This module shows events as banner."
|
||||
1
modules/mod_jem_banner/language/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
123
modules/mod_jem_banner/language/it-IT/it-IT.mod_jem_banner.ini
Normal file
@ -0,0 +1,123 @@
|
||||
; @version 2.1.6
|
||||
; @package JEM
|
||||
; @subpackage JEM Banner Module
|
||||
; @copyright (C) 2005-2009 Christoph Lukes
|
||||
; @copyright (C) 2013-2016 joomlaeventmanager.net
|
||||
; @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
|
||||
;
|
||||
; All translations can be found at https://www.transifex.com/projects/p/JEM/
|
||||
; 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_BANNER_EVENTS_IN_MODULE="Eventi nel modulo"
|
||||
MOD_JEM_BANNER_EVENTS_IN_MODULE_DESC="Numero di eventi da mostrare nel modulo."
|
||||
MOD_JEM_BANNER_UPCOMING_ARCHIVED_OR_CURRENT="Tipo di visualizzazione degli eventi"
|
||||
MOD_JEM_BANNER_UPCOMING_ARCHIVED_OR_CURRENT_DESC="Scegliere se si desidera visualizzare gli eventi prossimi, non terminati, archiviati, attuali o solo gli eventi in evidenza."
|
||||
MOD_JEM_BANNER_UPCOMING_EVENTS="Prossimi eventi"
|
||||
MOD_JEM_BANNER_UNFINISHED_EVENTS="Eventi non terminati"
|
||||
MOD_JEM_BANNER_ARCHIVED_EVENTS="Eventi archiviati"
|
||||
MOD_JEM_BANNER_CURRENT_EVENTS="Eventi di oggi"
|
||||
;MOD_JEM_BANNER_FEATURED_EVENTS="Solo gli eventi in primo piano"
|
||||
MOD_JEM_BANNER_OPENDATE_EVENTS="Data apertura eventi"
|
||||
MOD_JEM_BANNER_OFFSET_HOURS="Tempo offset (in ore)"
|
||||
MOD_JEM_BANNER_OFFSET_HOURS_DESC="Sposta il tempo nel futuro (valori positivi) o nel passato (valori negativi). Utilizzato solo per visualizzare gli eventi non archiviati, per gli eventi di oggi e` arrotondato ai giorni interi. <br> Esempi: Per mostrare gli eventi finiti almeno due ore fa impostare Tipo a Eventi Incompleti e offset a -2. Per mostrare gli eventi in partenza in settimana o piu` tardi impostare Tipo a Prossimi eventi e offset di 188. Per mostrare gli eventi di domani impostare Tipo a Oggi e offset a 24."
|
||||
MOD_JEM_BANNER_VENUE="Sede"
|
||||
MOD_JEM_BANNER_TITLE="Titolo"
|
||||
MOD_JEM_BANNER_MAX_TITLE_LENGTH="Lunghezza massima titolo"
|
||||
MOD_JEM_BANNER_MAX_TITLE_LENGTH_DESC="Lunghezza massima titolo."
|
||||
MOD_JEM_BANNER_LINK_TO_DETAILS="Link all'evento sul titolo"
|
||||
MOD_JEM_BANNER_LINK_TO_DETAILS_DESC="Link alla pagina dell'evento sul Titolo"
|
||||
MOD_JEM_BANNER_SHOWDESC="Mostra Descrizione"
|
||||
MOD_JEM_BANNER_SHOWDESC_DESC="Mostra o nasconde la descrizione dell'evento"
|
||||
MOD_JEM_BANNER_SHOWFLYER="Mostra Volantino"
|
||||
MOD_JEM_BANNER_SHOWFLYER_DESC="Mostra o nasconde l'immagine dell'evento"
|
||||
MOD_JEM_BANNER_SHOWVENUE="Visualizza sede"
|
||||
MOD_JEM_BANNER_SHOWVENUE_DESC="Mostra o nascondi la sede."
|
||||
MOD_JEM_BANNER_SHOWCATEGORY="Visualizza categoria"
|
||||
MOD_JEM_BANNER_SHOWCATEGORY_DESC="Mostra o nasconde la categoria."
|
||||
MOD_JEM_BANNER_LINK_TO_CATEGORY="Link alla categoria"
|
||||
MOD_JEM_BANNER_LINK_TO_CATEGORY_DESC="Link alla Categoria. Solo se Mostra Categoria è stato selezionato sopra!"
|
||||
MOD_JEM_BANNER_LINK_TO_VENUE="Link alla sede"
|
||||
MOD_JEM_BANNER_LINK_TO_VENUE_DESC="Link alla Sede. Solo se Mostra sede è stato selezionato sopra!"
|
||||
MOD_JEM_BANNER_USE_MODAL="Finestra modale"
|
||||
MOD_JEM_BANNER_USE_MODAL_DESC="La finestra modale mostra l'immagine in dimensioni originali dopo un clic con un piacevole effetto all'interno della schermata corrente"
|
||||
MOD_JEM_BANNER_FLYER_LINKS_TO="Link al Volantino"
|
||||
MOD_JEM_BANNER_FLYER_LINKS_TO_DESC="Un click sull'immagine del volantino mostrera` l'immagine in dimensioni originali su pagina intera, in una finestra popup modale, o apre la vista dei dettagli dell'evento. Questa impostazione richiede Mostra Volantino impostata su Si."
|
||||
MOD_JEM_BANNER_FLYER_LINK_IMAGE_PAGE="Immagine a pagina intera"
|
||||
MOD_JEM_BANNER_FLYER_LINK_IMAGE_MODAL="Immagine con finestra modale"
|
||||
MOD_JEM_BANNER_FLYER_LINK_EVENT_DETAILS="Vista dettaglio dell'evento"
|
||||
MOD_JEM_BANNER_DATE="Data"
|
||||
MOD_JEM_BANNER_FEATURED_ONLY="Solo gli eventi in primo piano"
|
||||
MOD_JEM_BANNER_FEATURED_ONLY_DESC="Limita ai soli eventi selezionati o mostra tutti gli eventi pertinenti"
|
||||
MOD_JEM_BANNER_CATEGORY_ID="Categorie"
|
||||
MOD_JEM_BANNER_CATEGORY_ID_DESC="Scegli categorie per limitare l'output. Lasciare vuoto se si desidera visualizzare tutti gli eventi."
|
||||
MOD_JEM_BANNER_VENUE_ID="Sedi"
|
||||
MOD_JEM_BANNER_VENUE_ID_DESC="Scegli categorie per limitare l'output. Lasciare vuoto se si desidera visualizzare tutti gli eventi."
|
||||
MOD_JEM_BANNER_STATE="Provincia"
|
||||
MOD_JEM_BANNER_STATE_DESC="Inserire separati da virgola gli stati per limitare gli eventi scelti. Lasciare vuoto per visualizzare tutti gli eventi."
|
||||
MOD_JEM_BANNER_STATE_MODE="Stato Match Mode"
|
||||
MOD_JEM_BANNER_STATE_MODE_DESC="Scegliere se Stato deve corrispondere completamente a una delle stringhe di cui sopra, o contenerne solo una."
|
||||
MOD_JEM_BANNER_STATE_MODE_EXACTMATCH="Confronto completo"
|
||||
MOD_JEM_BANNER_STATE_MODE_CONTAINS="Contiene"
|
||||
MOD_JEM_BANNER_SHOW_DATE_OR_DAY_DIFFERENCE="Tipo di visualizzazione delle date"
|
||||
MOD_JEM_BANNER_SHOW_DATE_OR_DAY_DIFFERENCE_DESC="Selezionare per visualizzare la data formattata o la differenza in giorni dal giorno corrente alla data dell'evento. Nota: Il tempo sarà nascosto quando è selezionata la differenza giorno."
|
||||
MOD_JEM_BANNER_SHOW_DATE="Mostra data"
|
||||
MOD_JEM_BANNER_SHOW_DAY_DIFFERENCE="Mostra giorni mancanti"
|
||||
MOD_JEM_BANNER_DATE_FORMAT="Formato data"
|
||||
MOD_JEM_BANNER_DATE_FORMAT_DESC="Il formato data utilizza il formato della data di PHP, per esempio: "_QQ_"j. M Y"_QQ_". Per maggiori informazioni consulta il manuale PHP sui php.net."
|
||||
MOD_JEM_BANNER_TIME_FORMAT="Formato ora"
|
||||
MOD_JEM_BANNER_TIME_FORMAT_DESC="Il formato ora utilizza il formato PHP strftime, per esempio: "_QQ_"%H:%M. Per maggiori informazioni consulta il manuale PHP sui php.net."
|
||||
MOD_JEM_BANNER_MODULE_CLASS_SUFFIX="Suffisso classe del modulo"
|
||||
MOD_JEM_BANNER_MODULE_CLASS_SUFFIX_DESC="Un suffisso da applicare alla classe CSS del modulo, che ne permette lo stile indipendente."
|
||||
MOD_JEM_BANNER_CACHING="Cache"
|
||||
MOD_JEM_BANNER_CACHING_DESC="Selezionare se memorizzare nella cache il contenuto di questo modulo."
|
||||
MOD_JEM_BANNER_USE_GLOBAL="Usa globali"
|
||||
MOD_JEM_BANNER_NO_CACHING="Nessuna cache"
|
||||
MOD_JEM_BANNER_CACHE_TIME="Durata cache"
|
||||
MOD_JEM_BANNER_CACHE_TIME_DESC="Il tempo prima che la cache venga ricaricata."
|
||||
MOD_JEM_BANNER_ALLOW_LINEBREAK="Consenti Linea di interruzione"
|
||||
MOD_JEM_BANNER_ALLOW_LINEBREAK_DESC="Consentire le interruzioni di linea o sostituirle con uno spazio."
|
||||
MOD_JEM_BANNER_MAX_DESCRIPTION_LENGTH="Lunghezza massima descrizione"
|
||||
MOD_JEM_BANNER_MAX_DESCRIPTION_LENGTH_DESC="Limite descrizione indicato a questa quantita` di caratteri."
|
||||
MOD_JEM_BANNER_FIELD_READMORE_DESC="Se impostato su Mostra, il collegamento 'Leggi tutto ..' mostrera` il testo se il testo principale e` stato previsto per un evento."
|
||||
MOD_JEM_BANNER_FIELD_READMORE_LABEL="Collegamento 'Leggi tutto ...'"
|
||||
MOD_JEM_BANNER_EVENT_ID="ID evento"
|
||||
MOD_JEM_BANNER_EVENT_ID_DESC="Scrivi gli ID degli eventi separati da una virgola per limitare ai soli la visualizzazione. Lascia bianco per mostrare tutti gli eventi."
|
||||
MOD_JEM_BANNER_SHOWCALENDAR="Mostra Calendario"
|
||||
MOD_JEM_BANNER_SHOWCALENDAR_DESC="Mostra un'immagine del calendario con la data dell'evento."
|
||||
MOD_JEM_BANNER_COLOR="Colore"
|
||||
MOD_JEM_BANNER_COLOR_DESC="Colore dell'immagine del calendario. Se viene scelto "_QQ_"dalla categoria"_QQ_" verra` preso da categorie se unico."
|
||||
MOD_JEM_BANNER_BLUE="Blu"
|
||||
MOD_JEM_BANNER_GREEN="Verde"
|
||||
MOD_JEM_BANNER_ORANGE="Arancione"
|
||||
MOD_JEM_BANNER_RED="Rosso"
|
||||
MOD_JEM_BANNER_CATEGORY="dalla categoria"
|
||||
MOD_JEM_BANNER_FALLBACK_COLOR="Colore Fallback"
|
||||
MOD_JEM_BANNER_FALLBACK_COLOR_DESC="Colore utilizzato se viene scelto "_QQ_"dalla categoria"_QQ_" ma non puo` essere trovato un unico colore."
|
||||
MOD_JEM_BANNER_MAX_DAYS="Massimo numero di giorni"
|
||||
MOD_JEM_BANNER_MAX_DAYS_DESC="Limitare eventi imminenti o non completi per un massimo numero di giorni, relativi al tempo di offset."
|
||||
MOD_JEM_BANNER_SHUFFLE="Eventi Shuffle"
|
||||
MOD_JEM_BANNER_SHUFFLE_DESC="Se ci sono piu` eventi da visualizzare in modo casuale scegliere gli eventi comuni."
|
||||
MOD_JEM_BANNER_SHUFFLE_COUNT="Limite Shuffle comuni"
|
||||
MOD_JEM_BANNER_SHUFFLE_COUNT_DESC="Limiti eventi letti dal database, massima quantita`, ma verra` corretto ad almeno il numero di eventi da visualizzare."
|
||||
MOD_JEM_BANNER="JEM - Modulo Banner"
|
||||
MOD_JEM_BANNER_XML_DESCRIPTION="JEM modulo banner ultimi eventi."
|
||||
|
||||
;Frontend
|
||||
MOD_JEM_BANNER_TODAY="Oggi"
|
||||
MOD_JEM_BANNER_TOMORROW="Domani"
|
||||
MOD_JEM_BANNER_YESTERDAY="Ieri"
|
||||
MOD_JEM_BANNER_DAYS_AGO="%s giorni fa"
|
||||
MOD_JEM_BANNER_DAYS_AHEAD="Tra %s giorni"
|
||||
MOD_JEM_BANNER_DAYS_LEFT="%s giorni rimasti"
|
||||
MOD_JEM_BANNER_ENDED_DAYS_AGO="Terminato %s giorni fa"
|
||||
MOD_JEM_BANNER_STARTED_DAYS_AGO="Cominciato %s giorni fa"
|
||||
MOD_JEM_BANNER_FROM="Dal %s"
|
||||
MOD_JEM_BANNER_UNTIL="Al %s"
|
||||
MOD_JEM_BANNER_FROM_UNTIL="Dal %s Al %s"
|
||||
MOD_JEM_BANNER_ON_DATE="Alle %s"
|
||||
MOD_JEM_BANNER_READMORE="Leggi altro..."
|
||||
MOD_JEM_BANNER_READMORE_REGISTER="Effettua il login per leggere maggiori dettagli."
|
||||
MOD_JEM_BANNER_NO_DESCRIPTION=""
|
||||
MOD_JEM_BANNER_CLICK_TO_ENLARGE="Clicca per ingrandire"
|
||||
@ -0,0 +1,14 @@
|
||||
; @version 2.1.3
|
||||
; @package JEM
|
||||
; @subpackage JEM Banner Module
|
||||
; @copyright (C) 2005-2009 Christoph Lukes
|
||||
; @copyright (C) 2013-2015 joomlaeventmanager.net
|
||||
; @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
|
||||
;
|
||||
; All translations can be found at https://www.transifex.com/projects/p/JEM/
|
||||
; 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_BANNER="JEM - Modulo Banner"
|
||||
MOD_JEM_BANNER_XML_DESCRIPTION="Questo modulo mostra gli eventi come banner"
|
||||
60
modules/mod_jem_banner/mod_jem_banner.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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;
|
||||
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 'category':
|
||||
case 'alpha':
|
||||
$color = $params->get('color');
|
||||
break;
|
||||
default:
|
||||
$color = "red";
|
||||
// ensure getList() always gets a valid 'color' setting
|
||||
$params->set('color', $color);
|
||||
break;
|
||||
}
|
||||
|
||||
$list = ModJemBannerHelper::getList($params);
|
||||
|
||||
// check if any results returned
|
||||
if (empty($list) && !$params->get('show_no_events')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$mod_name = 'mod_jem_banner';
|
||||
$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));
|
||||
305
modules/mod_jem_banner/mod_jem_banner.xml
Normal 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_banner</name>
|
||||
<author>JEM Community</author>
|
||||
<authorEmail>info@joomlaeventmanager.net</authorEmail>
|
||||
<authorUrl>https://www.joomlaeventmanager.net</authorUrl>
|
||||
<creationDate>October 2024</creationDate>
|
||||
<copyright>copyright (C) 2013-2024 joomlaeventmanager.net</copyright>
|
||||
<license>https://www.gnu.org/licenses/gpl-3.0 GNU/GPL</license>
|
||||
<version>4.3.1</version>
|
||||
<description>MOD_JEM_BANNER_XML_DESCRIPTION</description>
|
||||
|
||||
<scriptfile>script.php</scriptfile>
|
||||
|
||||
<files>
|
||||
<filename module="mod_jem_banner">mod_jem_banner.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_banner.ini</language>
|
||||
<language tag="en-GB">language/en-GB/mod_jem_banner.sys.ini</language>
|
||||
</languages>
|
||||
<help key="Modules" />
|
||||
<config>
|
||||
<fields name="params">
|
||||
<fieldset name="basic" addfieldpath="/administrator/components/com_jem/models/fields">
|
||||
<field name="type" type="list"
|
||||
default="1"
|
||||
label="MOD_JEM_BANNER_UPCOMING_ARCHIVED_OR_CURRENT"
|
||||
description="MOD_JEM_BANNER_UPCOMING_ARCHIVED_OR_CURRENT_DESC"
|
||||
>
|
||||
<option value="0">MOD_JEM_BANNER_UPCOMING_EVENTS</option>
|
||||
<option value="1">MOD_JEM_BANNER_UNFINISHED_EVENTS</option>
|
||||
<option value="2">MOD_JEM_BANNER_ARCHIVED_EVENTS</option>
|
||||
<option value="3">MOD_JEM_BANNER_CURRENT_EVENTS</option>
|
||||
<option value="5">MOD_JEM_BANNER_OPENDATE_EVENTS</option>
|
||||
</field>
|
||||
<field name="count" type="text"
|
||||
default="5"
|
||||
label="MOD_JEM_BANNER_EVENTS_IN_MODULE"
|
||||
description="MOD_JEM_BANNER_EVENTS_IN_MODULE_DESC"
|
||||
/>
|
||||
<field name="show_no_events" type="radio"
|
||||
default="1"
|
||||
label="MOD_JEM_BANNER_SHOW_NO_EVENTS"
|
||||
description="MOD_JEM_BANNER_SHOW_NO_EVENTS_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
<field name="max_days" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_MAX_DAYS"
|
||||
description="MOD_JEM_BANNER_MAX_DAYS_DESC"
|
||||
/>
|
||||
<field name="offset_hours" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_OFFSET_HOURS"
|
||||
description="MOD_JEM_BANNER_OFFSET_HOURS_DESC"
|
||||
/>
|
||||
<field name="shuffle" type="radio"
|
||||
default="0"
|
||||
label="MOD_JEM_BANNER_SHUFFLE"
|
||||
description="MOD_JEM_BANNER_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_BANNER_SHUFFLE_COUNT"
|
||||
description="MOD_JEM_BANNER_SHUFFLE_COUNT_DESC"
|
||||
/>
|
||||
|
||||
<field name="cuttitle" type="text"
|
||||
default="25"
|
||||
label="MOD_JEM_BANNER_MAX_TITLE_LENGTH"
|
||||
description="MOD_JEM_BANNER_MAX_TITLE_LENGTH_DESC"
|
||||
/>
|
||||
<field name="linkevent" type="radio"
|
||||
default="1"
|
||||
label="MOD_JEM_BANNER_LINK_TO_DETAILS"
|
||||
description="MOD_JEM_BANNER_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_BANNER_SHOWCALENDAR"
|
||||
description="MOD_JEM_BANNER_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_BANNER_COLOR"
|
||||
description="MOD_JEM_BANNER_COLOR_DESC"
|
||||
>
|
||||
<option value="red">MOD_JEM_BANNER_RED</option>
|
||||
<option value="blue">MOD_JEM_BANNER_BLUE</option>
|
||||
<option value="green">MOD_JEM_BANNER_GREEN</option>
|
||||
<option value="orange">MOD_JEM_BANNER_ORANGE</option>
|
||||
<option value="category">MOD_JEM_BANNER_CATEGORY</option>
|
||||
<option value="alpha">MOD_JEM_BANNER_USER</option>
|
||||
</field>
|
||||
<field name="fallbackcolor" type="color"
|
||||
class="inputbox"
|
||||
default="#EEEEEE"
|
||||
size="8"
|
||||
label="MOD_JEM_BANNER_FALLBACK_COLOR"
|
||||
description="MOD_JEM_BANNER_FALLBACK_COLOR_DESC"
|
||||
/>
|
||||
<field name="imagewidthmax" type="text"
|
||||
class="inputbox"
|
||||
default=""
|
||||
size="8"
|
||||
label="MOD_JEM_BANNER_IMAGE_WIDTH_MAX"
|
||||
description="MOD_JEM_BANNER_IMAGE_WIDTH_MAX_DESC"
|
||||
/>
|
||||
<field name="showflyer" type="radio"
|
||||
default="1"
|
||||
label="MOD_JEM_BANNER_SHOWFLYER"
|
||||
description="MOD_JEM_BANNER_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_BANNER_FLYER_LINKS_TO"
|
||||
description="MOD_JEM_BANNER_FLYER_LINKS_TO_DESC"
|
||||
>
|
||||
<option value="0">MOD_JEM_BANNER_FLYER_LINK_IMAGE_PAGE</option>
|
||||
<option value="1">MOD_JEM_BANNER_FLYER_LINK_IMAGE_MODAL</option>
|
||||
<option value="2">MOD_JEM_BANNER_FLYER_LINK_EVENT_DETAILS</option>
|
||||
<option value="3">COM_JEM_NO_LINK</option>
|
||||
</field>
|
||||
|
||||
<field name="showdesc" type="radio"
|
||||
default="1"
|
||||
label="MOD_JEM_BANNER_SHOWDESC"
|
||||
description="MOD_JEM_BANNER_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_BANNER_MAX_DESCRIPTION_LENGTH"
|
||||
description="MOD_JEM_BANNER_MAX_DESCRIPTION_LENGTH_DESC"
|
||||
/>
|
||||
<field name="br" type="radio"
|
||||
default="0"
|
||||
label="MOD_JEM_BANNER_ALLOW_LINEBREAK"
|
||||
description="MOD_JEM_BANNER_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_BANNER_FIELD_READMORE_LABEL"
|
||||
description="MOD_JEM_BANNER_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="1"
|
||||
label="MOD_JEM_BANNER_SHOW_DATE_OR_DAY_DIFFERENCE"
|
||||
description="MOD_JEM_BANNER_SHOW_DATE_OR_DAY_DIFFERENCE_DESC"
|
||||
>
|
||||
<option value="1">MOD_JEM_BANNER_SHOW_DATE</option>
|
||||
<option value="2">MOD_JEM_BANNER_SHOW_DAY_DIFFERENCE</option>
|
||||
</field>
|
||||
<field name="formatdate" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_DATE_FORMAT"
|
||||
description="MOD_JEM_BANNER_DATE_FORMAT_DESC"
|
||||
/>
|
||||
<field name="formattime" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_TIME_FORMAT"
|
||||
description="MOD_JEM_BANNER_TIME_FORMAT_DESC"
|
||||
/>
|
||||
|
||||
<field name="showcategory" type="radio"
|
||||
default="0"
|
||||
label="MOD_JEM_BANNER_SHOWCATEGORY"
|
||||
description="MOD_JEM_BANNER_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_BANNER_LINK_TO_CATEGORY"
|
||||
description="MOD_JEM_BANNER_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_BANNER_SHOWVENUE"
|
||||
description="MOD_JEM_BANNER_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_BANNER_LINK_TO_VENUE"
|
||||
description="MOD_JEM_BANNER_LINK_TO_VENUE_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field name="featured_only" type="radio"
|
||||
default="0"
|
||||
label="MOD_JEM_BANNER_FEATURED_ONLY"
|
||||
description="MOD_JEM_BANNER_FEATURED_ONLY_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_BANNER_CATEGORY_ID"
|
||||
description="MOD_JEM_BANNER_CATEGORY_ID_DESC"
|
||||
/>
|
||||
<field name="venid" type="venueoptions"
|
||||
default=""
|
||||
multiple="true"
|
||||
label="MOD_JEM_BANNER_VENUE_ID"
|
||||
description="MOD_JEM_BANNER_VENUE_ID_DESC"
|
||||
/>
|
||||
<field name="eventid" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_EVENT_ID"
|
||||
description="MOD_JEM_BANNER_EVENT_ID_DESC"
|
||||
/>
|
||||
<field name="stateloc" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_STATE"
|
||||
description="MOD_JEM_BANNER_STATE_DESC"
|
||||
/>
|
||||
<field name="stateloc_mode" type="list"
|
||||
default="0"
|
||||
label="MOD_JEM_BANNER_STATE_MODE"
|
||||
description="MOD_JEM_BANNER_STATE_MODE_DESC"
|
||||
>
|
||||
<option value="0">MOD_JEM_BANNER_STATE_MODE_EXACTMATCH</option>
|
||||
<option value="1">MOD_JEM_BANNER_STATE_MODE_CONTAINS</option>
|
||||
</field>
|
||||
|
||||
<field name="moduleclass_sfx" type="text"
|
||||
default=""
|
||||
label="MOD_JEM_BANNER_MODULE_CLASS_SUFFIX"
|
||||
description="MOD_JEM_BANNER_MODULE_CLASS_SUFFIX_DESC"
|
||||
/>
|
||||
</fieldset>
|
||||
|
||||
<fieldset name="advanced">
|
||||
<field name="cache" type="list"
|
||||
default="1"
|
||||
label="MOD_JEM_BANNER_CACHING"
|
||||
description="MOD_JEM_BANNER_CACHING_DESC"
|
||||
>
|
||||
<option value="1">MOD_JEM_BANNER_USE_GLOBAL</option>
|
||||
<option value="0">MOD_JEM_BANNER_NO_CACHING</option>
|
||||
</field>
|
||||
<field name="cache_time" type="text"
|
||||
default="900"
|
||||
label="MOD_JEM_BANNER_CACHE_TIME"
|
||||
description="MOD_JEM_BANNER_CACHE_TIME_DESC"
|
||||
/>
|
||||
</fieldset>
|
||||
</fields>
|
||||
</config>
|
||||
</extension>
|
||||
131
modules/mod_jem_banner/script.php
Normal 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_bannerInstallerScript
|
||||
{
|
||||
|
||||
private $name = 'mod_jem_banner';
|
||||
|
||||
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', 'le') && version_compare($this->newRelease, '2.1.6', '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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
55
modules/mod_jem_banner/tmpl/alpha.css
Normal file
@ -0,0 +1,55 @@
|
||||
.jem-banner-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-banner-calendar .color-bar {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 24px;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
.jem-banner-calendar .lower-background {
|
||||
position: absolute;
|
||||
top: 29px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(to top, #ddd 0%, #fff 50%);
|
||||
}
|
||||
|
||||
.jem-banner-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;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner.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);
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner.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);
|
||||
}
|
||||
173
modules/mod_jem_banner/tmpl/alternative/default.php
Normal file
@ -0,0 +1,173 @@
|
||||
<?php
|
||||
/**
|
||||
* @version 2.3.6
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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', 1);
|
||||
$showcalendar = (int)$params->get('showcalendar', 1);
|
||||
$showflyer = (int)$params->get('showflyer', 1);
|
||||
$flyer_link_type = (int)$params->get('flyer_link_type', 0);
|
||||
|
||||
if ($flyer_link_type == 1) {
|
||||
JHtml::_('behavior.modal', 'a.flyermodal');
|
||||
$modal = 'flyermodal';
|
||||
} elseif ($flyer_link_type == 0) {
|
||||
$modal = 'notmodal';
|
||||
} else {
|
||||
$modal = '';
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="jemmodulebanner<?php echo $params->get('moduleclass_sfx')?>" id="jemmodulebanner">
|
||||
<?php ?>
|
||||
<div class="eventset" summary="mod_jem_banner">
|
||||
<?php $i = count($list); ?>
|
||||
<?php if ($i > 0) : ?>
|
||||
<?php foreach ($list as $item) : ?>
|
||||
|
||||
<h2 class="event-title">
|
||||
<?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 ($showcalendar == 1) :?>
|
||||
<div>
|
||||
<div class="calendar<?php echo '-'.$item->colorclass; ?>"
|
||||
title="<?php echo strip_tags($item->dateinfo); ?>"
|
||||
<?php if (!empty($item->color)) : ?>
|
||||
style="background-color: <?php echo $item->color; ?>"
|
||||
<?php endif; ?>
|
||||
>
|
||||
<?php if (isset($item->color_is_dark)) : ?>
|
||||
<div class="monthbanner monthbanner-<?php echo (!empty($item->color_is_dark) ? 'light' : 'dark'); ?>">
|
||||
<?php else : ?>
|
||||
<div class="monthbanner">
|
||||
<?php endif; ?>
|
||||
<?php echo $item->startdate['month']; ?>
|
||||
</div>
|
||||
<div class="daybanner">
|
||||
<?php echo $item->startdate['weekday']; ?>
|
||||
</div>
|
||||
<div class="daynumbanner">
|
||||
<?php echo $item->startdate['day']; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (($showflyer == 1) && !empty($item->eventimage)) : ?>
|
||||
<div>
|
||||
<div class="banner-jem">
|
||||
<div>
|
||||
<?php $class = ($showcalendar == 1) ? 'image-preview' : 'image-preview2'; ?>
|
||||
<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_BANNER_CLICK_TO_ENLARGE'); ?> ">
|
||||
<img class="float_right <?php echo $class; ?>" 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 ($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 ($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 ($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 class="clr"></div>
|
||||
|
||||
<?php if (--$i > 0) : /* no hr after last entry */ ?>
|
||||
<div class="hr"><hr /></div>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
<?php else : ?>
|
||||
<?php echo JText::_('MOD_JEM_BANNER_NO_EVENTS'); ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
1
modules/mod_jem_banner/tmpl/alternative/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
150
modules/mod_jem_banner/tmpl/alternative/mod_jem_banner.css
Normal file
@ -0,0 +1,150 @@
|
||||
/**
|
||||
* @version 2.3.6
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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#jemmodulebanner {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#jemmodulebanner.banner-jem {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
|
||||
#jemmodulebanner [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;
|
||||
}
|
||||
|
||||
#jemmodulebanner span.share {
|
||||
margin-left:95px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .yearbanner {
|
||||
font-size: 6px;
|
||||
height:5px;
|
||||
color: #e1e1e1;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner {
|
||||
font-size: 8px;
|
||||
color: white;
|
||||
text-transform:uppercase;
|
||||
font-weight:bold;
|
||||
text-shadow: #666 1px 1px 1px;
|
||||
height:20px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .daybanner {
|
||||
font-weight:bold;
|
||||
font-size: 12px;
|
||||
padding-top:3px;
|
||||
min-height: 16px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .daynumbanner {
|
||||
font-size: 29px;
|
||||
font-weight:bold;
|
||||
color: #FF6400;
|
||||
text-shadow: #000 1px 1px 1px;
|
||||
}
|
||||
|
||||
|
||||
div#jemmodulebanner .eventset {
|
||||
margin-bottom: 10px;
|
||||
padding: 5px;
|
||||
border: 1px dotted silver;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .event-title {
|
||||
padding-left: 0px;
|
||||
font-size: x-large;
|
||||
margin: 0 0 5px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .desc {
|
||||
padding-left: 0px;
|
||||
padding-top: 2px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .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#jemmodulebanner 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#jemmodulebanner .category {
|
||||
position: relative;
|
||||
padding-left: 20px;
|
||||
background: url(../img/category.png) 0 center no-repeat;
|
||||
font-size: smaller;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .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#jemmodulebanner .event-image-cell {
|
||||
}
|
||||
|
||||
div#jemmodulebanner .venue-image-cell {
|
||||
}
|
||||
|
||||
div#jemmodulebanner .image-preview {
|
||||
max-width: 110px;
|
||||
border: 0px solid #CCCCCC;
|
||||
padding: 3px;
|
||||
background-color: white;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .image-preview2 {
|
||||
max-width: 200px;
|
||||
border: 0px solid #CCCCCC;
|
||||
padding: 3px;
|
||||
background-color: white;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .hr {
|
||||
color: silver;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .clr {
|
||||
clear: both;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @version 2.3.6
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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. */
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @version 2.3.6
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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. */
|
||||
12
modules/mod_jem_banner/tmpl/blue.css
Normal file
@ -0,0 +1,12 @@
|
||||
#jemmodulebanner .calendar-blue {
|
||||
background-image: url(img/calendar_blue.png);
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
#jemmodulebanner .calendar-blue .monthbanner {
|
||||
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);
|
||||
}
|
||||
56
modules/mod_jem_banner/tmpl/category.css
Normal file
@ -0,0 +1,56 @@
|
||||
.jem-banner-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-banner-calendar .color-bar {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 24px;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
.jem-banner-calendar .lower-background {
|
||||
position: absolute;
|
||||
top: 29px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(to top, #ddd 0%, #fff 50%);
|
||||
}
|
||||
|
||||
.jem-banner-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;
|
||||
}
|
||||
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner.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);
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner.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);
|
||||
}
|
||||
205
modules/mod_jem_banner/tmpl/default.php
Normal file
@ -0,0 +1,205 @@
|
||||
<?php
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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;
|
||||
use Joomla\CMS\Factory;
|
||||
|
||||
|
||||
$datemethod = (int)$params->get('datemethod', 1);
|
||||
$showcalendar = (int)$params->get('showcalendar', 1);
|
||||
$showflyer = (int)$params->get('showflyer', 1);
|
||||
$flyer_link_type = (int)$params->get('flyer_link_type', 0);
|
||||
$imagewidthmax = (int)$params->get('imagewidthmax', 0);
|
||||
|
||||
if ($flyer_link_type == 1) {
|
||||
echo JemOutput::lightbox();
|
||||
$modal = 'lightbox';
|
||||
} elseif ($flyer_link_type == 0) {
|
||||
$modal = 'notmodal';
|
||||
} else {
|
||||
$modal = '';
|
||||
}
|
||||
|
||||
$document = Factory::getDocument();
|
||||
$widthStyle = $imagewidthmax ? 'width:' . $imagewidthmax . 'px' : 'max-width: 100%';
|
||||
|
||||
$css = '
|
||||
.banner-jem img {
|
||||
' . $widthStyle . ';
|
||||
}';
|
||||
$document->addStyleDeclaration($css);
|
||||
?>
|
||||
|
||||
<div class="jemmodulebanner<?php echo $params->get('moduleclass_sfx')?>" id="jemmodulebanner">
|
||||
<div class="eventset">
|
||||
<?php $i = count($list); ?>
|
||||
<?php if ($i > 0) : ?>
|
||||
<?php foreach ($list as $item) : ?>
|
||||
<div class="event_id<?php echo $item->eventid; ?>" itemprop="event" itemscope itemtype="https://schema.org/Event">
|
||||
<h2 class="event-title" itemprop="name">
|
||||
<?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 class="jem-row-banner <?php echo $banneralignment; ?>">
|
||||
|
||||
<?php if ($showcalendar == 1) :?>
|
||||
<?php if ($item->colorclass === "category" || $item->colorclass === "alpha"): ?>
|
||||
<div class="calendar<?php echo '-' . $item->colorclass; ?> jem-banner-calendar" title="<?php echo strip_tags($item->dateinfo); ?>">
|
||||
<div class="color-bar" style="background-color:<?php echo !empty($item->color) ? $item->color : 'rgb(128,128,128)'; ?>"></div>
|
||||
<div class="lower-background"></div>
|
||||
<div class="background-image"></div>
|
||||
<?php else: ?>
|
||||
<div class="calendar<?php echo '-' . $item->colorclass; ?> jem-banner-calendar"
|
||||
title="<?php echo strip_tags($item->dateinfo); ?>"
|
||||
<?php if (!empty($item->color)) : ?>
|
||||
style="background-color: <?php echo $item->color; ?>"
|
||||
<?php endif; ?>>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($item->color_is_dark)) : ?>
|
||||
<div class="monthbanner monthcolor-<?php echo !empty($item->color_is_dark) ? 'light' : 'dark'; ?>">
|
||||
<?php else : ?>
|
||||
<div class="monthbanner">
|
||||
<?php endif;
|
||||
echo $item->startdate['month']; ?>
|
||||
</div>
|
||||
<div class="daybanner">
|
||||
<?php echo $item->startdate['weekday']; ?>
|
||||
</div>
|
||||
<div class="daynumbanner">
|
||||
<?php echo $item->startdate['day']; ?>
|
||||
</div>
|
||||
<?php echo $item->dateschema; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (($showflyer == 1) && !empty($item->eventimage)) : ?>
|
||||
<div>
|
||||
<div class="banner-jem">
|
||||
<div>
|
||||
<?php $class = ($showcalendar == 1) ? 'image-preview' : 'image-preview2'; ?>
|
||||
<?php if ($flyer_link_type != 3) : ?>
|
||||
<a href="<?php echo ($flyer_link_type == 2) ? $item->eventlink : $item->eventimageorig; ?>" rel="<?php echo $modal;?>" class="banner-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; ?>" itemprop="image" />
|
||||
<?php if ($flyer_link_type != 3) { echo '</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 /* if no calendar sheet is displayed */ ?>
|
||||
<?php if ($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 ($item->time && $datemethod == 1) :?>
|
||||
<div class="time" title="<?php echo strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->time; ?>
|
||||
</div>
|
||||
<?php endif;
|
||||
endif;
|
||||
|
||||
// if calendar page is displayed
|
||||
else :
|
||||
// if time difference is to be displayed
|
||||
if ($item->date && $datemethod == 2) : ?>
|
||||
<div class="date" title="<?php echo strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->date; ?>
|
||||
</div>
|
||||
<?php endif;
|
||||
|
||||
// if date is to be displayed
|
||||
if ($item->time && $datemethod == 1) :
|
||||
// only the time needs to be displayed (as the date is already displayed on the calendar page) ?>
|
||||
<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
|
||||
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;
|
||||
|
||||
// category
|
||||
if (($params->get('showcategory', 1) == 1) && !empty($item->catname)) :?>
|
||||
<div class="category">
|
||||
<?php echo $item->catname; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<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 class="clr"></div>
|
||||
|
||||
<?php if (--$i > 0) : /* no hr after last entry */ ?>
|
||||
<div class="hr"><hr /></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php else : ?>
|
||||
<?php echo Text::_('MOD_JEM_BANNER_NO_EVENTS'); ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
12
modules/mod_jem_banner/tmpl/green.css
Normal file
@ -0,0 +1,12 @@
|
||||
#jemmodulebanner .calendar-green {
|
||||
background-image: url(img/calendar_green.png);
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
#jemmodulebanner .calendar-green .monthbanner {
|
||||
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);
|
||||
}
|
||||
BIN
modules/mod_jem_banner/tmpl/img/building.png
Normal file
|
After Width: | Height: | Size: 556 B |
BIN
modules/mod_jem_banner/tmpl/img/cal.png
Normal file
|
After Width: | Height: | Size: 971 B |
BIN
modules/mod_jem_banner/tmpl/img/cal1.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
modules/mod_jem_banner/tmpl/img/calendar_alpha.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
modules/mod_jem_banner/tmpl/img/calendar_blue.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
modules/mod_jem_banner/tmpl/img/calendar_green.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
modules/mod_jem_banner/tmpl/img/calendar_orange.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
modules/mod_jem_banner/tmpl/img/calendar_red.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
modules/mod_jem_banner/tmpl/img/category.png
Normal file
|
After Width: | Height: | Size: 579 B |
BIN
modules/mod_jem_banner/tmpl/img/date.png
Normal file
|
After Width: | Height: | Size: 626 B |
BIN
modules/mod_jem_banner/tmpl/img/digg.png
Normal file
|
After Width: | Height: | Size: 447 B |
BIN
modules/mod_jem_banner/tmpl/img/facebook.png
Normal file
|
After Width: | Height: | Size: 420 B |
BIN
modules/mod_jem_banner/tmpl/img/flag_red.png
Normal file
|
After Width: | Height: | Size: 665 B |
1
modules/mod_jem_banner/tmpl/img/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
BIN
modules/mod_jem_banner/tmpl/img/time.png
Normal file
|
After Width: | Height: | Size: 793 B |
BIN
modules/mod_jem_banner/tmpl/img/twitter.png
Normal file
|
After Width: | Height: | Size: 368 B |
BIN
modules/mod_jem_banner/tmpl/img/venue.png
Normal file
|
After Width: | Height: | Size: 896 B |
1
modules/mod_jem_banner/tmpl/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
147
modules/mod_jem_banner/tmpl/mod_jem_banner.css
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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#jemmodulebanner {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#jemmodulebanner.banner-jem {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
|
||||
#jemmodulebanner [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);
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .yearbanner,
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner {
|
||||
font-size: 13px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner,
|
||||
#jemmodulebanner [class|="calendar"] .daybanner,
|
||||
#jemmodulebanner [class|="calendar"] .daynumbanner {
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: block;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner {
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .daybanner {
|
||||
font-size: 12px;
|
||||
min-height: 0.8rem;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .daynumbanner {
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
#jemmodulebanner span.share {
|
||||
margin-left:95px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .yearbanner {
|
||||
font-size: 6px;
|
||||
height:5px;
|
||||
color: #e1e1e1;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .eventset {
|
||||
margin-bottom: 10px;
|
||||
padding: 5px;
|
||||
border: 1px dotted silver;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .event-title {
|
||||
padding-left: 0;
|
||||
font-size: x-large;
|
||||
margin: 0 0 5px;
|
||||
}
|
||||
|
||||
.highlight_featured{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .desc {
|
||||
padding-left: 0;
|
||||
padding-top: 2px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .time {
|
||||
padding-top: 2px;
|
||||
font-weight: normal;
|
||||
font-size: smaller;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#jemmodulebanner div.date {
|
||||
padding-top: 2px;
|
||||
font-weight: normal;
|
||||
font-size: smaller;
|
||||
float: left;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .category {
|
||||
position: relative;
|
||||
font-size: smaller;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .venue-title {
|
||||
position: relative;
|
||||
font-size: smaller;
|
||||
float: left;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .event-image-cell {
|
||||
}
|
||||
|
||||
div#jemmodulebanner .venue-image-cell {
|
||||
}
|
||||
|
||||
div#jemmodulebanner .image-preview {
|
||||
border: 0 solid #ccc;
|
||||
padding: 3px;
|
||||
background-color: white;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .image-preview2 {
|
||||
border: 0 solid #ccc;
|
||||
padding: 3px;
|
||||
background-color: white;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .hr {
|
||||
color: silver;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .clr {
|
||||
clear: both;
|
||||
}
|
||||
31
modules/mod_jem_banner/tmpl/mod_jem_banner_iconfont.css
Normal file
@ -0,0 +1,31 @@
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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#jemmodulebanner .time:before,
|
||||
div#jemmodulebanner div.date:before,
|
||||
div#jemmodulebanner .category:before,
|
||||
div#jemmodulebanner .venue-title:before {
|
||||
font-family:var(--fa-style-family,"Font Awesome 6 Free", "Font Awesome 5 Free");
|
||||
font-weight:var(--fa-style,900);
|
||||
}
|
||||
|
||||
div#jemmodulebanner .time:before {
|
||||
content:"\f017";
|
||||
}
|
||||
|
||||
div#jemmodulebanner div.date:before {
|
||||
content:"\f133";
|
||||
}
|
||||
|
||||
div#jemmodulebanner .category:before {
|
||||
content:"\f02b";
|
||||
}
|
||||
|
||||
div#jemmodulebanner .venue-title:before {
|
||||
content:"\f041";
|
||||
}
|
||||
27
modules/mod_jem_banner/tmpl/mod_jem_banner_iconimg.css
Normal file
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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#jemmodulebanner .time {
|
||||
padding-left: 20px;
|
||||
background: url(img/time.png) 0 center no-repeat;
|
||||
}
|
||||
|
||||
div#jemmodulebanner div.date {
|
||||
padding-left: 20px;
|
||||
background: url(img/date.png) 0 center no-repeat;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .category {
|
||||
padding-left: 20px;
|
||||
background: url(img/category.png) 0 center no-repeat;
|
||||
}
|
||||
|
||||
div#jemmodulebanner .venue-title {
|
||||
padding-left: 20px;
|
||||
background: url(img/building.png) 0 center no-repeat;
|
||||
}
|
||||
12
modules/mod_jem_banner/tmpl/orange.css
Normal file
@ -0,0 +1,12 @@
|
||||
#jemmodulebanner .calendar-orange {
|
||||
background-image: url(img/calendar_orange.png);
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
#jemmodulebanner .calendar-orange .monthbanner {
|
||||
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);
|
||||
}
|
||||
12
modules/mod_jem_banner/tmpl/red.css
Normal file
@ -0,0 +1,12 @@
|
||||
#jemmodulebanner .calendar-red {
|
||||
background-image: url(img/calendar_red.png);
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
#jemmodulebanner .calendar-red .monthbanner {
|
||||
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);
|
||||
}
|
||||
257
modules/mod_jem_banner/tmpl/responsive/default.php
Normal file
@ -0,0 +1,257 @@
|
||||
<?php
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner 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;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\CMS\Factory;
|
||||
|
||||
$datemethod = (int)$params->get('datemethod', 1);
|
||||
$showcalendar = (int)$params->get('showcalendar', 1);
|
||||
$showflyer = (int)$params->get('showflyer', 1);
|
||||
$flyer_link_type = (int)$params->get('flyer_link_type', 0);
|
||||
$imagewidthmax = (int)$params->get('imagewidthmax', 0);
|
||||
|
||||
if ($flyer_link_type == 1) {
|
||||
echo JemOutput::lightbox();
|
||||
$modal = 'lightbox';
|
||||
} elseif ($flyer_link_type == 0) {
|
||||
$modal = 'notmodal';
|
||||
} else {
|
||||
$modal = '';
|
||||
}
|
||||
|
||||
/*
|
||||
$uri = Uri::getInstance();
|
||||
$module_name = 'mod_jem_banner';
|
||||
$css_path = JPATH_THEMES. '/'.$document->template.'/css/'.$module_name;
|
||||
if(file_exists($css_path.'/'.$module_name.'.css')) {
|
||||
unset($document->_styleSheets[$uri->base(true).'/modules/mod_jem_banner/tmpl/mod_jem_banner.css']);
|
||||
$document->addStylesheet($uri->base(true) . '/templates/'.$document->template.'/css/'. $module_name.'/'.$module_name.'.css');
|
||||
}*/
|
||||
|
||||
$banneralignment = "jem-vertical-banner";
|
||||
if (JemHelper::jemStringContains($params->get('moduleclass_sfx'), "jem-horizontal")){
|
||||
$banneralignment = "jem-horizontal-banner";
|
||||
}
|
||||
$imagewidth = '100%';
|
||||
$imagewidthstring = 'jem-imagewidth';
|
||||
if (JemHelper::jemStringContains($params->get('moduleclass_sfx'), $imagewidthstring)) {
|
||||
$pageclass_sfx = $params->get('moduleclass_sfx');
|
||||
$imagewidthpos = strpos($pageclass_sfx, $imagewidthstring);
|
||||
$spacepos = strpos($pageclass_sfx, ' ', $imagewidthpos);
|
||||
if ($spacepos === false) {
|
||||
$spacepos = strlen($pageclass_sfx);
|
||||
}
|
||||
$startpos = $imagewidthpos + strlen($imagewidthstring);
|
||||
$endpos = $spacepos - $startpos;
|
||||
$imagewidth = substr($pageclass_sfx, $startpos, $endpos);
|
||||
}
|
||||
$imageheight = 'auto';
|
||||
$imageheigthstring = 'jem-imageheight';
|
||||
if (JemHelper::jemStringContains($params->get('moduleclass_sfx'), $imageheigthstring)) {
|
||||
$pageclass_sfx = $params->get('moduleclass_sfx');
|
||||
$imageheightpos = strpos($pageclass_sfx, $imageheigthstring);
|
||||
$spacepos = strpos($pageclass_sfx, ' ', $imageheightpos);
|
||||
if ($spacepos === false) {
|
||||
$spacepos = strlen($pageclass_sfx);
|
||||
}
|
||||
$startpos = $imageheightpos + strlen($imageheigthstring);
|
||||
$endpos = $spacepos - $startpos;
|
||||
$imageheight = substr($pageclass_sfx, $startpos, $endpos);
|
||||
}
|
||||
|
||||
$document = Factory::getDocument();
|
||||
$additionalCSS = '';
|
||||
if (JemHelper::jemStringContains($params->get('moduleclass_sfx'), "jem-imagetop")) {
|
||||
$additionalCSS = 'order: -1;';
|
||||
}
|
||||
|
||||
$widthStyle = $imagewidthmax ? 'width:' . $imagewidthmax . 'px' : 'max-width:' . $imagewidth;
|
||||
$heightStyle = $imagewidthmax ? 'auto' : $imageheight;
|
||||
|
||||
$css = '
|
||||
#jemmodulebanner .jem-eventimg-banner {
|
||||
width: ' . $imagewidth . ';
|
||||
' . $additionalCSS . '
|
||||
}
|
||||
#jemmodulebanner .jem-eventimg-banner img {
|
||||
' . $widthStyle . ';
|
||||
height: ' . $heightStyle . ';
|
||||
}
|
||||
|
||||
@media not print {
|
||||
@media only all and (max-width: 47.938rem) {
|
||||
#jemmodulebanner .jem-eventimg-banner {
|
||||
}
|
||||
#jemmodulebanner .jem-eventimg-banner img {
|
||||
width: ' . $imagewidth . ';
|
||||
height: ' . $imageheight . ';
|
||||
}
|
||||
}
|
||||
}';
|
||||
$document->addStyleDeclaration($css);
|
||||
?>
|
||||
|
||||
<div class="jemmodulebanner<?php echo $params->get('moduleclass_sfx')?>" id="jemmodulebanner">
|
||||
<div class="eventset">
|
||||
<?php $i = count($list); ?>
|
||||
<?php if ($i > 0) : ?>
|
||||
<?php foreach ($list as $item) : ?>
|
||||
<div class="event_id<?php echo $item->eventid; ?>" itemprop="event" itemscope itemtype="https://schema.org/Event">
|
||||
<h2 class="event-title" itemprop="name">
|
||||
<?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 class="jem-row-banner <?php echo $banneralignment; ?>">
|
||||
<?php if ($showcalendar == 1) :?>
|
||||
<?php if ($item->colorclass === "category" || $item->colorclass === "alpha"): ?>
|
||||
<div class="calendar<?php echo '-' . $item->colorclass; ?> jem-banner-calendar" title="<?php echo strip_tags($item->dateinfo); ?>">
|
||||
<div class="color-bar" style="background-color:<?php echo !empty($item->color) ? $item->color : 'rgb(128,128,128)'; ?>"></div>
|
||||
<div class="lower-background"></div>
|
||||
<div class="background-image"></div>
|
||||
<?php else: ?>
|
||||
<div class="calendar<?php echo '-'.$item->colorclass; ?> jem-banner-calendar"
|
||||
title="<?php echo strip_tags($item->dateinfo); ?>"
|
||||
<?php if (!empty($item->color)) : ?>
|
||||
style="background-color: <?php echo $item->color; ?>"
|
||||
<?php endif; ?>>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($item->color_is_dark)) : ?>
|
||||
<div class="monthbanner monthcolor-<?php echo !empty($item->color_is_dark) ? 'light' : 'dark'; ?>">
|
||||
<?php else : ?>
|
||||
<div class="monthbanner">
|
||||
<?php endif;
|
||||
echo $item->startdate['month']; ?>
|
||||
</div>
|
||||
<div class="daybanner">
|
||||
<?php echo $item->startdate['weekday']; ?>
|
||||
</div>
|
||||
<div class="daynumbanner">
|
||||
<?php echo $item->startdate['day']; ?>
|
||||
</div>
|
||||
<?php echo $item->dateschema; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="jem-event-details-banner jem-row-banner">
|
||||
<div class="jem-row-banner <?php echo $banneralignment; ?> jem-banner-datecat">
|
||||
<?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 /* when no calendar sheet is displayed */ ?>
|
||||
<?php if ($showcalendar == 0) : ?>
|
||||
<?php if ($item->date && $datemethod == 2) :?>
|
||||
<div class="date" title="<?php echo Text::_('COM_JEM_TABLE_DATE').': '.strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->date; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($item->date && $datemethod == 1) :?>
|
||||
<div class="date" title="<?php echo Text::_('COM_JEM_TABLE_DATE').': '.strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->date; ?>
|
||||
</div>
|
||||
<?php if ($item->time && $datemethod == 1) :?>
|
||||
<div class="time" title="<?php echo Text::_('COM_JEM_TABLE_DATE').': '.strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->time; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php /* when calendar sheet is displayed */ ?>
|
||||
<?php else : ?>
|
||||
<?php /* if time difference should be displayed */ ?>
|
||||
<?php if ($item->date && $datemethod == 2) : ?>
|
||||
<div class="date" title="<?php echo Text::_('COM_JEM_TABLE_DATE').': '.strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->date; ?>
|
||||
</div>
|
||||
<?php endif;
|
||||
|
||||
// if date is to be displayed
|
||||
if ($item->time && $datemethod == 1) :
|
||||
// only the time needs to be displayed (as the date is already displayed on the calendar page) ?>
|
||||
<div class="time" title="<?php echo Text::_('COM_JEM_TABLE_DATE').': '.strip_tags($item->dateinfo); ?>">
|
||||
<?php echo $item->time; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php /*venue*/ ?>
|
||||
<?php if (($params->get('showvenue', 1) == 1) && (!empty($item->venue))) :?>
|
||||
<div class="venue-title" title="<?php echo Text::_('COM_JEM_TABLE_LOCATION').': '.strip_tags($item->venue); ?>">
|
||||
<?php if ($item->venuelink) : ?>
|
||||
<a href="<?php echo $item->venuelink; ?>"><?php echo $item->venue; ?></a>
|
||||
<?php else : ?>
|
||||
<?php echo $item->venue; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif;
|
||||
|
||||
// category
|
||||
if (($params->get('showcategory', 1) == 1) && !empty($item->catname)) :?>
|
||||
<div class="category" title="<?php echo Text::_('COM_JEM_TABLE_CATEGORY').': '.strip_tags($item->catname); ?>">
|
||||
<?php echo $item->catname; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<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>
|
||||
|
||||
<?php if (($showflyer == 1) && !empty($item->eventimage)) : ?>
|
||||
<div class="jem-eventimg-banner">
|
||||
<?php $class = ($showcalendar == 1) ? 'image-preview' : 'image-preview2'; ?>
|
||||
<a href="<?php echo ($flyer_link_type == 2) ? $item->eventlink : $item->eventimageorig; ?>" class="flyermodal" rel="<?php echo $modal;?>"
|
||||
title="<?php echo ($flyer_link_type == 2) ? $item->fulltitle : Text::_('COM_JEM_CLICK_TO_ENLARGE'); ?> " data-title="<?php echo $item->title; ?>">
|
||||
<img class="<?php echo $class; ?>" src="<?php echo $item->eventimageorig; ?>" alt="<?php echo $item->title; ?>" itemprop="image" />
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($params->get('showdesc', 1) == 1) :?>
|
||||
<div class="desc" itemprop="description">
|
||||
<?php echo $item->eventdescription; ?>
|
||||
</div>
|
||||
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) : ?>
|
||||
<div class="jem-readmore-banner">
|
||||
<a href="<?php echo $item->link ?>" title="<?php echo Text::_('COM_JEM_EVENT_READ_MORE_TITLE'); ?>">
|
||||
<!--<button class="jem-btn btn">-->
|
||||
<?php echo Text::_('COM_JEM_EVENT_READ_MORE_TITLE'); ?>
|
||||
<!--</button>-->
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if (--$i > 0) : /* no hr after last entry */ ?>
|
||||
<hr class="jem-hr">
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
<?php else : ?>
|
||||
<?php echo Text::_('MOD_JEM_BANNER_NO_EVENTS'); ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
1
modules/mod_jem_banner/tmpl/responsive/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
154
modules/mod_jem_banner/tmpl/responsive/mod_jem_banner.css
Normal file
@ -0,0 +1,154 @@
|
||||
/*
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner Module
|
||||
* @copyright (C) 2013-2024 joomlaeventmanager.net
|
||||
* @copyright (C) 2005-2009 Christoph Lukes
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
|
||||
*/
|
||||
|
||||
/* Hoftix for SqueezeBox Modal overlay destroying images on mobile phones */
|
||||
#sbox-overlay {
|
||||
width: 100% !important;
|
||||
}
|
||||
#sbox-window {
|
||||
height: auto !important;
|
||||
}
|
||||
#sbox-content {
|
||||
height: auto !important;
|
||||
width: auto !important;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
body.body-overlayed {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-row-banner {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-horizontal-banner {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-vertical-banner {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-event-details-banner {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#jemmodulebanner .event-title,
|
||||
#jemmodulebanner .jem-banner-datecat {
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-banner-datecat {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-banner-datecat > div {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-banner-datecat > div:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#jemmodulebanner .jem-eventimg-banner {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#jemmodulebanner .time, #jemmodulebanner .date {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#jemmodulebanner [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);
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .yearbanner,
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner {
|
||||
font-size: 13px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner,
|
||||
#jemmodulebanner [class|="calendar"] .daybanner,
|
||||
#jemmodulebanner [class|="calendar"] .daynumbanner {
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: block;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .monthbanner {
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .daybanner {
|
||||
font-size: 12px;
|
||||
min-height: 0.8rem;
|
||||
}
|
||||
|
||||
#jemmodulebanner [class|="calendar"] .daynumbanner {
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
@media print {
|
||||
#main a:link, #main a:visited {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
div#jem {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
div#jem h2 {
|
||||
border: none;
|
||||
}
|
||||
|
||||
div#jem .flyerimage {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
a[href]:after {
|
||||
content: none !important;
|
||||
}
|
||||
|
||||
div#jem .buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
abbr[title]:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.ir a:after,
|
||||
a[href^="javascript:"]:after,
|
||||
a[href^="#"]:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
a:link:after, a:visited:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
|
||||
div#jem .flyerimage {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner Module
|
||||
* @copyright (C) 2013-2024 joomlaeventmanager.net
|
||||
* @copyright (C) 2005-2009 Christoph Lukes
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
|
||||
*/
|
||||
|
||||
/* This template uses images in any case, so keep this empty file to prevent legacy fallback. */
|
||||
@ -0,0 +1,9 @@
|
||||
/**
|
||||
* @package JEM
|
||||
* @subpackage JEM Banner Module
|
||||
* @copyright (C) 2013-2024 joomlaeventmanager.net
|
||||
* @copyright (C) 2005-2009 Christoph Lukes
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
|
||||
*/
|
||||
|
||||
/* This template uses images in any case, so keep this empty file to prevent legacy fallback. */
|
||||