/* ======================================================
* [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()).'
';
// --------- JS: bulk operations (client-side)
echo '';
}
バイク輸送の窓口|バイク輸送.com
コンテンツへスキップ
ナビゲーションに移動
マッチングの実績
当サービスでマッチングしたバイク輸送事例の一部です
[mw_bike_quote]