Beispiel #1
0
 /**
  * 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 
    }
}
Beispiel #4
0
}
$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;
 }