$sql= "DELETE FROM scSchedulers WHERE id='$scheduler_id'";
$this->query($sql);
$sql = "DELETE FROM scSubscribed WHERE scheduler_id='$scheduler_id'";
$this->query($sql);
}
function update_scheduler($scheduler_id, $name, $start_hour, $end_hour)
{
$name = htmlentities($name);
$sql = "UPDATE scSchedulers SET name='".smart_addslashes($name)."', start_hour='$start_hour', end_hour='$end_hour' WHERE id='$scheduler_id'";
return $this->query($sql);
}
function get_scheduler($scheduler_id)
{
$sql = "SELECT * FROM scSchedulers WHERE id='$scheduler_id'";
$this->query($sql);
if ($this->next_record())
{
return $this->Record;
}else
{
return false;
}
}
function get_scheduler_by_name($name)
{
$sql = "SELECT * FROM scSchedulers WHERE name='".smart_addslashes($name)."'";
$this->query($sql);
if ($this->next_record())
{
return $this->Record;
}else
{
return false;
}
}
function get_subscribed($user_id)
{
$sql = "SELECT scSchedulers.* FROM scSchedulers LEFT JOIN scSubscribed ON (scSubscribed.scheduler_id=scSchedulers.id) WHERE scSubscribed.user_id='$user_id' ORDER BY name ASC";
$this->query($sql);
return $this->num_rows();
}
function get_schedulers()
{
$sql = "SELECT * FROM scSchedulers ORDER BY name ASC";
$this->query($sql);
return $this->num_rows();
}
function get_authorized_schedulers($user_id)
{
$sql = "SELECT scSchedulers.* FROM scSchedulers, acl, users_groups WHERE (".
"scSchedulers.acl_read = acl.acl_id OR scSchedulers.acl_write = acl.acl_id".
") AND ( ( acl.group_id = users_groups.group_id AND users_groups.user_id = ".$user_id." AND acl.user_id = 0 ) OR (".
"acl.group_id = 0 AND acl.user_id = ".$user_id." ) ) GROUP BY scSchedulers.id ORDER BY scSchedulers.name ASC";
$this->query($sql);
return $this->num_rows();
}
function set_event_status($event_id, $status, $email)
{
$sql = "UPDATE scParticipants SET status='$status' WHERE email='".smart_addslashes($email)."' AND event_id='$event_id'";
return $this->query($sql);
}
function get_event_status($event_id, $email)
{
$sql = "SELECT status FROM scParticipants WHERE email='".smart_addslashes($email)."' AND event_id='$event_id'";
function is_reminded($user_id, $event_id, $occurence)
{
if ($this->query("SELECT * FROM scReminded WHERE user_id='$user_id' AND event_id='$event_id' AND occurence>='$occurence'"))
{
return $this->next_record();
}
return false;
}
function get_events($scheduler_id, $day, $month, $year, $weekday)
{
$month_time = ceil($day/7);
if (strlen($month) == 1) $month='0'.$month;
if (strlen($day) == 1) $day='0'.$day;
$fetch_date = $year.'-'.$month.'-'.$day;
switch ($weekday)
{
case 0:
$weekday = 'sunday';
break;
case 1:
$weekday = 'monday';
break;
case 2:
$weekday = 'tuesday';
break;
case 3:
$weekday = 'wednesday';
break;
case 4:
$weekday = 'thursday';
break;
case 5:
$weekday = 'friday';
break;
case 6:
$weekday = 'saturday';
break;
}
$sql = "SELECT scEvents.* FROM scEvents LEFT JOIN scEventsSchedulers ON (scEvents.id=scEventsSchedulers.event_id) WHERE ".
"((scEvents.start_date<='$fetch_date' AND scEvents.end_date>='$fetch_date' AND scEvents.type='once') OR".
"(scEvents.start_date<='0000-00-$day' AND scEvents.end_date>='0000-00-$day' AND scEvents.type='month_date') OR ".
"(scEvents.type='daily') OR ".
"($weekday='1' AND scEvents.type='weekly') OR ".
"($weekday='1' AND scEvents.type='month_day' AND scEvents.month_time='$month_time') OR ".
"(scEvents.start_date<='0000-$month-$day' AND scEvents.end_date>='0000-$month-$day' AND scEvents.type='yearly')) ".
"AND (scEvents.ending_date='0000-00-00' OR noend='1' OR scEvents.ending_date >= '$fetch_date') AND (scEvents.starting_date='0000-00-00' OR scEvents.starting_date <= '$fetch_date') AND scEventsSchedulers.scheduler_id='$scheduler_id' ORDER BY scEvents.start_hour AND scEvents.start_min ASC";
$this->query($sql);
return $this->num_rows();
}
function get_all_events($scheduler_id)
{
$sql = "SELECT scEvents.* FROM scEvents LEFT JOIN scEventsSchedulers ON (scEvents.id=scEventsSchedulers.event_id) WHERE scEventsSchedulers.scheduler_id='$scheduler_id'";
$this->query($sql);
return $this->num_rows();
}
//never tested or used
function is_available($scheduler_id, $day, $month, $year, $weekday, $start_hour, $start_min, $end_hour, $end_min)
{
if (strlen($start_min) == 1) $start_min='0'.$start_min;
if (strlen($end_min) == 1) $end_min='0'.$end_min;
$start_time = $start_hour.$start_min;
$end_time = $end_hour.$end_min;
$month_time = ceil($day/7);
if (strlen($month) == 1) $month='0'.$month;
if (strlen($day) == 1) $day='0'.$day;
$fetch_date = $year.'-'.$month.'-'.$day;
switch ($weekday)
{
case 0:
$weekday = 'sunday';
break;
case 1:
$weekday = 'monday';
break;
case 2:
$weekday = 'tuesday';
break;
case 3:
$weekday = 'wednesday';
break;
case 4:
$weekday = 'thursday';
break;
case 5:
$weekday = 'friday';
break;
case 6:
$weekday = 'saturday';
break;
}
$sql = "SELECT scEvents.* FROM scEvents LEFT JOIN scEventsSchedulers ON (scEvents.id=scEventsSchedulers.event_id) WHERE ";
$sql .= "((scEvents.start_date<='$fetch_date' AND scEvents.end_date>='$fetch_date' AND scEvents.type='once') OR";
$sql .= "(scEvents.start_date<='0000-00-$day' AND scEvents.end_date>='0000-00-$day' AND scEvents.type='month_date') OR ";
$sql .= "(scEvents.type='daily') OR ";
$sql .= "($weekday='1' AND scEvents.type='weekly') OR ";
$sql .= "($weekday='1' AND scEvents.type='month_day' AND scEvents.month_time='$month_time') OR ";
$sql .= "(scEvents.start_date<='0000-$month-$day' AND scEvents.end_date>='0000-$month-$day' AND scEvents.type='yearly')) ";
$sql .= "AND (scEvents.ending_date='0000-00-00' OR scEvents.ending_date >= '$fetch_date') AND (scEvents.starting_date='0000-00-00' OR scEvents.starting_date <= '$fetch_date') AND scEventsSchedulers.scheduler_id='$scheduler_id' ORDER BY scEvents.start_hour ASC";
$this->query($sql);
while ($this->next_record())
{
if ($this->f('notime') == '0')
{
$event_start_min = $this->f('start_min');
if (strlen($event_start_min) == 1) $event_start_min='0'.$event_start_min;
$event_end_min = $this->f('end_min');
if (strlen($event_end_min) == 1) $event_end_min='0'.$event_end_min;