| Server IP : 180.180.241.3 / Your IP : 216.73.216.25 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/components/com_jevents/ |
Upload File : |
<?php
/**
* JEvents Component for Joomla 1.5.x
*
* @version $Id: router.php 1440 2009-05-11 08:22:54Z geraint $
* @package JEvents
* @copyright Copyright (C) 2008-2009 GWE Systems Ltd, 2006-2008 JEvents Project Group
* @license GNU/GPLv2, see http://www.gnu.org/licenses/gpl-2.0.html
* @link http://www.jevents.net
*/
JLoader::register('JEVConfig',JPATH_ADMINISTRATOR."/components/com_jevents/libraries/config.php");
JLoader::register('JEVHelper',JPATH_SITE."/components/com_jevents/libraries/helper.php");
function JEventsBuildRoute(&$query)
{
$cfg = & JEVConfig::getInstance();
$segments = array();
$task = false;
if (!isset($query['task'])){
if (isset($query["Itemid"])){
$menu = & JSite::getMenu();
$menuitem = $menu->getItem($query["Itemid"]);
if (!is_null($menuitem) && isset($menuitem->query["task"])){
$task = $menuitem->query["task"];
}
}
if (!$task){
$task = 'month.calendar';
}
}
else {
$task=$query['task'];
unset($query['task']);
}
switch ($task) {
case "year.listevents":
case "month.calendar":
case "week.listevents":
case "day.listevents":
case "cat.listevents":
case "jevent.detail":
case "icalevent.detail":
case "icalrepeat.detail":
case "search.form":
case "search.results":
case "admin.listevents":
{
$segments[]=$task;
$config =& JFactory::getConfig();
$t_datenow = JEVHelper::getNow();
// if no date in the query then use TODAY not the calendar date
$nowyear = strftime( '%Y', $t_datenow->toUnix(true));
$nowmonth = strftime( '%m', $t_datenow->toUnix(true));
$nowday = strftime( '%d', $t_datenow->toUnix(true));
/*
$year = intval( JRequest::getVar( 'year', $nowyear ));
$month = intval( JRequest::getVar( 'month', $nowmonth ));
$day = intval( JRequest::getVar( 'day', $nowday ));
*/
if(isset($query['year'])) {
$segments[] = $query['year'];
unset($query['year']);
}
else {
// if no date in the query then use TODAY not the calendar date
$segments[] = $nowyear;
}
if(isset($query['month'])) {
$segments[] = $query['month'];
unset($query['month']);
}
else {
// if no date in the query then use TODAY not the calendar date
$segments[] = $nowmonth;
}
if(isset($query['day'])) {
$segments[] = $query['day'];
unset($query['day']);
}
else {
// if no date in the query then use TODAY not the calendar date
$segments[] = $nowday;
}
switch ($task) {
case "jevent.detail":
case "icalevent.detail":
case "icalrepeat.detail":
if(isset($query['jevtype'])) {
unset($query['jevtype']);
}
if(isset($query['evid'])) {
$segments[] = $query['evid'];
unset($query['evid']);
}
else {
$segments[] = "0";
}
break;
default:
break;
}
if(isset($query['catids']) && strlen($query['catids'])>0) {
$segments[] = $query['catids'];
unset($query['catids']);
}
else {
$segments[] = "-";
}
switch ($task) {
case "icalrepeat.detail":
if(isset($query['uid'])) {
// Some remote UIDs have @ and other dodgy characters in them so encode them for safety
$segments[] = base64_encode($query['uid']);
unset($query['uid']);
}
break;
default:
break;
}
}
break;
case "jevent.edit":
case "icalevent.edit":
case "icalevent.publish":
case "icalevent.unpublish":
case "icalevent.editcopy":
case "icalrepeat.edit":
case "jevent.delete":
case "icalevent.delete":
case "icalrepeat.delete":
case "icalrepeat.deletefuture":
$segments[]=$task;
if(isset($query['jevtype'])) {
unset($query['jevtype']);
}
if(isset($query['evid'])) {
$segments[] = $query['evid'];
unset($query['evid']);
}
else {
$segments[] = "0";
}
break;
case "modlatest.rss":
$segments[]=$task;
// assume implicit feed document
//unset($query['format']);
// feed type
if(isset($query['type'])) {
$segments[] = $query['type'];
unset($query['type']);
} else {
$segments[] = 'rss';
}
// modid
if(isset($query['modid'])) {
$segments[] = $query['modid'];
unset($query['modid']);
}
else {
$segments[] = "0";
}
break;
default:
$segments[]=$task;
break;
}
return $segments;
}
function JEventsParseRoute($segments)
{
$vars = array();
//Get the active menu item
$menu =& JSite::getMenu();
$item =& $menu->getActive();
// Count route segments
$count = count($segments);
if ($count>0){
// task
$task = $segments[0];
$vars["task"]=$task;
switch ($task){
case "year.listevents":
case "month.calendar":
case "week.listevents":
case "day.listevents":
case "cat.listevents":
case "jevent.detail":
case "icalevent.detail":
case "icalrepeat.detail":
case "view_cat":
if (strpos($task,"jevent")===0){
$vars['jevtype']="jevent";
}
else if (strpos($task,"icalevent")===0){
$vars['jevtype']="icaldb";
}
if($count>1) {
$vars['year'] = $segments[1];
}
if($count>2) {
$vars['month'] = $segments[2];
}
if($count>3) {
$vars['day'] = $segments[3];
}
if($count>4) {
switch ($task) {
case "jevent.detail":
case "icalevent.detail":
case "icalrepeat.detail":
$vars['evid'] = $segments[4];
// note that URI decoding swaps /-/ for :
if (count($segments)>5 && $segments[5]!=":"){
$vars['catids']= $segments[5];
}
break;
default:
// note that URI decoding swaps /-/ for :
if ($segments[4]!=":"){
$vars['catids']= $segments[4];
}
break;
}
}
if ($count>6){
switch ($task) {
case "icalrepeat.detail":
$vars['uid'] = base64_decode($segments[6]);
break;
default:
break;
}
}
break;
case "jevent.edit":
case "icalevent.editcopy":
case "icalevent.edit":
case "icalevent.publish":
case "icalevent.unpublish":
case "icalrepeat.edit":
case "icalevent.delete":
case "icalrepeat.delete":
case "icalrepeat.deletefuture":
if($count>1) {
$vars['evid'] = $segments[1];
}
break;
case "modlatest.rss":
// URI = /task/feedtype/modid
// force JDocumentFeed
$vars['format'] = 'feed';
//feed type
if($count>1) {
$vars['type']= $segments[1];
}
else {
$vars['type'] = "rss";
}
// modid
if($count>2) {
$vars['modid'] = $segments[2];
}
else {
$vars['modid'] = "0";
}
break;
default:
break;
}
}
return $vars;
}