From 1057e93268ba7f07038be97a95b1238a92f3a8eb Mon Sep 17 00:00:00 2001 From: Andre Lorbach Date: Tue, 23 Feb 2010 14:59:24 +0100 Subject: [PATCH] Added Time-extension in search form by Sergey Sireskin --- src/include/functions_filters.php | 49 +++++++++++++++++++++++++++++++ src/js/searchhelpers.js | 28 ++++++++++++++++-- src/lang/de/main.php | 2 ++ src/lang/en/main.php | 2 ++ src/lang/it_IT/main.php | 2 ++ src/lang/pt_BR/main.php | 2 ++ src/search.php | 49 +++++++++++++++++++++++++++++-- src/templates/search.html | 44 +++++++++++++++++++++++++++ 8 files changed, 174 insertions(+), 4 deletions(-) diff --git a/src/include/functions_filters.php b/src/include/functions_filters.php index 6887cff..c9d970c 100644 --- a/src/include/functions_filters.php +++ b/src/include/functions_filters.php @@ -78,6 +78,13 @@ function InitFilterHelpers() $content['months'][] = $i; for ( $i = 1; $i <= 31; $i++ ) $content['days'][] = $i; + // Init Hour, minute and second array + for ( $i = 0; $i <= 23; $i++ ) + $content['hours'][] = ($i < 10) ? '0' . $i : $i; + for ( $i = 0; $i <= 59; $i++ ) + $content['minutes'][] = ($i < 10) ? '0' . $i : $i; + for ( $i = 0; $i <= 59; $i++ ) + $content['seconds'][] = ($i < 10) ? '0' . $i : $i; // Init filter_daterange_from_year if ( isset($_SESSION['filter_daterange_from_year']) ) @@ -121,6 +128,48 @@ function InitFilterHelpers() $filters['filter_daterange_to_day'] = $tomorrowDay; FillDateRangeArray($content['days'], "filter_daterange_to_day_list", "filter_daterange_to_day"); + // Init filter_daterange_from_hour + if ( isset($_SESSION['filter_daterange_from_hour']) ) + $filters['filter_daterange_from_hour'] = intval($_SESSION['filter_daterange_from_hour']); + else + $filters['filter_daterange_from_hour'] = 0; + FillDateRangeArray($content['hours'], "filter_daterange_from_hour_list", "filter_daterange_from_hour"); + + // Init filter_daterange_from_minute + if ( isset($_SESSION['filter_daterange_from_minute']) ) + $filters['filter_daterange_from_minute'] = intval($_SESSION['filter_daterange_from_minute']); + else + $filters['filter_daterange_from_minute'] = 0; + FillDateRangeArray($content['minutes'], "filter_daterange_from_minute_list", "filter_daterange_from_minute"); + + // Init filter_daterange_from_second + if ( isset($_SESSION['filter_daterange_from_second']) ) + $filters['filter_daterange_from_second'] = intval($_SESSION['filter_daterange_from_second']); + else + $filters['filter_daterange_from_second'] = 0; + FillDateRangeArray($content['seconds'], "filter_daterange_from_second_list", "filter_daterange_from_second"); + + // Init filter_daterange_to_hour + if ( isset($_SESSION['filter_daterange_to_hour']) ) + $filters['filter_daterange_to_hour'] = intval($_SESSION['filter_daterange_to_hour']); + else + $filters['filter_daterange_to_hour'] = 23; + FillDateRangeArray($content['hours'], "filter_daterange_to_hour_list", "filter_daterange_to_hour"); + + // Init filter_daterange_to_minute + if ( isset($_SESSION['filter_daterange_to_minute']) ) + $filters['filter_daterange_to_minute'] = intval($_SESSION['filter_daterange_to_minute']); + else + $filters['filter_daterange_to_minute'] = 59; + FillDateRangeArray($content['minutes'], "filter_daterange_to_minute_list", "filter_daterange_to_minute"); + + // Init filter_daterange_to_second + if ( isset($_SESSION['filter_daterange_to_second']) ) + $filters['filter_daterange_to_second'] = intval($_SESSION['filter_daterange_to_second']); + else + $filters['filter_daterange_to_second'] = 59; + FillDateRangeArray($content['seconds'], "filter_daterange_to_second_list", "filter_daterange_to_second"); + // --- Define LASTX Array // Init Default DateMode from SESSION! diff --git a/src/js/searchhelpers.js b/src/js/searchhelpers.js index 01f472a..96c692c 100644 --- a/src/js/searchhelpers.js +++ b/src/js/searchhelpers.js @@ -25,6 +25,12 @@ function toggleDatefiltervisibility(FormName) toggleformelement('filter_daterange_to_year', false); toggleformelement('filter_daterange_to_month', false); toggleformelement('filter_daterange_to_day', false); + toggleformelement('filter_daterange_from_hour', false); + toggleformelement('filter_daterange_from_minute', false); + toggleformelement('filter_daterange_from_second', false); + toggleformelement('filter_daterange_to_hour', false); + toggleformelement('filter_daterange_to_minute', false); + toggleformelement('filter_daterange_to_second', false); toggleformelement('filter_daterange_last_x', false); } @@ -39,6 +45,12 @@ function toggleDatefiltervisibility(FormName) toggleformelement('filter_daterange_to_year', true); toggleformelement('filter_daterange_to_month', true); toggleformelement('filter_daterange_to_day', true); + toggleformelement('filter_daterange_from_hour', true); + toggleformelement('filter_daterange_from_minute', true); + toggleformelement('filter_daterange_from_second', true); + toggleformelement('filter_daterange_to_hour', true); + toggleformelement('filter_daterange_to_minute', true); + toggleformelement('filter_daterange_to_second', true); toggleformelement('filter_daterange_last_x', false); } @@ -53,6 +65,12 @@ function toggleDatefiltervisibility(FormName) toggleformelement('filter_daterange_to_year', false); toggleformelement('filter_daterange_to_month', false); toggleformelement('filter_daterange_to_day', false); + toggleformelement('filter_daterange_from_hour', false); + toggleformelement('filter_daterange_from_minute', false); + toggleformelement('filter_daterange_from_second', false); + toggleformelement('filter_daterange_to_hour', false); + toggleformelement('filter_daterange_to_minute', false); + toggleformelement('filter_daterange_to_second', false); toggleformelement('filter_daterange_last_x', true); } @@ -87,10 +105,16 @@ function CalculateSearchPreview(szSearchFormName, szPreviewArea) { szOutString += "datefrom:" + mySearchform.elements['filter_daterange_from_year'].value + "-" + mySearchform.elements['filter_daterange_from_month'].value + "-" - + mySearchform.elements['filter_daterange_from_day'].value + "T00:00:00 "; + + mySearchform.elements['filter_daterange_from_day'].value + "T" + + mySearchform.elements['filter_daterange_from_hour'].value + ":" + + mySearchform.elements['filter_daterange_from_minute'].value + ":" + + mySearchform.elements['filter_daterange_from_second'].value + " "; szOutString += "dateto:" + mySearchform.elements['filter_daterange_to_year'].value + "-" + mySearchform.elements['filter_daterange_to_month'].value + "-" - + mySearchform.elements['filter_daterange_to_day'].value + "T00:00:00 "; + + mySearchform.elements['filter_daterange_to_day'].value + "T" + + mySearchform.elements['filter_daterange_to_hour'].value + ":" + + mySearchform.elements['filter_daterange_to_minute'].value + ":" + + mySearchform.elements['filter_daterange_to_second'].value + " "; } else if (mySearchform.elements['filter_datemode'].value == DATEMODE_LASTX) { diff --git a/src/lang/de/main.php b/src/lang/de/main.php index 0de8f51..7738664 100644 --- a/src/lang/de/main.php +++ b/src/lang/de/main.php @@ -161,6 +161,8 @@ $content['LN_DATEMODE_RANGE'] = "Zeitspanne"; $content['LN_DATEMODE_LASTX'] = "Seit heute, x Uhr"; $content['LN_FILTER_DATEFROM'] = "Zeitraum seit x"; $content['LN_FILTER_DATETO'] = "Zeitraum bis x"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Zeit seit"; $content['LN_FILTER_ADD2SEARCH'] = "Zur Suche hinzufügen"; $content['LN_DATE_LASTX_HOUR'] = "in der letzten Stunde"; diff --git a/src/lang/en/main.php b/src/lang/en/main.php index 2ee573f..57dbf8b 100644 --- a/src/lang/en/main.php +++ b/src/lang/en/main.php @@ -165,6 +165,8 @@ $content['LN_DATEMODE_RANGE'] = "Time range"; $content['LN_DATEMODE_LASTX'] = "Time x since today"; $content['LN_FILTER_DATEFROM'] = "Date range from"; $content['LN_FILTER_DATETO'] = "Date range to"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Time since"; $content['LN_FILTER_ADD2SEARCH'] = "Add to search"; $content['LN_DATE_LASTX_HOUR'] = "Last hour"; diff --git a/src/lang/it_IT/main.php b/src/lang/it_IT/main.php index 133df6f..caa405b 100644 --- a/src/lang/it_IT/main.php +++ b/src/lang/it_IT/main.php @@ -102,6 +102,8 @@ $content['LN_DATEMODE_RANGE'] = "Intervallo orario"; $content['LN_DATEMODE_LASTX'] = "Ultimi x ore/giorni"; $content['LN_FILTER_DATEFROM'] = "Dalla data"; $content['LN_FILTER_DATETO'] = "Alla data"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Ultime ore oppure ultimi giorni"; $content['LN_FILTER_ADD2SEARCH'] = "Aggiungi alla ricerca"; $content['LN_DATE_LASTX_HOUR'] = "Ultima ora"; diff --git a/src/lang/pt_BR/main.php b/src/lang/pt_BR/main.php index 780b97a..832ac5d 100644 --- a/src/lang/pt_BR/main.php +++ b/src/lang/pt_BR/main.php @@ -163,6 +163,8 @@ $content['LN_DATEMODE_RANGE'] = "Intervalo de tempo"; $content['LN_DATEMODE_LASTX'] = "Tempo X desde hoje"; $content['LN_FILTER_DATEFROM'] = "Data a partir de "; $content['LN_FILTER_DATETO'] = "Até"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Tempo desde"; $content['LN_FILTER_ADD2SEARCH'] = "Adicionar a busca"; $content['LN_DATE_LASTX_HOUR'] = "Última hora"; diff --git a/src/search.php b/src/search.php index d99bb7c..39355c4 100644 --- a/src/search.php +++ b/src/search.php @@ -90,14 +90,59 @@ if ( (isset($_POST['search']) || isset($_GET['search'])) ) $filters['filter_daterange_to_month'] = intval($_GET['filter_daterange_to_month']); if ( isset($_GET['filter_daterange_to_day']) ) $filters['filter_daterange_to_day'] = intval($_GET['filter_daterange_to_day']); + + // Read range values and prepend leading zeroes for values < 10 + if ( isset($_GET['filter_daterange_from_hour']) ) + { + $filters['filter_daterange_from_hour'] = intval($_GET['filter_daterange_from_hour']); + if ($filters['filter_daterange_from_hour'] < 10) + $filters['filter_daterange_from_hour'] = '0' . $filters['filter_daterange_from_hour']; + } + if ( isset($_GET['filter_daterange_from_minute']) ) + { + $filters['filter_daterange_from_minute'] = intval($_GET['filter_daterange_from_minute']); + if ($filters['filter_daterange_from_minute'] < 10) + $filters['filter_daterange_from_minute'] = '0' . $filters['filter_daterange_from_minute']; + } + if ( isset($_GET['filter_daterange_from_second']) ) + { + $filters['filter_daterange_from_second'] = intval($_GET['filter_daterange_from_second']); + if ($filters['filter_daterange_from_second'] < 10) + $filters['filter_daterange_from_second'] = '0' . $filters['filter_daterange_from_second']; + } + if ( isset($_GET['filter_daterange_to_hour']) ) + { + $filters['filter_daterange_to_hour'] = intval($_GET['filter_daterange_to_hour']); + if ($filters['filter_daterange_to_hour'] < 10) + $filters['filter_daterange_to_hour'] = '0' . $filters['filter_daterange_to_hour'] = '0'; + } + if ( isset($_GET['filter_daterange_to_minute']) ) + { + $filters['filter_daterange_to_minute'] = intval($_GET['filter_daterange_to_minute']); + if ($filters['filter_daterange_to_minute'] < 10) + $filters['filter_daterange_to_minute'] = '0' . $filters['filter_daterange_to_minute']; + } + if ( isset($_GET['filter_daterange_to_second']) ) + { + $filters['filter_daterange_to_second'] = intval($_GET['filter_daterange_to_second']); + if ($filters['filter_daterange_to_second'] < 10) + $filters['filter_daterange_to_second'] = '0' . $filters['filter_daterange_to_second'] = '0'; + } // Append to searchstring $content['searchstr'] .= "datefrom:" . $filters['filter_daterange_from_year'] . "-" . $filters['filter_daterange_from_month'] . "-" . - $filters['filter_daterange_from_day'] . "T00:00:00 "; + $filters['filter_daterange_from_day'] . "T" . + $filters['filter_daterange_from_hour'] . ":" . + $filters['filter_daterange_from_minute'] . ":" . + $filters['filter_daterange_from_second'] . " "; + $content['searchstr'] .= "dateto:" . $filters['filter_daterange_to_year'] . "-" . $filters['filter_daterange_to_month'] . "-" . - $filters['filter_daterange_to_day'] . "T23:59:59 "; + $filters['filter_daterange_to_day'] . "T" . + $filters['filter_daterange_to_hour'] . ":" . + $filters['filter_daterange_to_minute'] . ":" . + $filters['filter_daterange_to_second'] . " "; } else if ( $filters['filter_datemode'] == DATEMODE_LASTX ) diff --git a/src/templates/search.html b/src/templates/search.html index d1238b5..6a297cf 100644 --- a/src/templates/search.html +++ b/src/templates/search.html @@ -81,6 +81,50 @@ + + {LN_FILTER_TIMEFROM} + + + - + + - + + + + + {LN_FILTER_TIMETO} + + + - + + - + + +