/** * Test to see if user can add events from the front end * * @return boolean */ public static function isEventCreator() { static $isEventCreator; if (!isset($isEventCreator)) { $isEventCreator = false; $user = JEVHelper::getAuthorisedUser(); if (is_null($user)) { $params = JComponentHelper::getParams(JEV_COM_COMPONENT); $juser = JFactory::getUser(); $authorisedonly = $params->get("authorisedonly", 0); if (!$authorisedonly) { if ($params->get("category_allow_deny", 1) == 0) { // this is too heavy on database queries - keep this in the file so that sites that want to use this approach can uncomment this block list($usec, $sec) = explode(" ", microtime()); $time_start = (double) $usec + (double) $sec; if ($juser->get("id")) { $okcats = JEVHelper::getAuthorisedCategories($juser, 'com_jevents', 'core.create'); $juser = JFactory::getUser(); if (count($okcats)) { $dataModel = new JEventsDataModel(); $dataModel->setupComponentCatids(); $allowedcats = explode(",", $dataModel->accessibleCategoryList()); $intersect = array_intersect($okcats, $allowedcats); if (count($intersect) > 0) { $isEventCreator = true; } } } list($usec, $sec) = explode(" ", microtime()); $time_end = (double) $usec + (double) $sec; //echo "time taken = ". round($time_end - $time_start, 4)."<Br/>"; //if ($isEventCreator) return $isEventCreator; } else { $isEventCreator = $juser->authorise('core.create', 'com_jevents'); if ($isEventCreator) { $okcats = JEVHelper::getAuthorisedCategories($juser, 'com_jevents', 'core.create'); if (count($okcats) > 0) { $juser = JFactory::getUser(); $dataModel = new JEventsDataModel(); $dataModel->setupComponentCatids(); $allowedcats = explode(",", $dataModel->accessibleCategoryList()); $intersect = array_intersect($okcats, $allowedcats); if (count($intersect) == 0) { $isEventCreator = false; } } else { $isEventCreator = false; } } } } else { if ($juser->id > 0 && JEVHelper::isAdminUser($juser)) { JError::raiseWarning("403", JText::_("JEV_AUTHORISED_USER_MODE_ENABLED_BUT_NO_ENTRY_FOR_SUPER_USER")); } } } else { if ($user->cancreate) { // Check maxevent count if ($user->eventslimit > 0) { $db = JFactory::getDBO(); $db->setQuery("SELECT count(*) FROM #__jevents_vevent where created_by=" . $user->user_id); $eventcount = intval($db->loadResult()); if ($eventcount < $user->eventslimit) { $isEventCreator = true; } else { $isEventCreator = false; } } else { $isEventCreator = true; } // are we blocked by category or calendar constraints if ($isEventCreator && $user->categories != "" && $user->categories != "all") { $okcats = explode("|", $user->categories); $juser = JFactory::getUser(); $dataModel = new JEventsDataModel(); $dataModel->setupComponentCatids(); $allowedcats = explode(",", $dataModel->accessibleCategoryList()); $intersect = array_intersect($okcats, $allowedcats); if (count($intersect) == 0) { $isEventCreator = false; } } } } JPluginHelper::importPlugin("jevents"); $dispatcher = JEventDispatcher::getInstance(); $dispatcher->trigger('isEventCreator', array(&$isEventCreator)); } if (is_null($isEventCreator)) { $isEventCreator = false; } return $isEventCreator; }
function DefaultViewHelperViewNavAdminPanel($view) { $cfg = JEVConfig::getInstance(); if ($cfg->get('show_adminpanel', 1) == 1) { $is_event_editor = JEVHelper::isEventCreator(); $user = JFactory::getUser(); JEVHelper::script('view_detailJQ.js', 'components/' . JEV_COM_COMPONENT . "/assets/js/"); JLoader::register('jevFilterProcessing', JEV_PATH . "/libraries/filters.php"); $pluginsDir = JPATH_ROOT . '/' . 'plugins' . '/' . 'jevents'; $filters = jevFilterProcessing::getInstance(array("published", "justmine", "category", "reset")); $cfg = JEVConfig::getInstance(); if (JRequest::getInt('pop', 0)) { return; } if ($is_event_editor) { if ($cfg->get("bootstrapchosen", 1)) { // Load Bootstrap JevHtmlBootstrap::framework(); JHtml::_('formbehavior.chosen', '#jevents select:not(.notchosen)'); } if ($cfg->get("bootstrapcss", 1) == 1) { // This version of bootstrap has maximum compatability with JEvents due to enhanced namespacing JHTML::stylesheet("com_jevents/bootstrap.css", array(), true); } else { if ($cfg->get("bootstrapcss", 1) == 2) { JHtmlBootstrap::loadCss(); } } // Load event adding language string JText::script('JEV_ADD_EVENT'); JText::script('JEV_IMPORT_ICALEVENT'); ?> <div class="ev_adminpanel"> <div align="left" class="nav_bar_cell"> <?php $editLink = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=icalevent.edit' . '&year=' . $view->year . '&month=' . $view->month . '&day=' . $view->day . '&Itemid=' . $view->Itemid, true); $popup = false; $params = JComponentHelper::getParams(JEV_COM_COMPONENT); if ($params->get("editpopup", 0) && JEVHelper::isEventCreator()) { //JevHtmlBootstrap::modal(); JEVHelper::script('editpopupJQ.js', 'components/' . JEV_COM_COMPONENT . '/assets/js/'); $popup = true; } $eventlinkadd = $popup ? "javascript:jevEditPopup('" . $editLink . "');" : $editLink; ?> <a href="<?php echo $eventlinkadd; ?> " title="<?php echo JText::_('JEV_ADDEVENT'); ?> "> <b><?php echo JText::_('JEV_ADDEVENT'); ?> </b> </a> <?php // offer frontend import ? if ($params->get("feimport", 0)) { $importLink = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=icals.importform&tmpl=component&Itemid=' . $view->Itemid, true); //JevHtmlBootstrap::modal(); JEVHelper::script('editpopupJQ.js', 'components/' . JEV_COM_COMPONENT . '/assets/js/'); $eventimport = "javascript:jevImportPopup('" . $importLink . "');"; ?> <br/><a href="<?php echo $eventimport; ?> " title="<?php echo JText::_('JEV_IMPORT_ICALEVENT', true); ?> "> <b><?php echo JText::_('JEV_IMPORT_ICALEVENT'); ?> </b> </a> <?php } if ($user->id > 0) { $datamodel = new JEventsDataModel(); // find appropriate Itemid and setup catids for datamodel $myItemid = JEVHelper::getItemid(); $datamodel->setupComponentCatids(); list($year, $month, $day) = JEVHelper::getYMD(); $evid = JRequest::getVar("evid", false); $jevtype = JRequest::getVar("jevtype", false); // FORM for filter submission $form_link = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=' . JRequest::getVar("jevtask", "month.calendar") . ($evid ? '&evid=' . $evid : '') . ($jevtype ? '&jevtype=' . $jevtype : '') . ($year ? '&year=' . $year : '') . ($month ? '&month=' . $month : '') . ($day ? '&day=' . $day : '') . "&Itemid=" . $myItemid, false); ?> <form action="<?php echo $form_link; ?> " method="post"> <?php $filterHTML = $filters->getFilterHTML(); $Itemid = JEVHelper::getItemid(); foreach ($filterHTML as $filter) { echo "<div>" . $filter["title"] . " " . $filter["html"] . "</div>"; } /* $eventmylinks = JRoute::_( 'index.php?option=' . JEV_COM_COMPONENT . '&task=admin.listevents' . '&year=' . $view->year . '&month=' . $view->month . '&day=' . $view->day . '&Itemid=' . $view->Itemid ); ?> <a href="<?php echo $eventmylinks; ?>" title="<?php echo JText::_('JEV_MYEVENTS'); ?>"> <b><?php echo JText::_('JEV_MYEVENTS'); ?></b> </a> <?php */ ?> </form> <?php } ?> </div> </div> <?php } } }
function DefaultViewHelperViewNavAdminPanel($view) { $is_event_editor = JEVHelper::isEventCreator(); $user = JFactory::getUser(); JEVHelper::script('view_detail.js', 'components/' . JEV_COM_COMPONENT . "/assets/js/"); JLoader::register('jevFilterProcessing', JEV_PATH . "/libraries/filters.php"); $pluginsDir = JPATH_ROOT . DS . 'plugins' . DS . 'jevents'; $filters = jevFilterProcessing::getInstance(array("published", "justmine", "category", "reset")); $cfg =& JEVConfig::getInstance(); if (JRequest::getInt('pop', 0)) { return; } if ($is_event_editor) { ?> <div class="ev_adminpanel"> <table width="100%" border="0" align="center"> <tr> <td align="left" class="nav_bar_cell"> <?php $editLink = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=icalevent.edit' . '&year=' . $view->year . '&month=' . $view->month . '&day=' . $view->day . '&Itemid=' . $view->Itemid, true); $popup = false; $params = JComponentHelper::getParams(JEV_COM_COMPONENT); if ($params->get("editpopup", 0)) { JHTML::_('behavior.modal'); JEVHelper::script('editpopup.js', 'components/' . JEV_COM_COMPONENT . '/assets/js/'); $popup = true; $popupw = $params->get("popupw", 800); $popuph = $params->get("popuph", 600); } $eventlinkadd = $popup ? "javascript:jevEditPopup('" . $editLink . "',{$popupw}, {$popuph});" : $editLink; ?> <a href="<?php echo $eventlinkadd; ?> " title="<?php echo JText::_('JEV_ADDEVENT'); ?> "> <b><?php echo JText::_('JEV_ADDEVENT'); ?> </b> </a> <?php // offer frontend import ? if ($params->get("feimport", 0)) { $importLink = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=icals.importform&tmpl=component&Itemid=' . $view->Itemid, true); JHTML::_('behavior.modal'); JEVHelper::script('editpopup.js', 'components/' . JEV_COM_COMPONENT . '/assets/js/'); $eventimport = "javascript:jevImportPopup('" . $importLink . "',400, 400);"; ?> <br/><a href="<?php echo $eventimport; ?> " title="<?php echo JText::_('JEV_IMPORT_ICALEVENT', true); ?> "> <b><?php echo JText::_('JEV_IMPORT_ICALEVENT'); ?> </b> </a> <?php } if ($user->id > 0) { $datamodel = new JEventsDataModel(); // find appropriate Itemid and setup catids for datamodel $myItemid = JEVHelper::getItemid(); $datamodel->setupComponentCatids(); list($year, $month, $day) = JEVHelper::getYMD(); $evid = JRequest::getVar("evid", false); $jevtype = JRequest::getVar("jevtype", false); // FORM for filter submission $form_link = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=' . JRequest::getVar("jevtask", "month.calendar") . ($evid ? '&evid=' . $evid : '') . ($jevtype ? '&jevtype=' . $jevtype : '') . ($year ? '&year=' . $year : '') . ($month ? '&month=' . $month : '') . ($day ? '&day=' . $day : '') . "&Itemid=" . $myItemid, false); ?> <form action="<?php echo $form_link; ?> " method="post"> <?php $filterHTML = $filters->getFilterHTML(); $Itemid = JEVHelper::getItemid(); foreach ($filterHTML as $filter) { echo "<div>" . $filter["title"] . " " . $filter["html"] . "</div>"; } /* $eventmylinks = JRoute::_( 'index.php?option=' . JEV_COM_COMPONENT . '&task=admin.listevents' . '&year=' . $view->year . '&month=' . $view->month . '&day=' . $view->day . '&Itemid=' . $view->Itemid ); ?> <a href="<?php echo $eventmylinks; ?>" title="<?php echo JText::_('JEV_MYEVENTS'); ?>"> <b><?php echo JText::_('JEV_MYEVENTS'); ?></b> </a> <?php */ ?> </form> <?php } ?> </td> </tr> </table> </div> <?php } }
} $form_link = ""; if ($myItemid > 0) { $menu = JFactory::getApplication()->getMenu(); $menuitem = $menu->getItem($myItemid); // if on a detail page or not already on a jevents component page then pick up the default task if ($menuitem && (!$jevtask || strpos($jevtask, "detail") !== false)) { $form_link = $menuitem->link . "&Itemid=" . $myItemid; } else { if ($menuitem && $params->get("alwaystarget", 0)) { $form_link = $menuitem->link . "&Itemid=" . $myItemid; } } } //$myItemid = JEVHelper::getItemid(); $datamodel->setupComponentCatids(); list($year, $month, $day) = JEVHelper::getYMD(); $evid = JRequest::getVar("evid", false); $jevtype = JRequest::getVar("jevtype", false); // FORM for filter submission $tmpCatids = trim($datamodel->catidsOut); if ($form_link == "") { $form_link = 'index.php?option=' . JEV_COM_COMPONENT . '&task=' . JRequest::getVar("jevtask", "cat.listevents") . "&Itemid=" . $myItemid; } $form_link .= "&year={$year}&month={$month}&day={$day}"; // category ID gets picked up by POST results! $form_link = JRoute::_($form_link . ($evid ? '&evid=' . $evid : '') . ($jevtype ? '&jevtype=' . $jevtype : ''), false); $filters = $jevhelper->getFilters(); $option = JRequest::getCmd("option"); if ($params->get("disablenonjeventspages", 0) && $option != "com_jevents" && $option != "com_jevlocations" && $option != "com_jevpeople" && $option != "com_rsvppro" && $option != "com_jevtags") { // display nothing on non-jevents pages - again make this a config option
/** * Test to see if user can add events from the front end * * @return boolean */ public static function isEventCreator() { static $isEventCreator; if (!isset($isEventCreator)) { $isEventCreator = false; $user = JEVHelper::getAuthorisedUser(); if (is_null($user)) { $params = JComponentHelper::getParams(JEV_COM_COMPONENT); $authorisedonly = $params->get("authorisedonly", 0); if (!$authorisedonly) { $juser = JFactory::getUser(); $isEventCreator = $juser->authorise('core.create', 'com_jevents'); // this is too heavy on database queries - keep this in the file so that sites that want to use this approach can uncomment this block if (false) { if (!$isEventCreator) { $cats = JEVHelper::getAuthorisedCategories($juser, 'com_jevents', 'core.create'); if (count($cats) > 0) { $isEventCreator = true; } } } else { if ($isEventCreator) { $okcats = JEVHelper::getAuthorisedCategories($juser, 'com_jevents', 'core.create'); if (count($okcats) > 0) { $juser = JFactory::getUser(); $dataModel = new JEventsDataModel(); $dataModel->setupComponentCatids(); $allowedcats = explode(",", $dataModel->accessibleCategoryList()); $intersect = array_intersect($okcats, $allowedcats); if (count($intersect) == 0) { $isEventCreator = false; } } else { $isEventCreator = false; } } } } } else { if ($user->cancreate) { // Check maxevent count if ($user->eventslimit > 0) { $db = JFactory::getDBO(); $db->setQuery("SELECT count(*) FROM #__jevents_vevent where created_by=" . $user->user_id); $eventcount = intval($db->loadResult()); if ($eventcount < $user->eventslimit) { $isEventCreator = true; } else { $isEventCreator = false; } } else { $isEventCreator = true; } // are we blocked by category or calendar constraints if ($isEventCreator && $user->categories != "" && $user->categories != "all") { $okcats = explode("|", $user->categories); $juser = JFactory::getUser(); $dataModel = new JEventsDataModel(); $dataModel->setupComponentCatids(); $allowedcats = explode(",", $dataModel->accessibleCategoryList()); $intersect = array_intersect($okcats, $allowedcats); if (count($intersect) == 0) { $isEventCreator = false; } } } } JPluginHelper::importPlugin("jevents"); $dispatcher = JDispatcher::getInstance(); $dispatcher->trigger('isEventCreator', array(&$isEventCreator)); } return $isEventCreator; }