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>