/* ====================================================== * [No.10-1] TAB: bike(車種管理UI) * - 絞り込み:メーカー + 表示区分 + 検索(q) * - 一括操作:表示区分/計算区分/加算/削除チェック(行選択に対して) * - まとめ追加(goo-bike) * - 表示区分(disp_key)= デフォ * - 計算区分(calc_key)= デフォで表示区分と同じ(例外だけ変更) * - キーは数字ID * - 削除チェック * - 適用→保存 * ====================================================== */ if ($tab==='bike'){ // --------- current filters (GET) $maker = sanitize_title($_GET['maker'] ?? 'honda'); if (!isset($bikes['makers'][$maker])) $maker = array_key_first($bikes['makers']); $filter_disp = sanitize_title($_GET['disp'] ?? ''); $q = sanitize_text_field($_GET['q'] ?? ''); $q_lc = function_exists('mb_strtolower') ? mb_strtolower($q, 'UTF-8') : strtolower($q); $makerLabel = $bikes['makers'][$maker]['label'] ?? $maker; $models = $bikes['makers'][$maker]['models'] ?? array(); // --------- server-side filtering $filteredModels = $models; if ($filter_disp!==''){ $tmp = array(); foreach($filteredModels as $id=>$row){ $dk = sanitize_title($row['disp_key'] ?? ''); if ($dk===$filter_disp) $tmp[$id]=$row; } $filteredModels = $tmp; } if ($q !== ''){ $tmp = array(); foreach($filteredModels as $id=>$row){ $label = (string)($row['label'] ?? ''); $label_lc = function_exists('mb_strtolower') ? mb_strtolower($label, 'UTF-8') : strtolower($label); if (strpos($label_lc, $q_lc) !== false) $tmp[$id]=$row; } $filteredModels = $tmp; } // --------- URL helpers(絞り込み維持) $baseUrl = admin_url('admin.php?page=mw-bike-one-v5&tab=bike'); $urlMaker = function($mk) use ($baseUrl, $filter_disp, $q){ $u = $baseUrl . '&maker=' . rawurlencode($mk); if ($filter_disp!=='') $u .= '&disp=' . rawurlencode($filter_disp); if ($q!=='') $u .= '&q=' . rawurlencode($q); return $u; }; $urlDisp = function($disp) use ($baseUrl, $maker, $q){ $u = $baseUrl . '&maker=' . rawurlencode($maker); if ($disp!=='') $u .= '&disp=' . rawurlencode($disp); if ($q!=='') $u .= '&q=' . rawurlencode($q); return $u; }; $urlQuery = function($qq) use ($baseUrl, $maker, $filter_disp){ $u = $baseUrl . '&maker=' . rawurlencode($maker); if ($filter_disp!=='') $u .= '&disp=' . rawurlencode($filter_disp); if ($qq!=='') $u .= '&q=' . rawurlencode($qq); return $u; }; echo '
'; echo 'bikes.json 保存先:'.esc_html(mwb1_bike_json_path()).'