diff options
Diffstat (limited to 'lib/raumzeit/CycleData.class.php')
| -rw-r--r-- | lib/raumzeit/CycleData.class.php | 434 |
1 files changed, 0 insertions, 434 deletions
diff --git a/lib/raumzeit/CycleData.class.php b/lib/raumzeit/CycleData.class.php deleted file mode 100644 index 587e0bc..0000000 --- a/lib/raumzeit/CycleData.class.php +++ /dev/null @@ -1,434 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -// +--------------------------------------------------------------------------+ -// This file is part of Stud.IP -// CycleData.class.php -// -// Repräsentiert ein Turnusdatum eines MetaDates -// -// +--------------------------------------------------------------------------+ -// 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 any later version. -// +--------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +--------------------------------------------------------------------------+ - -/** - * This class is subject to change, for now it wraps getter - * and setter to SeminarCycleDate. For compatibility reasons it has - * magic __get() __set() __isset, and it combines the old metadata_dates - * keys and the new fields from SeminarCycleDate (see CycleData::$alias) - * - * - * @author Till Glöggler <tgloeggl@uos.de> - * @version 19. Oktober 2005 - * @access protected - * @package raumzeit - */ -class CycleData -{ - /** - * list of aliases to translate old style metadata_dates keys to - * new fields of SeminarCycleDate - * - * @var array - */ - private $alias = [ - 'start_stunde' => 'start_hour', - 'end_stunde' => 'end_hour', - 'day' => 'weekday', - 'desc' => 'description', - 'is_visible' => 'is_visible' - ]; - - /** - * this is mostly filtered, see readSingleDates() - * should not be public - * - * @var array of SingleDate - */ - public $termine = NULL; // Array - - /** - * Enter description here ... - * @var SeminarCycleDate - */ - private $cycle_date = null; - - /** - * Constructor - * @param SeminarCycleDate|array - */ - function __construct($cycle_data = FALSE) - { - if ($cycle_data instanceof SeminarCycleDate) { - $this->cycle_date = $cycle_data; - } else { - if ($cycle_data['metadate_id']) { - $metadate_id = $cycle_data['metadate_id']; - } else { - $metadate_id = md5(uniqid('metadate_id')); - } - $this->cycle_date = new SeminarCycleDate($metadate_id); - $this->setStart($cycle_data['start_stunde'], $cycle_data['start_minute']); - $this->setEnd($cycle_data['end_stunde'], $cycle_data['end_minute']); - $this->setDay($cycle_data['day']); - $this->setDescription($cycle_data['desc']); - } - } - - function getDescription() - { - return $this->cycle_date->description; - } - - function getCycleDate() { - return $this->cycle_date; - } - function setDescription($description) - { - $this->cycle_date->description = $description; - } - - function setStart($start_stunde, $start_minute) - { - $this->cycle_date->start_hour = (int)$start_stunde; - $this->cycle_date->start_minute = (int)$start_minute; - } - - function setEnd($end_stunde, $end_minute) - { - $this->cycle_date->end_hour = (int)$end_stunde; - $this->cycle_date->end_minute = (int)$end_minute; - } - - function getStartStunde () - { - return $this->cycle_date->start_hour; - } - - function getStartMinute () - { - return $this->cycle_date->start_minute; - } - - function getEndStunde () - { - return $this->cycle_date->end_hour; - } - - function getEndMinute () - { - return $this->cycle_date->end_minute; - } - - function getMetaDateID() - { - return $this->cycle_date->getId(); - } - - function getDay() - { - return $this->cycle_date->weekday; - } - - function getStartTime() - { - return sprintf('%02d:%02d',$this->getStartStunde(), $this->getStartMinute()); - } - - function getEndTime() - { - return sprintf('%02d:%02d',$this->getEndStunde(), $this->getEndMinute()); - } - - function setDay($day) - { - $this->cycle_date->weekday = $day; - } - - /** - * Check if there is a least one not cancelled date for this cycle data - * - * @return bool true, if there is at least one not cancelled date - */ - function getIsVisible() - { - return $this->cycle_date->is_visible; - } - - function __get($field) - { - if(isset($this->alias[$field])) { - $field = $this->alias[$field]; - } - return $this->cycle_date->$field; - } - - function __set($field, $value) - { - if(isset($this->alias[$field])) { - $field = $this->alias[$field]; - } - return $this->cycle_date->$field = $value; - } - - function __isset($field) - { - if(isset($this->alias[$field])) { - $field = $this->alias[$field]; - } - return isset($this->cycle_date->$field); - } - - /** - * stores only the cycledate data - * - * @return boolean - */ - function storeCycleDate() - { - if (!$this->description) $this->description = ''; - return $this->cycle_date->store(); - } - - /** - * stores the single dates belonging to this cycledate, - * but only the ones which are currently loaded! - * (see readSingleDates()) - * should be private - * - * @return boolean - */ - function store() - { - foreach ($this->termine as $val) { - $val->store(); - } - - return TRUE; - } - - /** - * refreshes the currently loaded single dates from database, - * does not reload cycledate data! - * should be private - * - * @return boolean - */ - function restore() - { - foreach ($this->termine as $key => $val) { - $new_termine[$key] = $val->restore(); - } - $this->termine =& $new_termine; - return TRUE; - } - - /** - * deletes cycledate and corresponding single dates - * - * @param boolean $removeSingles - * @return boolean - */ - function delete($removeSingles = TRUE) - { - if ($removeSingles) { - if (!$this->termine) { - $this->readSingleDates(); - } - foreach ($this->termine as $termin) { - $termin->delete(); - } - } - return $this->cycle_date->delete(); - } - - /** - * this does not delete a single date, but set it to be marked - * as to not take place. do not use! - * - * @deprecated - * @param sting $date_id - * @param int $filterStart - * @param int $filterEnd - */ - function deleteSingleDate($date_id, $filterStart, $filterEnd) - { - if (!$this->termine) { - $this->readSingleDates($filterStart, $filterEnd); - } - - $this->termine[$date_id]->setExTermin(true); - $this->termine[$date_id]->store(); - } - - /** - * this should ressurect a single date whis is marked - * as to not take place. do not use! - * - * @deprecated - * @param sting $date_id - * @param int $filterStart - * @param int $filterEnd - */ - function unDeleteSingleDate($date_id, $filterStart, $filterEnd) - { - if (!$this->termine) { - $this->readSingleDates($filterStart, $filterEnd); - } - - if (!$this->termine[$date_id]->isExTermin()) { - return false; - } - - $this->termine[$date_id]->setExTermin(false); - $this->termine[$date_id]->store(); - return true; - } - - /** - * load corresponding single dates from database - * give timestamps as params to filter by time range - * - * @param int $start - * @param int $end - * @return boolean - */ - function readSingleDates($start = 0, $end = 0) - { - $this->termine = []; - $termin_data = CycleDataDB::getTermine($this->metadate_id, $start, $end); - if ($termin_data) { - foreach ($termin_data as $val) { - unset($termin); - $termin = new SingleDate(); - $termin->fillValuesFromArray($val); - $termin->setExTermin($val['ex_termin']); - $this->termine[$val['termin_id']] = $termin; - } - return TRUE; - } - - return FALSE; - } - - /** - * get the currently loaded single dates, or all when no dates - * are loaded. you must use readSingleDates() before to be shure what to get! - * - * @return array of SingleDate - */ - function getSingleDates() - { - if (!$this->termine) { - $this->readSingleDates(); - } - return $this->termine; - } - - /** - * returns an assoc array, keys are room names values are number of dates for this room - * give timestamps as params to filter by time range - * - * @param int $filterStart - * @param int $filterEnd - * @return array|false - */ - function getFreeTextPredominantRoom($filterStart = 0, $filterEnd = 0) - { - return CycleDataDB::getFreeTextPredominantRoomDB($this->metadate_id, $filterStart, $filterEnd); - } - - /** - * returns an assoc array, keys are resource_id of rooms values are number of dates for this room - * give timestamps as params to filter by time range - * - * @param int $filterStart - * @param int $filterEnd - * @return array - */ - function getPredominantRoom($filterStart = 0, $filterEnd = 0) - { - if ($rooms = CycleDataDB::getPredominantRoomDB($this->metadate_id, $filterStart, $filterEnd)) { - return $rooms; - } - - return false; - } - - /** - * returns a formatted string for cycledate - * - * @see SeminarCycleDate::toString() - * @param boolean $short - * @return string - */ - function toString($short = false) - { - if($short === false) { - return $this->cycle_date->toString('long'); - } else if ($short === true) { - return $this->cycle_date->toString('short'); - } else { - return $this->cycle_date->toString($short); - } - } - - /** - * return all fields from SeminarCycleDate and old style - * metadata_dates, combined with info about rooms - * - * @return array - */ - function toArray() - { - $ret = $this->cycle_date->toArray(); - foreach($this->alias as $a => $o) { - $ret[$a] = $this->cycle_date->$o; - } - $ret['assigned_rooms'] = $this->getPredominantRoom(); - $ret['freetext_rooms'] = $this->getFreetextPredominantRoom(); - $ret['tostring'] = $this->toString(); - $ret['tostring_short'] = $this->toString(true); - - $ret['start_minute'] = leadingZero($ret['start_minute']); - $ret['end_minute'] = leadingZero($ret['end_minute']); - return $ret; - } - - /** - * assign single dates one by one to a list of issues - * seems not to be the right place for this method - * - * @deprecated - * @param array $themen - * @param int $filterStart - * @param int $filterEnd - */ - function autoAssignIssues($themen, $filterStart, $filterEnd) - { - $this->readSingleDates($filterStart, $filterEnd); - $z = 0; - foreach ($this->termine as $key => $val) { - if (sizeof($val->getIssueIDs()) == 0) { - if (!$themen[$z]) break; - if (!$val->isExTermin()) { - $this->termine[$key]->addIssueID($themen[$z++]); - } - } - } - $this->store(); - } -} |
