diff --git a/broadcast/favicon.ico b/broadcast/favicon.ico new file mode 100644 index 0000000..64f57c4 Binary files /dev/null and b/broadcast/favicon.ico differ diff --git a/broadcast/index.frm.php b/broadcast/index.frm.php index 38e2e6b..08d1462 100644 --- a/broadcast/index.frm.php +++ b/broadcast/index.frm.php @@ -3,7 +3,11 @@ - + + + + + 伊地知ニジカ放送局 - ニジカ返答ログ @@ -43,6 +47,20 @@ +
+
+ 日時ニジカ +
+ +
+ + + +
+
+
フリーワード @@ -55,8 +73,14 @@
-
- +
+
+ +
+ +
+ +
@@ -102,7 +126,7 @@ - + diff --git a/broadcast/index.php b/broadcast/index.php index b9a2795..67438a0 100644 --- a/broadcast/index.php +++ b/broadcast/index.php @@ -13,6 +13,9 @@ $asc = ($_GET['asc'] ?? 0) != 0; $keyword = trim ($_GET['q'] ?? ''); $escaped = ($_GET['escaped'] ?? 0) != 0; +$date_start = ($_GET['start'] ?? null) ?: null; +$date_end = ($_GET['end'] ?? null) ?: null; + $f = fopen (LOG_PATH, 'r'); if ($f !== false) @@ -41,6 +44,18 @@ if ($keyword != '') !== false)); } +if ($date_start) + { + $log_data = array_filter ($log_data, fn ($row) => ( + substr ($row['date_time'], 0, 10) >= $date_start)); + } + +if ($date_end) + { + $log_data = array_filter ($log_data, fn ($row) => ( + substr ($row['date_time'], 0, 10) <= $date_end)); + } + $pages_max = (int) ((count ($log_data) - 1) / $length) + 1; if (!($asc)) diff --git a/broadcast/script.js b/broadcast/script.js index a442aad..a8171ad 100644 --- a/broadcast/script.js +++ b/broadcast/script.js @@ -4,6 +4,12 @@ Script static main () { + const dateOptions = {dateFormat: 'yy-mm-dd', + firstDay: 6}; + + $ ('#filter-date-start').datepicker (dateOptions); + $ ('#filter-date-end').datepicker (dateOptions); + const url = new URL (window.location.href); const orderAsc = document.getElementById ('order-asc'); @@ -14,6 +20,14 @@ Script const filter = ( function (e) { + let dateStart = $ ('#filter-date-start').val (); + let dateEnd = $ ('#filter-date-end').val (); + + if ((dateStart !== '') + && (dateEnd !== '') + && (dateStart > dateEnd)) + [dateStart, dateEnd] = [dateEnd, dateStart]; + url.searchParams.delete ('p'); url.searchParams.delete ('asc'); @@ -22,9 +36,24 @@ Script url.searchParams.delete ('q'); url.searchParams.append ('q', filterKeyword.value); + url.searchParams.delete ('start'); + url.searchParams.delete ('end'); + + if (dateStart !== '') + url.searchParams.append ('start', dateStart); + + if (dateEnd !== '') + url.searchParams.append ('end', dateEnd); + window.location.href = url; }); + const resetFilter = ( + function () + { + window.location.href = '/'; + }); + filterKeyword.addEventListener ('keydown', function (e) { @@ -33,6 +62,7 @@ Script }); btnFilter.addEventListener ('click', filter); + $ ('#btn-reset').on ('click', resetFilter); } static