Changeset 18190


Ignore:
Timestamp:
2009/07/15 14:39:49 (15 years ago)
Author:
miningbrownie
Message:

ブロックをすべてのページにまたがって表示させるようにしました。(nanasessさまからのご提案です。) チケット:#518

Location:
branches/comu-ver2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/Smarty/templates/default/admin/design/index.tpl

    r18189 r18190  
    5151                  <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    5252                  <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     53                  <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
    5354                </div> 
    5455                <!--{assign var="firstflg" value=true}--> 
     
    7273                  <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    7374                  <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     75                     <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
     76                
    7477                </div> 
    7578                <!--{assign var="firstflg" value=true}--> 
     
    9194                  <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    9295                  <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     96                     <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
     97                
    9398                </div> 
    9499                <!--{assign var="firstflg" value=true}--> 
     
    110115                  <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    111116                  <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     117                     <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
     118                
    112119                </div> 
    113120                <!--{assign var="firstflg" value=true}--> 
     
    136143                  <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    137144                  <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     145                     <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
     146                
    138147                </div> 
    139148                <!--{assign var="firstflg" value=true}--> 
     
    157166                  <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    158167                  <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     168                     <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
     169                
    159170                </div> 
    160171                <!--{assign var="firstflg" value=true}--> 
     
    184195            <input type="hidden" class="target-id" name="target_id_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.target_id}-->" /> 
    185196            <input type="hidden" class="top" name="top_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="<!--{$item.bloc_row}-->" /> 
     197               <label>(<input type="checkbox" class="anywhere" name="anywhere_<!--{$smarty.foreach.bloc_loop.iteration}-->" value="1" <!--{$item.anywhere_selected}-->  />全ページ)</label>  
     198                
    186199          </div> 
    187200          <!--{assign var="firstflg" value=true}--> 
  • branches/comu-ver2/data/class/helper/SC_Helper_PageLayout.php

    r18189 r18190  
    5353                $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
    5454            } 
     55             
    5556            $url2 = preg_replace('|^' . preg_quote(SITE_URL) . '|', '', $url); 
    5657            // URLを元にページデザインを取得 
     
    6162                . TEMPLATE_NAME . "/" . $arrPageData[0]['filename'] . ".tpl"; 
    6263        } 
    63          
     64                 
    6465        foreach($arrPageData[0] as $key => $val) { 
    6566            $debug_message.= "arrPageData[$key]:" . $val . "\n"; 
     
    124125     */ 
    125126    function lfgetPageData($where = 'page_id <> 0', $where_vals = array()) { 
     127                 
    126128        $objQuery = new SC_Query;       // DB操作オブジェクト 
    127129        $arrRet = array();              // データ取得用 
     
    167169 
    168170        // 取得するカラム 
    169         $col = "target_id, bloc_name, tpl_path, php_path"; 
     171        $col = "target_id, bloc_name, tpl_path, php_path,anywhere"; 
    170172         
    171173        // 取得するテーブル 
     
    173175         
    174176        // where文生成 
    175         $where = "page_id = ?"; 
     177        $where = "anywhere = 1 OR page_id = ?"; 
    176178        $where_vals[] = $page_id; 
    177179 
     
    181183        // SQL実行 
    182184        $arrRet = $objQuery->select($col, $table, $where, $where_vals); 
    183                                              
     185         
    184186        // 結果を返す 
    185187        return $arrRet; 
     
    198200            foreach($arrNavi as $key => $val){ 
    199201                // 指定された箇所と同じデータだけを取得する 
    200                 if ($target_id == $val['target_id']){ 
     202                if ($target_id == $val['target_id'] ){ 
    201203                    if ($val['php_path'] != '') { 
    202204                        $arrNavi[$key]['php_path'] = HTML_PATH . $val['php_path']; 
  • branches/comu-ver2/data/class/pages/admin/design/LC_Page_Admin_Design.php

    r18189 r18190  
    7979 
    8080        // ブロック配置用データを取得 
    81         $sel   = ", pos.target_id, pos.bloc_id, pos.bloc_row "; 
     81        $sel   = ", pos.target_id, pos.bloc_id, pos.bloc_row ,pos.anywhere"; 
    8282        $from  = ", dtb_blocposition AS pos"; 
    8383        $where = " where "; 
    84         $where .= " lay.page_id = ? AND "; 
    85         $where .= "lay.page_id = pos.page_id AND exists (select bloc_id from dtb_bloc as blc where pos.bloc_id = blc.bloc_id) ORDER BY lay.page_id,pos.target_id, pos.bloc_row, pos.bloc_id "; 
     84        $where .= "( pos.anywhere = 1 OR (lay.page_id = ? AND "; 
     85        $where .= "lay.page_id = pos.page_id AND exists (select bloc_id from dtb_bloc as blc where pos.bloc_id = blc.bloc_id) )) ORDER BY lay.page_id,pos.target_id, pos.bloc_row, pos.bloc_id "; 
     86//        $where .= "((lay.page_id = ? AND "; 
     87//        $where .= "lay.page_id = pos.page_id AND exists (select bloc_id from dtb_bloc as blc where pos.bloc_id = blc.bloc_id) )) ORDER BY lay.page_id,pos.target_id, pos.bloc_row, pos.bloc_id "; 
     88         
    8689        $arrData = array($page_id); 
    8790        $arrBlocPos = $this->lfgetLayoutData($sel, $from, $where, $arrData ); 
    88  
     91                 
    8992        // データの存在チェックを行う 
    9093        $arrPageData = $objLayout->lfgetPageData("page_id = ?", array($page_id)); 
     
    143146                $arrUpdBlocData[$upd_cnt]['target_id']  = $arrTargetFlip[$_POST['target_id_'.$upd_cnt]];    // ターゲットID 
    144147                $arrUpdBlocData[$upd_cnt]['top']        = $_POST['top_'.$upd_cnt];                          // TOP座標 
     148                $arrUpdBlocData[$upd_cnt]['anywhere']        = $_POST['anywhere_'.$upd_cnt];                     //全ページ適用か 
    145149                $arrUpdBlocData[$upd_cnt]['update_url'] = $_SERVER['HTTP_REFERER'];                         // 更新URL 
     150                 
    146151            } 
    147152 
     
    178183                $ins_sql .= "   ,? ";           // ブロックの並び順序 
    179184                $ins_sql .= "   ,(SELECT filename FROM dtb_bloc WHERE bloc_id = ?) ";           // ファイル名称 
     185                $ins_sql .= "   ,? ";           // 全ページフラグ 
    180186                $ins_sql .= "   )  "; 
    181  
     187                 
    182188                // insertデータ生成 
    183189                $arrInsData = array($page_id, 
     
    185191                                    $arrUpdBlocData[$key]['id'], 
    186192                                    $arrUpdBlocData[$key]['bloc_row'], 
    187                                     $arrUpdBlocData[$key]['id'] 
     193                                    $arrUpdBlocData[$key]['id'], 
     194                                    $arrUpdBlocData[$key]['anywhere'] 
    188195                                    ); 
     196                $count = $objDBConn->getOne("SELECT COUNT(*) FROM dtb_blocposition WHERE anywhere = 1 AND bloc_id = ?",array($arrUpdBlocData[$key]['id'])); 
     197                                     
     198               if($arrUpdBlocData[$key]['anywhere'] == 1){ 
     199                   $count = $objDBConn->getOne("SELECT COUNT(*) FROM dtb_blocposition WHERE anywhere = 1 AND bloc_id = ?",array($arrUpdBlocData[$key]['id'])); 
     200                   $objDBConn->getLastQuery(); 
     201                   if($count != 0){ 
     202                       continue; 
     203                   }else{ 
     204                   } 
     205               }else{ 
     206                   if($count > 0){ 
     207                       $objDBConn->query("DELETE FROM dtb_blocposition WHERE anywhere = 1 AND bloc_id = ?",array($arrUpdBlocData[$key]['id'])); 
     208                   } 
     209               } 
    189210                // SQL実行 
    190211                $arrRet = $objDBConn->query($ins_sql,$arrInsData); 
     
    228249                $tpl_arrBloc = $this->lfSetBlocData($arrBloc, $val, $tpl_arrBloc, $cnt); 
    229250                $cnt++; 
    230             } 
    231         } 
    232  
     251            }else{ 
     252            } 
     253        } 
     254         
     255                 
    233256        // 未使用のブロックデータを追加 
    234257        foreach($arrBloc as $key => $val){ 
    235258            if (!$this->lfChkBloc($val, $tpl_arrBloc)) { 
    236                 $val['target_id'] = 5;  // 未使用に追加する 
     259                $val['target_id'] = 7;  // 未使用に追加する 
    237260                $tpl_arrBloc = $this->lfSetBlocData($arrBloc, $val, $tpl_arrBloc, $cnt); 
    238261                $cnt++; 
     262            }else{ 
    239263            } 
    240264        } 
     
    374398        $tpl_arrBloc[$cnt]['bloc_row'] = 
    375399            isset($val['bloc_row']) ? $val['bloc_row'] : ""; 
    376  
     400        $tpl_arrBloc[$cnt]['anywhere'] = $val['anywhere']; 
     401        if($val['anywhere'] == 1){ 
     402            $tpl_arrBloc[$cnt]['anywhere_selected'] = 'checked="checked"'; 
     403        } 
    377404        foreach($arrBloc as $bloc_key => $bloc_val){ 
    378405            if ($bloc_val['bloc_id'] == $val['bloc_id']) { 
     
    382409        } 
    383410        $tpl_arrBloc[$cnt]['name'] = $bloc_name; 
    384  
     411                 
    385412        return $tpl_arrBloc; 
    386413    } 
     
    400427            } 
    401428        } 
    402  
     429         
    403430        // 配列に存在しなければFlaseを返す 
    404431        return false; 
     
    437464        $arrUpdData = array();          // 更新データ生成用 
    438465        $filename = $arrPageData[0]['filename']; 
    439  
     466         
    440467        $arrPreData = $objLayout->lfgetPageData(" page_id = ? " , array("0")); 
    441468 
     
    480507        $sql .= "     ,tpl_dir = ?"; 
    481508        $sql .= "     ,filename = ?"; 
     509        $sql .= "     ,anywhere = ?"; 
    482510        $sql .= " where page_id = 0"; 
    483511 
     
    488516                            ,USER_DIR . "templates/" . TEMPLATE_NAME . "/" 
    489517                            ,$filename 
     518                            
    490519                            ); 
    491520 
  • branches/comu-ver2/html/install/sql/create_table_mysql.sql

    r18069 r18190  
    901901    bloc_id int, 
    902902    bloc_row int, 
    903     filename text 
     903    filename text, 
     904    anywhere int 
    904905) TYPE=InnoDB ; 
    905906 
  • branches/comu-ver2/html/install/sql/create_table_pgsql.sql

    r18023 r18190  
    929929    bloc_id int4, 
    930930    bloc_row int4, 
    931     filename text 
     931    filename text, 
     932    anywhere int2 
    932933); 
    933934 
  • branches/comu-ver2/html/install/sql/insert_data.sql

    r18189 r18190  
    2424update dtb_pagelayout set page_id = 0 where page_id = 5; 
    2525 
    26 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,1,1,2,'category'); 
    27 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,1,2,3,'guide'); 
    28 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,1,3,1,'cart'); 
    29 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,3,4,2,'search_products'); 
    30 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,4,5,1,'news'); 
    31 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,3,6,1,'login'); 
    32 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (1,4,7,2,'best5'); 
    33 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,1,1,2,'category'); 
    34 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,1,2,3,'guide'); 
    35 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,1,3,1,'cart'); 
    36 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,7,4,0,'search_products'); 
    37 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,7,5,0,'news'); 
    38 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,7,6,0,'login'); 
    39 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (2,7,7,0,'best5'); 
    40 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,1,1,2,'category'); 
    41 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,1,2,3,'guide'); 
    42 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,1,3,1,'cart'); 
    43 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,7,4,0,'search_products'); 
    44 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,7,5,0,'news'); 
    45 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,7,6,0,'login'); 
    46 INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename) VALUES (3,7,7,0,'best5'); 
     26INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,1,1,2,'category',0); 
     27INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,1,2,3,'guide',0); 
     28INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,1,3,1,'cart',0); 
     29INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,3,4,2,'search_products',0); 
     30INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,4,5,1,'news',0); 
     31INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,3,6,1,'login',0); 
     32INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (1,4,7,2,'best5',0); 
     33INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,1,1,2,'category',0); 
     34INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,1,2,3,'guide',0); 
     35INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,1,3,1,'cart',0); 
     36INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,7,4,0,'search_products',0); 
     37INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,7,5,0,'news',0); 
     38INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,7,6,0,'login',0); 
     39INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (2,7,7,0,'best5',0); 
     40INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,1,1,2,'category',0); 
     41INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,1,2,3,'guide',0); 
     42INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,1,3,1,'cart',0); 
     43INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,7,4,0,'search_products',0); 
     44INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,7,5,0,'news',0); 
     45INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,7,6,0,'login',0); 
     46INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename,anywhere) VALUES (3,7,7,0,'best5',0); 
    4747 
    4848INSERT INTO dtb_csv(csv_id,col,disp_name,rank,create_date,update_date) VALUES (1,'product_id','商品ID',1,now(),now()); 
Note: See TracChangeset for help on using the changeset viewer.