aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/DateFormatter.class.php
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
committerPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
commit4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch)
tree5c07151ae61276d334e88f6309c30d439a85c12e /lib/classes/DateFormatter.class.php
parentda0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff)
parent97a188592c679890a25c37ab78463add76a52ff7 (diff)
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'lib/classes/DateFormatter.class.php')
-rw-r--r--lib/classes/DateFormatter.class.php176
1 files changed, 0 insertions, 176 deletions
diff --git a/lib/classes/DateFormatter.class.php b/lib/classes/DateFormatter.class.php
deleted file mode 100644
index 5f7c558..0000000
--- a/lib/classes/DateFormatter.class.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-# Lifter010: TODO
-/**
- * DateFormater.class.php - Handles the formatting of one date and associated rooms.
- *
- * 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 sbrummer <soenke.brummerloh@uni-osnabrueck.de>
- * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
- * @category Stud.IP
- */
-
-/**
- * Formates one SingleDate object or a series of SingleDate objects into a nice format.
- */
-class DateFormatter {
- /**
- * @var array holds the dates use for formatting
- */
- private $dates;
-
- /**
- * @var string holds the return-type, may be int or string
- */
- private $return_mode;
-
- /**
- * @param $dates an array with an array of SingleDate objects.
- * @param string $return_mode expected values are 'int', 'string' and 'export'. The default value is 'string'.
- * @return void
- */
- private function __construct($dates, $return_mode = 'string')
- {
- $this->dates = $dates;
- $this->return_mode = $return_mode;
- }
-
- /**
- * Formats one single date into a nice format.
- * @static
- * @param $date SingleDate object
- * @param string $return_mode expected values are 'int', 'string' and 'export'. The default value is 'string'.
- * @return string
- */
- public static function formatDateAndRoom($date, $return_mode = 'string')
- {
- $dates = DateFormatter::wrapDateWithArray($date);
- return DateFormatter::formatDateWithAllRooms($dates, $return_mode);
- }
-
- /**
- * Formats a series of SingleDate objects into a nice format. The dates parameter is an array of dates.
- * The array has to have the key 'termin' with an array of SingleDate objects as value.
- * @static
- * @param $dates an array with an array of SingleDate objects
- * @param string $return_mode expected values are 'int', 'string' and 'export'. The default value is 'string'.
- * @return string
- */
- public static function formatDateWithAllRooms($dates, $return_mode = 'string')
- {
- $dateFormatter = new DateFormatter($dates, $return_mode);
- return $dateFormatter->internalFormatDateWithAllRooms();
- }
-
- private static function wrapDateWithArray($date)
- {
- $dates = [];
- $dates['termin'] = [$date];
- return $dates;
- }
-
- private function internalFormatDateWithAllRooms()
- {
- $dateWithRooms = '';
- if ($this->dates['termin']) {
- // if we have multiple rooms at the same time we display them all
- foreach ($this->dates['termin'] as $num => $termin_id) {
- $date = new SingleDate($termin_id);
-
- // if we want an int and format the date ourself
- if ($this->return_mode == 'int') {
- return $date->getStartTime();
- }
-
- $isFirstDate = ($num == 0);
- if ($isFirstDate) {
- $dateWithRooms = $this->internalFormatDateAndRoom($date);
- } else {
- $dateWithRooms .= ', ' . $this->formatRoom($date);
- }
- }
- }
- return $dateWithRooms;
- }
-
- private function internalFormatDateAndRoom($date)
- {
- $ret = $this->formatDate($date);
-
- if ($this->return_mode != 'int') {
- $formatedRooms = $this->formatRoom($date);
- if ($formatedRooms) {
- $ret .= ', ';
- $ret .= _("Ort:") . ' ';
- $ret .= $formatedRooms;
- }
- }
-
- return $ret;
- }
-
- private function formatDate($date)
- {
- if ($this->return_mode == 'int') {
- return $date->getStartTime();
- }
- else {
- return $date->toString();
- }
- }
-
- private function formatRoom($date)
- {
- if ($this->return_mode == 'int') {
- return '';
- }
- else {
- return $this->formatLocationText($date);
- }
- }
-
- private function formatLocationText($date)
- {
- if ($this->hasResource($date)) {
- $resObj = Resource::find($date->getResourceID());
- return $this->generateLocationTextFromResourceObject($resObj);
- } else if ($this->hasFreeRoomText($date)) {
- return $this->generateLocationTextFromFreeRoomText($date);
- } else {
- return '';
- }
- }
-
- private function generateLocationTextFromResourceObject($resObj)
- {
- if ($resObj) {
- if ($this->return_mode == 'string') {
- return '<a href="' . $resObj->getActionLink() . '" data-dialog="1">'
- . htmlReady($resObj->name)
- . '</a>';
- }
- else {
- return htmlReady($resObj->name);
- }
- }
- return '';
- }
-
- private function generateLocationTextFromFreeRoomText($date)
- {
- return '(' . htmlReady($date->getFreeRoomText()) . ')';
- }
-
- private function hasResource($date)
- {
- return $date && $date->getResourceID();
- }
-
- private function hasFreeRoomText($date)
- {
- return $date && $date->getFreeRoomText();
- }
-}