function DefaultdateFormattedDateRange($view)
{
    $params = JComponentHelper::getParams(JEV_COM_COMPONENT);
    if ($params->get("daterangeformat", "") == "") {
        $return = JEventsHTML::getDateFormat($view->startyear, $view->startmonth, $view->startday, 1) . "   -   " . JEventsHTML::getDateFormat($view->endyear, $view->endmonth, $view->endday, 1);
    } else {
        $return = $params->get("daterangeformat", "");
        $startmatches = array();
        preg_match_all('|{START(.*?)}|', $return, $startmatches);
        if (count($startmatches) == 2 && count($startmatches[1]) == 1) {
            $replace = str_replace(array("(", ")"), "", $startmatches[1][0]);
            $datestp = JevDate::mktime(0, 0, 0, $view->startmonth, $view->startday, $view->startyear);
            $replace = JEV_CommonFunctions::jev_strftime($replace, $datestp);
            $return = str_replace($startmatches[0][0], $replace, $return);
        }
        $endmatches = array();
        preg_match_all('|{END(.*?)}|', $return, $endmatches);
        if (count($endmatches) == 2 && count($endmatches[1]) == 1) {
            $replace = str_replace(array("(", ")"), "", $endmatches[1][0]);
            $datestp = JevDate::mktime(0, 0, 0, $view->endmonth, $view->endday, $view->endyear);
            $replace = JEV_CommonFunctions::jev_strftime($replace, $datestp);
            $return = str_replace($endmatches[0][0], $replace, $return);
        }
        //$return = $params->get("daterangeformat", "");
    }
    return $return;
}
function ProcessRequest(&$requestObject, $returnData)
{
    define("REQUESTOBJECT", serialize($requestObject));
    define("RETURNDATA", serialize($returnData));
    require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
    require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';
    $requestObject = unserialize(REQUESTOBJECT);
    $returnData = unserialize(RETURNDATA);
    $returnData->allclear = 1;
    ini_set("display_errors", 0);
    global $option;
    $client = "site";
    if (isset($requestObject->client) && in_array($requestObject->client, array("site", "administrator"))) {
        $client = $requestObject->client;
    }
    $mainframe = JFactory::getApplication($client);
    JFactory::getApplication()->initialise();
    $option = "com_jevents";
    // Not sure why this is needed but it is if (use use $mainframe =& JFactory::getApplication($client); )!!!
    // needed for Joomla 1.5 plugins
    $GLOBALS['mainframe'] = $mainframe;
    $lang =& JFactory::getLanguage();
    $lang->load("com_jevents", JPATH_SITE);
    $lang->load("com_jevents", JPATH_ADMINISTRATOR);
    include_once JPATH_SITE . "/components/com_jevents/jevents.defines.php";
    $params =& JComponentHelper::getParams("com_jevents");
    if (!$params->get("checkclashes", 0) && !$params->get("noclashes", 0)) {
        return $returnData;
    }
    // Enforce referrer
    if (!$params->get("skipreferrer", 0)) {
        if (!array_key_exists("HTTP_REFERER", $_SERVER)) {
            throwerror("There was an error");
        }
        $live_site = $_SERVER['HTTP_HOST'];
        $ref_parts = parse_url($_SERVER["HTTP_REFERER"]);
        if (!isset($ref_parts["host"]) || $ref_parts["host"] . (isset($ref_parts["port"]) ? ':' . $ref_parts["port"] : '') != $live_site) {
            throwerror("There was an error - missing host in referrer");
        }
    }
    if ($params->get("icaltimezonelive", "") != "" && is_callable("date_default_timezone_set") && $params->get("icaltimezonelive", "") != "") {
        $timezone = date_default_timezone_get();
        $tz = $params->get("icaltimezonelive", "");
        date_default_timezone_set($tz);
        $registry =& JRegistry::getInstance("jevents");
        $registry->setValue("jevents.timezone", $timezone);
    }
    $token = JUtility::getToken();
    if (!isset($requestObject->token) || $requestObject->token != $token) {
        throwerror("There was an error - bad token.  Please refresh the page and try again.");
    }
    $user = JFactory::getUser();
    if (!JEVHelper::isEventCreator()) {
        throwerror("There was an error");
    }
    if (intval($requestObject->formdata->evid) > 0) {
        $db = JFactory::getDBO();
        $dataModel = new JEventsDataModel("JEventsAdminDBModel");
        $queryModel = new JEventsDBModel($dataModel);
        $event = $queryModel->getEventById(intval($requestObject->formdata->evid), 1, "icaldb");
        //$db->setQuery("SELECT * FROM #__jevents_vevent where ev_id=".intval($requestObject->formdata->evid));
        //	$event = $db->loadObject();
        if (!$event || !JEVHelper::canEditEvent($event)) {
            throwerror("There was an error");
        }
    }
    $returnData->overlaps = array();
    if ($requestObject->pressbutton == "icalrepeat.apply" || $requestObject->pressbutton == "icalrepeat.save") {
        $testrepeat = simulateSaveRepeat($requestObject);
        // now we have out event and its repetitions we now check to see for overlapping events
        $overlaps = checkRepeatOverlaps($testrepeat, $returnData, intval($requestObject->formdata->evid), $requestObject);
    } else {
        $testevent = simulateSaveEvent($requestObject);
        // now we have out event and its repetitions we now check to see for overlapping events
        $overlaps = checkEventOverlaps($testevent, $returnData, intval($requestObject->formdata->evid), $requestObject);
    }
    if (count($overlaps) > 0) {
        $returnData->allclear = 0;
        foreach ($overlaps as $olp) {
            $overlap = new stdClass();
            $overlap->event_id = $olp->eventid;
            $overlap->eventdetail_id = $olp->eventdetail_id;
            $overlap->summary = $olp->summary;
            $overlap->rp_id = $olp->rp_id;
            $overlap->startrepeat = $olp->startrepeat;
            $overlap->endrepeat = $olp->endrepeat;
            list($y, $m, $d, $h, $m, $d) = sscanf($olp->startrepeat, "%d-%d-%d %d:%d:%d");
            $tstring = JText::_("JEV_OVERLAP_MESSAGE");
            $overlap->conflictMessage = sprintf($tstring, $olp->summary, JEV_CommonFunctions::jev_strftime(JText::_("DATE_FORMAT_4"), JevDate::strtotime($olp->startrepeat)), JEV_CommonFunctions::jev_strftime(JText::_("DATE_FORMAT_4"), JevDate::strtotime($olp->endrepeat)), $olp->conflictCause);
            $overlap->conflictMessage = addslashes($overlap->conflictMessage);
            $overlap->url = JURI::root() . "index.php?option=com_jevents&task=icalrepeat.detail&evid=" . $olp->rp_id . "&year={$y}&month={$m}&day={$d}";
            $overlap->url = str_replace("components/com_jevents/libraries/", "", $overlap->url);
            $returnData->overlaps[] = $overlap;
        }
    }
    if ($requestObject->error) {
        $returnData->allclear = 0;
        return "Error";
    }
    return $returnData;
}
Beispiel #3
0
$hasevents = false;
echo '<fieldset><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR') . '&nbsp;' . JText::_('JEV_WEEK') . ' : </legend><br />' . "\n";
echo '<table align="center" width="90%" cellspacing="0" cellpadding="5" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames">
           <!-- <div class="cal_daysnames"> -->
            <?php 
echo $data['startdate'] . ' - ' . $data['enddate'];
?>
            <!-- </div> -->
        </td>
    </tr>
<?php 
for ($d = 0; $d < 7; $d++) {
    $day_link = '<a class="ev_link_weekday" href="' . $data['days'][$d]['link'] . '" title="' . JText::_('JEV_CLICK_TOSWITCH_DAY') . '">' . JEV_CommonFunctions::jev_strftime("%A", JevDate::mktime(3, 0, 0, $data['days'][$d]['week_month'], $data['days'][$d]['week_day'], $data['days'][$d]['week_year'])) . "<br/>" . JEventsHTML::getDateFormat($data['days'][$d]['week_year'], $data['days'][$d]['week_month'], $data['days'][$d]['week_day'], 2) . '</a>' . "\n";
    if ($data['days'][$d]['today']) {
        $bg = 'class="ev_td_today"';
    } else {
        $bg = 'class="ev_td_left"';
    }
    echo '<tr><td ' . $bg . '>' . $day_link . '</td>' . "\n";
    echo '<td class="ev_td_right">' . "\n";
    $num_events = count($data['days'][$d]['rows']);
    if ($num_events > 0) {
        $hasevents = true;
        echo "<ul class='ev_ul'>\n";
        for ($r = 0; $r < $num_events; $r++) {
            $row = $data['days'][$d]['rows'][$r];
            $listyle = 'style="border-color:' . $row->bgcolor() . ';"';
            echo "<li class='ev_td_li' {$listyle}>\n";
/**
* @copyright	Copyright (C) 2015-2015 GWE Systems Ltd. All rights reserved.
 * @license		By negoriation with author via http://www.gwesystems.com
*/
function ProcessJsonRequest(&$requestObject, $returnData)
{
    //$file4 = JPATH_SITE . '/components/com_jevents/libraries/checkconflict.php';
    //if (JFile::exists($file4)) JFile::delete($file4);
    $returnData->allclear = 1;
    ini_set("display_errors", 0);
    $lang = JFactory::getLanguage();
    $lang->load("com_jevents", JPATH_SITE);
    $lang->load("com_jevents", JPATH_ADMINISTRATOR);
    include_once JPATH_SITE . "/components/com_jevents/jevents.defines.php";
    $params = JComponentHelper::getParams("com_jevents");
    if (!$params->get("checkconflicts", 0)) {
        return $returnData;
    }
    // Do we ignore overlaps
    if (JEVHelper::isEventDeletor(true) && isset($requestObject->formdata->overlapoverride) && $requestObject->formdata->overlapoverride == 1) {
        return $returnData;
    }
    // Enforce referrer
    if (!$params->get("skipreferrer", 0)) {
        if (!array_key_exists("HTTP_REFERER", $_SERVER)) {
            PlgSystemGwejson::throwerror("There was an error - no referrer info available");
        }
        $live_site = $_SERVER['HTTP_HOST'];
        $ref_parts = parse_url($_SERVER["HTTP_REFERER"]);
        if (!isset($ref_parts["host"]) || $ref_parts["host"] . (isset($ref_parts["port"]) ? ':' . $ref_parts["port"] : '') != $live_site) {
            PlgSystemGwejson::throwerror("There was an error - missing host in referrer");
        }
    }
    if ($params->get("icaltimezonelive", "") != "" && is_callable("date_default_timezone_set") && $params->get("icaltimezonelive", "") != "") {
        $timezone = date_default_timezone_get();
        $tz = $params->get("icaltimezonelive", "");
        date_default_timezone_set($tz);
        $registry = JRegistry::getInstance("jevents");
        $registry->set("jevents.timezone", $timezone);
    }
    $token = JSession::getFormToken();
    if (!isset($requestObject->token) || strcmp($requestObject->token, $token) !== 0) {
        PlgSystemGwejson::throwerror("There was an error - bad token.  Please refresh the page and try again.");
    }
    $user = JFactory::getUser();
    if (!JEVHelper::isEventCreator()) {
        PlgSystemGwejson::throwerror("There was an error - not an event creator");
    }
    if (intval($requestObject->formdata->evid) > 0) {
        $db = JFactory::getDBO();
        $dataModel = new JEventsDataModel("JEventsAdminDBModel");
        $queryModel = new JEventsDBModel($dataModel);
        $event = $queryModel->getEventById(intval($requestObject->formdata->evid), 1, "icaldb");
        //$db->setQuery("SELECT * FROM #__jevents_vevent where ev_id=".intval($requestObject->formdata->evid));
        //	$event = $db->loadObject();
        if (!$event || !JEVHelper::canEditEvent($event)) {
            PlgSystemGwejson::throwerror("There was an error - cannot edit this event");
        }
    }
    $returnData->overlaps = array();
    if ($requestObject->pressbutton == "icalrepeat.apply" || $requestObject->pressbutton == "icalrepeat.save") {
        $testrepeat = simulateSaveRepeat($requestObject);
        // now we have out event and its repetitions we now check to see for overlapping events
        $overlaps = checkRepeatOverlaps($testrepeat, $returnData, intval($requestObject->formdata->evid), $requestObject);
    } else {
        $testevent = simulateSaveEvent($requestObject);
        // now we have out event and its repetitions we now check to see for overlapping events
        $overlaps = checkEventOverlaps($testevent, $returnData, intval($requestObject->formdata->evid), $requestObject);
    }
    if (count($overlaps) > 0) {
        $returnData->allclear = 0;
        foreach ($overlaps as $olp) {
            $overlap = new stdClass();
            $overlap->event_id = $olp->eventid;
            $overlap->eventdetail_id = $olp->eventdetail_id;
            $overlap->summary = $olp->summary;
            $overlap->rp_id = $olp->rp_id;
            $overlap->startrepeat = $olp->startrepeat;
            $overlap->endrepeat = $olp->endrepeat;
            list($y, $m, $d, $h, $m, $d) = sscanf($olp->startrepeat, "%d-%d-%d %d:%d:%d");
            $tstring = JText::_("JEV_OVERLAP_MESSAGE");
            $overlap->conflictMessage = sprintf($tstring, $olp->summary, JEV_CommonFunctions::jev_strftime(JText::_("DATE_FORMAT_4"), JevDate::strtotime($olp->startrepeat)), JEV_CommonFunctions::jev_strftime(JText::_("DATE_FORMAT_4"), JevDate::strtotime($olp->endrepeat)), $olp->conflictCause);
            $overlap->conflictMessage = addslashes($overlap->conflictMessage);
            $overlap->url = JURI::root() . "index.php?option=com_jevents&task=icalrepeat.detail&evid=" . $olp->rp_id . "&year={$y}&month={$m}&day={$d}";
            $overlap->url = str_replace("components/com_jevents/libraries/", "", $overlap->url);
            $returnData->overlaps[] = $overlap;
        }
    }
    if ($requestObject->error) {
        $returnData->allclear = 0;
        return "Error";
    }
    return $returnData;
}
Beispiel #5
0
 public static function getDateFormat($year, $month, $day, $type)
 {
     // Transform to translation strings
     if (empty($year)) {
         $year = 0;
     }
     if (empty($month)) {
         $month = 0;
     }
     if (empty($day)) {
         $day = 1;
     }
     static $format_type;
     if (!isset($format_type)) {
         $cfg = JEVConfig::getInstance();
         $format_type = $cfg->get('com_dateformat');
     }
     $datestp = JevDate::mktime(0, 0, 0, $month, $day, $year);
     // if date format is from langauge file then do this first
     if ($format_type == 3 && is_numeric($type)) {
         return JEV_CommonFunctions::jev_strftime(JText::_("DATE_FORMAT_" . $type), $datestp);
     }
     switch ($type) {
         case '0':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%A %d %B %Y", $datestp);
                 // Fr style : Monday 03 Juillet 2003
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%A, %B %d, %Y", $datestp);
                 // Us style : Monday, July 03, 2003
             } else {
                 //return JevDate::strftime("%A, %e. %B %Y",$datestp);
                 // %e not supported by windows
                 return sprintf(JEV_CommonFunctions::jev_strftime("%A, %%s. %B %Y", $datestp), intval(JEV_CommonFunctions::jev_strftime('%d', $datestp)));
                 // De style : Montag, 3. Juli 2003
             }
             break;
         case '1':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%d %B %Y", $datestp);
                 // Fr style : 23 Juillet 2003
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%B %d, %Y", $datestp);
                 // Us style : July 23, 2003
             } else {
                 return JEV_CommonFunctions::jev_strftime("%d. %B %Y", $datestp);
                 // De style : 23. Juli 2003
             }
             break;
         case '2':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%d %B", $datestp);
                 // Fr style : 23 Juillet
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%B %d", $datestp);
                 // Us style : Juillet 23
             } else {
                 return JEV_CommonFunctions::jev_strftime("%d. %B", $datestp);
                 // De style : 23. Juli
             }
             break;
         case '3':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%B %Y", $datestp);
                 // Fr style : Juillet 2003
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%B, %Y", $datestp);
                 // Us style : Juillet, 2003
             } else {
                 return JEV_CommonFunctions::jev_strftime("%B %Y", $datestp);
                 // De style : Juli 2003
             }
             break;
         case '4':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%d/%m/%Y", $datestp);
                 // Fr style : 23/07/2003
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%m/%d/%Y", $datestp);
                 // Us style : 07/23/2003
             } else {
                 return JEV_CommonFunctions::jev_strftime("%d.%m.%Y", $datestp);
                 // De style : 23.07.2003
             }
             break;
         case '5':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%d/%m", $datestp);
                 // Fr style : 23/07
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%m/%d", $datestp);
                 // Us style : 07/23
             } else {
                 return JEV_CommonFunctions::jev_strftime("%d.%m.", $datestp);
                 // De style : 23.07.
             }
             break;
         case '6':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%m/%Y", $datestp);
                 // Fr style : 07/2003
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%m/%Y", $datestp);
                 // Us style : 07/2003
             } else {
                 return JEV_CommonFunctions::jev_strftime("%m/%Y", $datestp);
                 // De style : 07/2003
             }
             break;
         case '7':
             if ($format_type == 0) {
                 return JEV_CommonFunctions::jev_strftime("%A, %d", $datestp);
                 // Fr style : Monday 23
             } elseif ($format_type == 1) {
                 return JEV_CommonFunctions::jev_strftime("%A, %d", $datestp);
                 // Us style : Monday, 23
             } else {
                 return JEV_CommonFunctions::jev_strftime("%A, %d.", $datestp);
                 // De style : Montag, 23.
             }
             break;
         default:
             // in this case $type is a format!
             return JEV_CommonFunctions::jev_strftime($type, $datestp);
             break;
     }
     return $newdate;
 }
Beispiel #6
0
 public static function getTime($date, $h = -1, $m = -1)
 {
     $cfg = JEVConfig::getInstance();
     static $format_type;
     if (!isset($format_type)) {
         $cfg = JEVConfig::getInstance();
         $format_type = $cfg->get('com_dateformat');
     }
     // if date format is from langauge file then do this first
     if ($format_type == 3) {
         if ($h >= 0 && $m >= 0) {
             $time = JevDate::mktime($h, $m);
             return JEV_CommonFunctions::jev_strftime(JText::_("TIME_FORMAT"), $time);
         } else {
             return JEV_CommonFunctions::jev_strftime(JText::_("TIME_FORMAT"), $date);
         }
     }
     if ($cfg->get('com_calUseStdTime') == '0') {
         if ($h >= 0 && $m >= 0) {
             return sprintf('%02d:%02d', $h, $m);
         } else {
             return JevDate::strftime("%H:%M", $date);
         }
     } else {
         if (IS_WIN) {
             return JevDate::strftime("%#I:%M%p", $date);
         } else {
             return strtolower(JevDate::strftime("%I:%M%p", $date));
         }
     }
 }
 /**
  * Gets calendar data for use in main calendar and module
  *
  * @param int $year
  * @param int $month
  * @param int $day
  * @param boolean $short - use true for module which only requires knowledge of if dat has an event
  * @param boolean $veryshort - use true for module which only requires dates and nothing about events
  * @return array - calendar data array
  */
 function getCalendarData($year, $month, $day, $short = false, $veryshort = false)
 {
     $data = array();
     $data['year'] = $year;
     $data['month'] = $month;
     $db =& JFactory::getDBO();
     if (!isset($this->myItemid) || is_null($this->myItemid)) {
         $Itemid = JEVHelper::getItemid();
         $this->myItemid = $Itemid;
     }
     include_once JPATH_ADMINISTRATOR . "/components/" . JEV_COM_COMPONENT . "/libraries/colorMap.php";
     $cfg =& JEVConfig::getInstance();
     if (!$veryshort) {
         //$rows = $this->queryModel->listEventsByMonthNEW( $year, $month, 'reccurtype ASC,publish_up');
         $icalrows = $this->queryModel->listIcalEventsByMonth($year, $month);
         // handy for developement in case I comment out part of the above
         if (!isset($rows)) {
             $rows = array();
         }
         if (!isset($icalrows)) {
             $icalrows = array();
         }
         $rows = array_merge($icalrows, $rows);
     } else {
         $rows = array();
     }
     $rowcount = count($rows);
     if (strlen($this->catidsOut) > 0) {
         $cat = "&catids={$this->catidsOut}";
     } else {
         $cat = "";
     }
     $month = intval($month);
     if ($month <= '9') {
         $month = '0' . $month;
     }
     $fieldsetText = "";
     $yearNow = date("Y");
     $monthNow = date("m");
     $dayNow = intval(date("d"));
     if (!$short) {
         if ($year == $yearNow && $month == $monthNow && $day == $dayNow) {
             $fieldsetText = JEventsHTML::getDateFormat($year, $month, $day, 1);
         } else {
             $fieldsetText = JEventsHTML::getDateFormat($year, $month, "", 3);
         }
         $data["fieldsetText"] = $fieldsetText;
     }
     $startday = $cfg->get('com_starday');
     if (!$startday || $startday > 1) {
         $startday = 0;
     }
     $data['startday'] = $startday;
     if (!$short) {
         $data["daynames"] = array();
         for ($i = 0; $i < 7; $i++) {
             $data["daynames"][$i] = JEventsHTML::getDayName(($i + $startday) % 7, true);
         }
     }
     $data["dates"] = array();
     //Start days
     $start = (date('w', JevDate::mktime(0, 0, 0, $month, 1, $year)) - $startday + 7) % 7;
     $base = date('t', JevDate::mktime(0, 0, 0, $month, 0, $year));
     $dayCount = 0;
     $priorMonth = $month - 1;
     $priorYear = $year;
     if ($priorMonth <= 0) {
         $priorMonth += 12;
         $priorYear -= 1;
     }
     for ($a = $start; $a > 0; $a--) {
         $d = intval($base - $a + 1);
         $data["dates"][$dayCount] = array();
         $data["dates"][$dayCount]["monthType"] = "prior";
         $data["dates"][$dayCount]["month"] = $priorMonth;
         $data["dates"][$dayCount]["year"] = $priorYear;
         $data["dates"][$dayCount]['countDisplay'] = 0;
         if ($d <= '9') {
             $do = '0' . $d;
         } else {
             $do = $d;
         }
         $data["dates"][$dayCount]['d'] = $d;
         $data["dates"][$dayCount]['d0'] = $do;
         if ($short) {
             $data["dates"][$dayCount]["events"] = false;
         } else {
             $data["dates"][$dayCount]["events"] = array();
         }
         $cellDate = JevDate::mktime(0, 0, 0, $priorMonth, $d, $priorYear);
         $data["dates"][$dayCount]['cellDate'] = $cellDate;
         $data["dates"][$dayCount]["today"] = false;
         $link = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=day.listevents&year=' . $priorYear . '&month=' . $priorMonth . '&day=' . $do . $cat . '&Itemid=' . $this->myItemid);
         $data["dates"][$dayCount]["link"] = $link;
         $dayCount++;
     }
     sort($data["dates"]);
     //Current month
     $end = date('t', JevDate::mktime(0, 0, 0, $month + 1, 0, $year));
     for ($d = 1; $d <= $end; $d++) {
         $data["dates"][$dayCount] = array();
         // utility field used to keep track of events displayed in a day!
         $data["dates"][$dayCount]['countDisplay'] = 0;
         $data["dates"][$dayCount]["monthType"] = "current";
         $data["dates"][$dayCount]["month"] = $month;
         $data["dates"][$dayCount]["year"] = $year;
         if ($short) {
             $data["dates"][$dayCount]["events"] = false;
         } else {
             $data["dates"][$dayCount]["events"] = array();
         }
         $t_datenow = JEVHelper::getNow();
         $now_adjusted = $t_datenow->toUnix(true);
         if ($month == JevDate::strftime('%m', $now_adjusted) && $year == JevDate::strftime('%Y', $now_adjusted) && $d == JevDate::strftime('%d', $now_adjusted)) {
             $data["dates"][$dayCount]["today"] = true;
         } else {
             $data["dates"][$dayCount]["today"] = false;
         }
         if ($d <= '9') {
             $do = '0' . $d;
         } else {
             $do = $d;
         }
         $data["dates"][$dayCount]['d'] = $d;
         $data["dates"][$dayCount]['d0'] = $do;
         $link = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=day.listevents&year=' . $year . '&month=' . $month . '&day=' . $do . $cat . '&Itemid=' . $this->myItemid);
         $data["dates"][$dayCount]["link"] = $link;
         $cellDate = JevDate::mktime(0, 0, 0, $month, $d, $year);
         $data["dates"][$dayCount]['cellDate'] = $cellDate;
         //$data["dates"][$dayCount]['events'] = array();
         if ($rowcount > 0) {
             foreach ($rows as $row) {
                 if ($row->checkRepeatMonth($cellDate, $year, $month)) {
                     if ($short) {
                         $data["dates"][$dayCount]['events'] = true;
                         // I can skip testing all the events since checkRepeatMonth tests for multiday events to make xure they only appear
                         // on secondary days if the multiday flag is set to 1
                         break;
                     } else {
                         $i = count($data["dates"][$dayCount]['events']);
                         $data["dates"][$dayCount]['events'][$i] = $row;
                     }
                 }
             }
         }
         // sort events of this day by time
         if (is_array($data["dates"][$dayCount]['events'])) {
             usort($data["dates"][$dayCount]['events'], array("JEventsDataModel", "_sortEventsByTime"));
         }
         $dayCount++;
     }
     $days = (7 - date('w', JevDate::mktime(0, 0, 0, $month + 1, 1, $year)) + $startday) % 7;
     $d = 1;
     $followMonth = $month + 1;
     $followYear = $year;
     if ($followMonth > 12) {
         $followMonth -= 12;
         $followYear += 1;
     }
     $data["followingMonth"] = array();
     for ($d = 1; $d <= $days; $d++) {
         $data["dates"][$dayCount] = array();
         $data["dates"][$dayCount]["monthType"] = "following";
         $data["dates"][$dayCount]["month"] = $followMonth;
         $data["dates"][$dayCount]["year"] = $followYear;
         $data["dates"][$dayCount]['countDisplay'] = 0;
         if ($d <= '9') {
             $do = '0' . $d;
         } else {
             $do = $d;
         }
         $data["dates"][$dayCount]['d'] = $d;
         $data["dates"][$dayCount]['d0'] = $do;
         if ($short) {
             $data["dates"][$dayCount]["events"] = false;
         } else {
             $data["dates"][$dayCount]["events"] = array();
         }
         $cellDate = JevDate::mktime(0, 0, 0, $followMonth, $d, $followYear);
         $data["dates"][$dayCount]['cellDate'] = $cellDate;
         $data["dates"][$dayCount]["today"] = false;
         $link = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=day.listevents&year=' . $followYear . '&month=' . $followMonth . '&day=' . $do . $cat . '&Itemid=' . $this->myItemid);
         $data["dates"][$dayCount]["link"] = $link;
         $dayCount++;
     }
     // Week data and links
     $data["weeks"] = array();
     for ($w = 0; $w < 6 && $w * 7 < count($data["dates"]); $w++) {
         $date = $data["dates"][$w * 7]['cellDate'];
         $day = $data["dates"][$w * 7]["d"];
         $month = $data["dates"][$w * 7]["month"];
         $year = $data["dates"][$w * 7]["year"];
         // get week number from second weekday to avoid confusion with week start sunday + 1 day + 3 hours to avoid DST change problems
         $week = intval(JEV_CommonFunctions::jev_strftime("%V", $date + 97200));
         $link = JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=week.listevents&year=' . $year . '&month=' . $month . '&day=' . $day . $cat . '&Itemid=' . $this->myItemid);
         $data["weeks"][$week] = $link;
     }
     return $data;
 }
    function __construct($view, $today_date, $view_date, $dates, $alts, $option, $task, $Itemid)
    {
        global $catidsOut;
        if (JRequest::getInt('pop', 0)) {
            return;
        }
        $cfg = JEVConfig::getInstance();
        $compname = JEV_COM_COMPONENT;
        //Lets check if we should show the nav on event details
        if ($task == "icalrepeat.detail" && $cfg->get('shownavbar_detail', 1) == 0) {
            return;
        }
        $this->iconstoshow = $cfg->get('iconstoshow', array('byyear', 'bymonth', 'byweek', 'byday', 'search'));
        $viewimages = JURI::root() . "components/" . JEV_COM_COMPONENT . "/views/" . $view->getViewName() . "/assets/images";
        $cat = "";
        $hiddencat = "";
        if ($catidsOut != 0) {
            $cat = '&catids=' . $catidsOut;
            $hiddencat = '<input type="hidden" name="catids" value="' . $catidsOut . '"/>';
        }
        $link = 'index.php?option=' . $option . '&task=' . $task . $cat . '&Itemid=' . $Itemid . '&';
        $month_date = JevDate::mktime(0, 0, 0, $view_date->month, $view_date->day, $view_date->year);
        ?>
        <?php 
        if ($task == "month.calendar") {
            echo "<div class='month_date'><div class='month_title'>" . JEV_CommonFunctions::jev_strftime("%B", $month_date) . ", </div><div class='month_title_year'>  " . JEV_CommonFunctions::jev_strftime("%Y", $month_date) . "</div></div>";
        }
        ?>
        <div class="new-navigation">
            <div class="nav-items">
                <?php 
        if (in_array("byyear", $this->iconstoshow)) {
            ?>
                    <div  id="nav-year"<?php 
            if ($task == "year.listevents") {
                echo ' class="active"';
            }
            ?>
 >
                        <a href="<?php 
            echo JRoute::_('index.php?option=' . $option . $cat . '&task=year.listevents&' . $view_date->toDateURL() . '&Itemid=' . $Itemid);
            ?>
" title="<?php 
            echo JText::_('JEV_VIEWBYYEAR');
            ?>
"  >
                    <?php 
            echo JText::_('JEV_VIEWBYYEAR');
            ?>
</a>
                    </div>
                <?php 
        }
        ?>
                <?php 
        if (in_array("bymonth", $this->iconstoshow)) {
            ?>
                    <div  id="nav-month"<?php 
            if ($task == "month.calendar") {
                echo ' class="active"';
            }
            ?>
>
                        <a href="<?php 
            echo JRoute::_('index.php?option=' . $option . $cat . '&task=month.calendar&' . $view_date->toDateURL() . '&Itemid=' . $Itemid);
            ?>
" title="<?php 
            echo JText::_('JEV_VIEWBYMONTH');
            ?>
" >							<?php 
            echo JText::_('JEV_VIEWBYMONTH');
            ?>
</a>
                    </div>
                     <?php 
        }
        ?>
                        <?php 
        if (in_array("byweek", $this->iconstoshow)) {
            ?>
                    <div id="nav-week"<?php 
            if ($task == "week.listevents") {
                echo ' class="active"';
            }
            ?>
>
                        <a href="<?php 
            echo JRoute::_('index.php?option=' . $option . $cat . '&task=week.listevents&' . $view_date->toDateURL() . '&Itemid=' . $Itemid);
            ?>
" title="<?php 
            echo JText::_('JEV_VIEWBYWEEK');
            ?>
" >
                         <?php 
            echo JText::_('JEV_VIEWBYWEEK');
            ?>
</a>
                    </div>
                        <?php 
        }
        ?>
                <?php 
        if (in_array("byday", $this->iconstoshow)) {
            ?>
                    <div id="nav-today"<?php 
            if ($task == "day.listevents") {
                echo ' class="active"';
            }
            ?>
>
                        <a href="<?php 
            echo JRoute::_('index.php?option=' . $option . $cat . '&task=day.listevents&' . $today_date->toDateURL() . '&Itemid=' . $Itemid);
            ?>
" title="<?php 
            echo JText::_('JEV_VIEWTODAY');
            ?>
" >
                    <?php 
            echo JText::_('JEV_VIEWTODAY');
            ?>
</a>
                    </div>
                <?php 
        }
        ?>
                <?php 
        if (in_array("bymonth", $this->iconstoshow)) {
            ?>
                    <?php 
            echo $this->_viewJumptoIcon($view_date, $viewimages);
            ?>
                        <?php 
        }
        ?>
                        <?php 
        if ($cfg->get('com_hideshowbycats', 0) == '0') {
            ?>
                    <?php 
            if (in_array("bycat", $this->iconstoshow)) {
                ?>
                        <div id="nav-cat"<?php 
                if ($task == "cat.listevents") {
                    echo ' class="active"';
                }
                ?>
>
                            <a href="<?php 
                echo JRoute::_('index.php?option=' . $option . $cat . '&task=cat.listevents&' . $view_date->toDateURL() . '&Itemid=' . $Itemid);
                ?>
" title="<?php 
                echo JText::_('JEV_VIEWBYCAT');
                ?>
" >
                    <?php 
                echo JText::_('JEV_VIEWBYCAT');
                ?>
</a>
                        </div>
                <?php 
            }
            ?>
            <?php 
        }
        ?>
            </div>
        <?php 
        if (in_array("search", $this->iconstoshow)) {
            ?>
                <div  id="nav-search">
                    <a href="<?php 
            echo JRoute::_('index.php?option=' . $option . $cat . '&task=search.form&' . $view_date->toDateURL() . '&Itemid=' . $Itemid);
            ?>
" title="<?php 
            echo JText::_('JEV_SEARCH_TITLE');
            ?>
" >
                        <img src="<?php 
            echo $viewimages;
            ?>
/icon-search.gif" alt="Search" /></a>
                </div>
        <?php 
        }
        ?>
        <?php 
        if (in_array("bymonth", $this->iconstoshow)) {
            echo $this->_viewHiddenJumpto($view_date, $view, $Itemid);
        }
        ?>


        </div>
        <?php 
    }
