primo commit

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

169
modules/mod_jem/helper.php Normal file
View File

@ -0,0 +1,169 @@
<?php
/**
* @package JEM
* @subpackage JEM 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\Router\Route;
use Joomla\CMS\Factory;
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
BaseDatabaseModel::addIncludePath(JPATH_SITE.'/components/com_jem/models', 'JemModel');
/**
* Module-Basic
*/
abstract class ModJemHelper
{
/**
* Method to get the events
*
* @access public
* @return array
*/
public static function getList(&$params)
{
mb_internal_encoding('UTF-8');
$db = Factory::getContainer()->get('DatabaseDriver');
$user = JemFactory::getUser();
$levels = $user->getAuthorisedViewLevels();
$settings = JemHelper::config();
// Use (short) format saved in module settings or in component settings or format in language file otherwise
$dateFormat = $params->get('formatdate', '');
if (empty($dateFormat)) {
// on empty format long format will be used but we need short format
if (isset($settings->formatShortDate) && $settings->formatShortDate) {
$dateFormat = $settings->formatShortDate;
} else {
$dateFormat = Text::_('COM_JEM_FORMAT_SHORT_DATE');
}
}
$timeFormat = $params->get('formattime', '');
$addSuffix = false;
if (empty($timeFormat)) {
// on empty format component's format will be used, so also use component's time suffix
$addSuffix = true;
}
# 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 = $params->get('type');
# archived events
if ($type == 2) {
$model->setState('filter.published',2);
$model->setState('filter.orderby',array('a.dates DESC', 'a.times DESC', 'a.created DESC'));
$cal_from = "";
}
# upcoming or running events, on mistake default to upcoming events
else {
$model->setState('filter.published',1);
$model->setState('filter.orderby',array('a.dates ASC', 'a.times ASC', 'a.created ASC'));
$offset_minutes = 60 * $params->get('offset_hours', 0);
$cal_from = "((TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(a.dates,' ',IFNULL(a.times,'00:00:00'))) > $offset_minutes) ";
$cal_from .= ($type == 1) ? " OR (TIMESTAMPDIFF(MINUTE, NOW(), CONCAT(IFNULL(a.enddates,a.dates),' ',IFNULL(a.endtimes,'23:59:59'))) > $offset_minutes)) " : ") ";
}
$model->setState('filter.calendar_from',$cal_from);
$model->setState('filter.groupby','a.id');
# filter category's
$catids = JemHelper::getValidIds($params->get('catid'));
if ($catids) {
$model->setState('filter.category_id',$catids);
$model->setState('filter.category_id.include',true);
}
# filter venue's
$venids = JemHelper::getValidIds($params->get('venid'));
if ($venids) {
$model->setState('filter.venue_id',$venids);
$model->setState('filter.venue_id.include',true);
}
# count
$count = $params->get('count', '2');
$model->setState('list.limit',$count);
# Retrieve the available Events
$events = $model->getItems();
# Loop through the result rows and prepare data
$i = -1;
$lists = array();
foreach ($events as $row)
{
# cut titel
$length = mb_strlen($row->title);
if ($length > $params->get('cuttitle', '18')) {
$row->title = mb_substr($row->title, 0, $params->get('cuttitle', '18'));
$row->title = $row->title.'...';
}
$lists[++$i] = new stdClass;
$lists[$i]->eventid = $row->id;
$lists[$i]->title = htmlspecialchars($row->title ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->link = Route::_(JemHelperRoute::getEventRoute($row->slug));
$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);
$lists[$i]->venue = htmlspecialchars($row->venue ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->city = htmlspecialchars($row->city ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->postalCode = htmlspecialchars($row->postalCode, ENT_COMPAT, 'UTF-8');
$lists[$i]->street = htmlspecialchars($row->street, ENT_COMPAT, 'UTF-8');
$lists[$i]->state = htmlspecialchars($row->state, ENT_COMPAT, 'UTF-8');
$lists[$i]->country = htmlspecialchars($row->country ?? '', ENT_COMPAT, 'UTF-8');
$lists[$i]->venueurl = !empty($row->venueslug) ? Route::_(JEMHelperRoute::getVenueRoute($row->venueslug)) : null;
$lists[$i]->featured = $row->featured;
# provide custom fields
for ($n = 1; $n <= 10; ++$n) {
$var = 'custom'.$n;
$lists[$i]->$var = htmlspecialchars($row->$var, ENT_COMPAT, 'UTF-8');
}
}
return $lists;
}
/**
* Method to get a valid url
*
* @access public
* @return string
*/
protected static function _format_url($url)
{
if(!empty($url) && strtolower(substr($url, 0, 7)) != "https://") {
$url = 'https://'.$url;
}
return $url;
}
}

View File

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

View File

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

View File

@ -0,0 +1,63 @@
; @package JEM
; @subpackage JEM Upcoming Events Basic 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_EVENTS_IN_MODULE="Events in module"
MOD_JEM_EVENTS_IN_MODULE_DESC="Number of events shown in module."
MOD_JEM_UPCOMING_OR_ARCHIVED="Events Display-Type"
MOD_JEM_UPCOMING_OR_ARCHIVED_DESC="Select if you want to display upcoming, unfinished or archived Events."
MOD_JEM_UPCOMING_EVENTS="Upcoming Events"
MOD_JEM_UNFINISHED_EVENTS="Unfinished Events"
MOD_JEM_ARCHIVED_EVENTS="Archived Events"
MOD_JEM_SHOW_NO_EVENTS="Show 'No events'"
MOD_JEM_SHOW_NO_EVENTS_DESC="Show a text if no events has been found. Otherwise module will not be shown."
MOD_JEM_HIGHLIGHT_FEATURED="Highlight Featured"
MOD_JEM_HIGHLIGHT_FEATURED_DESC="Show a special style for the featured events, by default bold."
MOD_JEM_OFFSET_HOURS="Time offset (in hours)"
MOD_JEM_OFFSET_HOURS_DESC="Moves time into future (positive values) or into past (negative values). Only used to display not archived events. <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)."
MOD_JEM_TITLE_OR_VENUE="Show Title or Venue"
MOD_JEM_TITLE_OR_VENUE_DESC="Choose if the title of the event or the venue should be displayed."
MOD_JEM_VENUE="Venue"
MOD_JEM_TITLE="Title"
MOD_JEM_MAX_TITLE_LENGTH="Max. Title length"
MOD_JEM_MAX_TITLE_LENGTH_DESC="Max. length of the title."
MOD_JEM_LINK_TO_VENUE="Link to Venue"
MOD_JEM_LINK_TO_VENUE_DESC="Link to the Venue. Only if the Venue was chosen above!"
MOD_JEM_LINK_TO_EVENT="Link to event on"
MOD_JEM_LINK_TO_EVENT_DESC="Link to the event page on Date or Title (if aktivated)."
MOD_JEM_SHOW_ICON_COUNTRY_VENUE="Show icon country"
MOD_JEM_SHOW_ICON_COUNTRY_VENUE_DESC="Show the small icon country of venue for each event."
MOD_JEM_SHOW_FLAG_ICON="Flag icon"
MOD_JEM_DATE="Date"
MOD_JEM_CATEGORY_ID="Categories"
MOD_JEM_CATEGORY_ID_DESC="Choose categories to limit the output to them. Leave blank if you want to show all events."
MOD_JEM_VENUE_ID="Venues"
MOD_JEM_VENUE_ID_DESC="Choose venues to limit the output to them. Leave blank if you want to show all events."
MOD_JEM_DATE_FORMAT="Date format"
MOD_JEM_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_TIME_FORMAT="Time format"
MOD_JEM_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_MODULE_CLASS_SUFFIX="Module Class Suffix"
MOD_JEM_MODULE_CLASS_SUFFIX_DESC="A suffix to be applied to the css class of the module, this allows individual module styling."
MOD_JEM_CACHING="Caching"
MOD_JEM_CACHING_DESC="Select whether to cache the content of this module."
MOD_JEM_USE_GLOBAL="Use global"
MOD_JEM_NO_CACHING="No caching"
MOD_JEM_CACHE_TIME="Cache Time"
MOD_JEM_CACHE_TIME_DESC="The time before the module is recached."
; MOD_JEM_OCCURING_IN="Events occuring in (days)"
; MOD_JEM_OCCURING_IN_DESC="If set, only events occuring after the specified number of days will be listed."
; MOD_JEM_OPEN_DATE="Open date"
MOD_JEM="JEM - Module-Basic"
MOD_JEM_XML_DESCRIPTION="JEM Basic Module <br>Displays the events in a module position"
; Frontend
MOD_JEM_NO_EVENTS="No events found."

View File

@ -0,0 +1,13 @@
; @package JEM
; @subpackage JEM Upcoming Events Basic 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="JEM - Basic Module"
MOD_JEM_XML_DESCRIPTION="This module shows a short list of a specified number of events."

View File

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

View File

@ -0,0 +1,53 @@
; @version 2.1.6
; @package JEM
; @subpackage JEM Upcoming Events Basic 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_EVENTS_IN_MODULE="Eventi nel modulo"
MOD_JEM_EVENTS_IN_MODULE_DESC="Numero di eventi da mostrare nel modulo."
MOD_JEM_UPCOMING_OR_ARCHIVED="Tipo di visualizzazione degli eventi"
MOD_JEM_UPCOMING_OR_ARCHIVED_DESC="Selezionare se si desidera visualizzare i prossimi eventi, quelli non ancora passati o archiviati."
MOD_JEM_UPCOMING_EVENTS="Prossimi eventi"
MOD_JEM_UNFINISHED_EVENTS="Eventi in corso"
MOD_JEM_ARCHIVED_EVENTS="Eventi archiviati"
MOD_JEM_OFFSET_HOURS="Tempo offset (in ore)"
MOD_JEM_OFFSET_HOURS_DESC="Sposta il tempo nel futuro (valori positivi) o nel passato (valori negativi). Utilizzato solo per visualizzare gli eventi non archiviati.<br>Esempi: Per mostrare gli eventi finiti almeno due ore fa, impostare il tipo di eventi "_QQ_"In corso"_QQ_" e offset a -2. Per mostrare gli eventi che inizieranno tra una settimana o piu` tardi, impostare il tipo di eventi "_QQ_"prossimi eventi"_QQ_" e offset a 188."
MOD_JEM_TITLE_OR_VENUE="Mostra titolo o sede"
MOD_JEM_TITLE_OR_VENUE_DESC="Scegli se devono essere visualizzati il titolo dell'evento o la sede."
MOD_JEM_VENUE="Sede"
MOD_JEM_TITLE="Titolo"
MOD_JEM_MAX_TITLE_LENGTH="Lunghezza massima titolo"
MOD_JEM_MAX_TITLE_LENGTH_DESC="Lunghezza massima titolo."
MOD_JEM_LINK_TO_VENUE="Link alla sede"
MOD_JEM_LINK_TO_VENUE_DESC="Link alla sede. Solo se il luogo è stato scelto sopra!"
MOD_JEM_LINK_TO_EVENT="Link all'evento attivo"
MOD_JEM_LINK_TO_EVENT_DESC="Link alla pagina dell'evento sulla data o titolo (se attivato)."
MOD_JEM_DATE="Data"
MOD_JEM_CATEGORY_ID="Categorie"
MOD_JEM_CATEGORY_ID_DESC="Scegli categorie per limitare l'output. Lasciare vuoto se si desidera visualizzare tutti gli eventi."
MOD_JEM_VENUE_ID="Sedi"
MOD_JEM_VENUE_ID_DESC="Scegli categorie per limitare l'output. Lasciare vuoto se si desidera visualizzare tutti gli eventi."
MOD_JEM_DATE_FORMAT="Formato data"
MOD_JEM_DATE_FORMAT_DESC="Formato data utilizzando 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_TIME_FORMAT="Formato ora"
MOD_JEM_TIME_FORMAT_DESC="Formato ora utilizzando il formato PHP strftime, per esempio: "_QQ_"%H:%M. Per maggiori informazioni consulta il manuale PHP sui php.net."
MOD_JEM_MODULE_CLASS_SUFFIX="Suffisso classe del modulo"
MOD_JEM_MODULE_CLASS_SUFFIX_DESC="Un suffisso da applicare alla classe CSS del modulo, che ne permette lo stile indipendente."
MOD_JEM_CACHING="Cache"
MOD_JEM_CACHING_DESC="Selezionare se memorizzare nella cache il contenuto di questo modulo."
MOD_JEM_USE_GLOBAL="Usa globali"
MOD_JEM_NO_CACHING="Nessuna cache"
MOD_JEM_CACHE_TIME="Durata cache"
MOD_JEM_CACHE_TIME_DESC="Il tempo prima che la cache venga ricaricata."
MOD_JEM_OCCURING_IN="Eventi che si verificano in (giorni)"
MOD_JEM_OCCURING_IN_DESC="Se impostato, verranno elencati solo gli eventi che si verificano dopo il numero specificato di giorni."
MOD_JEM_OPEN_DATE="Data di inizio"
MOD_JEM_XML_DESCRIPTION="JEM - Modulo base<BR>Mostra gli eventi in un modulo"

View File

@ -0,0 +1,14 @@
; @version 2.0.0
; @package JEM
; @subpackage JEM Upcoming Events Basic Module
; @copyright (C) 2005-2009 Christoph Lukes
; @copyright (C) 2013-2014 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="JEM - Modulo base"
MOD_JEM_XML_DESCRIPTION="Questo modulo mostra uno specifico numero di eventi in una breve lista."

View File

@ -0,0 +1,37 @@
<?php
/**
* @package JEM
* @subpackage JEM Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
// get helper
require_once __DIR__ . '/helper.php';
require_once(JPATH_SITE.'/components/com_jem/helpers/route.php');
require_once(JPATH_SITE.'/components/com_jem/helpers/helper.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');
$list = ModJemHelper::getList($params);
// check if any results returned
if (empty($list) && !$params->get('show_no_events')) {
return;
}
$mod_name = 'mod_jem';
// maybe a layout style provides a css file
JemHelper::loadModuleStyleSheet($mod_name);
// load icon font if needed
JemHelper::loadIconFont();
require(JemHelper::getModuleLayoutPath($mod_name));

157
modules/mod_jem/mod_jem.xml Normal file
View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5" client="site" method="upgrade">
<name>mod_jem</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_XML_DESCRIPTION</description>
<scriptfile>script.php</scriptfile>
<files>
<filename module="mod_jem">mod_jem.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.ini</language>
<language tag="en-GB">language/en-GB/mod_jem.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="0"
label="MOD_JEM_UPCOMING_OR_ARCHIVED"
description="MOD_JEM_UPCOMING_OR_ARCHIVED_DESC"
>
<option value="0">MOD_JEM_UPCOMING_EVENTS</option>
<option value="1">MOD_JEM_UNFINISHED_EVENTS</option>
<option value="2">MOD_JEM_ARCHIVED_EVENTS</option>
</field>
<field name="count" type="text"
default="5"
label="MOD_JEM_EVENTS_IN_MODULE"
description="MOD_JEM_EVENTS_IN_MODULE_DESC"
/>
<field name="show_no_events" type="radio"
default="1"
label="MOD_JEM_SHOW_NO_EVENTS"
description="MOD_JEM_SHOW_NO_EVENTS_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="highlight_featured" type="radio"
default="0"
label="MOD_JEM_HIGHLIGHT_FEATURED"
description="MOD_JEM_HIGHLIGHT_FEATURED_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="offset_hours" type="text"
default=""
label="MOD_JEM_OFFSET_HOURS"
description="MOD_JEM_OFFSET_HOURS_DESC"
/>
<field name="showtitloc" type="list"
default="1"
label="MOD_JEM_TITLE_OR_VENUE"
description="MOD_JEM_TITLE_OR_VENUE_DESC"
>
<option value="0">MOD_JEM_VENUE</option>
<option value="1">MOD_JEM_TITLE</option>
</field>
<field name="cuttitle" type="text"
default="30"
label="MOD_JEM_MAX_TITLE_LENGTH"
description="MOD_JEM_MAX_TITLE_LENGTH_DESC"
/>
<field name="linkloc" type="radio"
default="1"
label="MOD_JEM_LINK_TO_VENUE"
description="MOD_JEM_LINK_TO_VENUE_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="linkdet" type="list"
default="1"
label="MOD_JEM_LINK_TO_EVENT"
description="MOD_JEM_LINK_TO_EVENT_DESC"
>
<option value="0">JNO</option>
<option value="1">MOD_JEM_DATE</option>
<option value="2">MOD_JEM_TITLE</option>
</field>
<field name="showiconcountry" type="radio"
default="0"
label="MOD_JEM_SHOW_ICON_COUNTRY_VENUE"
description="MOD_JEM_SHOW_ICON_COUNTRY_VENUE_DESC"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="catid" type="categoryedit"
default=""
multiple="true"
removeroot="true"
label="MOD_JEM_CATEGORY_ID"
description="MOD_JEM_CATEGORY_ID_DESC"
/>
<field name="venid" type="venueoptions"
default=""
multiple="true"
label="MOD_JEM_VENUE_ID"
description="MOD_JEM_VENUE_ID_DESC"
/>
<field name="formatdate" type="text"
default="D, j. F Y"
label="MOD_JEM_DATE_FORMAT"
description="MOD_JEM_DATE_FORMAT_DESC"
/>
<field name="formattime" type="text"
default=""
label="MOD_JEM_TIME_FORMAT"
description="MOD_JEM_TIME_FORMAT_DESC"
/>
<field name="moduleclass_sfx" type="text"
default=""
label="MOD_JEM_MODULE_CLASS_SUFFIX"
description="MOD_JEM_MODULE_CLASS_SUFFIX_DESC"
/>
</fieldset>
<fieldset name="advanced">
<field name="cache" type="list"
default="1"
label="MOD_JEM_CACHING"
description="MOD_JEM_CACHING_DESC"
>
<option value="1">MOD_JEM_USE_GLOBAL</option>
<option value="0">MOD_JEM_NO_CACHING</option>
</field>
<field name="cache_time" type="text"
default="900"
label="MOD_JEM_CACHE_TIME"
description="MOD_JEM_CACHE_TIME_DESC"
/>
</fieldset>
</fields>
</config>
</extension>

131
modules/mod_jem/script.php Normal file
View File

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

View File

@ -0,0 +1,48 @@
<?php
/**
* @version 2.3.6
* @package JEM
* @subpackage JEM Module
* @copyright (C) 2013-2020 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
defined('_JEXEC') or die;
?>
<div class="jemmodulebasic<?php echo $params->get('moduleclass_sfx')?>" id="jemmodulebasic">
<?php if (count($list)): ?>
<ul class="jemmod">
<?php foreach ($list as $item) : ?>
<li>
<?php if ($params->get('linkdet') == 1) : ?>
<a href="<?php echo $item->link; ?>">
<?php echo $item->dateinfo; ?>
</a>
<?php else :
echo $item->dateinfo;
endif;
?>
<br />
<?php if ($params->get('showtitloc') == 0 && $params->get('linkloc') == 1) : ?>
<a href="<?php echo $item->venueurl; ?>">
<?php echo $item->text; ?>
</a>
<?php elseif ($params->get('showtitloc') == 1 && $params->get('linkdet') == 2) : ?>
<a href="<?php echo $item->link; ?>">
<?php echo $item->text; ?>
</a>
<?php
else :
echo $item->text;
endif;
?>
</li>
<?php endforeach; ?>
</ul>
<?php else : ?>
<?php echo JText::_('MOD_JEM_NO_EVENTS'); ?>
<?php endif; ?>
</div>

View File

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

View File

@ -0,0 +1,87 @@
<?php
/**
* @package JEM
* @subpackage JEM 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;
$highlight_featured = $params->get('highlight_featured');
$showtitloc = $params->get('showtitloc');
$linkloc = $params->get('linkloc');
$linkdet = $params->get('linkdet');
$showiconcountry = $params->get('showiconcountry');
$settings = JemHelper::config();
?>
<div class="jemmodulebasic<?php echo $params->get('moduleclass_sfx')?>" id="jemmodulebasic">
<?php if (count($list)): ?>
<ul class="jemmod">
<?php foreach ($list as $item) : ?>
<li class="event_id<?php echo $item->eventid; ?>" itemprop="event" itemscope itemtype="https://schema.org/Event">
<?php if($highlight_featured && $item->featured): ?>
<span class="event-title highlight_featured">
<?php else : ?>
<span class="event-title">
<?php endif; ?>
<?php if (($showiconcountry == 1) && !empty($item->country)) : ?>
<?php $flagpath = $settings->flagicons_path . (str_ends_with($settings->flagicons_path, '/')?'':'/');
$flagext = substr($flagpath, strrpos($flagpath,"-")+1,-1) ;
$flagfile = Uri::getInstance()->base() . $flagpath . strtolower($item->country) . '.' . $flagext;
echo '<img src="' . $flagfile . '" alt="' . $item->country . ' ' , Text::_('MOD_JEM_SHOW_FLAG_ICON') . '">' ?>
<?php endif; ?>
<?php if ($showtitloc == 0 && $linkloc == 1) : ?>
<a href="<?php echo $item->venueurl; ?>">
<?php echo $item->venue; ?>
</a>
<?php elseif ($showtitloc == 1 && $linkdet == 2) : ?>
<a href="<?php echo $item->link; ?>" title="<?php echo strip_tags($item->title); ?>">
<?php echo $item->title; ?>
</a>
<?php elseif ($showtitloc == 1 && $linkdet == 1) :
echo $item->title;
elseif ($showtitloc == 0 && $linkdet == 1) :
echo $item->venue;
endif; ?>
</span>
<br />
<?php if($highlight_featured && $item->featured): ?>
<span class="event-title highlight_featured">
<?php else : ?>
<span class="event-title">
<?php endif; ?>
<?php if ($linkdet == 1) : ?>
<a href="<?php echo $item->link; ?>" title="<?php echo strip_tags($item->dateinfo); ?>">
<?php echo $item->dateinfo; ?>
</a>
<?php else :
echo $item->dateinfo;
endif; ?>
</span>
<?php echo $item->dateschema; ?>
<meta itemprop="name" content="<?php echo $item->title; ?>" />
<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>
</li>
<?php endforeach; ?>
</ul>
<?php else : ?>
<?php echo Text::_('MOD_JEM_NO_EVENTS'); ?>
<?php endif; ?>
</div>

View File

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

View File

@ -0,0 +1,28 @@
/**
* @package JEM
* @subpackage JEM Latest Events Basic Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
.highlight_featured{
font-weight: bold;
}
#jemmodulebasic {
padding: 10px 5px;
}
#jemmodulebasic ul {
margin-left: 0.7em;
padding-left: 0;
list-style-type: none;
}
#jemmodulebasic ul li {
position: relative;
margin-left: 1em;
margin-bottom: 10px;
}

View File

@ -0,0 +1,90 @@
<?php
/**
* @package JEM
* @subpackage JEM 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;
use Joomla\CMS\Uri\Uri;
$app = Factory::getApplication();
$document = $app->getDocument();
$highlight_featured = $params->get('highlight_featured');
$showtitloc = $params->get('showtitloc');
$linkloc = $params->get('linkloc');
$linkdet = $params->get('linkdet');
$showiconcountry = $params->get('showiconcountry');
$settings = JemHelper::config();
?>
<div class="jemmodulebasic<?php echo $params->get('moduleclass_sfx')?>" id="jemmodulebasic">
<?php if (count($list)): ?>
<ul>
<?php foreach ($list as $item) : ?>
<li class="event_id<?php echo $item->eventid; ?>" itemprop="event" itemscope itemtype="https://schema.org/Event">
<i class="far fa-calendar-alt"></i>
<?php if($highlight_featured && $item->featured): ?>
<span class="event-title highlight_featured">
<?php else : ?>
<span class="event-title">
<?php endif; ?>
<?php if (($showiconcountry == 1) && !empty($item->country)) : ?>
<?php $flagpath = $settings->flagicons_path . (str_ends_with($settings->flagicons_path, '/')?'':'/');
$flagext = substr($flagpath, strrpos($flagpath,"-")+1,-1) ;
$flagfile = Uri::getInstance()->base() . $flagpath . strtolower($item->country) . '.' . $flagext;
echo '<img src="' . $flagfile . '" alt="' . $item->country . ' ' , Text::_('MOD_JEM_SHOW_FLAG_ICON') . '">' ?>
<?php endif; ?>
<?php if ($showtitloc == 0 && $linkloc == 1) : ?>
<a href="<?php echo $item->venueurl; ?>">
<?php echo $item->venue; ?>
</a>
<?php elseif ($showtitloc == 1 && $linkdet == 2) : ?>
<a href="<?php echo $item->link; ?>" title="<?php echo strip_tags($item->title); ?>" itemprop="url">
<?php echo $item->title; ?>
</a>
<?php elseif ($showtitloc == 1 && $linkdet == 1) :
echo $item->title; ?>
<?php elseif ($showtitloc == 0 && $linkdet == 1) :
echo $item->venue; ?>
<?php endif; ?>
</span>
<br />
<?php if($highlight_featured && $item->featured): ?>
<span class="event-title highlight_featured">
<?php else : ?>
<span class="event-title">
<?php endif; ?>
<?php if ($linkdet == 1) : ?>
<a href="<?php echo $item->link; ?>" title="<?php echo strip_tags($item->dateinfo); ?>" itemprop="url">
<?php echo $item->dateinfo; ?>
</a>
<?php else :
echo $item->dateinfo;
endif; ?>
</span>
<?php echo $item->dateschema; ?>
<meta itemprop="name" content="<?php echo $item->title; ?>" />
<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>
</li>
<?php endforeach; ?>
</ul>
<?php else : ?>
<?php echo Text::_('MOD_JEM_NO_EVENTS'); ?>
<?php endif; ?>
</div>

View File

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

View File

@ -0,0 +1,100 @@
/**
* @package JEM
* @subpackage JEM Latest Events Basic Module
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
/*
#jemmodulebasic ul {
list-style: none;
margin-left: 0;
padding-left: 1.2em;
text-indent: -1.2em;
}
#jemmodulebasic li:before {
font-family: FontAwesome;
content: "\f073";
display: block;
float: left;
width: 1.2em;
}*/
#jemmodulebasic {
padding: 10px 5px;
}
#jemmodulebasic ul {
margin-left: 0.7em;
padding-left: 0;
list-style-type: none;
}
#jemmodulebasic ul li {
position: relative;
margin-left: 1em;
margin-bottom: 10px;
}
/* #jemmodulebasic ul li:before {
position: absolute;
left: -1.5em;
font-family: FontAwesome;
content: "\f073";
} */
#jemmodulebasic .event-title {
hyphens: auto;
}
.highlight_featured{
font-weight: bold;
}
@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;
}
}