uawdijnntqw1x1x1
IP : 216.73.216.198
Hostname : webm002.cluster123.gra.hosting.ovh.net
Kernel : Linux webm002.cluster123.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
megadansyp
/
www
/
components
/
com_jevents
/
libraries
/
commonfunctions.php
/
/
<?php /** * JEvents Component for Joomla! 3.x * * @version $Id: commonfunctions.php 3549 2012-04-20 09:26:21Z geraintedwards $ * @package JEvents * @copyright Copyright (C) 2008-2025 GWESystems Ltd, 2006-2008 JEvents Project Group * @license GNU/GPLv2, see http://www.gnu.org/licenses/gpl-2.0.html * @link http://www.jevents.net */ // functions common to component and modules // no direct access defined('_JEXEC') or die('Restricted access'); use Joomla\CMS\Language\Text; use Joomla\CMS\User\User; use Joomla\CMS\Factory; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Router\Route; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Component\ComponentHelper; // Joomla 1.5 // tasker/controller jimport('joomla.application.component.controller'); class JEV_CommonFunctions { public static function loadJEventsViewLang() { $jEventsView = JEV_CommonFunctions::getJEventsViewName(); $lang = Factory::getLanguage(); $lang->load(JEV_COM_COMPONENT . "_" . $jEventsView); $lang->load("files_jevents" . $jEventsView . "layout"); } public static function getJEventsViewName() { static $jEventsView; if (!isset($jEventsView)) { $cfg = JEVConfig::getInstance(); $input = Factory::getApplication()->input; // priority of view setting is url, cookie, config, $jEventsView = $cfg->get('com_calViewName', "flat"); $jEventsView = $input->cookie->getString("jevents_view", $jEventsView, null); $jEventsView = $input->getString("jEV", $jEventsView); // security check if (!in_array($jEventsView, JEV_CommonFunctions::getJEventsViewList())) { $jEventsView = "flat"; } } return $jEventsView; } public static function getJEventsViewList($viewtype = null) { $jEventsViews = array(); switch ($viewtype) { case "mod_jevents_latest" : case "mod_jevents_cal" : $handler = opendir(JPATH_SITE . "/modules/$viewtype/tmpl/"); while ($file = readdir($handler)) { if ($file != '.' && $file != '..' && $file != '.svn') { if (is_dir(JPATH_SITE . "/modules/$viewtype/tmpl/" . $file)) { $jEventsViews[] = $file; } } } break; default : $handler = opendir(JPATH_SITE . "/components/" . JEV_COM_COMPONENT . "/views/"); while ($file = readdir($handler)) { if ($file != '.' && $file != '..' && $file != '.svn') { if (is_dir(JPATH_SITE . "/components/" . JEV_COM_COMPONENT . "/views/" . $file) && ( file_exists(JPATH_SITE . "/components/" . JEV_COM_COMPONENT . "/views/" . $file . "/month") || file_exists(JPATH_SITE . "/components/" . JEV_COM_COMPONENT . "/views/" . $file . "/config.xml") )) $jEventsViews[] = $file; } } } return $jEventsViews; } public static function setColours($row) { $cfg = JEVConfig::getInstance(); if (!$cfg->get("multicategory", 0)) { return array(JEV_CommonFunctions::setColor($row)); } static $catData; if (!isset($catData)) $catData = JEV_CommonFunctions::getCategoryData(); $colors = array(); foreach ($row->catids() as $catid) { if (is_object($row) && strtolower(get_class($row)) != "stdclass") { if ($cfg->get('com_calForceCatColorEventForm', 2) == '2') { $colors[] = ($catid > 0 && isset($catData[$catid])) ? $catData[$catid]->color : '#333333'; } else $colors[] = $row->useCatColor() ? ($catid > 0 && isset($catData[$catid])) ? $catData[$catid]->color : '#333333' : $row->color_bar(); } else { if ($cfg->get('com_calForceCatColorEventForm', 2) == '2') { $colors[] = ($row->catid > 0 && isset($catData[$catid])) ? $catData[$row->catid]->color : '#333333'; } else $colors[] = $row->useCatColor ? ($row->catid > 0 && isset($catData[$catid])) ? $catData[$row->catid]->color : '#333333' : $row->color_bar; } } return $colors; } public static function setColor($row) { $cfg = JEVConfig::getInstance(); static $catData; if (!isset($catData)) $catData = JEV_CommonFunctions::getCategoryData(); if (is_object($row) && strtolower(get_class($row)) != "stdclass") { if ($cfg->get('com_calForceCatColorEventForm', 2) == '2') { $color = ($row->catid() > 0 && isset($catData[$row->catid()])) ? $catData[$row->catid()]->color : '#333333'; } else $color = $row->useCatColor() ? (($row->catid() > 0 && isset($catData[$row->catid()])) ? $catData[$row->catid()]->color : '#333333') : $row->color_bar(); } else { if ($cfg->get('com_calForceCatColorEventForm', 2) == '2') { $color = ($row->catid > 0 && isset($catData[$row->catid()])) ? $catData[$row->catid]->color : '#333333'; } else $color = $row->useCatColor ? ($row->catid > 0 && isset($catData[$row->catid()])) ? $catData[$row->catid]->color : '#333333' : $row->color_bar; } if ($color == "") { $color = "#ccc"; } //$color = $row->useCatColor ? ( $row->catid > 0 ) ? $catData[$row->catid]->color : '#333333' : $row->color_bar; return $color; } /** * get all events_categories to use category color * @return object */ public static function getCategoryData() { static $cats; $app = Factory::getApplication(); if (!isset($cats)) { $db = Factory::getDbo(); $sql = "SELECT c.* FROM #__categories as c WHERE extension='" . JEV_COM_COMPONENT . "' order by c.lft asc"; $db->setQuery($sql); $cats = $db->loadObjectList('id'); foreach ($cats as &$cat) { $cat->name = $cat->title; $params = new JevRegistry($cat->params); $cat->color = $params->get("catcolour", ""); $cat->overlaps = $params->get("overlaps", 0); } unset ($cat); $app->triggerEvent('onGetCategoryData', array(& $cats)); } $app->triggerEvent('onGetAccessibleCategories', array(& $cats, false)); return $cats; } /** * Cloaks html link whith javascript * * @param string $url The cloaking URL * @param string $text The link text * @param array $attribs additional attributes * * @return string HTML */ public static function jEventsLinkCloaking($url = '', $text = '', $attribs = array()) { static $linkCloaking; if (!isset($linkCloaking)) { $cfg = JEVConfig::getInstance(); $linkCloaking = $cfg->get('com_linkcloaking', 0); } if (!is_array($attribs)) { $attribs = array(); } if ($linkCloaking) { $cloakattribs = array('onclick' => '"window.location.href=\'' . Route::_($url) . '\';return false;"'); return JEV_CommonFunctions::jEventsDoLink("", $text, array_merge($cloakattribs, $attribs)); } else { return JEV_CommonFunctions::jEventsDoLink(Route::_($url), "$text", $attribs); } } public static function jEventsDoLink($url = "", $alt = "alt", $attr = array()) { if (Joomla\String\StringHelper::strlen($url) == 0) $url = "javascript:void(0)"; $link = "<a href='" . $url . "' "; if (count($attr) > 0) { foreach ($attr as $key => $val) { $link .= " $key=$val"; } } $link .= ">$alt</a>"; return $link; } /** * Support all JevDate::strftime() parameter for Window systems * * @param string $format * @param int $timestamp * * @return string formated string */ public static function jev_strftime($format = '', $timestamp = null, $timezone = false, $datetime = false) { if (!$timestamp) $timestamp = time(); // Replace names by own translation to get rid of improper os system library if (strpos($format, '%a') !== false) $format = str_replace('%a', JEVHelper::getShortDayName(date('w', $timestamp)), $format); if (strpos($format, '%A') !== false) $format = str_replace('%A', JEVHelper::getDayName(date('w', $timestamp)), $format); if (strpos($format, '%b') !== false) $format = str_replace('%b', JEVHelper::getShortMonthName(date('n', $timestamp)), $format); if (strpos($format, '%B') !== false) $format = str_replace('%B', JEVHelper::getMonthName(date('n', $timestamp)), $format); if (strpos($format, '%Z') !== false && $timezone) { $format = str_replace('%Z', $timezone->getName(), $format); } if (strpos($format, '%z') !== false && $timezone && $datetime) { $offset = $timezone->getOffset($datetime); $format = str_replace('%z', $offset/3600 , $format); } if (IS_WIN) { if (!class_exists('JEV_CompatWin')) { require_once(dirname(__FILE__) . '/compatwin.php'); } return JEV_CompatWin::win_strftime($format, $timestamp); } else { return JevDate::strftime($format, $timestamp); } } /** * Test to see if user is creator of the event or editor or above * * @param unknown_type $row * @param unknown_type $user * * @return unknown */ public static function hasAdvancedRowPermissions($row, $user = null) { // TODO make this call a plugin if ($user == null) { $user = Factory::getUser(); } // strictt publishing test if (JEVHelper::isEventEditor() || JEVHelper::isEventPublisher(true)) { return true; } if (is_null($row)) { return false; } else if ($row->created_by() == $user->id) { return true; } return false; } public static function notifyAuthorPublished($event) { JLoader::register('JEventsCategory', JEV_ADMINPATH . "/libraries/categoryClass.php"); $params = ComponentHelper::getParams(JEV_COM_COMPONENT); $app = Factory::getApplication(); $db = Factory::getDbo(); $cat = new JEventsCategory($db); $cat->load($event->catid()); $adminuser = $cat->getAdminUser(); $adminEmail = $adminuser->email; $adminName = $adminuser->name; $config = new JConfig(); $sitename = $config->sitename; $subject = Text::sprintf('JEV_NOTIFY_AUTHOR_SUBJECT', $sitename); $Itemid = JEVHelper::getItemid(); // reload the event to get the reptition ids $evid = (int) $event->ev_id(); $dataModel = new JEventsDataModel("JEventsAdminDBModel"); $queryModel = new JEventsDBModel($dataModel); $testevent = $queryModel->getEventById($evid, 1, "icaldb"); // attach anonymous creator etc. PluginHelper::importPlugin('jevents'); $app->triggerEvent('onDisplayCustomFields', array(&$event)); $rp_id = $testevent->rp_id(); list($year, $month, $day) = JEVHelper::getYMD(); $uri = Uri::getInstance(Uri::base()); if ($app->isClient('administrator')) { $root = $uri->toString(array('scheme', 'host', 'port', 'path')); $root = str_replace("/administrator", "", $root); $detaillink = '<a href="' . $root . 'index.php?option=' . JEV_COM_COMPONENT . '&task=icalrepeat.detail&rp_id=' . $evid . '&rp_id=' . $rp_id . '&Itemid=' . $Itemid . "&year=$year&month=$month&day=$day" . '">' . $event->title() . '</a>' . "\n"; } else { $root = $uri->toString(array('scheme', 'host', 'port')); $detaillink = '<a href="' . $root . Route::_('index.php?option=' . JEV_COM_COMPONENT . '&task=icalrepeat.detail&rp_id=' . $evid . '&rp_id=' . $rp_id . '&Itemid=' . $Itemid . "&year=$year&month=$month&day=$day") . '">' . $event->title() . '</a>' . "\n"; } $content = sprintf(Text::_('JEV_NOTIFY_AUTHOR_Message'), $detaillink, $sitename); $authorname = ""; $authoremail = ""; if ($event->created_by() > 0) { $author = JEVHelper::getUser($event->created_by()); if (!$author) return; $authorname = $author->name; $authoremail = $author->email; } else if (isset($event->authoremail) && $event->authoremail != "") { $authorname = $event->authorname; $authoremail = $event->authoremail; } if ($authoremail == "") return; // mail function $mail = Factory::getMailer(); $sender_config = $params->get('sender_config', 9); try { if ($sender_config == 0) { $mail->setSender(array(0 => $adminEmail, 1 => $adminName)); } elseif ($sender_config == 1) { $mail->setSender(array(0 => $config->mailfrom, 1 => $config->fromname)); } else { $mail->setSender(array(0 => $params->get('sender_email', ''), 1 => $params->get('sender_name', ''))); } if ($params->get('email_replyto', 0) == 1) { $mail->addReplyTo($adminEmail); } } catch (Exception $e) { $app->enqueueMessage("JEV_UNABLE_TO_SET_EMAIL_SENDER_OR_REPLY_TO", 'warning'); } $mail->addRecipient($authoremail); $mail->setSubject($subject); $mail->setBody($content); $mail->IsHTML(true); try { $mail->send(); } catch (Exception $e) { $app->enqueueMessage("JERROR_SENDING_EMAIL", 'warning'); } } public static function sendAdminMail($adminName, $adminEmail, $subject = '', $title = '', $content = '', $day = '', $month = '', $year = '', $start_time = '', $end_time = '', $author = '', $live_site = "", $modifylink = "", $viewlink = "", $event = false, $cc = "") { $config = new JConfig(); $app = Factory::getApplication(); if (!$adminEmail) return; $recipient = $adminEmail; if ((strpos($adminEmail, '@example.com') !== false)) return; $params = ComponentHelper::getParams(JEV_COM_COMPONENT); if ((int) $params->get("com_notifyboth", 0) == 3) { return; // no notifications } $messagetemplate = $params->get("notifymessage", Text::_('JEV_DEFAULT_NOTIFYMESSAGE')); if (strpos($messagetemplate, "JEV_DEFAULT_NOTIFYMESSAGE") !== false || trim(strip_tags($messagetemplate)) == "") { $messagetemplate = sprintf(Text::_('JEV_EMAIL_EVENT_TITLE'), "{TITLE}") . "<br/><br/>\n"; $messagetemplate .= "{DESCRIPTION}<br/><br/>\n"; $messagetemplate .= sprintf(Text::_('JEV_MAIL_TO_ADMIN'), "{LIVESITE}", "{AUTHOR}") . "<br/>\n"; $messagetemplate .= sprintf(Text::_('JEV_EMAIL_VIEW_EVENT'), "{VIEWLINK}") . "<br/>\n"; $messagetemplate .= sprintf(Text::_('JEV_EMAIL_EDIT_EVENT'), "{EDITLINK}") . "<br/>\n"; $messagetemplate .= sprintf(Text::_('JEV_MANAGE_EVENTS'), "{MANAGEEVENTS}") . "<br/>"; } $uri = Uri::getInstance(Uri::base()); $root = $uri->toString(array('scheme', 'host', 'port')); $adminLink = $root . Route::_("index.php?option=" . JEV_COM_COMPONENT . "&task=admin.listevents&Itemid=" . JEVHelper::getAdminItemid()); $messagetemplate = str_replace("{TITLE}", $title, $messagetemplate); $messagetemplate = str_replace("{DESCRIPTION}", $content, $messagetemplate); if ($event) { $messagetemplate = str_replace("{CATEGORY}", $event->catname(), $messagetemplate); //$messagetemplate = str_replace("{EXTRA}", $event->extra_info(),$messagetemplate); } $messagetemplate = str_replace("{LIVESITE}", $live_site, $messagetemplate); $messagetemplate = str_replace("{AUTHOR}", $author, $messagetemplate); $messagetemplate = str_replace("{DAY}", $day, $messagetemplate); $messagetemplate = str_replace("{MONTH}", $month, $messagetemplate); $messagetemplate = str_replace("{YEAR}", $year, $messagetemplate); $messagetemplate = str_replace("{STARTTIME}", $start_time, $messagetemplate); $messagetemplate = str_replace("{ENDTIME}", $end_time, $messagetemplate); $messagetemplate = str_replace("{VIEWLINK}", $viewlink, $messagetemplate); $messagetemplate = str_replace("{EDITLINK}", $modifylink, $messagetemplate); $messagetemplate = str_replace("{MANAGEEVENTS}", $adminLink, $messagetemplate); // mail function // JEvents category admin only or both get notifications if ($params->get("com_notifyboth", 0) == 0 || $params->get("com_notifyboth", 0) == 1) { if ($params->get("com_notifyboth", 0) == 1) { $jevadminuser = new User($params->get("jevadmin", 62)); if ($jevadminuser->email != $adminEmail) { $add_cc = $jevadminuser->email; } else { $recipient = $adminEmail; } } } // Just JEvents admin user else if ($params->get("com_notifyboth", 0) == 2) { $jevadminuser = new User($params->get("jevadmin", 62)); if ($jevadminuser->email != $adminEmail) { $recipient = $jevadminuser->email; } else { $recipient = $adminEmail; } //Check not emailing the same user who is editing: $user = Factory::getUser(); if ($user->email === $adminEmail) { // Get out of here we don't want to notify the admin of their own change return; } } $mail = Factory::getMailer(); $sender_config = $params->get('sender_config', 0); try { if ($sender_config == 0) { $mail->setSender(array(0 => $adminEmail, 1 => $adminName)); } elseif ($sender_config == 1) { $mail->setSender(array(0 => $config->mailfrom != "" ? $config->mailfrom : $adminEmail, 1 => $config->fromname != "" ? $config->fromname : $adminName)); } else { $mail->setSender(array(0 => $params->get('sender_email', $adminEmail), 1 => $params->get('sender_name', $adminName))); } } catch (Exception $e) { $app->enqueueMessage("JEV_UNABLE_TO_SET_EMAIL_SENDER_OR_REPLY_TO", 'warning'); } // attach anonymous creator etc. PluginHelper::importPlugin('jevents'); try { $app->triggerEvent('onDisplayCustomFields', array(&$event)); } catch (Exception $e) { // Ignored sometimes e.g. if target menu item blocks display of the event! } try { if (!isset($event->authoremail) && $params->get('email_replyto', 0) == 1) { $mail->addReplyTo($adminEmail); } else if (isset($event->authoremail) && $event->authoremail !== '') { $mail->addReplyTo($event->authoremail); } } catch (Exception $e) { $app->enqueueMessage("JEV_UNABLE_TO_SET_EMAIL_SENDER_OR_REPLY_TO", 'warning'); } if (isset($add_cc) && $add_cc !== "") { $mail->addCc($add_cc); } $mail->addRecipient($recipient); //Leave old replacements in place for now, and now run through default loadedfromtemplate // if there is an event! if ($event) { include_once(JEV_PATH . "/views/default/helpers/defaultloadedfromtemplate.php"); ob_start(); DefaultLoadedFromTemplate(false, false, $event, 0, $messagetemplate); $messagetemplate = ob_get_clean(); // Process the subject too ob_start(); DefaultLoadedFromTemplate(false, false, $event, 0, $subject); $subject = ob_get_clean(); } $mail->setSubject($subject); $mail->setBody($messagetemplate); if ($event) { PluginHelper::importPlugin("jevents"); $res = $app->triggerEvent('onSendAdminMail', array(&$mail, $event)); } if ($cc != "") { $mail->addCC($cc); } $mail->IsHTML(true); try { $mail->send(); } catch (Exception $e) { $app->enqueueMessage("JERROR_SENDING_EMAIL", 'warning'); } } }
/home/megadansyp/www/components/com_jevents/libraries/commonfunctions.php