/* ====================================================== * [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 '
'; wp_nonce_field('mwb1_bike'); echo '

バイク(メーカー→車種)

'; // --------- filters row echo '
'; echo '
'; echo '
メーカー
'; echo ''; echo '
更新
'; echo '
'; echo '
'; echo '
表示区分で絞り込み
'; echo ''; echo '
更新
'; echo '
'; echo '
'; echo '
検索(車種名)
'; echo ''; echo '
'; echo '検索'; echo 'クリア'; echo '
'; echo '
'; echo '
'; // --------- maker label echo '

メーカー表示名(任意):

'; echo '

表示区分は区分マスター(排気量区分タブ)のラベルを使います。計算区分はデフォで表示区分と同じ。車格が大きい等の例外だけ計算区分を変えます。

'; // --------- bulk controls (top) echo '
'; echo '一括操作(チェックした行に反映)'; echo ''; echo ''; echo ''; // disp bulk echo '表示区分:'; echo ''; // calc bulk echo '計算区分:'; echo ''; // adjust bulk echo '車種別加算:'; echo ''; // delete bulk echo ''; echo ''; // apply bulk echo ''; echo '→ 反映後に「適用(プレビュー)」または「保存」を押す'; echo '
'; // --------- table echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $i=0; foreach($filteredModels as $id=>$row){ $label = $row['label'] ?? ''; $disp_key = sanitize_title($row['disp_key'] ?? ''); $calc_key = sanitize_title($row['calc_key'] ?? ''); if ($calc_key==='') $calc_key = $disp_key; $adjust = intval($row['adjust'] ?? 0); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $i++; } // 新規追加枠(2行) for($j=0;$j<2;$j++,$i++){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
選択削除ID車種名表示区分計算区分(例外のみ変更)車種別加算
'; // --------- apply/save buttons (bottom too) echo '

'; echo ''; echo ''; echo '※ 保存前に内容を確認したい場合は「適用(プレビュー)」を押してください。'; echo '

'; // --------- bulk add (goo-bike) echo '
'; echo '

goo-bike貼り付けで「車種をまとめて追加」(同名は上書き)

'; echo '

goo-bikeの「車種名(件数)」形式をそのまま貼ってOK。抽出は(数字)を目印にしています。

'; echo '

初期値:表示区分(=デフォ) '; echo ' '; echo '車種別加算

'; echo '

'; echo '

'; echo ''; echo ''; echo '

'; echo '
'; echo '

bikes.json 保存先:'.esc_html(mwb1_bike_json_path()).'

'; // --------- JS: bulk operations (client-side) echo ''; }
Warning: Cannot modify header information - headers already sent by (output started at /home/xs160890/bike-yusou.com/public_html/wp-content/plugins/mw-bike-quote-onefile/mw-bike-quote-onefile.php:1) in /home/xs160890/bike-yusou.com/public_html/wp-includes/pluggable.php on line 1531

Warning: Cannot modify header information - headers already sent by (output started at /home/xs160890/bike-yusou.com/public_html/wp-content/plugins/mw-bike-quote-onefile/mw-bike-quote-onefile.php:1) in /home/xs160890/bike-yusou.com/public_html/wp-includes/pluggable.php on line 1534