/** * Method validates all date inputs and formats them to date format 'Y-m-d' needed for database queries * @param string $date Date to be validated and formated if needed * @return string|false */ private function formatDate($date) { global $gPreferences; $objDate = new DateTimeExtended($date, 'Y-m-d', 'date'); if ($objDate->isValid()) { return $date; } else { // check if date has system format $objDate = new DateTimeExtended($date, $gPreferences['system_date']); if ($objDate->isValid()) { return substr($objDate->getDateTimeString(), 0, 10); } else { return false; } } }
if (isset($_POST['dat_room_id']) == false) { $_POST['dat_room_id'] = 0; } if (is_numeric($_POST['dat_max_members']) == false) { $_POST['dat_max_members'] = 0; } // make html in description secure $_POST['dat_description'] = admFuncVariableIsValid($_POST, 'dat_description', 'html'); // ------------------------------------------------ // Prüfen ob gewaehlter Raum bereits zu dem Termin reserviert ist // ------------------------------------------------ if ($gPreferences['dates_show_rooms'] == 1) { if ($_POST['dat_room_id'] > 0) { $sql = 'SELECT COUNT(dat_id) AS is_reserved FROM ' . TBL_DATES . ' WHERE dat_begin <= \'' . $endDateTime->getDateTimeString() . '\' AND dat_end >= \'' . $startDateTime->getDateTimeString() . '\' AND dat_room_id = ' . $_POST['dat_room_id'] . ' AND dat_id <> ' . $getDateId; $result = $gDb->query($sql); $row = $gDb->fetch_object($result); if ($row->is_reserved) { $gMessage->show($gL10n->get('DAT_ROOM_RESERVED')); } $date->setValue('dat_room_id', $_POST['dat_room_id']); $room = new TableRooms($gDb); $room->readDataById($_POST['dat_room_id']); $number = intval($room->getValue('room_capacity')) + intval($room->getValue('room_overhang')); $date->setValue('dat_max_members', $number); if ($_POST['dat_max_members'] < $number && $_POST['dat_max_members'] > 0) { $date->setValue('dat_max_members', $_POST['dat_max_members']);
/** Set a date range in which the dates should be searched. The method will fill * 4 parameters @b dateStartFormatEnglish, @b dateStartFormatEnglish, * @b dateEndFormatEnglish and @b dateEndFormatAdmidio that could be read with * getParameter and could be used in the script. * @param $dateRangeStart A date in english or Admidio format that will be the start date of the range. * @param $dateRangeEnd A date in english or Admidio format that will be the end date of the range. * @return Returns false if invalid date format is submitted */ public function setDateRange($dateRangeStart, $dateRangeEnd) { global $gPreferences; if ($dateRangeStart === '') { $dateRangeStart = '1970-01-01'; $dateRangeEnd = DATE_NOW; } // Create date object and format date_from in English format and sytem format and push to daterange array $objDate = new DateTimeExtended($dateRangeStart, 'Y-m-d', 'date'); if ($objDate->isValid()) { $this->setParameter('dateStartFormatEnglish', substr($objDate->getDateTimeString(), 0, 10)); $this->setParameter('dateStartFormatAdmidio', $objDate->format($gPreferences['system_date'])); } else { // check if date_from has system format $objDate = new DateTimeExtended($dateRangeStart, $gPreferences['system_date']); if ($objDate->isValid()) { $this->setParameter('dateStartFormatEnglish', substr($objDate->getDateTimeString(), 0, 10)); $this->setParameter('dateStartFormatAdmidio', $objDate->format($gPreferences['system_date'])); } else { return false; } } // Create date object and format date_to in English format and sytem format and push to daterange array $objDate = new DateTimeExtended($dateRangeEnd, 'Y-m-d', 'date'); if ($objDate->isValid()) { $this->setParameter('dateEndFormatEnglish', substr($objDate->getDateTimeString(), 0, 10)); $this->setParameter('dateEndFormatAdmidio', $objDate->format($gPreferences['system_date'])); } else { // check if date_from has system format $objDate = new DateTimeExtended($dateRangeEnd, $gPreferences['system_date']); if ($objDate->isValid()) { $this->setParameter('dateEndFormatEnglish', substr($objDate->getDateTimeString(), 0, 10)); $this->setParameter('dateEndFormatAdmidio', $objDate->format($gPreferences['system_date'])); } else { return false; } } }