dtb_blocposition を操作することで対応できる。
device_type_id | PC=10、携帯電話=1、スマートフォン=2 |
---|---|
page_id | トップページ=1、一覧ページ=2、詳細ページ=3、マイページ=4、その他カスタムで作成したページへID付与。(dtb_pagelayout参照) |
target_id | 0=Unused、1=LeftNavi、2=MainHead、3=RightNavi、4=MainFoot、5=TopNavi、6=BottomNavi、7=HeadNavi、8=HeaderTopNavi、9=FooterBottomNavi、10=HeaderInternalNavi (mtb_target参照) |
bloc_id | カテゴリー=1、利用ガイド=2、かごの中=3等。(dtb_bloc参照) |
bloc_row | カラム内でのブロックの表示優先順位。0は非表示で、target_idに5(未使用ブロック)が選択されている場合に設定可能。 |
filename | カテゴリー=1、利用ガイド=2、かごの中=3等。(dtb_bloc参照)bloc_idと対応している。 |
ブロックIDを調べるには dtb_bloc を見る。
参考処理コード
<html dir="ltr" lang="ja"> <head> <meta charset="UTF-8" /> </head> <body> <?php include './data/config/config.php'; $db = mysql_connect(DB_SERVER.":".DB_PORT,DB_USER,DB_PASSWORD); mysql_query("SET NAMES utf8"); mysql_select_db(DB_NAME, $db); $sql1 = "SELECT * FROM `dtb_category` WHERE `category_id` = '1'"; $rs1 = mysql_query($sql1,$db); $item1 = mysql_fetch_assoc($rs1); var_dump($item1); // ページIDのMAX $page_id_max = '37'; // 表示するカラムID $target_id = '3'; $sql1 = "SELECT * FROM `dtb_blocposition`"; $rs1 = mysql_query($sql1,$db); // UPDATE while($item1 = mysql_fetch_assoc($rs1)){ if( ( ($item1[bloc_id] == 6) || ($item1[bloc_id] == 3) || ($item1[bloc_id] == 8) || ($item1[bloc_id] == 2) || ($item1[bloc_id] == 10) ) && ($item1[device_type_id] == 10) ){ // 表示順 if($item1[bloc_id] == 6){ $bloc_row = 0; }elseif($item1[bloc_id] == 3){ $bloc_row = 1; }elseif($item1[bloc_id] == 8){ $bloc_row = 2; }elseif($item1[bloc_id] == 2){ $bloc_row = 3; }elseif($item1[bloc_id] == 10){ $bloc_row = 4; } // 表示する $sql2 = "UPDATE `dtb_blocposition` SET `target_id` = '$target_id', `bloc_row` = '$bloc_row' WHERE `device_type_id`='10' AND `page_id`='$item1[page_id]' AND `bloc_id`='$item1[bloc_id]'"; }else{ // 表示しない(カラム) $sql2 = "UPDATE `dtb_blocposition` SET `target_id` = '0', `bloc_row` = '0' WHERE `device_type_id`='10' AND `page_id`='$item1[page_id]' AND `bloc_id`='$item1[bloc_id]'"; } // echo $sql2.'<br>'; $rs2 = mysql_query($sql2,$db); } // 該当ページの、該当ブロックの登録がない場合はINSERT // 表示するブロックIDの配列 $array_block_id = array(6,3,8,2,10); // 該当ページIDをループ for($i = 0; $i <= $page_id_max; $i ++){ $page_id = $i; for($a = 0; $array_block_id[$a] != ''; $a ++){ $sql3 = "SELECT * FROM `dtb_blocposition` WHERE `device_type_id`='10' AND `page_id`='$page_id' AND `bloc_id`='$array_block_id[$a]'"; $rs3 = mysql_query($sql3,$db); $item3 = mysql_fetch_assoc($rs3); // var_dump($item3); // echo '<br>'; if($item3 == ''){ // 表示順 if($array_block_id[$a] == 6){ $bloc_row = 0; }elseif($array_block_id[$a] == 3){ $bloc_row = 1; }elseif($array_block_id[$a] == 8){ $bloc_row = 2; }elseif($array_block_id[$a] == 2){ $bloc_row = 3; }elseif($array_block_id[$a] == 10){ $bloc_row = 4; } $sql4 = "INSERT INTO `dtb_blocposition` ( `device_type_id`, `page_id`, `target_id`, `bloc_id`, `bloc_row`, `anywhere` ) VALUES ( '10', '$page_id', '$target_id', '$array_block_id[$a]', '$bloc_row', '0' )"; // echo $sql4.'<br>'; $rs4 = mysql_query($sql4,$db); } } } echo '処理完了!'; ?> </body> </html>