aboutsummaryrefslogtreecommitdiff
path: root/lib/models/SemesterHoliday.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/models/SemesterHoliday.class.php')
-rw-r--r--lib/models/SemesterHoliday.class.php146
1 files changed, 0 insertions, 146 deletions
diff --git a/lib/models/SemesterHoliday.class.php b/lib/models/SemesterHoliday.class.php
deleted file mode 100644
index 90f9ecd..0000000
--- a/lib/models/SemesterHoliday.class.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-/**
- * SemesterHoliday.class.php
- * model class for table semester_holiday
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * @author André Noack <noack@data-quest.de>
- * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
- * @category Stud.IP
- *
- * @property string $id alias column for holiday_id
- * @property string $holiday_id database column
- * @property string $semester_id database column
- * @property string $name database column
- * @property string $description database column
- * @property int|null $beginn database column
- * @property int $ende database column
- * @property int|null $mkdate database column
- * @property int|null $chdate database column
- * @property mixed $current additional field
- */
-
-class SemesterHoliday extends SimpleORMap
-{
- /**
- * Configures this model.
- *
- * @param Array $config
- */
- protected static function configure($config = [])
- {
- $config['db_table'] = 'semester_holiday';
- $config['additional_fields']['current'] = true;
- parent::configure($config);
- }
-
- /**
- * cache
- */
- private static $holiday_cache;
-
- /**
- * returns SemesterHoliday object for given id or null
- * @param string $id
- * @return NULL|SemesterHoliday
- */
- public static function find($id)
- {
- $holiday_cache = self::getAll();
- return $holiday_cache[$id] ?: null;
- }
-
- /**
- * returns all SemesterHoliday between given timestamps (starting AND ending within given timestamps)
- * @param integer $timestamp_start
- * @param integer $timestamp_end
- * @return array of SemesterHoliday
- */
- public static function findByTimestampRange($timestamp_start, $timestamp_end)
- {
- $ret = [];
- if ($timestamp_start < $timestamp_end) {
- foreach(self::getAll() as $holiday) {
- if ($holiday->beginn >= $timestamp_start && $holiday->ende <= $timestamp_end) {
- $ret[] = $holiday;
- }
- }
- }
- return $ret;
- }
-
- /**
- * returns all SemesterHolidays for given semester
- *
- * @param mixed semester object or id as string or assoc array
- * @return array of SemesterHoliday
- */
- public static function findBySemester($semester)
- {
- $semester = Semester::toObject($semester);
- return self::findByTimestampRange($semester->beginn, $semester->ende);
- }
-
- /**
- * returns array of all existing SemesterHoliday objects
- * orderd by begin
- * @param boolean $force_reload
- * @return array
- */
- public static function getAll($force_reload = false)
- {
- if (!is_array(self::$holiday_cache) || $force_reload) {
- self::$holiday_cache = [];
- foreach(self::findBySql('1 ORDER BY beginn') as $holiday){
- self::$holiday_cache[$holiday->getId()] = $holiday;
- }
- }
- return self::$holiday_cache;
- }
-
- /**
- * Returns whether we currently have this holidays (yay).
- *
- * @return bool
- */
- public function getcurrent()
- {
- return $this->beginn < time() && $this->ende > time();
- }
-
- /**
- * Returns if a given date is a holiday.
- *
- * @param int $time Timestamp to check
- * @param bool $check_vacation_only Defines whether to check only vacation
- * times or against all holidays
- * @return mixed false if no holiday was found, an array with the name and
- * the "col" value of the holiday otherwise
- */
- public static function isHoliday($time, $check_vacation_only = true)
- {
- // Check all defined vaciation times
- foreach (SemesterHoliday::getAll() as $val) {
- if ($val->beginn <= $time && $val->ende >= $time) {
- return [
- 'name' => $val->name,
- 'col' => 3,
- ];
- }
- }
-
- // Check all other holidays
- if (!$check_vacation_only) {
- return holiday($time);
- $holiday_entry = holiday($time);
- }
-
- // Nothing found
- return false;
- }
-
-}