Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/mod_iccalendar.tar
Назад
js/jQuery.highlightToday.min.js 0000604 00000001026 15245561146 0012532 0 ustar 00 (function(e){e.fn.highlightToday=function(t){var n=new Date,r="0"+n.getDate(),i="0"+(n.getMonth()+1),s=n.getFullYear(),o=s+"-"+i.slice(-2)+"-"+r.slice(-2),u=e(".style_Today",this),a=u.attr("data-cal-date");if(typeof a==="undefined"||o!==a){u.removeClass("style_Today").addClass("style_Day");e('.style_Day[data-cal-date="'+o+'"]',this).addClass("style_Today").removeClass("style_Day");if(t==="show_today"){if(e(".style_Today",this).length===0){if(o>a){e(".nextic",this).click()}else{e(".backic",this).click()}}}}return this}})(jQuery) js/jquery.noconflict.js 0000604 00000000024 15245561146 0011173 0 ustar 00 jQuery.noConflict(); js/index.html 0000604 00000000000 15245561146 0007150 0 ustar 00 js/jQuery.highlightToday.js 0000604 00000002231 15245561146 0011747 0 ustar 00 (function ($) { $.fn.highlightToday = function(option) { var d = new Date(), day = '0' + d.getDate(), month = '0' + (d.getMonth() + 1), year = d.getFullYear(), client_date = year + '-' + month.slice(-2) + '-' + day.slice(-2), $today = $('.style_Today', this), cal_date = $today.attr('data-cal-date');//cal_date='2014-01-07'; // Test data if (typeof cal_date === 'undefined' || client_date !== cal_date) { // Calendar date not in the displayed month - or client date is different $today.removeClass('style_Today').addClass('style_Day'); $('.style_Day[data-cal-date="' + client_date + '"]', this).addClass('style_Today').removeClass('style_Day'); // Check whether the correct month is loaded if today is required to be shown if (option === 'show_today') { if ($('.style_Today', this).length === 0) { // The current date is not shown (because of offset between server and client date) if (client_date > cal_date) { // Load next month $('.nextic', this).click(); } else { // Load previous month $('.backic', this).click(); } } } } // Support chaining return this; }; }(jQuery)); helper.php 0000604 00000126143 15245561146 0006550 0 ustar 00 <?php /** *------------------------------------------------------------------------------ * iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x *------------------------------------------------------------------------------ * @package com_icagenda - mod_iccalendar * @copyright Copyright (c)2012-2015 Cyril Rezé, Jooml!C - All rights reserved * * @license GNU General Public License version 3 or later; see LICENSE.txt * @author Cyril Rezé (Lyr!C) - doorknob * @link http://www.joomlic.com * * @version 3.5.12 2015-10-01 * @since 3.1.9 (1.0) *------------------------------------------------------------------------------ */ /** * iCagenda - iC calendar */ // No direct access to this file defined('_JEXEC') or die(); jimport('joomla.methods'); jimport('joomla.environment.request'); jimport('joomla.application.component.helper'); // Module Class class modiCcalendarHelper { private function construct($params) { $this->modid = $params->get('id'); $this->template = $params->get('template'); $this->format = $params->get('format'); $this->date_separator = $params->get('date_separator'); $this->setTodayTimezone = $params->get('setTodayTimezone'); $this->displayDatesTimezone = $params->get('displayDatesTimezone'); $this->filtering_shortDesc = $params->get('filtering_shortDesc', ''); $this->limit = $params->get('paramlimit', '') ? $params->get('paramlimit_Content') : false; $this->catid = $params->get('mcatid'); $this->number = $params->get('number'); $this->onlyStDate = $params->get('onlyStDate'); $this->firstMonth = $params->get('firstMonth', null); $this->month_nav = $params->get('month_nav', '1'); $this->year_nav = $params->get('year_nav', '1'); // $linkid = JRequest::getInt('Itemid'); $this->itemid = JRequest::getInt('Itemid'); $this->mod_iccalendar = '#mod_iccalendar_' . $this->modid; // Get media path $params_media = JComponentHelper::getParams('com_media'); $image_path = $params_media->get('image_path', 'images'); // Features Options $this->features_icon_size = $params->get('features_icon_size'); $this->show_icon_title = $params->get('show_icon_title'); $this->features_icon_root = JURI::base() . "{$image_path}/icagenda/feature_icons/{$this->features_icon_size}/"; // First day of the current month $this_month = $this->firstMonth ? date("Y-m-d", strtotime("+1 month", strtotime($this->firstMonth))) : JHtml::date('now', 'Y-m-01', null); $iccaldate = JRequest::getVar('iccaldate', ''); // Get date set in month/year navigation // This should be the first day of a month $date_start = $iccaldate ? date('Y-m-01', strtotime($iccaldate)) : $this_month; // Add filter to restrict the number of events using the 'next' date if ($date_start > $this_month) { // Month to be displayed is in the future // Events required start from the current month $filter_start = $this_month; } else { // Month to be displayed is current or past // Events required start from the display month $filter_start = $date_start; } $this->date_start = $date_start; $this->addFilter('e.next', '' . $filter_start . '', '>='); // An end date for selection is not possible because it may prevent display of past events where the next // scheduled instance of an event is after the end of the display month // $filter_end = date('Y-m-d', strtotime('+1 month', strtotime($this->date_start))); // $this->addFilter('e.next', "'$filter_end'",'<'); // Get Array of categories to be displayed if (isset($this->catid) && ! empty($this->catid)) { $cat_filter_param = $this->catid; if ( ! is_array($cat_filter_param)) { $catFilter = array($cat_filter_param); } else { $catFilter = $cat_filter_param; } $cats_option = implode(', ', $catFilter); if ($catFilter != array(0)) { $this->addFilter('e.catid', '(' . $cats_option . ')', ' IN '); } } } function start($params) { $this->construct($params); } function addFilter($key, $var, $for = NULL) { $for = ($for == NULL) ? '=' : $for; $this->filter[] = $key . $for . $var; } // Class Method function getStamp($params) { $iCparams = JComponentHelper::getParams('com_icagenda'); $eventTimeZone = null; // Itemid Request (automatic detection of the first iCagenda menu-link, by menuID) $iC_list_menus = icagendaMenus::iClistMenuItemsInfo(); $nb_menu = count($iC_list_menus); $nolink = $nb_menu ? false : true; $app = JFactory::getApplication(); $menu = $app->getMenu(); $isSef = $app->getCfg( 'sef' ); $date_var = ($isSef == 1) ? '?date=' :'&date='; // Check if GD is enabled on the server if (extension_loaded('gd') && function_exists('gd_info')) { $thumb_generator = $iCparams->get('thumb_generator', 1); } else { $thumb_generator = 0; } $datetime_today = JHtml::date('now', 'Y-m-d H:i'); $timeformat = $iCparams->get('timeformat', 1); $lang_time = ($timeformat == 1) ? 'H:i' : 'h:i A'; // Check if fopen is allowed $result = ini_get('allow_url_fopen'); $fopen = empty($result) ? false : true; $this->start($params); // Get the database $db = JFactory::getDbo(); $query = $db->getQuery(true); // Build the query $query->select('e.*, e.place as place_name, c.title as cat_title, c.alias as cat_alias, c.color as cat_color, c.ordering as cat_order ') ->from($db->qn('#__icagenda_events').' AS e') ->leftJoin($db->qn('#__icagenda_category').' AS c ON '.$db->qn('c.id').' = '.$db->qn('e.catid')); // Where Category is Published $query->where('c.state = 1'); // Where State is Published $query->where('e.state = 1'); // Where event is Approved $query->where('e.approval = 0'); // Add filters if (isset($this->filter)) { foreach ($this->filter as $filter) { $query->where($filter); } } // Check Access Levels $user = JFactory::getUser(); $userID = $user->id; $userLevels = $user->getAuthorisedViewLevels(); if (version_compare(JVERSION, '3.0', 'lt')) { $userGroups = $user->getAuthorisedGroups(); } else { $userGroups = $user->groups; } $userAccess = implode(', ', $userLevels); if (!in_array('8', $userGroups)) { $query->where('e.access IN (' . $userAccess . ')'); } // Features - extract the number of displayable icons per event $query->select('feat.count AS features'); $sub_query = $db->getQuery(true); $sub_query->select('fx.event_id, COUNT(*) AS count'); $sub_query->from('`#__icagenda_feature_xref` AS fx'); $sub_query->innerJoin("`#__icagenda_feature` AS f ON fx.feature_id=f.id AND f.state=1 AND f.icon<>'-1'"); $sub_query->group('fx.event_id'); $query->leftJoin('(' . (string) $sub_query . ') AS feat ON e.id=feat.event_id'); // Registrations total $query->select('r.count AS registered, r.date AS reg_date'); $sub_query = $db->getQuery(true); $sub_query->select('r.eventid, sum(r.people) AS count, r.date AS date'); $sub_query->from('`#__icagenda_registration` AS r'); $sub_query->where('r.state > 0'); $sub_query->group('r.eventid'); $query->leftJoin('(' . (string) $sub_query . ') AS r ON e.id=r.eventid'); // Run the query $db->setQuery($query); // Invoke the query $result = $db->loadObjectList(); $registrations = icagendaEventsData::registeredList(); foreach ($result AS $record) { $record_registered = array(); foreach ($registrations AS $reg_by_event) { $ex_reg_by_event = explode('@@', $reg_by_event); if ($ex_reg_by_event[0] == $record->id) { $record_registered[] = $ex_reg_by_event[0] . '@@' . $ex_reg_by_event[1] . '@@' . $ex_reg_by_event[2]; } } $record->registered = $record_registered; } // Set start/end dates of the current month $days = self::getNbOfDaysInMonth($this->date_start); $current_date_start = $this->date_start; $month_start = date('m', strtotime($current_date_start)); $month_end = date('m', strtotime('+1 month', strtotime($current_date_start))); $day_end = date('m', strtotime('+'.$days.' days', strtotime($current_date_start))); $year_end = ($month_start == '12') ? date('Y', strtotime("+1 year", strtotime($this->date_start))) : date('Y', strtotime($this->date_start)); $current_date_end = $year_end . '-' . $month_end . '-' . $day_end; $days = $this->getDays($this->date_start, 'Y-m-d H:i'); $total_items = 0; $displayed_items = 0; foreach ($result as $item) { // Extract the feature details, if needed $features = array(); if (is_null($item->features) || empty($this->features_icon_size)) { $item->features = array(); } else { $item->features = icagendaEvents::featureIcons($item->id); } if (isset($item->features) && is_array($item->features)) { foreach ($item->features as $feature) { $features[] = array('icon' => $feature->icon, 'icon_alt' => $feature->icon_alt); } } // list calendar dates $AllDates = array(); $next = isset($next) ? $next : ''; $allSingleDates_array = $this->getDatelist($item->dates, $next); // If Single Dates, added to all dates for this event if (isset($datemultiplelist) && $datemultiplelist != NULL && is_array($datemultiplelist)) { $allSingleDates_array = array_merge($AllDates, $datemultiplelist); } foreach ($allSingleDates_array as $sd) { $this_date = JHtml::date($sd, 'Y-m-d', null); if (strtotime($this_date) >= strtotime($current_date_start) && strtotime($this_date) < strtotime($current_date_end)) { array_push($AllDates, $sd); } } // Get WeekDays Array $WeeksDays = iCDatePeriod::weekdaysToArray($item->weekdays); // Get Period Dates $StDate = JHtml::date($item->startdate, 'Y-m-d H:i', $eventTimeZone); $EnDate = JHtml::date($item->enddate, 'Y-m-d H:i', $eventTimeZone); $perioddates = iCDatePeriod::listDates($item->startdate, $item->enddate, $eventTimeZone); $onlyStDate = isset($this->onlyStDate) ? $this->onlyStDate : ''; // Check the period if individual dates $only_startdate = ($item->weekdays || $item->weekdays == '0') ? false : true; // if (isset($perioddates) && $perioddates != NULL) // { if ($onlyStDate == 1) { if (strtotime($StDate) >= strtotime($current_date_start) && strtotime($StDate) < strtotime($current_date_end)) { array_push($AllDates, date('Y-m-d H:i', strtotime($item->startdate))); } } else { foreach ($perioddates as $Dat) { $this_date = JHtml::date($Dat, 'Y-m-d', null); if (in_array(date('w', strtotime($Dat)), $WeeksDays)) { $SingleDate = date('Y-m-d H:i', strtotime($Dat)); if (strtotime($this_date) >= strtotime($current_date_start) && strtotime($this_date) < strtotime($current_date_end)) { array_push($AllDates, $SingleDate); } } } } // } rsort($AllDates); // requête Itemid $iCmenuitem = $params->get('iCmenuitem', ''); if (is_numeric($iCmenuitem)) { $linkid = $iCmenuitem; } else { $linkid = icagendaMenus::thisEventItemid($item->next, $item->catid, $iC_list_menus); } $eventnumber = $item->id ? $item->id : null; $event_slug = $item->alias ? $item->id . ':' . $item->alias : $item->id; $total_items = $total_items + 1; if ( $linkid && ! $nolink && JComponentHelper::getComponent('com_icagenda', true)->enabled ) { $displayed_items = $displayed_items + 1; $urlevent = JRoute::_('index.php?option=com_icagenda&view=list&layout=event&id=' . $event_slug . '&Itemid=' . (int)$linkid); } else { $urlevent = '#'; } $descShort = icagendaEvents::shortDescription($item->desc, true, $this->filtering_shortDesc, $this->limit); /** * Get Thumbnail */ // START iCthumb // Set if run iCthumb if ($item->image && $thumb_generator == 1) { // Generate small thumb if not exist $thumb_img = icagendaThumb::sizeSmall($item->image); } elseif ($item->image && $thumb_generator == 0) { $thumb_img = $item->image; } else { $thumb_img = $item->image ? 'media/com_icagenda/images/nophoto.jpg' : ''; } // END iCthumb $evtParams = ''; $evtParams = new JRegistry($item->params); // Display Time $r_time = $params->get('dp_time', 1) ? true : false; // Display City $r_city = $params->get('dp_city', 1) ? $item->city : false; // Display Country $r_country = $params->get('dp_country', 1) ? $item->country : false; // Display Venue Name $r_place = $params->get('dp_venuename', 1) ? $item->place_name : false; // Display Intro Text $dp_shortDesc = $params->get('dp_shortDesc', ''); // Short Description if ($dp_shortDesc == '1') { $descShort = $item->shortdesc ? $item->shortdesc : false; } // Auto-Introtext elseif ($dp_shortDesc == '2') { $descShort = $descShort ? $descShort : false; } // Hide elseif ($dp_shortDesc == '0') { $descShort = false; } // Auto (First Short Description, if does not exist, Auto-generated short description from the full description. And if does not exist, will use meta description if not empty) else { $e_shortdesc = $item->shortdesc ? $item->shortdesc : $descShort; $descShort = $e_shortdesc ? $e_shortdesc : $item->metadesc; } // Display Registration Infos $dp_regInfos = $params->get('dp_regInfos', 1); $maxTickets = ($dp_regInfos == 1) ? $evtParams->get('maxReg', '1000000') : false; $typeReg = ($dp_regInfos == 1) ? $evtParams->get('typeReg', '1') : false; $event = array( 'id' => (int)$item->id, 'Itemid' => (int)$linkid, 'title' => $item->title, 'next' => $this->formatDate($item->next), 'image' => $thumb_img, 'file' => $item->file, 'address' => $item->address, 'city' => $r_city, 'country' => $r_country, 'place' => $r_place, 'description' => $item->desc, 'descShort' => $descShort, 'cat_title' => $item->cat_title, 'cat_order' => $item->cat_order, 'cat_color' => $item->cat_color, 'nb_events' => count($item->id), 'no_image' => JTEXT::_('MOD_ICCALENDAR_NO_IMAGE'), 'params' => $item->params, 'features_icon_size' => $this->features_icon_size, 'features_icon_root' => $this->features_icon_root, 'show_icon_title' => $this->show_icon_title, 'features' => $features, 'item' => $item, ); // Access Control $access = $item->access ? $item->access : '1'; // Language Control $languages = array(JFactory::getLanguage()->getTag(), '*'); $eventLang = isset($item->language) ? $item->language : '*'; // Get Option Dislay Time $displaytime = isset($item->displaytime) ? $item->displaytime : ''; $events_per_day = array(); // Get List of Dates if ((in_array($access, $userLevels) || in_array('8', $userGroups)) && in_array($eventLang, $languages) && is_array($event) && $linkid ) { $past_dates = 0; foreach ($AllDates as $d) { // Control if date is past if (strtotime($d) < strtotime($datetime_today)) { $past_dates = $past_dates + 1; } } foreach ($AllDates as $d) { $this_date_control = date('Y-m-d H:i', strtotime($d)); if ($only_startdate && in_array($this_date_control, $perioddates)) { $set_date_in_url = ''; } else { $set_date_in_url = $date_var . iCDate::dateToAlias($d, 'Y-m-d H:i'); } if ($r_time) { $time = array( 'time' => date($lang_time, strtotime($d)), 'displaytime' => $displaytime, 'url' => $urlevent . $set_date_in_url ); } else { $time = array( 'time' => '', 'displaytime' => '', 'url' => $urlevent . $set_date_in_url ); } $event = array_merge($event, $time); $this_date = $item->reg_date ? date('Y-m-d H:i:s', strtotime($d)) : 'period'; $registrations = ($dp_regInfos == 1) ? true : false; $registered = ($dp_regInfos == 1) ? self::getNbTicketsBooked($this_date, $item->registered, $eventnumber, $set_date_in_url) : false; $maxTickets = ($maxTickets != '1000000') ? $maxTickets : false; $TicketsLeft = ($dp_regInfos == 1 && $maxTickets) ? ($maxTickets - self::getNbTicketsBooked($this_date, $item->registered, $eventnumber, $set_date_in_url)) : false; // If period started, and registration is set to "for all dates of the event" if ($maxTickets // && strtotime($item->startdate) < strtotime($datetime_today) && $past_dates && $typeReg == 2 ) { $date_sold_out = JText::_('MOD_ICCALENDAR_REGISTRATION_CLOSED'); } elseif ($maxTickets) { $date_sold_out = ($TicketsLeft <= 0) ? JText::_('MOD_ICCALENDAR_REGISTRATION_DATE_NO_TICKETS_LEFT') : false; } else { $date_sold_out = false; } $reg_infos = array( 'registrations' => $registrations, 'registered' => $registered, 'maxTickets' => $maxTickets, 'TicketsLeft' => $TicketsLeft, 'date_sold_out' => $date_sold_out ); $event = array_merge($event, $reg_infos); foreach ($days as $k => $dy) { // $d_date = JHtml::date($d, 'Y-m-d', $eventTimeZone); $d_date = date('Y-m-d', strtotime($d)); $dy_date = date('Y-m-d', strtotime($dy['date'])); if ($d_date == $dy_date) { array_push ($days[$k]['events'], $event); } } } } } $i = ''; if ($nolink || !JComponentHelper::getComponent('com_icagenda', true)->enabled) { do { echo '<div style="color:#a40505; text-align: center;"><b>info :</b></div><div style="color:#a40505; font-size: 0.8em; text-align: center;">'.JText::_( 'MOD_ICCALENDAR_COM_ICAGENDA_MENULINK_UNPUBLISHED_MESSAGE' ).'</div>'; } while ($i > 0); } $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('id AS nbevt')->from('`#__icagenda_events` AS e')->where('e.state > 0'); $db->setQuery($query); $nbevt = $db->loadResult(); $nbevt = count($nbevt); $no_event_message = '<div class="ic-msg-no-event">' . JText::_('MOD_ICCALENDAR_NO_EVENT') . '</div>'; if ($nbevt == NULL) { echo $no_event_message; } // To be Checked $total_items = count($result); if ($displayed_items == '0' && $total_items > 0) { echo $no_event_message; } if ($total_items > $displayed_items) { $not_displayed = ($total_items - $displayed_items); $user = JFactory::getUser(); if ($user->authorise('core.admin')) { echo '<div class="alert alert-warning">' . JText::sprintf('IC_MODULE_ALERT_EVENTS_NOT_DISPLAYED', $not_displayed) . '</div>'; } } return $days; } public static function getNbTicketsBooked($date, $event_registered, $event_id, $set_date_in_url) { $event_registered = is_array($event_registered) ? $event_registered : array(); $nb_registrations = 0; foreach ($event_registered AS $reg) { $ex_reg = explode('@@', $reg); // eventid@@date@@people if ( ! $date || $date == 'period') { $nb_registrations = $nb_registrations + $ex_reg[2]; } elseif (date('Y-m-d H:i', strtotime($date)) == date('Y-m-d H:i', strtotime($ex_reg[1]))) { $nb_registrations = $nb_registrations + $ex_reg[2]; } elseif ( ! $set_date_in_url && $ex_reg[1] == 'period' && $event_id == $ex_reg[0]) { $nb_registrations = $nb_registrations + $ex_reg[2]; } } return $nb_registrations; } // Function to get Format Date (using option format, and translation) protected function formatDate($date, $tz = false) { // Date Format Option (Global Component Option) $date_format_global = JComponentHelper::getParams('com_icagenda')->get('date_format_global', 'Y - m - d'); $date_format_global = ($date_format_global !== '0') ? $date_format_global : 'Y - m - d'; // Previous 3.5.6 setting // Date Format Option (Module Option) $date_format_module = isset($this->format) ? $this->format : ''; $date_format_module = ($date_format_module !== '0') ? $date_format_module : ''; // Previous 3.5.6 setting // Set Date Format option to be used $format = $date_format_module ? $date_format_module : $date_format_global; // Separator Option $separator = isset($this->date_separator) ? $this->date_separator : ' '; if ( ! is_numeric($format)) { // Update old Date Format options of versions before 2.1.7 $format = str_replace(array('nosep', 'nosep', 'sepb', 'sepa'), '', $format); $format = str_replace('.', ' .', $format); $format = str_replace(',', ' ,', $format); } $dateFormatted = iCGlobalize::dateFormat($date, $format, $separator, $tz); return $dateFormatted; } // Function to get TimeZone offset function get_timezone_offset($remote_tz, $origin_tz = null) { if ($origin_tz === null) { if (!is_string($origin_tz = date_default_timezone_get())) { return false; // A UTC timestamp was returned -- bail out! } } $origin_dtz = new DateTimeZone($origin_tz); $remote_dtz = new DateTimeZone($remote_tz); $origin_dt = new DateTime("now", $origin_dtz); $remote_dt = new DateTime("now", $remote_dtz); $offset = $origin_dtz->getOffset($origin_dt) - $remote_dtz->getOffset($remote_dt); return $offset; } function getNbOfDaysInMonth($date) { $lang = JFactory::getLanguage(); // Get Nb of days in the month in Jalali/Persian calendar if ($lang->getTag() == 'fa-IR') { $date_to_persian = $date; $persian_month = date('m', strtotime($date_to_persian)); $persian_year = date('Y', strtotime($date_to_persian)); $leap_year = fa_IRDate::leap_persian($persian_year); if ($persian_month < 7) { $days = 31; } elseif ($persian_month == 12) { $days = $leap_year ? 30 : 29; } else { $days = 30; } } // Get Nb of days in the month in Gregorian calendar else { $days = date("t", strtotime($date)); } return $days; } // Generate the days of the month function getDays($d, $f) { $lang = JFactory::getLanguage(); $eventTimeZone = null; $days = self::getNbOfDaysInMonth($d); // Set Month and Year $ex_data = explode('-', $d); $month = $ex_data[1]; $year = $ex_data[0]; $jour = $ex_data[2]; $list = array(); // // Setting function of the visitor Time Zone // $today = time(); $config = JFactory::getConfig(); $joomla_offset = $config->get('offset'); $displayDatesTimezone = '0'; // Option not active $opt_TimeZone = isset($this->setTodayTimezone) ? $this->setTodayTimezone : ''; $gmt_today = gmdate('Y-m-d H:i:s', $today); $today_timestamp = strtotime($gmt_today); $GMT_timezone = 'Etc/UTC'; if ($opt_TimeZone == 'SITE') { // Joomla Server Time Zone $visitor_timezone = $joomla_offset; $offset = $this->get_timezone_offset($GMT_timezone, $visitor_timezone); $visitor_today = JHtml::date(($today_timestamp+$offset), 'Y-m-d H:i:s', null); $UTCsite = $offset / 3600; if ($UTCsite > 0) $UTCsite = '+'.$UTCsite; if ($displayDatesTimezone == '1') { echo '<small>' . JHtml::date('now', 'Y-m-d H:i:s', true) . ' UTC' . $UTCsite . '</small><br />'; } } elseif ($opt_TimeZone == 'UTC') { // UTC Time Zone $offset = 0; $visitor_today = JHtml::date(($today_timestamp+$offset), 'Y-m-d H:i:s', null); $UTC = $offset / 3600; if ($UTC > 0) $UTC = '+'.$UTC; if ($displayDatesTimezone == '1') { echo '<small>' . gmdate('Y-m-d H:i:s', $today) . ' UTC' . $UTC . '</small><br />'; } } else { $visitor_today = JHtml::date(($today_timestamp), 'Y-m-d H:i:s', null); } $date_today = str_replace(' ', '-', $visitor_today); $date_today = str_replace(':', '-', $date_today); $ex_data = explode('-', $date_today); $v_month = $ex_data[1]; $v_year = $ex_data[0]; $v_day = $ex_data[2]; $v_hours = $ex_data[3]; $v_minutes = $ex_data[4]; for ($a = 1; $a <= $days; $a++) { $calday = $a; $this_date_a = $year . '-' . $month . '-' . $a; if ($lang->getTag() == 'fa-IR') { $this_date_cal = iCGlobalizeConvert::jalaliToGregorian($year, $month, $a, true); } else { $this_date_cal = $year . '-' . $month . '-' . $a; } if (($a == $v_day) && ($month == $v_month) && ($year == $v_year)) { $classDay = 'style_Today'; } else { $classDay = 'style_Day'; } $datejour = JHtml::date($this_date_cal, 'Y-m-d', $eventTimeZone); $this_year_month = $year . '-' . $month . '-00'; $list_a_date = date('Y-m-d H:i', strtotime($this_date_a)); // Set Date in tooltip header $date_to_format = $this->formatDate($this_date_cal, false); $list[$calday]['dateTitle'] = $date_to_format; // $list[$calday]['datecal'] = JHtml::date($this_date_a, 'j', null); // $list[$calday]['monthcal'] = JHtml::date($this_date_a, 'm', null); // $list[$calday]['yearcal'] = JHtml::date($this_date_a, 'Y', null); $list[$calday]['date'] = date('Y-m-d H:i', strtotime($this_date_cal)); // $list[$calday]['dateFormat'] = strftime($f, strtotime($this_date_a)); $list[$calday]['week'] = date('N', strtotime($this_date_a)); $list[$calday]['day'] = '<div class="' . $classDay . '">' . $a . '</div>'; // Set cal_date $list[$calday]['this_day'] = date('Y-m-d', strtotime($this_date_a)); // Added in 2.1.2 (change in NAME_day.php) $list[$calday]['ifToday'] = $classDay; $list[$calday]['Days'] = $a; // Set event array $list[$calday]['events'] = array(); } return $list; } /***/ /** * Single Dates list for one event */ private function getDatelist($dates, $next) { $dates = iCString::isSerialized($dates) ? unserialize($dates) : array(); $da = array(); foreach ($dates as $d) { if (strtotime($d) >= strtotime($next) && iCDate::isDate($d)) { array_push($da, date('Y-m-d H:i', strtotime($d))); } } return $da; } /** Systeme de navigation **/ function getNav($date_start, $modid) { $app = JFactory::getApplication(); $isSef = $app->getCfg( 'sef' ); // Return Current URL $url = JUri::getInstance()->toString() . '#tag'; $url = preg_replace('/&iccaldate=[^&]*/', '', $url); $url = preg_replace('/\?iccaldate=[^\?]*/', '', $url); // Set Separator for Navigation Var $separator = strpos($url, '?') !== false ? '&' : '?'; // Remove fragment (hashtag could be added by a third party extension, eg. nonumber framework) $parsed_url = parse_url($url); $fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : ''; $url = str_replace($fragment, '', $url); // Return Current URL Filtered $url = htmlspecialchars($url); // Start Date $ex_date = explode('-', $date_start); $year = $ex_date[0]; $month = $ex_date[1]; $day = 1; if ($month != 1) { $backMonth = $month-1; $backYear = $year; } elseif ($month == 1) { $backMonth = 12; $backYear = $year-1; } if ($month != 12) { $nextMonth = $month+1; $nextYear = $year; } elseif ($month == 12) { $nextMonth = 1; $nextYear = $year+1; } $backYYear = $year-1; $nextYYear = $year+1; // Create Navigation Arrows $classBackYear = 'backicY icagendabtn_' . $modid; $urlBackYear = $url . $separator . 'iccaldate=' . $backYYear . '-' . $month . '-' . $day; $iconBackYear = '<span class="iCicon iCicon-backicY"></span>'; $backY = '<a class="' . $classBackYear . '" href="' . $urlBackYear . '" rel="nofollow">' . $iconBackYear . '</a>'; $classBackMonth = 'backic icagendabtn_' . $modid; $urlBackMonth = $url . $separator . 'iccaldate=' . $backYear . '-' . $backMonth . '-' . $day; $iconBackMonth = '<span class="iCicon iCicon-backic"></span>'; $back = '<a class="' . $classBackMonth . '" href="' . $urlBackMonth . '" rel="nofollow">' . $iconBackMonth . '</a>'; $classNextMonth = 'nextic icagendabtn_' . $modid; $urlNextMonth = $url . $separator . 'iccaldate=' . $nextYear . '-' . $nextMonth . '-' . $day; $iconNextMonth = '<span class="iCicon iCicon-nextic"></span>'; $next = '<a class="' . $classNextMonth . '" href="' . $urlNextMonth . '" rel="nofollow">' . $iconNextMonth . '</a>'; $classNextYear = 'nexticY icagendabtn_' . $modid; $urlNextYear = $url . $separator . 'iccaldate=' . $nextYYear . '-' . $month . '-' . $day; $iconNextYear = '<span class="iCicon iCicon-nexticY"></span>'; $nextY = '<a class="' . $classNextYear . '" href="' . $urlNextYear . '" rel="nofollow">' . $iconNextYear . '</a>'; if ( ! $this->month_nav) $back = $next = ''; if ( ! $this->year_nav) $backY = $nextY = ''; /** translate the month in the calendar module -- Leland Vandervort **/ $dateFormat = date('Y-m-d', strtotime($date_start)); // split out the month and year to obtain translation key for JText using joomla core translation $t_day = strftime("%d", strtotime("$dateFormat")); $t_month = date('F', strtotime($dateFormat)); $t_year = strftime("%Y", strtotime("$dateFormat")); $lang = JFactory::getLanguage(); $langTag = $lang->getTag(); $yearBeforeMonth = array('ar-AA', 'ja-JP'); $monthBeforeYear = in_array($langTag, $yearBeforeMonth) ? 0 : 1; /** * Get prefix, suffix and separator for month and year in calendar title */ // Separator Month/Year $separator_month_year = JText::_('SEPARATOR_MONTH_YEAR'); if ($separator_month_year == 'CALENDAR_SEPARATOR_MONTH_YEAR_FACULTATIVE') { $separator_month_year = ' '; } elseif ($separator_month_year == 'NO_SEPARATOR') { $separator_month_year = ''; } // Prefix Month (Facultative) $prefix_month = JText::_('PREFIX_MONTH'); if ($prefix_month == 'CALENDAR_PREFIX_MONTH_FACULTATIVE') { $prefix_month = ''; } // Suffix Month (Facultative) $suffix_month = JText::_('SUFFIX_MONTH'); if ($suffix_month == 'CALENDAR_SUFFIX_MONTH_FACULTATIVE') { $suffix_month = ''; } // Prefix Year (Facultative) $prefix_year = JText::_('PREFIX_YEAR'); if ($prefix_year == 'CALENDAR_PREFIX_YEAR_FACULTATIVE') { $prefix_year = ''; } // Suffix Year (Facultative) $suffix_year = JText::_('SUFFIX_YEAR'); if ($suffix_year == 'CALENDAR_SUFFIX_YEAR_FACULTATIVE') { $suffix_year = ''; } $SEP = $separator_month_year; $PM = $prefix_month; $SM = $suffix_month; $PY = $prefix_year; $SY = $suffix_year; // Get MONTH_CAL string or if not translated, use MONTHS $array_months = array( 'JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER' ); $cal_string = $t_month . '_CAL'; $missing_cal_string = iCFilterOutput::stringToJText($cal_string); if ( in_array($missing_cal_string, $array_months) ) { // if MONTHS_CAL strings not translated in current language, use MONTHS strings $month_J = JText::_( $t_month ); } else { // Use MONTHS_CAL strings when translated in current language $month_J = JText::_( $t_month . '_CAL' ); } // Set Calendar Title if ($monthBeforeYear == 0) { $title = $PY . $t_year . $SY . $SEP . $PM . $month_J . $SM; } else { $title = $PM . $month_J . $SM . $SEP . $PY . $t_year . $SY; } // Set Nav Bar for calendar $html = '<div class="icnav">' . $backY . $back . $nextY . $next; $html.= '<div class="titleic">' . $title . '</div>'; $html.= '</div><div style="clear:both"></div>'; return $html; } } class cal { public $data; public $template; public $t_calendar; public $t_day; public $nav; public $fontcolor; private $header_text; function __construct ($data, $t_calendar, $t_day, $nav, $firstday, $columns_bg_color, $calfontcolor, $OneEventbgcolor, $Eventsbgcolor, $bgcolor, $bgimage, $bgimagerepeat, $moduleclass_sfx, $modid, $template, $ictip_ordering, $header_text) { $this->data = $data; $this->t_calendar = $t_calendar; $this->t_day = $t_day; $this->nav = $nav; $this->firstday = $firstday; $this->calfontcolor = $calfontcolor; $this->OneEventbgcolor = $OneEventbgcolor; $this->Eventsbgcolor = $Eventsbgcolor; $this->bgcolor = $bgcolor; $this->bgimage = $bgimage; $this->bgimagerepeat = $bgimagerepeat; $this->moduleclass_sfx = $moduleclass_sfx; $this->modid = $modid; $this->template = $template; $this->ictip_ordering = $ictip_ordering; $this->header_text = $header_text; // Columns Background colors $cbc = $columns_bg_color; $this->weekdays = array('MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'); switch ($this->firstday) { case 0: $this->colbg = array($cbc[0], $cbc[1], $cbc[2], $cbc[3], $cbc[4], $cbc[5], $cbc[6]); $this->day = array(7, 1, 2, 3, 4, 5, 6); break; case 1: $this->colbg = array($cbc[1], $cbc[2], $cbc[3], $cbc[4], $cbc[5], $cbc[6], $cbc[0]); $this->day = array(1, 2, 3, 4, 5, 6, 7); break; case 2: $this->colbg = array($cbc[2], $cbc[3], $cbc[4], $cbc[5], $cbc[6], $cbc[0], $cbc[1]); $this->day = array(2, 3, 4, 5, 6, 7, 1); break; case 3: $this->colbg = array($cbc[3], $cbc[4], $cbc[5], $cbc[6], $cbc[0], $cbc[1], $cbc[2]); $this->day = array(3, 4, 5, 6, 7, 1, 2); break; case 4: $this->colbg = array($cbc[4], $cbc[5], $cbc[6], $cbc[0], $cbc[1], $cbc[2], $cbc[3]); $this->day = array(4, 5, 6, 7, 1, 2, 3); break; case 5: $this->colbg = array($cbc[5], $cbc[6], $cbc[0], $cbc[1], $cbc[2], $cbc[3], $cbc[4]); $this->day = array(5, 6, 7, 1, 2, 3, 4); break; case 6: $this->colbg = array($cbc[6], $cbc[0], $cbc[1], $cbc[2], $cbc[3], $cbc[4], $cbc[5]); $this->day = array(6, 7, 1, 2, 3, 4, 5); break; default: $this->colbg = array($cbc[0], $cbc[1], $cbc[2], $cbc[3], $cbc[4], $cbc[5], $cbc[6]); $this->day = array(7, 1, 2, 3, 4, 5, 6); break; } } function days() { $this_calfontcolor = str_replace(' ', '', $this->calfontcolor); $calfontcolor = ! empty($this_calfontcolor) ? ' color:' . $this->calfontcolor . ';' : ''; $this_bgcolor = str_replace(' ', '', $this->bgcolor); $bgcolor = ! empty($this_bgcolor) ? ' background-color:' . $this->bgcolor . ';' : ''; $this_bgimage = str_replace(' ', '', $this->bgimage); $bgimage = ! empty($this_bgimage) ? ' background-image:url(\'' . $this->bgimage . '\');' : ''; $this_bgimagerepeat = str_replace(' ', '', $this->bgimagerepeat); $bgimagerepeat = ! empty($this_bgimagerepeat) ? ' background-repeat:' . $this->bgimagerepeat . ';' : ''; $iCcal_style = ''; if ( ! empty($this_calfontcolor) || ! empty($this_bgcolor) || ! empty($this_bgimage) || ! empty($this_bgimagerepeat) ) { $iCcal_style.= 'style="'; } $iCcal_style.= $calfontcolor . $bgcolor . $bgimage; $iCcal_style.= ($this_bgimagerepeat && $this_bgimage) ? $bgimagerepeat : ''; $iCcal_style.= (empty($this_bgcolor) && empty($this_bgimage)) ? ' background-color: transparent; background-image: none;' : ''; $iCcal_style.= '"'; // Verify Hex color strings $OneEventbgcolor = preg_match('/^#[a-f0-9]{6}$/i', $this->OneEventbgcolor) ? $this->OneEventbgcolor : ''; $Eventsbgcolor = preg_match('/^#[a-f0-9]{6}$/i', $this->Eventsbgcolor) ? $this->Eventsbgcolor : ''; echo '<div class="' . $this->template . ' iccalendar ' . $this->moduleclass_sfx . '" ' . $iCcal_style . ' id="' . $this->modid . '">'; echo '<div id="mod_iccalendar_' . $this->modid . '"> <div class="icagenda_header">' . $this->header_text . ' </div>' . $this->nav . ' <table id="icagenda_calendar" class="ic-table" style="width:100%;"> <thead> <tr> <th style="width:14.2857143%;background:' . $this->colbg[0] . ';">' . JText::_($this->weekdays[($this->day[0]-1)]) . '</th> <th style="width:14.2857143%;background:' . $this->colbg[1] . ';">' . JText::_($this->weekdays[($this->day[1]-1)]) . '</th> <th style="width:14.2857143%;background:' . $this->colbg[2] . ';">' . JText::_($this->weekdays[($this->day[2]-1)]) . '</th> <th style="width:14.2857143%;background:' . $this->colbg[3] . ';">' . JText::_($this->weekdays[($this->day[3]-1)]) . '</th> <th style="width:14.2857143%;background:' . $this->colbg[4] . ';">' . JText::_($this->weekdays[($this->day[4]-1)]) . '</th> <th style="width:14.2857143%;background:' . $this->colbg[5] . ';">' . JText::_($this->weekdays[($this->day[5]-1)]) . '</th> <th style="width:14.2857143%;background:' . $this->colbg[6] . ';">' . JText::_($this->weekdays[($this->day[6]-1)]) . '</th> </tr> </thead> '; switch ($this->data[1]['week']) { case $this->day[0]: break; case $this->day[1]: echo '<tr><td colspan="1"></td>'; break; case $this->day[2]: echo '<tr><td colspan="2"></td>'; break; case $this->day[3]: echo '<tr><td colspan="3"></td>'; break; case $this->day[4]: echo '<tr><td colspan="4"></td>'; break; case $this->day[5]: echo '<tr><td colspan="5"></td>'; break; case $this->day[6]: echo '<tr><td colspan="6"></td>'; break; default: echo '<tr><td colspan="' . ($this->data[1]['week']-$this->firstday) . '"></td>'; break; } foreach ($this->data as $d) { $stamp = new day($d); switch($stamp->week) { case $this->day[0]: echo '<tr><td style="background:' . $this->colbg[0] . ';">'; break; case $this->day[1]: echo '<td style="background:' . $this->colbg[1] . ';">'; break; case $this->day[2]: echo '<td style="background:' . $this->colbg[2] . ';">'; break; case $this->day[3]: echo '<td style="background:' . $this->colbg[3] . ';">'; break; case $this->day[4]: echo '<td style="background:' . $this->colbg[4] . ';">'; break; case $this->day[5]: echo '<td style="background:' . $this->colbg[5] . ';">'; break; case $this->day[6]: echo '<td style="background:' . $this->colbg[6] . ';">'; break; default: echo '<td>'; break; } $count_events = count($stamp->events); if ($OneEventbgcolor && $OneEventbgcolor != ' ' && $count_events == '1') { $bg_day = $OneEventbgcolor; } elseif ($Eventsbgcolor && $Eventsbgcolor != ' ' && $count_events > '1') { $bg_day = $Eventsbgcolor; } else { $bg_day = isset($stamp->events[0]['cat_color']) ? $stamp->events[0]['cat_color'] : '#d4d4d4'; } $bgcolor = iCColor::getBrightness($bg_day); $bgcolor = ($bgcolor == 'bright') ? 'ic-bright' : 'ic-dark'; $order = 'first'; $multi_events = isset($stamp->events[1]['cat_color']) ? 'icmulti' : ''; // Ordering by time New Theme Packs (since 3.2.9) $events = $stamp->events; // Option for Ordering is not yet finished. This developpement is in brainstorming... $ictip_ordering = '1'; $ictip_ordering = $this->ictip_ordering; if ($ictip_ordering == '1_ASC-1_ASC' || $ictip_ordering == '1_ASC-1_DESC') $ictip_ordering = '1_ASC'; if ($ictip_ordering == '2_ASC-2_ASC' || $ictip_ordering == '2_ASC-2_DESC') $ictip_ordering = '2_ASC'; if ($ictip_ordering == '1_DESC-1_ASC' || $ictip_ordering == '1_DESC-1_DESC') $ictip_ordering = '1_DESC'; if ($ictip_ordering == '2_DESC-2_ASC' || $ictip_ordering == '2_DESC-2_DESC') $ictip_ordering = '2_DESC'; // Create Functions for Ordering // Default $newfunc_1_ASC_2_ASC - edited 2015-07-01 to fix ordering by Time when am/pm $newfunc_1_ASC_2_ASC = create_function('$a, $b', 'if ($a["time"] == $b["time"]){ return strcasecmp($a["cat_title"], $b["cat_title"]); } else { return strcasecmp(date("H:i", strtotime($a["time"])), date("H:i", strtotime($b["time"]))); }'); $newfunc_1_ASC_2_DESC = create_function('$a, $b', 'if ($a["time"] == $b["time"]){ return strcasecmp($b["cat_title"], $a["cat_title"]); } else { return strcasecmp($a["time"], $b["time"]); }'); $newfunc_1_DESC_2_ASC = create_function('$a, $b', 'if ($a["time"] == $b["time"]){ return strcasecmp($a["cat_title"], $b["cat_title"]); } else { return strcasecmp($b["time"], $a["time"]); }'); $newfunc_1_DESC_2_DESC = create_function('$a, $b', 'if ($a["time"] == $b["time"]){ return strcasecmp($b["cat_title"], $a["cat_title"]); } else { return strcasecmp($b["time"], $a["time"]); }'); $newfunc_2_ASC_1_ASC = create_function('$a, $b', 'if ($a["cat_title"] == $b["cat_title"]){ return strcasecmp($a["time"], $b["time"]); } else { return strcasecmp($a["cat_title"], $b["cat_title"]); }'); $newfunc_2_ASC_1_DESC = create_function('$a, $b', 'if ($a["cat_title"] == $b["cat_title"]){ return strcasecmp($b["time"], $a["time"]); } else { return strcasecmp($a["cat_title"], $b["cat_title"]); }'); $newfunc_2_DESC_1_ASC = create_function('$a, $b', 'if ($a["cat_title"] == $b["cat_title"]){ return strcasecmp($a["time"], $b["time"]); } else { return strcasecmp($b["cat_title"], $a["cat_title"]); }'); $newfunc_2_DESC_1_DESC = create_function('$a, $b', 'if ($a["cat_title"] == $b["cat_title"]){ return strcasecmp($b["time"], $a["time"]); } else { return strcasecmp($b["cat_title"], $a["cat_title"]); }'); $newfunc_1_ASC = create_function('$a, $b', 'return strcasecmp($a["time"], $b["time"]);'); $newfunc_2_ASC = create_function('$a, $b', 'return strcasecmp($a["cat_title"], $b["cat_title"]);'); $newfunc_1_DESC = create_function('$a, $b', 'return strcasecmp($b["time"], $a["time"]);'); $newfunc_2_DESC = create_function('$a, $b', 'return strcasecmp($b["cat_title"], $a["cat_title"]);'); // Order by time - Old Theme Packs (before 3.2.9) : Update Theme Pack to get all options usort($stamp->events, $newfunc_1_ASC_2_ASC); // Time ASC and if same time : Category Title ASC (default) if ($ictip_ordering == '1_ASC-2_ASC') { usort($events, $newfunc_1_ASC_2_ASC); } // Time ASC and if same time : Category Title DESC if ($ictip_ordering == '1_ASC-2_DESC') { usort($events, $newfunc_1_ASC_2_DESC); } // Time DESC and if same time : Category Title ASC if ($ictip_ordering == '1_DESC-2_ASC') { usort($events, $newfunc_1_DESC_2_ASC); } // Time DESC and if same time : Category Title DESC if ($ictip_ordering == '1_DESC-2_DESC') { usort($events, $newfunc_1_DESC_2_DESC); } // Category Title ASC and if same category : Time ASC if ($ictip_ordering == '2_ASC-1_ASC') { usort($events, $newfunc_2_ASC_1_ASC); } // Category Title ASC and if same category : Time DESC if ($ictip_ordering == '2_ASC-1_DESC') { usort($events, $newfunc_2_ASC_1_DESC); } // Category Title DESC and if same category : Time ASC if ($ictip_ordering == '2_DESC-1_ASC') { usort($events, $newfunc_2_DESC_1_ASC); } // Category Title DESC and if same category : Time DESC if ($ictip_ordering == '2_DESC-1_DESC') { usort($events, $newfunc_2_DESC_1_DESC); } // If main ordering and sub-ordering on Time : set TIME ASC (with no sub-ordering) if ($ictip_ordering == '1_ASC') { usort($events, $newfunc_1_ASC); } // If main ordering and sub-ordering on Category Title : set CATEGORY TITLE ASC (with no sub-ordering) if ($ictip_ordering == '2_ASC') { usort($events, $newfunc_2_ASC); } // Load template for day infotip require $this->t_day; switch('week') { case $this->day[6]: echo '</td></tr>'; break; default: echo '</td>'; break; } } switch ($stamp->week) { case $this->day[6]: break; default: echo '<td colspan="' . (7-$stamp->week) . '"></td></tr>'; break; } echo '</table></div>'; echo '</div>'; } } class day { public $date; public $week; public $day; public $month; public $year; public $events; public $fontcolor; function __construct($day) { foreach ($day as $k=>$v) { $this->$k = $v; } } } index.html 0000604 00000000000 15245561146 0006534 0 ustar 00 mod_iccalendar.xml 0000604 00000045277 15245561146 0010236 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <extension type="module" version="2.5" client="site" method="upgrade"> <name>iCagenda - Calendar</name> <creationDate>2015-10-12</creationDate> <copyright>Copyright (c)2012-2015 JoomliC. All rights reserved.</copyright> <license>GNU General Public License version 3 or later; see LICENSE.txt</license> <author>Jooml!C</author> <authorEmail>info@joomlic.com</authorEmail> <authorUrl>www.joomlic.com</authorUrl> <version>3.5.12</version> <description>Calendar module for iCagenda component</description> <files> <filename>mod_iccalendar.xml</filename> <filename module="mod_iccalendar">mod_iccalendar.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <folder>js</folder> </files> <languages folder="site"> <language tag="en-GB">language/en-GB/en-GB.mod_iccalendar.ini</language> <language tag="fr-FR">language/fr-FR/fr-FR.mod_iccalendar.ini</language> <language tag="it-IT">language/it-IT/it-IT.mod_iccalendar.ini</language> </languages> <config> <fields id="params" name="params" type="fields" label="params" addfieldpath="/administrator/components/com_icagenda/models/fields"> <fieldset name="basic" addfieldpath="/administrator/components/com_icagenda/assets/elements"> <field name="template" type="modal_template" label="MOD_ICCALENDAR_THEME_PACK_LBL" description="MOD_ICCALENDAR_THEME_PACK_DESC" size="40" class="inputbox" default="default" /> <field name="iCmenuitem" type="modal_menulink" default="" label="MOD_ICCALENDAR_FIELD_MENU_LABEL" description="MOD_ICCALENDAR_FIELD_MENU_DESC" > </field> <field name="firstMonth" type="calendar" label="MOD_ICCALENDAR_LOADING_ON_DATE_LBL" description="MOD_ICCALENDAR_LOADING_ON_DATE_DESC" default=""/> <field type="Title" label="MOD_ICCALENDAR_FILTERS_LABEL" class="stylebox lead input-xxlarge"/> <field name="mcatid" type="modal_multicat" class="inputbox" multiple="multiple" default="0" label="MOD_ICCALENDAR_LBL_CATEGORY" description="MOD_ICCALENDAR_DESC_CATEGORY" /> <field name="onlyStDate" type="list" label="MOD_ICCALENDAR_LBL_PERIOD" description="MOD_ICCALENDAR_PERIOD_ONLY_START_DATE_DESC" default="" class="btn-group"> <option value="">PERIOD_ALL_DATES</option> <option value="1">PERIOD_ONLY_START_DATE</option> <!--option value="2">Only Next Date</option--> </field> <field type="Title" label="MOD_ICCALENDAR_HEADER_TEXT_LBL" class="stylebox lead input-xxlarge"/> <field name="header_text" type="editor" label="MOD_ICCALENDAR_HEADER_TEXT_LBL" description="MOD_ICCALENDAR_HEADER_TEXT_DESC" filter="JComponentHelper::filterText" default="" /> <field type="Title" label=" " class="stylenote"/> <field type="Title" label="MOD_ICCALENDAR_LBL_TOOLTIP" class="stylebox lead input-xxlarge"/> <field name="tipwidth" type="text" label="MOD_ICCALENDAR_LBL_TIP_WIDTH" description="MOD_ICCALENDAR_DESC_TIP_WIDTH" size="30" class="inputbox" default="390" /> <field type="TitleImg" label="MOD_ICCALENDAR_DESC_HORIZ_POSITION" class="stylenote alert alert-info input-xxlarge" icimage="info.png" /> <field name="position" type="radio" label="MOD_ICCALENDAR_LBL_HORIZ_POSITION" description="MOD_ICCALENDAR_DESC_HORIZ_POSITION" class="btn-group" labelclass="control-label" default="center"> <option value="left">MOD_ICCALENDAR_HORIZ_POSITION_LEFT</option> <option value="center">MOD_ICCALENDAR_HORIZ_POSITION_MIDDLE</option> <option value="right">MOD_ICCALENDAR_HORIZ_POSITION_RIGHT</option> </field> <field name="posmiddle" type="radio" label="MOD_ICCALENDAR_LBL_VERT_POSITION" description="MOD_ICCALENDAR_DESC_VERT_POSITION" class="btn-group" labelclass="control-label" default="top"> <option value="top">MOD_ICCALENDAR_VERT_POSITION_TOP</option> <option value="bottom">MOD_ICCALENDAR_VERT_POSITION_BOTTOM</option> </field> <field type="TitleImg" label="MOD_ICCALENDAR_DESC_VERT_POSITION_OFFSET" class="stylenote alert alert-info input-xxlarge" icimage="info.png" /> <field name="verticaloffset" type="text" label="MOD_ICCALENDAR_LBL_VERT_POSITION_OFFSET" description="MOD_ICCALENDAR_DESC_VERT_POSITION_OFFSET" size="30" class="inputbox" default="50" /> <field type="TitleImg" label="MOD_ICCALENDAR_TIP_PADDING" class="stylenote alert alert-info input-xxlarge" icimage="info.png" /> <field name="padding" type="text" label="MOD_ICCALENDAR_LBL_TIP_PADDING" description="MOD_ICCALENDAR_DESC_TIP_PADDING" size="30" class="inputbox" default="0" /> <field type="TitleImg" label="MOD_ICCALENDAR_DESC_MOUSEOVER" class="stylenote alert alert-info input-xxlarge" icimage="info.png" /> <field name="mouseover" type="radio" label="MOD_ICCALENDAR_LBL_MOUSEOVER" description="MOD_ICCALENDAR_DESC_MOUSEOVER" class="btn-group" labelclass="control-label" default="click"> <option value="click">MOD_ICCALANDAR_OPEN_CLICK</option> <option value="mouseover">MOD_ICCALANDAR_OPEN_MOUSEOVER</option> </field> <field name="mouseout" type="radio" label="MOD_ICCALENDAR_CLOSE_ON_MOUSEOUT_LBL" description="MOD_ICCALENDAR_CLOSE_ON_MOUSEOUT_DESC" class="btn-group" labelclass="control-label" default="1" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field type="Title" label="MOD_ICCALENDAR_FORMAT_NOTE" class="stylenote"/> <field name="format" type="iclist_globalization" class="inputbox" label="COM_ICAGENDA_LBL_FORMAT" description="COM_ICAGENDA_LBL_FORMAT" default="0" /> <field name="date_separator" type="text" label="COM_ICAGENDA_LBL_DATE_SEPARATOR" description="COM_ICAGENDA_DESC_DATE_SEPARATOR" size="5" class="inputbox" default="" /> <field type="TitleImg" label="COM_ICAGENDA_DATE_FORMAT_NOTE1" class="stylenote alert alert-info input-xxlarge" icimage="info.png" /> <field type="TitleImg" label="COM_ICAGENDA_DATE_FORMAT_NOTE2" class="stylenoteP alert alert-block input-xxlarge" icimage="blanck.png" /> <!--field type="Title" label="MOD_ICCALENDAR_LBL_ORDERING" class="stylenote"/> <field name="events_ordering_first" type="list" label="MOD_ICCALENDAR_EVENTS_ORDERING_FIRST_LABEL" description="MOD_ICCALENDAR_EVENTS_ORDERING_FIRST_DESC" default="1_ASC"> <option value="1_ASC">MOD_ICCALENDAR_TIME_ASC</option> <option value="1_DESC">MOD_ICCALENDAR_TIME_DESC</option> <option value="2_ASC">MOD_ICCALENDAR_CAT_TITLE_ASC</option> <option value="2_DESC">MOD_ICCALENDAR_CAT_TITLE_DESC</option> </field> <field name="events_ordering_second" type="list" label="MOD_ICCALENDAR_EVENTS_ORDERING_SECOND_LABEL" description="MOD_ICCALENDAR_EVENTS_ORDERING_SECOND_DESC" default="3"> <option value="1_ASC">MOD_ICCALENDAR_TIME_ASC</option> <option value="1_DESC">MOD_ICCALENDAR_TIME_DESC</option> <option value="2_ASC">MOD_ICCALENDAR_CAT_TITLE_ASC</option> <option value="2_DESC">MOD_ICCALENDAR_CAT_TITLE_DESC</option> </field--> <field type="Title" label="MOD_ICCALENDAR_LBL_TOOLTIP_INFOS" class="stylenote"/> <field name="dp_time" type="radio" class="btn-group" label="MOD_ICCALENDAR_DISPLAY_TIME_LABEL" description="MOD_ICCALENDAR_DISPLAY_TIME_DESC" labelclass="control-label" default="1"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="dp_venuename" type="radio" class="btn-group" label="MOD_ICCALENDAR_DISPLAY_VENUE_NAME_LABEL" description="MOD_ICCALENDAR_DISPLAY_VENUE_NAME_DESC" labelclass="control-label" default="1"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="dp_city" type="radio" class="btn-group" label="MOD_ICCALENDAR_DISPLAY_CITY_LABEL" description="MOD_ICCALENDAR_DISPLAY_CITY_DESC" labelclass="control-label" default="1"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="dp_country" type="radio" class="btn-group" label="MOD_ICCALENDAR_DISPLAY_COUNTRY_LABEL" description="MOD_ICCALENDAR_DISPLAY_COUNTRY_DESC" labelclass="control-label" default="1"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="dp_regInfos" type="radio" class="btn-group" label="MOD_ICCALENDAR_DISPLAY_REGISTRATION_INFOS_LABEL" description="MOD_ICCALENDAR_DISPLAY_REGISTRATION_INFOS_DESC" labelclass="control-label" default="1"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="features_icon_size" type="list" label="MOD_ICCALENDAR_FEATURES_ICONSIZE_LABEL" description="MOD_ICCALENDAR_FEATURES_ICONSIZE_DESC" default="" filter="options" class="inputbox"> <option value="">COM_ICAGENDA_FEATURES_ICONSIZE_NONE</option> <option value="16_bit">COM_ICAGENDA_FEATURES_ICONSIZE_16</option> <option value="24_bit">COM_ICAGENDA_FEATURES_ICONSIZE_24</option> <option value="32_bit">COM_ICAGENDA_FEATURES_ICONSIZE_32</option> <option value="48_bit">COM_ICAGENDA_FEATURES_ICONSIZE_48</option> <option value="64_bit">COM_ICAGENDA_FEATURES_ICONSIZE_64</option> </field> <field name="show_icon_title" type="radio" label="MOD_ICCALENDAR_SHOW_FEATURE_ICON_TITLE_LABEL" description="MOD_ICCALENDAR_SHOW_FEATURE_ICON_TITLE_DESC" class="btn-group" filter="options" default="1"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="dp_shortDesc" type="radio" class="btn-group" label="COM_ICAGENDA_LIST_INTROTEXT_DISPLAY_LABEL" description="COM_ICAGENDA_LIST_INTROTEXT_DISPLAY_DESC" labelclass="control-label" default=""> <option value="">IC_AUTO</option> <option value="0">JHIDE</option> <option value="1">IC_SHORTDESC</option> <option value="2">IC_AUTO_INTROTEXT</option> </field> <field name="filtering_shortDesc" type="list" class="btn-group" label="ICAGENDA_FILTERING_SHORTDESC_LABEL" description="ICAGENDA_FILTERING_SHORTDESC_DESC" default=""> <option value="">ICAGENDA_GLOBAL_OPTION</option> <option value="1">ICAGENDA_FILTERING_NO_HTML</option> <option value="2">ICAGENDA_FILTERING_ALL_ITALIC</option> </field> <field name="paramlimit" type="modal_icvalue_opt" default="" label="ICAGENDA_AUTO_INTROTEXT_LIMIT_LABEL" description="ICAGENDA_AUTO_INTROTEXT_LIMIT_DESC" labelclass="control-label" /> <field name="paramlimit_Content" type="modal_icvalue_field" class="inputbox" label=" " labelclass="control-label" /> <field type="Title" label="MOD_ICCALENDAR_LBL_DISPLAY" class="stylenote"/> <field name="calendarclosebtn" type="modal_icvalue_opt" label="COM_ICAGENDA_LBL_CLOSE_TEXT" description="COM_ICAGENDA_DESC_CLOSE_TEXT" labelclass="control-label" default="0" /> <field name="calendarclosebtn_Content" type="modal_icvalue_field" class="inputbox" label=" " labelclass="control-label" default="X" /> <field type="Title" label=" " class="stylenote"/> <field type="Title" label="MOD_ICCALENDAR_LBL_DISPLAY" class="stylebox lead input-xxlarge"/> <field type="Title" label="MOD_ICCALENDAR_NAVIGATION" class="stylenote"/> <field name="month_nav" type="radio" class="btn-group" label="MOD_ICCALENDAR_NAVIGATION_MONTH_DISPLAY_LBL" description="MOD_ICCALENDAR_NAVIGATION_MONTH_DISPLAY_DESC" labelclass="control-label" default="1" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="year_nav" type="radio" class="btn-group" label="MOD_ICCALENDAR_NAVIGATION_YEAR_DISPLAY_LBL" description="MOD_ICCALENDAR_NAVIGATION_YEAR_DISPLAY_DESC" labelclass="control-label" default="1" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field type="Title" label="MOD_ICCALENDAR_LBL_FIRSTDAY_WEEK" class="stylenote"/> <field name="firstday" type="list" label="MOD_ICCALENDAR_LBL_FIRSTDAY" default="1" > <option value="0">SUNDAY</option> <option value="1">MONDAY</option> <option value="2">TUESDAY</option> <option value="3">WEDNESDAY</option> <option value="4">THURSDAY</option> <option value="5">FRIDAY</option> <option value="6">SATURDAY</option> </field> <field type="Title" label="MOD_ICCALENDAR_LBL_FONTCOLORS" class="stylenote"/> <field name="calfontcolor" type="color" class="inputbox" size="7" default=" " label="MOD_ICCALENDAR_CALENDAR_FONTCOLOR_LBL" description="MOD_ICCALENDAR_CALENDAR_FONTCOLOR_DESC" filter="safehtml" /> <field type="Title" label="MOD_ICCALENDAR_LBL_BGCOLORS" class="stylenote"/> <field name="OneEventbgcolor" type="color" class="inputbox" size="7" default=" " label="MOD_ICCALENDAR_DAY_WITH_ONE_EVENT_BACKGROUND_COLOR_LBL" description="MOD_ICCALENDAR_DAY_WITH_ONE_EVENT_BACKGROUND_COLOR_DESC" filter="safehtml" /> <field name="Eventsbgcolor" type="color" class="inputbox" size="7" default=" " label="MOD_ICCALENDAR_DAY_WITH_EVENTS_BACKGROUND_COLOR_LBL" description="MOD_ICCALENDAR_DAY_WITH_EVENTS_BACKGROUND_COLOR_DESC" filter="safehtml" /> <field name="bgcolor" type="color" class="inputbox" size="7" default=" " label="ICCALENDAR_BACKGROUND_COLOR" description="ICCALENDAR_BACKGROUND_COLOR_DESC" filter="safehtml" /> <field name="bgimage" type="media" class="inputbox" size="7" default="" label="ICCALENDAR_BACKGROUND_IMAGE" description="ICCALENDAR_BACKGROUND_IMAGE_DESC" filter="safehtml" /> <field name="bgimagerepeat" type="list" default="repeat" label="ICCALENDAR_BACKGROUND_IMAGE_REPEAT" description="ICCALENDAR_BACKGROUND_IMAGE_REPEAT_DESC" > <option value="repeat">repeat</option> <option value="repeat-x">repeat-x</option> <option value="repeat-y">repeat-y</option> <option value="no-repeat">no-repeat</option> </field> <field name="mon" type="color" class="inputbox" size="7" default=" " label="MONDAY" filter="safehtml" /> <field name="tue" type="color" class="inputbox" size="7" default=" " label="TUESDAY" filter="safehtml" /> <field name="wed" type="color" size="7" class="inputbox" default=" " label="WEDNESDAY" filter="safehtml" /> <field name="thu" type="color" size="7" class="inputbox" default=" " label="THURSDAY" filter="safehtml" /> <field name="fri" type="color" size="7" class="inputbox" default=" " label="FRIDAY" filter="safehtml" /> <field name="sat" type="color" size="7" class="inputbox" default=" " label="SATURDAY" filter="safehtml" /> <field name="sun" type="color" size="7" class="inputbox" default=" " label="SUNDAY" filter="safehtml" /> <field type="Title" label=" " class="stylenote"/> <field type="Title" label="MOD_ICCALENDAR_LBL_ADVANCED" class="stylebox lead input-xxlarge"/> <field type="Title" label="MOD_ICCALENDAR_LBL_JQUERY" class="stylenote"/> <field name="loadJquery" type="radio" label="MOD_ICCALENDAR_LBL_LOADJQUERY" description="MOD_ICCALENDAR_DESC_LOADJQUERY" default="auto" class="btn-group"> <option value="auto">MOD_ICCALENDAR_LOADJQUERY_AUTO</option> <option value="0">MOD_ICCALENDAR_LOADJQUERY_NO</option> <option value="1">MOD_ICCALENDAR_LOADJQUERY_YES</option> </field> <field type="Title" label="ICAGENDA_LBL_TIMEZONE" class="stylenote"/> <field name="setTodayTimezone" type="list" label="ICAGENDA_LBL_TODAY_TIMEZONE" description="ICAGENDA_DESC_TODAY_TIMEZONE" onchange="icalert()" default=""> <option value="">ICAGENDA_VISITOR_TIMEZONE</option> <option value="SITE">ICAGENDA_JOOMLA_SERVER_TIMEZONE</option> <option value="UTC">ICAGENDA_UTC_TIMEZONE</option> <!--option value="2">ICAGENDA_HOSTING_SERVER_TIMEZONE</option--> </field> <field name="caldate_error" type="modal_icalert_msg" label="COM_ICAGENDA_THEME_PACKS_COMPATIBILITY" description="MOD_ICCALENDAR_ALERT_CAL_DATE_MISSING_DESC" /> <!--field name="displayDatesTimezone" type="list" label="ICAGENDA_LBL_DATES_TIMEZONE_BETA" description="ICAGENDA_DESC_DATES_TIMEZONE_BETA" default="0" class="btn-group"> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field--> <!--field type="title" label="ICAGENDA_DESC_TODAY_TIMEZONE_TEMPORARY" class="alert alert-info input-xxlarge" /--> </fieldset> <fieldset name="ADVANCED" label="MOD_ICCALENDAR_LBL_ADVANCED"> <field name="moduleclass_sfx" type="text" label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL" description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" icon="text_signature.png" /> <field type="Title" label=" " class="stylenote"/> <field name="cache" type="list" default="0" label="COM_MODULES_FIELD_CACHING_LABEL" description="COM_MODULES_FIELD_CACHING_DESC" > <option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option> </field> <field type="title" label="MOD_ICCALENDAR_CACHE_NOTE" class="stylered alert alert-error input-xxlarge" /> <!--field name="cache_time" type="text" default="900" label="COM_MODULES_FIELD_CACHE_TIME_LABEL" description="COM_MODULES_FIELD_CACHE_TIME_DESC" icon="hourglass.png" suffix="min" /--> <field name="cachemode" type="hidden" default="itemid" > <option value="itemid"></option> </field> </fieldset> </fields> </config> </extension> mod_iccalendar.php 0000604 00000034610 15245561146 0010212 0 ustar 00 <?php /** *------------------------------------------------------------------------------ * iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x *------------------------------------------------------------------------------ * @package com_icagenda - mod_iccalendar * @copyright Copyright (c)2012-2015 Cyril Rezé, Jooml!C - All rights reserved * * @license GNU General Public License version 3 or later; see LICENSE.txt * @author Cyril Rezé (Lyr!C) - doorknob * @link http://www.joomlic.com * * @version 3.5.11 2015-09-04 * @since 1.0 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. *------------------------------------------------------------------------------ */ /** * iCagenda - iC calendar */ // No direct access to this file defined( '_JEXEC' ) or die( 'Restricted access' ); // Get iCagenda component parameters $com_params = JComponentHelper::getParams('com_icagenda'); // For Dev. $time_loading = $com_params->get('time_loading', ''); if ($time_loading) { $starttime_cal = iCLibrary::getMicrotime(); } jimport('joomla.application.component.helper'); // Get Application $app = JFactory::getApplication(); // Check Errors: iC Library & iCagenda Utilities $UTILITIES_DIR = is_dir(JPATH_ADMINISTRATOR . '/components/com_icagenda/utilities'); if ( (!$UTILITIES_DIR) || (!class_exists('iCLibrary')) ) { $alert_message = JText::_('ICAGENDA_CAN_NOT_LOAD').'<br />'; $alert_message.= '<ul>'; if (!class_exists('iCLibrary')) $alert_message.= '<li>' . JText::_('IC_LIBRARY_NOT_LOADED') . '</li>'; if (!$UTILITIES_DIR) $alert_message.= '<li>' . JText::_('ICAGENDA_A_FOLDER_IS_MISSING') . '</li>'; $alert_message.= '</ul>'; if (!$UTILITIES_DIR) $alert_message.= JText::_('ICAGENDA_IS_NOT_CORRECTLY_INSTALLED') . ' '; if (!$UTILITIES_DIR) $alert_message.= JText::_('ICAGENDA_INSTALL_AGAIN') . '<br />'; if (!$UTILITIES_DIR) $alert_message.= JText::_('IC_ALTERNATIVELY') . ':<br /><ul>'; if ($UTILITIES_DIR) $alert_message.= JText::_('IC_PLEASE') . ', '; if (!class_exists('iCLibrary')) { if (!$UTILITIES_DIR) $alert_message.= '<li>'; $alert_message.= JText::_('IC_LIBRARY_CHECK_PLUGIN_AND_LIBRARY'); if (!$UTILITIES_DIR) $alert_message.= '</li>'; } if (!$UTILITIES_DIR) { $alert_message.= '<li>' . JText::Sprintf('ICAGENDA_UTILITIES_FIX_MANUAL' , '<strong>admin/utilities</strong>' , '<strong>administrator/components/com_icagenda/</strong>'); $alert_message.= '</li></ul>'; } // Get the message queue $messages = $app->getMessageQueue(); $display_alert_message = false; // If we have messages if (is_array($messages) && count($messages)) { // Check each message for the one we want foreach ($messages as $key => $value) { if ($value['message'] == $alert_message) { $display_alert_message = true; } } } if (!$display_alert_message) { $app->enqueueMessage($alert_message, 'error'); } echo JText::_('IC_MODULE_CAN_NOT_BE_LOADED') . '<br />'; echo JText::_('IC_MODULE_CHECK_ALERT_MESSAGE'); return false; } // Load iCagenda Utilities JLoader::registerPrefix('icagenda', JPATH_ADMINISTRATOR . '/components/com_icagenda/utilities'); jimport( 'joomla.environment.request' ); // Get Document $document = JFactory::getDocument(); // Test if translation is missing, set to en-GB by default $language = JFactory::getLanguage(); $language->load( 'mod_iccalendar', JPATH_SITE, 'en-GB', true ); $language->load( 'mod_iccalendar', JPATH_SITE, null, true ); // Include the class of the syndicate functions only once if ( ! class_exists('modiCcalendarHelper')) require_once(dirname(__FILE__) . '/helper.php'); // Module ID $modid = $module->id; // Params of the Module iC Calendar $moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx')); $mouseover = $params->get('mouseover', 'click'); $mouseout = $params->get('mouseout', 1); $columns_bg_color = array( $params->get('sun', ' '), $params->get('mon', ' '), $params->get('tue', ' '), $params->get('wed', ' '), $params->get('thu', ' '), $params->get('fri', ' '), $params->get('sat', ' '), ); $firstday = $params->get('firstday', '1'); $calfontcolor = $params->get('calfontcolor', ' '); $OneEventbgcolor = $params->get('OneEventbgcolor', ' '); $Eventsbgcolor = $params->get('Eventsbgcolor', ' '); $bgcolor = $params->get('bgcolor', ' '); $bgimage = $params->get('bgimage'); $bgimagerepeat = $params->get('bgimagerepeat'); $closebutton = $params->get('calendarclosebtn', 1); $closebutton_custom = $params->get('calendarclosebtn_Content', 'X'); $theme_calendar = $params->get('template', 'default'); $firstMonth = $params->get('firstMonth', null); $setTodayTimezone = $params->get('setTodayTimezone', ''); // Ordering set by default (time/category) - Option in developpement (Not used) $events_ordering_first = $params->get('events_ordering_first', '1_ASC'); $events_ordering_second = $params->get('events_ordering_second', '2_ASC'); $ictip_ordering = $events_ordering_first.'-'.$events_ordering_second; $header_text = $params->get('header_text', ''); $padding = $params->get('padding', '0'); // Module $cal = new modiCcalendarHelper; $data = $cal->getStamp($params); $url_date = JRequest::getVar('date'); $iccaldate = JRequest::getVar('iccaldate'); // First day of the current month $this_month = $firstMonth // ? date("Y-m-d", strtotime("+1 month", strtotime($firstMonth))) ? date("Y-m-01", strtotime($firstMonth)) : JHtml::date('now', 'Y-m-01', null); if ( isset($iccaldate) && !empty($iccaldate) ) { // This should be the first day of a month $date_start = date('Y-m-01', strtotime($iccaldate)); } else { $date_start = $this_month; } $nav = $cal->getNav($date_start, $modid); // Search template of iC Calendar from the selected Theme Pack $themes_path = '/components/com_icagenda/themes/packs/'; if ( ! file_exists(JPATH_BASE . $themes_path . $theme_calendar . '/' . $theme_calendar . '_calendar.php')) { $theme_calendar = 'default'; } $theme_tmpl = JPATH_BASE . $themes_path . $theme_calendar . '/' . $theme_calendar; $theme_css = $themes_path . $theme_calendar . '/css/' . $theme_calendar; $t_calendar = $theme_tmpl . '_calendar.php'; $css_module = $theme_css . '_module.css'; $css_mod_rtl = $theme_css . '_module-rtl.css'; // ToolTip 2 in developpement (Not used) $tip_type = '1'; if ($tip_type == 1) { $t_day = $theme_tmpl . '_day.php'; } elseif ($tip_type == 2) { $t_day = $theme_tmpl . '_calendar_tip.php'; } // Add the media specific CSS to the document JLoader::register('iCagendaMediaCss', JPATH_ROOT . '/components/com_icagenda/helpers/media_css.class.php'); iCagendaMediaCss::addMediaCss($theme_calendar, 'module'); // Load Vector iCicons Font (navigation arrows) JHtml::stylesheet( 'media/com_icagenda/icicons/style.css' ); // Theme pack component css $document->addStyleSheet( JURI::base( true ) . $css_module ); // RTL css if site language is RTL $lang = JFactory::getLanguage(); if ( $lang->isRTL() && file_exists( JPATH_SITE . $css_mod_rtl) ) { $document->addStyleSheet( JURI::base( true ) . $css_mod_rtl ); } if (version_compare(JVERSION, '3.0', 'ge')) { // Request Joomla to load jQuery in no conflict mode JHtml::_('bootstrap.framework'); JHtml::_('jquery.framework'); } else { //Load JS JHtml::_('behavior.mootools'); $header = $document->getHeadData(); $loadJquery = true; switch($params->get('loadJquery',"auto")) { case "0": $loadJquery = false; break; case "1": $loadJquery = true; break; case "auto": foreach ($header['scripts'] as $scriptName => $scriptData) { if (substr_count($scriptName,'jquery')) { $loadJquery = false; break; } } break; } //Add js $app = JFactory::getApplication(); if ($loadJquery && !$app->get('jquery')) { $document->addScript( 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js' ); $app->set('jquery', true); } $document->addScript( 'modules/mod_iccalendar/js/jquery.noconflict.js' ); } if (ini_get('allow_url_fopen')) { $file = file_get_contents($t_day); if ( ! strpos($file, "data-cal-date")) { $server_date = false; echo "<div class='alert alert-error'>'data-cal-date' not found in your Custom Theme Pack!</div>"; } else { $server_date = true; } } else { $server_date = true; } if ( ! $setTodayTimezone && $server_date) { $document->addScript( 'modules/mod_iccalendar/js/jQuery.highlightToday.min.js' ); } $icclasstip = '.icevent a'; $icclass = '.iccalendar'; $icagendabtn = '.icagendabtn_' . $modid; $mod_iccalendar = '#mod_iccalendar_' . $modid; $close_btn = ($closebutton == 1) ? $closebutton_custom : JText::_('MOD_ICCALENDAR_CLOSE'); // Minimum popup width for mobile phone mode $mobile_min_width = 320; $stamp = new cal($data, $t_calendar, $t_day, $nav, $firstday, $columns_bg_color, $calfontcolor, $OneEventbgcolor, $Eventsbgcolor, $bgcolor, $bgimage, $bgimagerepeat, $moduleclass_sfx, $modid, $theme_calendar, $ictip_ordering, $header_text); // Load Calendar Template require $t_calendar; ?> <script type="text/javascript"> (function($){ var icmouse = '<?php echo $mouseover; ?>'; var mouseout = '<?php echo $mouseout; ?>'; var icclasstip = '<?php echo $icclasstip; ?>'; var icclass = '<?php echo $icclass; ?>'; var position = '<?php echo $params->get('position', 'center'); ?>'; var posmiddle = '<?php echo $params->get('posmiddle', 'top'); ?>'; var modid = '<?php echo $modid; ?>'; var modidid = '<?php echo '#'.$modid; ?>'; var icagendabtn = '<?php echo $icagendabtn; ?>'; var mod_iccalendar = '<?php echo $mod_iccalendar; ?>'; var template = '<?php echo '.'.$theme_calendar; ?>'; var loading = '<?php echo JText::_('MOD_ICCALENDAR_LOADING'); ?>'; var closetxt = '<?php echo $close_btn; ?>'; var tip_type = '<?php echo $tip_type; ?>'; var tipwidth = <?php echo (int)$params->get('tipwidth', 390) ?>; var smallwidththreshold = <?php echo (int) $com_params->get('smallwidththreshold', 0) ?>; var verticaloffset = <?php echo (int)$params->get('verticaloffset', 0) ?>; var css_position = ''; var mobile_min_width = <?php echo $mobile_min_width; ?>; var extra_css = ''; $(document).on('click touchend', icagendabtn, function(e){<?php // Refresh the current month ?> e.preventDefault(); url=$(this).attr('href'); $(modidid).html('<div class="icloading_box"><div style="text-align:center;">' + loading + '<\/div><div class="icloading_img"><\/div><\/div>').load(url + ' ' + mod_iccalendar, function(){$('<?php echo $mod_iccalendar ?>').highlightToday();}); }); if (tip_type=='2') {<?php // Not used ?> $(document).on(icmouse, this, function(e){ e.preventDefault(); $(".iCaTip").tipTip({maxWidth: "400", defaultPosition: "top", edgeOffset: 1, activation:"hover", keepAlive: true}); }); } if (tip_type=='1') {<?php // Display the events popup ?> $view_width=$(window).width();<?php // Get the viewport width ?> if($view_width<smallwidththreshold){<?php // Mobile phones do not support 'hover' or 'click' in the conventional way ?> icmouse='click touchend'; } $(document).on(icmouse, modidid+' '+icclasstip, function(e){ $view_height=$(window).height();<?php // Get the viewport height ?> $view_width=$(window).width();<?php // Get the viewport width ?> e.preventDefault(); $('#ictip').remove(); $parent=$(this).parent(); $tip=$($parent).children(modidid+' .spanEv').html(); if ($view_width < smallwidththreshold) { <?php // Mobile phone style - fill the viewport ?> css_position = 'fixed'; $width_px = Math.max(mobile_min_width,$view_width); <?php // Popup width is screen width (minimum 320px) ?> $width = '100%'; $pos = '0px'; $top = '0px'; extra_css='border:0;border-radius:0;height:100%;box-shadow:none;margin:0px;padding:10px;min-width:'+mobile_min_width+'px;overflow-y:scroll;padding:<?php echo $padding ?>;';<?php // iPhone friendly size and allow scrolling if the page overflows ?> } else { css_position = 'absolute'; $width_px = Math.min($view_width, tipwidth); $width = $width_px+'px'; <?php // Horizontal positioning ?> switch(position) { case 'left': $pos=Math.max(0,$(modidid).offset().left-$width_px-10)+'px'; break; case 'right': $pos=Math.max(0,Math.min($view_width-$width_px,$(modidid).offset().left+$(modidid).width()+10))+'px'; break; default:<?php //Centre ?> $pos=Math.ceil(($view_width-$width_px)/2)+'px'; break; } <?php // Vertical positioning ?> if (posmiddle === 'top') { $top = Math.max(0,$(modidid).offset().top-verticaloffset)+'px';<?php // Top ?> } else { $top = Math.max(0,$(modidid).offset().top+$(modidid).height()-verticaloffset)+'px';<?php // Bottom ?> } } $('body').append('<div style="display:block; position:'+css_position+'; width:'+$width+'; left:'+$pos+'; top:'+$top+';'+extra_css+'" id="ictip"> '+$(this).parent().children('.date').html()+'<a class="close" style="cursor: pointer;"><div style="display:block; width:auto; height:50px; text-align:right;">' + closetxt + '<\/div></a><span class="clr"></span>'+$tip+'<\/div>'); $(document).on('click touchend', '.close', function(e){ e.preventDefault(); $('#ictip').remove(); }); if (mouseout == '1') { $('#ictip') .mouseout(function() { // $( "div:first", this ).text( "mouse out" ); $('#ictip').stop(true).fadeOut(300); }) .mouseover(function() { // $( "div:first", this ).text( "mouse over" ); $('#ictip').stop(true).fadeIn(300); }); } }); } }) (jQuery); </script> <?php if ( ! $setTodayTimezone && $server_date && $lang->getTag() != 'fa-IR') { $document->addScriptDeclaration(' jQuery(document).ready(function(){ jQuery("' . $mod_iccalendar . '").highlightToday("show_today"); }); '); } // For Dev. if ($time_loading) { $endtime_cal = iCLibrary::getMicrotime(); echo '<center style="font-size:8px;">Time to create calendar: ' . round($endtime_cal - $starttime_cal, 3) . ' seconds</center>'; }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка