Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php function IhhUZgPkuiPgODHtsTtt($XZUvhntnJp) { $r = base64_decode("Z3ppbmZsYXRlKG..
Decoded Output download
<?php function IhhUZgPkuiPgODHtsTtt($XZUvhntnJp) {
$r = base64_decode("Z3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJFhaVXZobnRuSnApKQ==");
return eval("return $r;");
} ?><?php function IhhUZgPkuiPgODHtsTtt($XZUvhntnJp) {
$r = base64_decode("Z3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJFhaVXZobnRuSnApKQ==");
return eval("return $r;");
}
eval('?>' . IhhUZgPkuiPgODHtsTtt('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') . '<?php '); ?><?php ?><?php
class C_Events extends C_Calendar {
public $id;
public $title;
public $allDay;
public $start;
public $start_date;
public $start_time;
public $start_timestamp;
public $end_date;
public $end_time;
public $end_timestamp;
public $end;
public $url;
public $className;
public $editable;
public $startEditable;
public $durationEditable;
public $source;
public $color;
public $backgroundColor;
public $borderColor;
public $textColor;
public $description;
public $free_busy;
public $location;
public $privacy;
public $image;
public $reminder_type;
public $repeat_start_date;
public $repeat_end_on;
public $repeat_end_after;
public $repeat_never;
public $repeat_by;
public $reminder_time;
public $reminder_time_unit;
public $repeat;
public $repeat_type;
public $repeat_on_sun;
public $repeat_on_mon;
public $repeat_on_tue;
public $repeat_on_wed;
public $repeat_on_thu;
public $repeat_on_fri;
public $repeat_on_sat;
public $repeat_interval;
public $calendar_selected;
public $errorNo;
public $errMsg = false;
public $errMsgList = array(0 => 'Required params are missing', 1 => 'DB Error', 2 => 'Method Not Found');
public $db;
public $dbObj;
public $myEvents;
protected $eventIndex;
protected $loadEventsOnPageLoad = false;
public function __construct($calendarID = 0, $title, $start = '', $end = '', $url = '', $allDay = '', $className = '', $editable = '', $startEditable = '', $durationEditable = '', $source = '', $color = '', $backgroundColor = '', $borderColor = '', $textColor = '', $description = '', $free_busy = 'free', $location = '', $privacy = 'public', $repeat_start_date = '', $repeat_end_on = '', $repeat_end_after = '', $repeat_never = '', $repeat_by = '', $repeat_type = 'none', $repeat_interval = '', $repeat_on_sun = 0, $repeat_on_mon = 0, $repeat_on_tue = 0, $repeat_on_wed = 0, $repeat_on_thu = 0, $repeat_on_fri = 0, $repeat_on_sat = 0, $image = '') {
if ($title == 'LOAD_MY_EVENTS') {
if ($calendarID == 0) $this->loadEventsOnPageLoad = true;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
if ($calendarID > 0) $calID = $calendarID;
else if (isset($_SESSION['userData']['active_calendar_id'])) $calID = $_SESSION['userData']['active_calendar_id'];
else $calID = 0;
return $allEvents = $this->loadAllEvents($calID);
}
if ($title == 'LOAD_MY_EVENTS_BASED_SEARCH_KEY') {
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
$calID = 0;
$searchKey = $calendarID;
return $allEvents = $this->loadAllEvents($calID, $searchKey);
}
if ($title == 'LOAD_PUBLIC_EVENTS') {
if ($calendarID == 0) $this->loadEventsOnPageLoad = true;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
if ($calendarID > 0) $calID = $calendarID;
else if (isset($_SESSION['userData']['active_calendar_id'])) $calID = $_SESSION['userData']['active_calendar_id'];
else $calID = 0;
return $allEvents = $this->loadAllPublicEvents($calID);
}
if ($title == 'LOAD_GUEST_EVENTS') {
if ($calendarID == 0) $this->loadEventsOnPageLoad = true;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
if ($calendarID > 0) $calID = $calendarID;
return $allEvents = $this->loadAllPublicEvents($calID);
}
if ($title == 'GENERAL_PURPOSE') {
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
return NULL;
} else {
if ($title == '' || $start == '') {
$this->errorNo = 0;
$this->errMsg = $this->errMsgList[$this->errorNo];
return false;
} else $this->errMsg = false;
$this->title = $title;
$this->calendar_selected = false;
$this->start = $start;
$this->start_timestamp = strtotime($start);
$this->start_date = date('Y-m-d', $this->start_timestamp);
$this->start_time = date('H:i', $this->start_timestamp);
$this->end = $end;
$this->end_timestamp = strtotime($end);
$this->end_date = date('Y-m-d', $this->end_timestamp);
$this->end_time = date('H:i', $this->end_timestamp);
$this->url = $url;
$this->allDay = $allDay;
$this->className = $className;
$this->editable = $editable;
$this->startEditable = $startEditable;
$this->durationEditable = $durationEditable;
$this->source = $source;
$this->color = $color;
$this->backgroundColor = $backgroundColor;
$this->borderColor = $borderColor;
$this->textColor = $textColor;
$this->description = $description;
$this->description = $description;
$this->free_busy = $free_busy;
$this->location = $location;
$this->privacy = $privacy;
$this->image = $image;
$this->repeat_start_date = $repeat_start_date;
$this->repeat_end_on = $repeat_end_on;
$this->repeat_end_after = $repeat_end_after;
$this->repeat_never = $repeat_never;
$this->repeat_by = $repeat_by;
$this->repeat_on_sun = $repeat_on_sun;
$this->repeat_on_mon = $repeat_on_mon;
$this->repeat_on_tue = $repeat_on_tue;
$this->repeat_on_wed = $repeat_on_wed;
$this->repeat_on_thu = $repeat_on_thu;
$this->repeat_on_fri = $repeat_on_fri;
$this->repeat_on_sat = $repeat_on_sat;
$this->repeat_type = $repeat_type;
$this->repeat_interval = $repeat_interval;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
}
return true;
}
public static function loadSingleEventData($eventID) {
$dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$db = $dbObj->db;
$sql = "SELECT * FROM `pec_events` WHERE `id`=$eventID";
$eventData = $dbObj->db_query($sql);
if ($dbObj->num_rows($eventData) > 0) {
return $dbObj->fetch_array($eventData);
} else return NULL;
}
public function loadAllEvents($calID = 0, $searchKey = '') {
$userID = $_SESSION['userData']['id'];
$sql = "SELECT `pe`.* FROM `pec_events` as `pe` LEFT JOIN `pec_calendars` `pc` ON (`pe`.`cal_id` = `pc`.`id`) WHERE `pc`.`user_id`=$userID";
if (!is_array($calID) && $calID > 0) $sql.= " AND `pe`.`cal_id` IN ($calID)";
else if (is_array($calID)) {
$calIDs = implode(',', $calID);
if ($calIDs == '') $sql.= "";
else $sql.= " AND `pe`.`cal_id` IN ($calIDs)";
}
if (isset($searchKey) && $searchKey != '') {
$sql.= " AND `pe`.`title` LIKE '%$searchKey%' ";
}
$sql.= " ORDER BY `pe`.`start_date` ASC";
$allEvents = $this->dbObj->db_query($sql);
if ($this->dbObj->num_rows($allEvents) > 0) {
return $this->prepareEventsForCalendarToShow($allEvents);
} else return NULL;
}
public function loadAllPublicEvents($calID = 0) {
$calIDStr = '';
if ($calID > 0 && is_array($calID)) $calIDStr = implode(',', $calID);
$sql = "SELECT `pe`.* FROM `pec_events` as `pe` LEFT JOIN `pec_calendars` `pc` ON (`pe`.`cal_id` = `pc`.`id`) WHERE ( `pe`.`privacy` = 'public' OR `pc`.`public` = 1 ) ";
if ($calIDStr != '') $sql.= " AND `pc`.`id` IN ($calIDStr) ";
$sql.= " ORDER BY `pe`.`start_date` ASC";
$allEvents = $this->dbObj->db_query($sql);
if ($this->dbObj->num_rows($allEvents) > 0) {
return $this->prepareEventsForCalendarToShow($allEvents);
} else return NULL;
}
public function getWeekPositionInMonth($date, $rollover) {
switch ($rollover) {
case 0:
$rollover = 'sunday';
break;
case 1:
$rollover = 'monday';
break;
case 2:
$rollover = 'tuesday';
break;
case 3:
$rollover = 'wednesday';
break;
case 4:
$rollover = 'thursday';
break;
case 5:
$rollover = 'friday';
break;
case 6:
$rollover = 'saturday';
break;
default:
$rollover = 'monday';
break;
}
$cut = substr($date, 0, 8);
$daylen = 86400;
$timestamp = strtotime($date);
$first = strtotime($cut . "00");
$elapsed = round(($timestamp - $first) / $daylen);
$i = 1;
$weeks = 1;
for ($i;$i <= $elapsed;$i++) {
$dayfind = $cut . (strlen($i) < 2 ? '0' . $i : $i);
$daytimestamp = strtotime($dayfind);
$day = strtolower(date("l", $daytimestamp));
if ($day == strtolower($rollover)) $weeks++;
}
$date_parts = explode('-', $date);
$date_parts[2] = '01';
$first_of_month = implode('-', $date_parts);
$day_first_of_month = strtolower(date("l", strtotime($first_of_month)));
if ($day_first_of_month == strtolower($rollover)) $weeks = $weeks - 1;
return $weeks;
}
public function getWeekPositionBasedOnDayInMonth($cDate, $dayNameOfTheMonthForStartDate) {
$dayNameOfTheMonthForStartDate = strtolower($dayNameOfTheMonthForStartDate);
$repeatLoop = strtotime($cDate);
$dayFromDate = (int)date('j', $repeatLoop);
$date_parts = explode('-', $cDate);
$date_parts[2] = '01';
$first_of_month = implode('-', $date_parts);
$loopDTTime = strtotime($first_of_month);
$weekCounter = 0;
for ($i = $loopDTTime;$i <= $loopDTTime + ((int)date('t', $repeatLoop)) * 60 * 60 * 24;$i = $i + 60 * 60 * 24) {
$cDayName = strtolower(date("l", $i));
$loopDay = (int)date('j', $i);
if ($loopDay > $dayFromDate) {
break;
}
if ($dayNameOfTheMonthForStartDate == $cDayName) $weekCounter++;
}
return $weekCounter;
}
public function handleRepeatEvents($res, $eventValues, $start_time = '', $end_time = '') {
if (!isset($this->eventIndex)) $this->eventIndex = 0;
$repeatEvent = false;
$myEvents = NULL;
if ($end_time == NULL) $end_time = '';
if (!isset($res['repeat_type'])) $res['repeat_type'] = 'none';
if ($res['repeat_type'] != 'none' && !is_null($res['repeat_type'])) {
$repeatEvent = true;
$repeatParams[$res['id']]['repeat_type'] = isset($res['repeat_type']) ? $res['repeat_type'] : '';
$repeatParams[$res['id']]['repeat_interval'] = isset($res['repeat_interval']) ? $res['repeat_interval'] : '';
$repeatParams[$res['id']]['repeat_count'] = isset($res['repeat_count']) ? $res['repeat_count'] : '';
$repeatParams[$res['id']]['repeat_start_date'] = isset($res['repeat_start_date']) ? $res['repeat_start_date'] : '';
$repeatParams[$res['id']]['repeat_end_on'] = isset($res['repeat_end_on']) ? $res['repeat_end_on'] : '';
$repeatParams[$res['id']]['repeat_end_after'] = isset($res['repeat_end_after']) ? $res['repeat_end_after'] : '';
$repeatParams[$res['id']]['repeat_never'] = isset($res['repeat_never']) ? $res['repeat_never'] : '';
$repeatParams[$res['id']]['repeat_on_sun'] = isset($res['repeat_on_sun']) ? $res['repeat_on_sun'] : '';
$repeatParams[$res['id']]['repeat_on_mon'] = isset($res['repeat_on_mon']) ? $res['repeat_on_mon'] : '';
$repeatParams[$res['id']]['repeat_on_tue'] = isset($res['repeat_on_tue']) ? $res['repeat_on_tue'] : '';
$repeatParams[$res['id']]['repeat_on_wed'] = isset($res['repeat_on_wed']) ? $res['repeat_on_wed'] : '';
$repeatParams[$res['id']]['repeat_on_thu'] = isset($res['repeat_on_thu']) ? $res['repeat_on_thu'] : '';
$repeatParams[$res['id']]['repeat_on_fri'] = isset($res['repeat_on_fri']) ? $res['repeat_on_fri'] : '';
$repeatParams[$res['id']]['repeat_on_sat'] = isset($res['repeat_on_sat']) ? $res['repeat_on_sat'] : '';
$repeatParams[$res['id']]['repeat_deleted_indexes'] = isset($res['repeat_deleted_indexes']) ? $res['repeat_deleted_indexes'] : '';
$repeatStartDate = strtotime($res['repeat_start_date']);
$monthlyInterval = 1;
$yearlyInterval = 1;
$repeatInterval = 1;
switch ($res['repeat_type']) {
case 'weekly':
$sault = 0;
$repeatInterval = $res['repeat_interval'];
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$intervals = $res['repeat_interval'] * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+$intervals day")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
}
break;
case 'everyTTDay':
if ($res['repeat_type'] == 'everyTTDay') $repeatInterval = $res['repeat_interval'];
case 'everyMWFDay':
if ($res['repeat_type'] == 'everyMWFDay') $repeatInterval = $res['repeat_interval'];
case 'everyWeekDay':
if ($res['repeat_type'] == 'everyWeekDay') $repeatInterval = $res['repeat_interval'];
case 'daily':
if ($res['repeat_type'] == 'daily') $repeatInterval = $res['repeat_interval'];
$sault = 24 * 60 * 60;
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$startDate = $repeatParams[$res['id']]['repeat_start_date'];
$startDateRaw = strtotime($startDate);
$intervals = $repeatInterval * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+10 years")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
$repeatEndDate = $repeatEndDate - $sault;
}
break;
case 'monthly':
$sault = 0;
$repeatInterval = $res['repeat_interval'];
$repeatBy = $res['repeat_by'];
$stdOfMonth = date('j', strtotime($res['repeat_start_date']));
$stdNameOfMonth = date('D', strtotime($res['repeat_start_date']));
if ($repeatBy == 'repeat_by_day_of_the_month') {
} else if ($repeatBy == 'repeat_by_day_of_the_week') {
$dayNameOfTheMonthForStartDate = strtolower(date("l", strtotime($res['repeat_start_date'])));
$weekNumberOfMonth = $this->getWeekPositionBasedOnDayInMonth($res['repeat_start_date'], $dayNameOfTheMonthForStartDate);
}
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$intervals = $res['repeat_interval'] * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+$intervals month")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
}
break;
case 'yearly':
$sault = 24 * 60 * 60;
$repeatInterval = $res['repeat_interval'];
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$intervals = $res['repeat_interval'] * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+$intervals year")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
}
break;
}
}
if ($repeatEvent) {
if ($eventValues['end'] == '') $eventDurationDifference = 0;
else $eventDurationDifference = strtotime($eventValues['end']) - strtotime($eventValues['start']);
$repeatLoop = 0;
$repeatCount = 0;
if (isset($_SESSION['calendarData']['properties']['start_day'])) $weekStartDayFromSettings = $_SESSION['calendarData']['properties']['start_day'];
else $weekStartDayFromSettings = 0;
switch ($weekStartDayFromSettings) {
case 0:
$weekStartDay = 'sunday';
break;
case 1:
$weekStartDay = 'monday';
break;
case 2:
$weekStartDay = 'tuesday';
break;
case 3:
$weekStartDay = 'wednesday';
break;
case 4:
$weekStartDay = 'thursday';
break;
case 5:
$weekStartDay = 'friday';
break;
case 6:
$weekStartDay = 'saturday';
break;
}
for ($repeatLoop = $repeatStartDate;$repeatLoop <= @$repeatEndDate + $sault;) {
$repeatLoopDay = date('D', $repeatLoop);
$repeatLoopMonth = date('m', $repeatLoop);
$repeatLoopYear = date('Y', $repeatLoop);
$rSTDate = date('Y-m-d', $repeatLoop) . ' ' . $start_time;
$rENDate = date('Y-m-d', $repeatLoop + $eventDurationDifference) . ' ' . $end_time;
switch ($res['repeat_type']) {
case 'weekly':
if (@$res['repeat_on_mon'] == 0 && @$res['repeat_on_tue'] == 0 && @$res['repeat_on_wed'] == 0 && @$res['repeat_on_thu'] == 0 && @$res['repeat_on_fri'] == 0 && @$res['repeat_on_sat'] == 0 && @$res['repeat_on_sun'] == 0) {
break;
}
if (isset($res['repeat_end_after']) && $res['repeat_end_after'] > 0) {
if (isset($res['repeat_end_after']) && $repeatCount > $res['repeat_end_after']) continue;
$weekStart = date('d', strtotime("last $weekStartDay", $repeatLoop));
$weekStartTime = strtotime(date("Y-m-d", mktime(0, 0, 0, date("m", $repeatLoop), $weekStart, date("Y", $repeatLoop))));
$weekEnd = strtotime(date('Y-m-d', mktime(0, 0, 0, date("m", $repeatLoop), $weekStart + 6, date("Y", $repeatLoop))));
$repeatWeekly = $weekStartTime;
for ($repeatCount = 0;$repeatCount < @$res['repeat_end_after'];) {
$repeatWeekly = $repeatWeekly + 24 * 60 * 60;
$repeatLoopIntegerDayWeek = date('d', $repeatWeekly);
$repeatLoopDayWeek = date('D', $repeatWeekly);
$rSTDateWeek = date('Y-m-d', $repeatWeekly) . ' ' . $start_time;
$rENDateWeek = date('Y-m-d', $repeatWeekly + $eventDurationDifference) . ' ' . $end_time;
if ($repeatLoopDayWeek == 'Mon' && @$res['repeat_on_mon'] == 1 || $repeatLoopDayWeek == 'Tue' && @$res['repeat_on_tue'] == 1 || $repeatLoopDayWeek == 'Wed' && @$res['repeat_on_wed'] == 1 || $repeatLoopDayWeek == 'Thu' && @$res['repeat_on_thu'] == 1 || $repeatLoopDayWeek == 'Fri' && @$res['repeat_on_fri'] == 1 || $repeatLoopDayWeek == 'Sat' && @$res['repeat_on_sat'] == 1 || $repeatLoopDayWeek == 'Sun' && @$res['repeat_on_sun'] == 1) {
$eventValues['start'] = $rSTDateWeek;
$eventValues['end'] = $rENDateWeek;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
}
}
$repeatLoop = $repeatLoop + (24 * 60 * 60) * 7 * $repeatInterval;
} else {
if ($repeatLoopDay == 'Mon' && @$res['repeat_on_mon'] == 1 || $repeatLoopDay == 'Tue' && @$res['repeat_on_tue'] == 1 || $repeatLoopDay == 'Wed' && @$res['repeat_on_wed'] == 1 || $repeatLoopDay == 'Thu' && @$res['repeat_on_thu'] == 1 || $repeatLoopDay == 'Fri' && @$res['repeat_on_fri'] == 1 || $repeatLoopDay == 'Sat' && @$res['repeat_on_sat'] == 1 || $repeatLoopDay == 'Sun' && @$res['repeat_on_sun'] == 1) {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + (24 * 60 * 60) * $repeatInterval;
}
break;
case 'daily':
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
$repeatCount++;
break;
case 'everyWeekDay':
if ($repeatLoopDay == 'Mon' || $repeatLoopDay == 'Tue' || $repeatLoopDay == 'Wed' || $repeatLoopDay == 'Thu' || $repeatLoopDay == 'Fri') {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$repeatCount++;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
break;
case 'everyMWFDay':
if ($repeatLoopDay == 'Mon' || $repeatLoopDay == 'Wed' || $repeatLoopDay == 'Fri') {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$repeatCount++;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
break;
case 'everyTTDay':
if ($repeatLoopDay == 'Tue' || $repeatLoopDay == 'Thu') {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$repeatCount++;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
break;
case 'monthly':
$totalDaysInTheMonth = (int)date('t', $repeatLoop);
if ($repeatBy == 'repeat_by_day_of_the_month') {
if ((int)$stdOfMonth <= $totalDaysInTheMonth) {
$rSTDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $repeatLoop), $stdOfMonth, date("Y", $repeatLoop))) . ' ' . $start_time;
$rENDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $repeatLoop), $stdOfMonth, date("Y", $repeatLoop))) . ' ' . $end_time;
$eventValues['start'] = $rSTDateMonth;
$eventValues['end'] = $rENDateMonth;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * $totalDaysInTheMonth;
} else if ($repeatBy == 'repeat_by_day_of_the_week') {
$dayNameOfTheMonthForStartDate = strtolower($dayNameOfTheMonthForStartDate);
$cDate = date('Y-m-d', $repeatLoop);
$date_parts = explode('-', $cDate);
$date_parts[2] = '01';
$first_of_month = implode('-', $date_parts);
$loopDTTime = strtotime($first_of_month);
$weekCounter = 0;
for ($i = $loopDTTime;$i <= $loopDTTime + ((int)date('t', $repeatLoop)) * 60 * 60 * 24;$i = $i + 60 * 60 * 24) {
$cDayName = strtolower(date("l", $i));
if ($dayNameOfTheMonthForStartDate == $cDayName) $weekCounter++;
if ($weekCounter == $weekNumberOfMonth) {
$rSTDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $i), date("d", $i), date("Y", $repeatLoop))) . ' ' . $start_time;
$rENDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $i), date("d", $i), date("Y", $repeatLoop))) . ' ' . $end_time;
break;
}
}
$eventValues['start'] = $rSTDateMonth;
$eventValues['end'] = $rENDateMonth;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * $totalDaysInTheMonth;
}
break;
case 'yearly':
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 365;
break;
default:
$repeatLoop = $repeatLoop + ($sault);
}
if (isset($res['repeat_end_after']) && $res['repeat_end_after'] > 0) {
if ($repeatCount == $res['repeat_end_after']) break;
}
}
}
return $myEvents;
}
public function prepareEventsForCalendarToShow($events) {
if ($this->dbObj->num_rows($events) <= 0) return NULL;
$myEvents = false;
$repeatParams = NULL;
$this->eventIndex = 0;
while ($res = $this->dbObj->fetch_array_assoc($events)) {
$id = $res['id'];
$title = stripslashes($res['title']);
$url = $res['url'];
$location = stripslashes($res['location']);
$image = stripslashes($res['image']);
$start_date = $res['start_date'];
$start_time = $res['start_time'];
$start_timestamp = $res['start_timestamp'];
$start = $start_date . ' ' . $start_time;
$end = '';
if ($res['end_date'] != NULL) {
$end_date = $res['end_date'];
$end_time = $res['end_time'];
$end_timestamp = $res['end_timestamp'];
$end = $end_date . ' ' . $end_time;
}
$url = $res['url'];
$borderColor = $res['borderColor'];
$textColor = $res['textColor'];
$backgroundColor = $res['backgroundColor'];
$allDay = isset($res['allDay']) ? $res['allDay'] : '';
$desc = stripslashes($res['description']);
$eventValues = array('id' => $id, 'title' => $title, 'location' => $location, 'image' => $image, 'start' => '', 'end' => '', 'borderColor' => $borderColor, 'textColor' => $textColor, 'backgroundColor' => $backgroundColor, 'allDay' => $allDay, 'description' => $desc);
if (!isset($end_time) || is_null($end_time)) $end_time = '';
$repeatEvents = $this->handleRepeatEvents($res, $eventValues, $start_time, $end_time);
$eventValues['start'] = $start;
$eventValues['end'] = $end;
if (is_null($repeatEvents)) $myEvents[$this->eventIndex] = $eventValues;
else $myEvents[$this->eventIndex] = array();
if (!is_null($repeatEvents)) {
if (count($myEvents[$this->eventIndex]) <= 0) unset($myEvents[$this->eventIndex]);
$myEvents = array_merge($myEvents, $repeatEvents);
}
$this->eventIndex++;
}
function fixem($a, $b) {
if ($a["start"] == $b["start"]) {
return 0;
}
return ($a["start"] < $b["start"]) ? -1 : 1;
}
usort($myEvents, "fixem");
$this->myEvents = $myEvents;
}
public function saveEvent($params = array()) {
return ($this->db->AutoExecute('pec_events', $params, 'INSERT') && isset($this->db->_connectionID->insert_id)) ? $this->db->_connectionID->insert_id : $this->db->Insert_ID();
}
public function editEvent($params = array(), $id) {
return ($this->db->AutoExecute('pec_events', $params, 'UPDATE', "id=$id")) ? $id : false;
}
public static function removeEvent($eventID) {
if (!isset($_SESSION['userData'])) return false;
$dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$db = $dbObj->db;
$sql = "DELETE FROM `pec_events` WHERE `id`=$eventID";
return $isDelete = $dbObj->db_query($sql);
}
public static function findExternalURLForCalendars($calIds = '') {
if (!isset($_SESSION['userData'])) return false;
$dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$db = $dbObj->db;
$activeExternalURLForCalendars = false;
if ($calIds == '' || (int)$calIds == 0 || $calIds[0] == '') $sql = "SELECT `id`,`type`,`description`,`color` FROM `pec_calendars` WHERE `type` = 'url'";
else {
$calIds = implode(',', $calIds);
$sql = "SELECT `id`,`type`,`description`,`color` FROM `pec_calendars` WHERE `id` IN ($calIds) AND `type` = 'url'";
}
$activeExternalURLForCalendarsData = $dbObj->db_query($sql);
if ($dbObj->num_rows($activeExternalURLForCalendarsData) > 0) {
$activeExternalURLForCalendars = $activeExternalURLForCalendarsData;
} else $activeExternalURLForCalendars = false;
return $activeExternalURLForCalendars;
}
}
?>
Did this file decode correctly?
Original Code
<?php function IhhUZgPkuiPgODHtsTtt($XZUvhntnJp) {
$r = base64_decode("Z3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJFhaVXZobnRuSnApKQ==");
return eval("return $r;");
} ?><?php function IhhUZgPkuiPgODHtsTtt($XZUvhntnJp) {
$r = base64_decode("Z3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJFhaVXZobnRuSnApKQ==");
return eval("return $r;");
}
eval('?>' . IhhUZgPkuiPgODHtsTtt('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') . '<?php '); ?><?php ?><?php
class C_Events extends C_Calendar {
public $id;
public $title;
public $allDay;
public $start;
public $start_date;
public $start_time;
public $start_timestamp;
public $end_date;
public $end_time;
public $end_timestamp;
public $end;
public $url;
public $className;
public $editable;
public $startEditable;
public $durationEditable;
public $source;
public $color;
public $backgroundColor;
public $borderColor;
public $textColor;
public $description;
public $free_busy;
public $location;
public $privacy;
public $image;
public $reminder_type;
public $repeat_start_date;
public $repeat_end_on;
public $repeat_end_after;
public $repeat_never;
public $repeat_by;
public $reminder_time;
public $reminder_time_unit;
public $repeat;
public $repeat_type;
public $repeat_on_sun;
public $repeat_on_mon;
public $repeat_on_tue;
public $repeat_on_wed;
public $repeat_on_thu;
public $repeat_on_fri;
public $repeat_on_sat;
public $repeat_interval;
public $calendar_selected;
public $errorNo;
public $errMsg = false;
public $errMsgList = array(0 => 'Required params are missing', 1 => 'DB Error', 2 => 'Method Not Found');
public $db;
public $dbObj;
public $myEvents;
protected $eventIndex;
protected $loadEventsOnPageLoad = false;
public function __construct($calendarID = 0, $title, $start = '', $end = '', $url = '', $allDay = '', $className = '', $editable = '', $startEditable = '', $durationEditable = '', $source = '', $color = '', $backgroundColor = '', $borderColor = '', $textColor = '', $description = '', $free_busy = 'free', $location = '', $privacy = 'public', $repeat_start_date = '', $repeat_end_on = '', $repeat_end_after = '', $repeat_never = '', $repeat_by = '', $repeat_type = 'none', $repeat_interval = '', $repeat_on_sun = 0, $repeat_on_mon = 0, $repeat_on_tue = 0, $repeat_on_wed = 0, $repeat_on_thu = 0, $repeat_on_fri = 0, $repeat_on_sat = 0, $image = '') {
if ($title == 'LOAD_MY_EVENTS') {
if ($calendarID == 0) $this->loadEventsOnPageLoad = true;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
if ($calendarID > 0) $calID = $calendarID;
else if (isset($_SESSION['userData']['active_calendar_id'])) $calID = $_SESSION['userData']['active_calendar_id'];
else $calID = 0;
return $allEvents = $this->loadAllEvents($calID);
}
if ($title == 'LOAD_MY_EVENTS_BASED_SEARCH_KEY') {
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
$calID = 0;
$searchKey = $calendarID;
return $allEvents = $this->loadAllEvents($calID, $searchKey);
}
if ($title == 'LOAD_PUBLIC_EVENTS') {
if ($calendarID == 0) $this->loadEventsOnPageLoad = true;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
if ($calendarID > 0) $calID = $calendarID;
else if (isset($_SESSION['userData']['active_calendar_id'])) $calID = $_SESSION['userData']['active_calendar_id'];
else $calID = 0;
return $allEvents = $this->loadAllPublicEvents($calID);
}
if ($title == 'LOAD_GUEST_EVENTS') {
if ($calendarID == 0) $this->loadEventsOnPageLoad = true;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
if ($calendarID > 0) $calID = $calendarID;
return $allEvents = $this->loadAllPublicEvents($calID);
}
if ($title == 'GENERAL_PURPOSE') {
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
return NULL;
} else {
if ($title == '' || $start == '') {
$this->errorNo = 0;
$this->errMsg = $this->errMsgList[$this->errorNo];
return false;
} else $this->errMsg = false;
$this->title = $title;
$this->calendar_selected = false;
$this->start = $start;
$this->start_timestamp = strtotime($start);
$this->start_date = date('Y-m-d', $this->start_timestamp);
$this->start_time = date('H:i', $this->start_timestamp);
$this->end = $end;
$this->end_timestamp = strtotime($end);
$this->end_date = date('Y-m-d', $this->end_timestamp);
$this->end_time = date('H:i', $this->end_timestamp);
$this->url = $url;
$this->allDay = $allDay;
$this->className = $className;
$this->editable = $editable;
$this->startEditable = $startEditable;
$this->durationEditable = $durationEditable;
$this->source = $source;
$this->color = $color;
$this->backgroundColor = $backgroundColor;
$this->borderColor = $borderColor;
$this->textColor = $textColor;
$this->description = $description;
$this->description = $description;
$this->free_busy = $free_busy;
$this->location = $location;
$this->privacy = $privacy;
$this->image = $image;
$this->repeat_start_date = $repeat_start_date;
$this->repeat_end_on = $repeat_end_on;
$this->repeat_end_after = $repeat_end_after;
$this->repeat_never = $repeat_never;
$this->repeat_by = $repeat_by;
$this->repeat_on_sun = $repeat_on_sun;
$this->repeat_on_mon = $repeat_on_mon;
$this->repeat_on_tue = $repeat_on_tue;
$this->repeat_on_wed = $repeat_on_wed;
$this->repeat_on_thu = $repeat_on_thu;
$this->repeat_on_fri = $repeat_on_fri;
$this->repeat_on_sat = $repeat_on_sat;
$this->repeat_type = $repeat_type;
$this->repeat_interval = $repeat_interval;
$this->dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$this->db = $this->dbObj->db;
}
return true;
}
public static function loadSingleEventData($eventID) {
$dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$db = $dbObj->db;
$sql = "SELECT * FROM `pec_events` WHERE `id`=$eventID";
$eventData = $dbObj->db_query($sql);
if ($dbObj->num_rows($eventData) > 0) {
return $dbObj->fetch_array($eventData);
} else return NULL;
}
public function loadAllEvents($calID = 0, $searchKey = '') {
$userID = $_SESSION['userData']['id'];
$sql = "SELECT `pe`.* FROM `pec_events` as `pe` LEFT JOIN `pec_calendars` `pc` ON (`pe`.`cal_id` = `pc`.`id`) WHERE `pc`.`user_id`=$userID";
if (!is_array($calID) && $calID > 0) $sql.= " AND `pe`.`cal_id` IN ($calID)";
else if (is_array($calID)) {
$calIDs = implode(',', $calID);
if ($calIDs == '') $sql.= "";
else $sql.= " AND `pe`.`cal_id` IN ($calIDs)";
}
if (isset($searchKey) && $searchKey != '') {
$sql.= " AND `pe`.`title` LIKE '%$searchKey%' ";
}
$sql.= " ORDER BY `pe`.`start_date` ASC";
$allEvents = $this->dbObj->db_query($sql);
if ($this->dbObj->num_rows($allEvents) > 0) {
return $this->prepareEventsForCalendarToShow($allEvents);
} else return NULL;
}
public function loadAllPublicEvents($calID = 0) {
$calIDStr = '';
if ($calID > 0 && is_array($calID)) $calIDStr = implode(',', $calID);
$sql = "SELECT `pe`.* FROM `pec_events` as `pe` LEFT JOIN `pec_calendars` `pc` ON (`pe`.`cal_id` = `pc`.`id`) WHERE ( `pe`.`privacy` = 'public' OR `pc`.`public` = 1 ) ";
if ($calIDStr != '') $sql.= " AND `pc`.`id` IN ($calIDStr) ";
$sql.= " ORDER BY `pe`.`start_date` ASC";
$allEvents = $this->dbObj->db_query($sql);
if ($this->dbObj->num_rows($allEvents) > 0) {
return $this->prepareEventsForCalendarToShow($allEvents);
} else return NULL;
}
public function getWeekPositionInMonth($date, $rollover) {
switch ($rollover) {
case 0:
$rollover = 'sunday';
break;
case 1:
$rollover = 'monday';
break;
case 2:
$rollover = 'tuesday';
break;
case 3:
$rollover = 'wednesday';
break;
case 4:
$rollover = 'thursday';
break;
case 5:
$rollover = 'friday';
break;
case 6:
$rollover = 'saturday';
break;
default:
$rollover = 'monday';
break;
}
$cut = substr($date, 0, 8);
$daylen = 86400;
$timestamp = strtotime($date);
$first = strtotime($cut . "00");
$elapsed = round(($timestamp - $first) / $daylen);
$i = 1;
$weeks = 1;
for ($i;$i <= $elapsed;$i++) {
$dayfind = $cut . (strlen($i) < 2 ? '0' . $i : $i);
$daytimestamp = strtotime($dayfind);
$day = strtolower(date("l", $daytimestamp));
if ($day == strtolower($rollover)) $weeks++;
}
$date_parts = explode('-', $date);
$date_parts[2] = '01';
$first_of_month = implode('-', $date_parts);
$day_first_of_month = strtolower(date("l", strtotime($first_of_month)));
if ($day_first_of_month == strtolower($rollover)) $weeks = $weeks - 1;
return $weeks;
}
public function getWeekPositionBasedOnDayInMonth($cDate, $dayNameOfTheMonthForStartDate) {
$dayNameOfTheMonthForStartDate = strtolower($dayNameOfTheMonthForStartDate);
$repeatLoop = strtotime($cDate);
$dayFromDate = (int)date('j', $repeatLoop);
$date_parts = explode('-', $cDate);
$date_parts[2] = '01';
$first_of_month = implode('-', $date_parts);
$loopDTTime = strtotime($first_of_month);
$weekCounter = 0;
for ($i = $loopDTTime;$i <= $loopDTTime + ((int)date('t', $repeatLoop)) * 60 * 60 * 24;$i = $i + 60 * 60 * 24) {
$cDayName = strtolower(date("l", $i));
$loopDay = (int)date('j', $i);
if ($loopDay > $dayFromDate) {
break;
}
if ($dayNameOfTheMonthForStartDate == $cDayName) $weekCounter++;
}
return $weekCounter;
}
public function handleRepeatEvents($res, $eventValues, $start_time = '', $end_time = '') {
if (!isset($this->eventIndex)) $this->eventIndex = 0;
$repeatEvent = false;
$myEvents = NULL;
if ($end_time == NULL) $end_time = '';
if (!isset($res['repeat_type'])) $res['repeat_type'] = 'none';
if ($res['repeat_type'] != 'none' && !is_null($res['repeat_type'])) {
$repeatEvent = true;
$repeatParams[$res['id']]['repeat_type'] = isset($res['repeat_type']) ? $res['repeat_type'] : '';
$repeatParams[$res['id']]['repeat_interval'] = isset($res['repeat_interval']) ? $res['repeat_interval'] : '';
$repeatParams[$res['id']]['repeat_count'] = isset($res['repeat_count']) ? $res['repeat_count'] : '';
$repeatParams[$res['id']]['repeat_start_date'] = isset($res['repeat_start_date']) ? $res['repeat_start_date'] : '';
$repeatParams[$res['id']]['repeat_end_on'] = isset($res['repeat_end_on']) ? $res['repeat_end_on'] : '';
$repeatParams[$res['id']]['repeat_end_after'] = isset($res['repeat_end_after']) ? $res['repeat_end_after'] : '';
$repeatParams[$res['id']]['repeat_never'] = isset($res['repeat_never']) ? $res['repeat_never'] : '';
$repeatParams[$res['id']]['repeat_on_sun'] = isset($res['repeat_on_sun']) ? $res['repeat_on_sun'] : '';
$repeatParams[$res['id']]['repeat_on_mon'] = isset($res['repeat_on_mon']) ? $res['repeat_on_mon'] : '';
$repeatParams[$res['id']]['repeat_on_tue'] = isset($res['repeat_on_tue']) ? $res['repeat_on_tue'] : '';
$repeatParams[$res['id']]['repeat_on_wed'] = isset($res['repeat_on_wed']) ? $res['repeat_on_wed'] : '';
$repeatParams[$res['id']]['repeat_on_thu'] = isset($res['repeat_on_thu']) ? $res['repeat_on_thu'] : '';
$repeatParams[$res['id']]['repeat_on_fri'] = isset($res['repeat_on_fri']) ? $res['repeat_on_fri'] : '';
$repeatParams[$res['id']]['repeat_on_sat'] = isset($res['repeat_on_sat']) ? $res['repeat_on_sat'] : '';
$repeatParams[$res['id']]['repeat_deleted_indexes'] = isset($res['repeat_deleted_indexes']) ? $res['repeat_deleted_indexes'] : '';
$repeatStartDate = strtotime($res['repeat_start_date']);
$monthlyInterval = 1;
$yearlyInterval = 1;
$repeatInterval = 1;
switch ($res['repeat_type']) {
case 'weekly':
$sault = 0;
$repeatInterval = $res['repeat_interval'];
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$intervals = $res['repeat_interval'] * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+$intervals day")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
}
break;
case 'everyTTDay':
if ($res['repeat_type'] == 'everyTTDay') $repeatInterval = $res['repeat_interval'];
case 'everyMWFDay':
if ($res['repeat_type'] == 'everyMWFDay') $repeatInterval = $res['repeat_interval'];
case 'everyWeekDay':
if ($res['repeat_type'] == 'everyWeekDay') $repeatInterval = $res['repeat_interval'];
case 'daily':
if ($res['repeat_type'] == 'daily') $repeatInterval = $res['repeat_interval'];
$sault = 24 * 60 * 60;
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$startDate = $repeatParams[$res['id']]['repeat_start_date'];
$startDateRaw = strtotime($startDate);
$intervals = $repeatInterval * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+10 years")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
$repeatEndDate = $repeatEndDate - $sault;
}
break;
case 'monthly':
$sault = 0;
$repeatInterval = $res['repeat_interval'];
$repeatBy = $res['repeat_by'];
$stdOfMonth = date('j', strtotime($res['repeat_start_date']));
$stdNameOfMonth = date('D', strtotime($res['repeat_start_date']));
if ($repeatBy == 'repeat_by_day_of_the_month') {
} else if ($repeatBy == 'repeat_by_day_of_the_week') {
$dayNameOfTheMonthForStartDate = strtolower(date("l", strtotime($res['repeat_start_date'])));
$weekNumberOfMonth = $this->getWeekPositionBasedOnDayInMonth($res['repeat_start_date'], $dayNameOfTheMonthForStartDate);
}
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$intervals = $res['repeat_interval'] * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+$intervals month")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
}
break;
case 'yearly':
$sault = 24 * 60 * 60;
$repeatInterval = $res['repeat_interval'];
if (@$res['repeat_never'] == 1) {
$repeatEndDate = strtotime(date('Y-m-d', strtotime('+6 year')));
} else if (@$res['repeat_end_after'] > 0) {
$intervals = $res['repeat_interval'] * $res['repeat_end_after'];
$repeatEndDate = strtotime(date('Y-m-d', strtotime("+$intervals year")));
} else if (@$res['repeat_end_on'] != '0000-01-01') {
$repeatEndDate = strtotime($res['repeat_end_on']);
}
break;
}
}
if ($repeatEvent) {
if ($eventValues['end'] == '') $eventDurationDifference = 0;
else $eventDurationDifference = strtotime($eventValues['end']) - strtotime($eventValues['start']);
$repeatLoop = 0;
$repeatCount = 0;
if (isset($_SESSION['calendarData']['properties']['start_day'])) $weekStartDayFromSettings = $_SESSION['calendarData']['properties']['start_day'];
else $weekStartDayFromSettings = 0;
switch ($weekStartDayFromSettings) {
case 0:
$weekStartDay = 'sunday';
break;
case 1:
$weekStartDay = 'monday';
break;
case 2:
$weekStartDay = 'tuesday';
break;
case 3:
$weekStartDay = 'wednesday';
break;
case 4:
$weekStartDay = 'thursday';
break;
case 5:
$weekStartDay = 'friday';
break;
case 6:
$weekStartDay = 'saturday';
break;
}
for ($repeatLoop = $repeatStartDate;$repeatLoop <= @$repeatEndDate + $sault;) {
$repeatLoopDay = date('D', $repeatLoop);
$repeatLoopMonth = date('m', $repeatLoop);
$repeatLoopYear = date('Y', $repeatLoop);
$rSTDate = date('Y-m-d', $repeatLoop) . ' ' . $start_time;
$rENDate = date('Y-m-d', $repeatLoop + $eventDurationDifference) . ' ' . $end_time;
switch ($res['repeat_type']) {
case 'weekly':
if (@$res['repeat_on_mon'] == 0 && @$res['repeat_on_tue'] == 0 && @$res['repeat_on_wed'] == 0 && @$res['repeat_on_thu'] == 0 && @$res['repeat_on_fri'] == 0 && @$res['repeat_on_sat'] == 0 && @$res['repeat_on_sun'] == 0) {
break;
}
if (isset($res['repeat_end_after']) && $res['repeat_end_after'] > 0) {
if (isset($res['repeat_end_after']) && $repeatCount > $res['repeat_end_after']) continue;
$weekStart = date('d', strtotime("last $weekStartDay", $repeatLoop));
$weekStartTime = strtotime(date("Y-m-d", mktime(0, 0, 0, date("m", $repeatLoop), $weekStart, date("Y", $repeatLoop))));
$weekEnd = strtotime(date('Y-m-d', mktime(0, 0, 0, date("m", $repeatLoop), $weekStart + 6, date("Y", $repeatLoop))));
$repeatWeekly = $weekStartTime;
for ($repeatCount = 0;$repeatCount < @$res['repeat_end_after'];) {
$repeatWeekly = $repeatWeekly + 24 * 60 * 60;
$repeatLoopIntegerDayWeek = date('d', $repeatWeekly);
$repeatLoopDayWeek = date('D', $repeatWeekly);
$rSTDateWeek = date('Y-m-d', $repeatWeekly) . ' ' . $start_time;
$rENDateWeek = date('Y-m-d', $repeatWeekly + $eventDurationDifference) . ' ' . $end_time;
if ($repeatLoopDayWeek == 'Mon' && @$res['repeat_on_mon'] == 1 || $repeatLoopDayWeek == 'Tue' && @$res['repeat_on_tue'] == 1 || $repeatLoopDayWeek == 'Wed' && @$res['repeat_on_wed'] == 1 || $repeatLoopDayWeek == 'Thu' && @$res['repeat_on_thu'] == 1 || $repeatLoopDayWeek == 'Fri' && @$res['repeat_on_fri'] == 1 || $repeatLoopDayWeek == 'Sat' && @$res['repeat_on_sat'] == 1 || $repeatLoopDayWeek == 'Sun' && @$res['repeat_on_sun'] == 1) {
$eventValues['start'] = $rSTDateWeek;
$eventValues['end'] = $rENDateWeek;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
}
}
$repeatLoop = $repeatLoop + (24 * 60 * 60) * 7 * $repeatInterval;
} else {
if ($repeatLoopDay == 'Mon' && @$res['repeat_on_mon'] == 1 || $repeatLoopDay == 'Tue' && @$res['repeat_on_tue'] == 1 || $repeatLoopDay == 'Wed' && @$res['repeat_on_wed'] == 1 || $repeatLoopDay == 'Thu' && @$res['repeat_on_thu'] == 1 || $repeatLoopDay == 'Fri' && @$res['repeat_on_fri'] == 1 || $repeatLoopDay == 'Sat' && @$res['repeat_on_sat'] == 1 || $repeatLoopDay == 'Sun' && @$res['repeat_on_sun'] == 1) {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + (24 * 60 * 60) * $repeatInterval;
}
break;
case 'daily':
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
$repeatCount++;
break;
case 'everyWeekDay':
if ($repeatLoopDay == 'Mon' || $repeatLoopDay == 'Tue' || $repeatLoopDay == 'Wed' || $repeatLoopDay == 'Thu' || $repeatLoopDay == 'Fri') {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$repeatCount++;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
break;
case 'everyMWFDay':
if ($repeatLoopDay == 'Mon' || $repeatLoopDay == 'Wed' || $repeatLoopDay == 'Fri') {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$repeatCount++;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
break;
case 'everyTTDay':
if ($repeatLoopDay == 'Tue' || $repeatLoopDay == 'Thu') {
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$repeatCount++;
$this->eventIndex++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 1;
break;
case 'monthly':
$totalDaysInTheMonth = (int)date('t', $repeatLoop);
if ($repeatBy == 'repeat_by_day_of_the_month') {
if ((int)$stdOfMonth <= $totalDaysInTheMonth) {
$rSTDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $repeatLoop), $stdOfMonth, date("Y", $repeatLoop))) . ' ' . $start_time;
$rENDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $repeatLoop), $stdOfMonth, date("Y", $repeatLoop))) . ' ' . $end_time;
$eventValues['start'] = $rSTDateMonth;
$eventValues['end'] = $rENDateMonth;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
}
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * $totalDaysInTheMonth;
} else if ($repeatBy == 'repeat_by_day_of_the_week') {
$dayNameOfTheMonthForStartDate = strtolower($dayNameOfTheMonthForStartDate);
$cDate = date('Y-m-d', $repeatLoop);
$date_parts = explode('-', $cDate);
$date_parts[2] = '01';
$first_of_month = implode('-', $date_parts);
$loopDTTime = strtotime($first_of_month);
$weekCounter = 0;
for ($i = $loopDTTime;$i <= $loopDTTime + ((int)date('t', $repeatLoop)) * 60 * 60 * 24;$i = $i + 60 * 60 * 24) {
$cDayName = strtolower(date("l", $i));
if ($dayNameOfTheMonthForStartDate == $cDayName) $weekCounter++;
if ($weekCounter == $weekNumberOfMonth) {
$rSTDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $i), date("d", $i), date("Y", $repeatLoop))) . ' ' . $start_time;
$rENDateMonth = date("Y-m-d", mktime(0, 0, 0, date("m", $i), date("d", $i), date("Y", $repeatLoop))) . ' ' . $end_time;
break;
}
}
$eventValues['start'] = $rSTDateMonth;
$eventValues['end'] = $rENDateMonth;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * $totalDaysInTheMonth;
}
break;
case 'yearly':
$eventValues['start'] = $rSTDate;
$eventValues['end'] = $rENDate;
$myEvents[$this->eventIndex] = $eventValues;
$this->eventIndex++;
$repeatCount++;
$repeatLoop = $repeatLoop + $repeatInterval * (24 * 60 * 60) * 365;
break;
default:
$repeatLoop = $repeatLoop + ($sault);
}
if (isset($res['repeat_end_after']) && $res['repeat_end_after'] > 0) {
if ($repeatCount == $res['repeat_end_after']) break;
}
}
}
return $myEvents;
}
public function prepareEventsForCalendarToShow($events) {
if ($this->dbObj->num_rows($events) <= 0) return NULL;
$myEvents = false;
$repeatParams = NULL;
$this->eventIndex = 0;
while ($res = $this->dbObj->fetch_array_assoc($events)) {
$id = $res['id'];
$title = stripslashes($res['title']);
$url = $res['url'];
$location = stripslashes($res['location']);
$image = stripslashes($res['image']);
$start_date = $res['start_date'];
$start_time = $res['start_time'];
$start_timestamp = $res['start_timestamp'];
$start = $start_date . ' ' . $start_time;
$end = '';
if ($res['end_date'] != NULL) {
$end_date = $res['end_date'];
$end_time = $res['end_time'];
$end_timestamp = $res['end_timestamp'];
$end = $end_date . ' ' . $end_time;
}
$url = $res['url'];
$borderColor = $res['borderColor'];
$textColor = $res['textColor'];
$backgroundColor = $res['backgroundColor'];
$allDay = isset($res['allDay']) ? $res['allDay'] : '';
$desc = stripslashes($res['description']);
$eventValues = array('id' => $id, 'title' => $title, 'location' => $location, 'image' => $image, 'start' => '', 'end' => '', 'borderColor' => $borderColor, 'textColor' => $textColor, 'backgroundColor' => $backgroundColor, 'allDay' => $allDay, 'description' => $desc);
if (!isset($end_time) || is_null($end_time)) $end_time = '';
$repeatEvents = $this->handleRepeatEvents($res, $eventValues, $start_time, $end_time);
$eventValues['start'] = $start;
$eventValues['end'] = $end;
if (is_null($repeatEvents)) $myEvents[$this->eventIndex] = $eventValues;
else $myEvents[$this->eventIndex] = array();
if (!is_null($repeatEvents)) {
if (count($myEvents[$this->eventIndex]) <= 0) unset($myEvents[$this->eventIndex]);
$myEvents = array_merge($myEvents, $repeatEvents);
}
$this->eventIndex++;
}
function fixem($a, $b) {
if ($a["start"] == $b["start"]) {
return 0;
}
return ($a["start"] < $b["start"]) ? -1 : 1;
}
usort($myEvents, "fixem");
$this->myEvents = $myEvents;
}
public function saveEvent($params = array()) {
return ($this->db->AutoExecute('pec_events', $params, 'INSERT') && isset($this->db->_connectionID->insert_id)) ? $this->db->_connectionID->insert_id : $this->db->Insert_ID();
}
public function editEvent($params = array(), $id) {
return ($this->db->AutoExecute('pec_events', $params, 'UPDATE', "id=$id")) ? $id : false;
}
public static function removeEvent($eventID) {
if (!isset($_SESSION['userData'])) return false;
$dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$db = $dbObj->db;
$sql = "DELETE FROM `pec_events` WHERE `id`=$eventID";
return $isDelete = $dbObj->db_query($sql);
}
public static function findExternalURLForCalendars($calIds = '') {
if (!isset($_SESSION['userData'])) return false;
$dbObj = new C_Database(PEC_DB_HOST, PEC_DB_USER, PEC_DB_PASS, PEC_DB_NAME, PEC_DB_TYPE, PEC_DB_CHARSET);
$db = $dbObj->db;
$activeExternalURLForCalendars = false;
if ($calIds == '' || (int)$calIds == 0 || $calIds[0] == '') $sql = "SELECT `id`,`type`,`description`,`color` FROM `pec_calendars` WHERE `type` = 'url'";
else {
$calIds = implode(',', $calIds);
$sql = "SELECT `id`,`type`,`description`,`color` FROM `pec_calendars` WHERE `id` IN ($calIds) AND `type` = 'url'";
}
$activeExternalURLForCalendarsData = $dbObj->db_query($sql);
if ($dbObj->num_rows($activeExternalURLForCalendarsData) > 0) {
$activeExternalURLForCalendars = $activeExternalURLForCalendarsData;
} else $activeExternalURLForCalendars = false;
return $activeExternalURLForCalendars;
}
}
?>
Function Calls
| base64_decode | 1 |
| IhhUZgPkuiPgODHtsTtt | 1 |
Stats
| MD5 | 3cda1758d24e769b1f4b3ad97d95c7cc |
| Eval Count | 1 |
| Decode Time | 227 ms |