From 160300afa2dbd87a4060163a1265f1383759e68e Mon Sep 17 00:00:00 2001 From: Pk11 Date: Mon, 7 Feb 2022 20:44:02 -0600 Subject: [PATCH] --- nextrip.php | 138 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 57 deletions(-) diff --git a/nextrip.php b/nextrip.php index 0998afc..72f7a8e 100644 --- a/nextrip.php +++ b/nextrip.php @@ -33,7 +33,7 @@ @@ -64,66 +64,90 @@ - {$stop}は無効な停留所です。"; - } else { - $directions = [ - "NB" => "北行", - "EB" => "東行", - "SB" => "南行", - "WB" => "西行" - ]; - - $content = file_get_contents("https://svc.metrotransit.org/NexTrip/$stop?format=json"); - $json = json_decode($content); - - if(!$json) { - echo "

{$stop}は無効な停留所です。

"; - } else { - echo "

停留所{$stop}のNexTrip情報

"; - echo '
'; - foreach($json as $bus) { - echo '
'; - echo "

$bus->Route{$bus->Terminal}番線({$directions[$bus->RouteDirection]})
"; - echo "$bus->DepartureText

"; - echo '
'; - } - echo '
'; - echo "お気に入りに追加"; - } - } - } else { - $favorites = json_decode($_COOKIE['favorites']); +
+
+ {$stop}は無効な停留所です。"; + } else { + $directions = [ + "NB" => "北行", + "EB" => "東行", + "SB" => "南行", + "WB" => "西行" + ]; + + $content = file_get_contents("https://svc.metrotransit.org/NexTrip/$stop?format=json"); + $json = json_decode($content); + + if(!$json) { + echo "

{$stop}は無効な停留所です。

"; + } else { + echo "

停留所{$stop}のNexTrip情報

"; + echo '
'; + foreach($json as $bus) { + echo '
'; + echo "

$bus->Route{$bus->Terminal}({$directions[$bus->RouteDirection]})
"; + echo "$bus->DepartureText

"; + echo '
'; + } + echo '
'; + + $favDesc = json_decode($_COOKIE['favorites'], true)[$stop]; - if(!empty($favAdd)) { - if(!in_array($favAdd, $favorites)) { - $favorites[] = $favAdd; - setcookie("favorites", json_encode($favorites)); - echo "

{$favAdd}はお気に入りに追加しました。

"; + echo '
'; + echo '
'; + echo '
'; + echo ""; + echo '
'; + echo ''; + echo ""; + if(isset($favDesc)) + echo ''; + else + echo ''; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + } + } } else { - echo "

{$favAdd}は既にお気に入りにありました。

"; - } - } else if(!empty($favRemove)) { - $favorites = array_filter($favorites, function($v) { global $favRemove; return $v != $favRemove; }); - setcookie("favorites", json_encode($favorites)); - echo "

{$favRemove}は削除しました。

"; - } + $favorites = isset($_COOKIE['favorites']) ? json_decode($_COOKIE['favorites'], true) : Array(); + + if(isset($favSet)) { + $desc = $_GET['desc']; + + $favorites[$favSet] = $desc; + setcookie("favorites", json_encode($favorites)); + echo "

{$favSet}({$desc})は設定しました。

"; + } else if(isset($favRemove)) { + if(array_key_exists($favRemove, $favorites)) { + $desc = $favorites[$favRemove]; + unset($favorites[$favRemove]); + setcookie("favorites", json_encode($favorites)); + echo "

{$favRemove}({$desc})は削除しました。

"; + } else { + echo "

{$favRemove}はお気に入りにありません。

"; + } + } - if(count($favorites) > 0) { - echo '

お気に入り

'; - echo '
    '; - foreach($favorites as $fav) { - echo '
  • '; - echo "$fav "; - echo "×"; - echo '
  • '; + if(count($favorites) > 0) { + echo '

    お気に入り

    '; + echo '
      '; + foreach($favorites as $favStop => $favDesc) { + echo '
    • '; + echo "$favStop ($favDesc) "; + echo "×"; + echo '
    • '; + } + echo '
    '; + } } - echo '
'; - } - } - ?> + ?> +
+