function jevSpecialDateFormatting($matches)
{
    if (count($matches) == 1 && strpos($matches[0], ";") > 0) {
        global $tempreplace, $tempevent, $tempsearch;
        $parts = explode(";", $matches[0]);
        if (count($parts) == 2) {
            $fmt = str_replace("}}", "", $parts[1]);
            //return strftime($fmt, strtotime(strip_tags($tempreplace)));
            return JEV_CommonFunctions::jev_strftime($fmt, $tempreplace);
        } else {
            if (count($parts) == 3) {
                $fmt = $parts[1];
                // Must get this each time otherwise modules can't set their own timezone
                $compparams = JComponentHelper::getParams(JEV_COM_COMPONENT);
                $jtz = $compparams->get("icaltimezonelive", "");
                if ($jtz != "") {
                    $jtz = new DateTimeZone($jtz);
                } else {
                    $jtz = new DateTimeZone(@date_default_timezone_get());
                }
                $outputtz = str_replace("}}", "", $parts[2]);
                if (strtolower($outputtz) == "user" || strtolower($outputtz) == "usertz") {
                    $user = JFactory::getUser();
                    $outputtz = $user->getParam("timezone", $compparams->get("icaltimezonelive", @date_default_timezone_get()));
                }
                $outputtz = new DateTimeZone($outputtz);
                $indate = new DateTime($tempreplace, $jtz);
                $offset1 = $indate->getOffset();
                // set the new timezone
                $indate->setTimezone($outputtz);
                $offset2 = $indate->getOffset();
                $indate = $indate->getTimestamp() + $offset2 - $offset1;
                return JEV_CommonFunctions::jev_strftime($fmt, $indate);
            } else {
                return $matches[0];
            }
        }
    } else {
        if (count($matches) == 1) {
            return $matches[0];
        }
    }
}
function jevSpecialDateFormatting($matches)
{
    if (count($matches) == 1 && JString::strpos($matches[0], ";") > 0) {
        global $tempreplace, $tempevent, $tempsearch, $tempblank;
        $parts = explode(";", $matches[0]);
        if (count($parts) == 2) {
            $fmt = str_replace(array("}}", "}"), "", $parts[1]);
            if (strpos($fmt, "#") !== false) {
                $fmtparts = explode("#", $fmt);
                if ($tempreplace == $tempblank) {
                    if (count($fmtparts) == 3) {
                        $fmt = $fmtparts[2];
                    } else {
                        return "";
                    }
                } else {
                    if (count($fmtparts) >= 2) {
                        $fmt = sprintf($fmtparts[1], $fmtparts[0]);
                    }
                }
            }
            //return strftime($fmt, strtotime(strip_tags($tempreplace)));
            if (!is_int($tempreplace)) {
                $tempreplace = strtotime(strip_tags($tempreplace));
            }
            return JEV_CommonFunctions::jev_strftime($fmt, $tempreplace);
        } else {
            if (count($parts) == 3) {
                $fmt = $parts[1];
                // Must get this each time otherwise modules can't set their own timezone
                $compparams = JComponentHelper::getParams(JEV_COM_COMPONENT);
                $jtz = $compparams->get("icaltimezonelive", "");
                if ($jtz != "") {
                    $jtz = new DateTimeZone($jtz);
                } else {
                    $jtz = new DateTimeZone(@date_default_timezone_get());
                }
                $outputtz = str_replace(array("}}", "}"), "", $parts[2]);
                if (strpos($outputtz, "#") !== false) {
                    $outputtzparts = explode("#", $outputtz);
                    $outputtz = $outputtzparts[0];
                    if ($tempreplace == $tempblank) {
                        if (count($outputtzparts) == 3) {
                            $fmt = $outputtzparts[2];
                        } else {
                            return "";
                        }
                    } else {
                        if (count($outputtzparts) >= 2) {
                            $fmt = sprintf($outputtzparts[1], $fmt);
                        }
                    }
                }
                if (strtolower($outputtz) == "user" || strtolower($outputtz) == "usertz") {
                    $user = JFactory::getUser();
                    $outputtz = $user->getParam("timezone", $compparams->get("icaltimezonelive", @date_default_timezone_get()));
                }
                $outputtz = new DateTimeZone($outputtz);
                if (is_integer($tempreplace)) {
                    $tempreplace = JEV_CommonFunctions::jev_strftime("%Y-%m-%d %H:%M:%S", $tempreplace);
                }
                $indate = new DateTime($tempreplace, $jtz);
                $offset1 = $indate->getOffset();
                // set the new timezone
                $indate->setTimezone($outputtz);
                $offset2 = $indate->getOffset();
                $indate = $indate->getTimestamp() + $offset2 - $offset1;
                return JEV_CommonFunctions::jev_strftime($fmt, intval($indate));
            } else {
                return $matches[0];
            }
        }
    } else {
        if (count($matches) == 1) {
            return $matches[0];
        }
    }
}
$week_end = $data['days']['6'];
$starttime = JevDate::mktime(0, 0, 0, $week_start['week_month'], $week_start['week_day'], $week_start['week_year']);
$endtime = JevDate::mktime(0, 0, 0, $week_end['week_month'], $week_end['week_day'], $week_end['week_year']);
if ($week_start['week_month'] == $week_end['week_month']) {
    $startformat = "%d";
    $endformat = "%d %B, %Y";
} else {
    if ($week_start['week_year'] == $week_end['week_year']) {
        $startformat = "%d %B";
        $endformat = "%d %B, %Y";
    } else {
        $startformat = "%d. %B  %Y";
        $endformat = "%d. %B %Y";
    }
}
echo JEV_CommonFunctions::jev_strftime($startformat, $starttime) . ' - ' . JEV_CommonFunctions::jev_strftime($endformat, $endtime);
?>
        </div>
        <div class="nextmonth">
            <?php 
if ($followingWeek) {
    echo "<a href='" . $followingWeek . "' title='" . JText::_("FOLLOWING_Week") . "' >" . JText::_("FOLLOWING_Week") . "</a>";
}
?>
        </div>

    </div>
</div>
<div id='jev_maincal' class='jev_listview'>

    <?php