<?php include_once(dirname(__FILE__).'/Base.php'); class TypeTime extends TypeBase { function __construct(FormManager $FormManager) { parent::__construct($FormManager); $this->DatabaseCompareOperators = array('Rovno' => '=', 'Nerovno' => '!=', 'MenÅ¡Ã' => '<', 'VÄ›tÅ¡Ã' => '>'); } function OnView(array $Item): ?string { if ($Item['Value'] == 0) return ''; if ((strtolower($Item['Value']) == 'now') or (strtolower($Item['Value']) == '')) $Item['Value'] = time(); $TimeParts = getdate($Item['Value']); $Output = sprintf('%02d', $TimeParts['hours']).':'.sprintf('%02d', $TimeParts['minutes']).':'.sprintf('%02d', $TimeParts['seconds']); return $Output; } function OnEdit(array $Item): string { if (($Item['Value'] == null) or (($Item['Value'] !== null) and ((strtolower($Item['Value']) == 'now') or (strtolower($Item['Value']) == '')))) { $Item['Value'] = time(); $IsNull = true; } else $IsNull = false; $TimeParts = getdate($Item['Value']); $Output = ''; $Style = ''; if (array_key_exists('Null', $Item) and $Item['Null']) { if ($IsNull) { $Checked = ' checked="1"'; $Style = 'style="display:inline;"'; } else { $Checked = ''; $Style = 'style="display:none;"'; } $Output .= '<input type="checkbox" name="'.$Item['Name'].'-null"'.$Checked.' onclick="toggle(\''. $Item['Name'].'-hour\');toggle(\''.$Item['Name'].'-minute\');toggle(\''.$Item['Name'].'-second\');"/>'; } // Hour $Output .= '<select name="'.$Item['Name'].'-hour" id="'.$Item['Name'].'-hour" '.$Style.'>'; for ($I = 1; $I <= 24; $I++) { if ($TimeParts['hours'] == $I) $Selected = ' selected="1"'; else $Selected = ''; $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>'; } $Output .= '</select>'; // Minute $Output .= '<select name="'.$Item['Name'].'-minute" id="'.$Item['Name'].'-minute" '.$Style.'>'; for ($I = 1; $I <= 60; $I++) { if ($TimeParts['month'] == $I) $Selected = ' selected="1"'; else $Selected = ''; $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>'; } $Output .= '</select>'; // Second $Output .= '<select name="'.$Item['Name'].'-second" id="'.$Item['Name'].'-second" '.$Style.'>'; for ($I = 1; $I <= 60; $I++) { if ($TimeParts['seconds'] == $I) $Selected = ' selected="1"'; else $Selected = ''; $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>'; } $Output .= '</select>'; return $Output; } function OnLoad(array $Item): ?string { if (!array_key_exists($Item['Name'].'-null', $_POST) and array_key_exists('Null', $Item) and ($Item['Null'] == true)) return null; return mktime($_POST[$Item['Name'].'-hour'], $_POST[$Item['Name'].'-minute'], $_POST[$Item['Name'].'-second']); } function OnCanLoad(array $Item): bool { return array_key_exists($Item['Name'].'-null', $_POST) or (array_key_exists($Item['Name'].'-hour', $_POST) and array_key_exists($Item['Name'].'-minute', $_POST) and array_key_exists($Item['Name'].'-second', $_POST) ); } function OnLoadDb(array $Item): ?string { return MysqlTimeToTime($Item['Value']); } function OnSaveDb(array $Item): ?string { if ($Item['Value'] == null) return null; else return date('H:i:s', $Item['Value']); } function DatabaseEscape(string $Value): string { return '"'.addslashes($Value).'"'; } }