Changeset 22602
- Timestamp:
- 2013/03/05 08:52:08 (11 years ago)
- Location:
- branches/version-2_12-dev
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/Smarty/templates/default/frontparts/bloc/category.tpl
r22586 r22602 31 31 <div class="block_body"> 32 32 <h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_bloc_category.gif" alt="商品カテゴリ" /></h2> 33 <!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$arrTree treeID="categorytreelist" }-->33 <!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$arrTree treeID="categorytreelist" display=1}--> 34 34 </div> 35 35 </div> -
branches/version-2_12-dev/data/Smarty/templates/default/frontparts/bloc/category_tree_fork.tpl
r22586 r22602 21 21 *}--> 22 22 23 <ul<!--{if $treeID != ""}--> id="<!--{$treeID}-->"<!--{/if}--> >23 <ul<!--{if $treeID != ""}--> id="<!--{$treeID}-->"<!--{/if}--><!--{if !$display}--> style="display: none;"<!--{/if}-->> 24 24 <!--{foreach from=$children item=child}--> 25 <li <!--{if !in_array($child.category_id, $arrDispID)}--> style="display: none;"<!--{/if}-->class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->">25 <li class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->"> 26 26 <p><a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$child.category_id}-->"<!--{if in_array($child.category_id, $tpl_category_id)}--> class="onlink"<!--{/if}-->><!--{$child.category_name|h}-->(<!--{$child.product_count|default:0}-->)</a></p> 27 <!--{if in_array($child.category_id, $arrParentID)}--> 28 <!--{assign var=disp_child value=1}--> 29 <!--{else}--> 30 <!--{assign var=disp_child value=0}--> 31 <!--{/if}--> 27 32 <!--{if isset($child.children|smarty:nodefaults)}--> 28 <!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$child.children }-->33 <!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$child.children display=$disp_child}--> 29 34 <!--{/if}--> 30 35 </li> -
branches/version-2_12-dev/data/Smarty/templates/sphone/frontparts/bloc/category.tpl
r22586 r22602 25 25 <h2 class="title_block">商品カテゴリ</h2> 26 26 <nav id="categorytree"> 27 <!--{include file="`$smarty.const.SMARTPHONE_TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$arrTree treeID="categorytreelist" }-->27 <!--{include file="`$smarty.const.SMARTPHONE_TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$arrTree treeID="categorytreelist" display=1 level=0}--> 28 28 29 29 <script>//<![CDATA[ 30 initCategoryList(); //カテゴリリストの初期化31 30 //]]></script> 32 31 </nav> -
branches/version-2_12-dev/data/Smarty/templates/sphone/frontparts/bloc/category_tree_fork.tpl
r22586 r22602 21 21 *}--> 22 22 23 <ul<!--{if $treeID != ""}--> id="<!--{$treeID}-->"<!--{/if}--> >23 <ul<!--{if $treeID != ""}--> id="<!--{$treeID}-->"<!--{/if}--><!--{if $level > 5 || !$display}--> style="display: none;"<!--{/if}-->> 24 24 <!--{foreach from=$children item=child}--> 25 <li <!--{if $child.view_flg == "2" || $child.level > 5 || !in_array($child.category_id, $arrDispID)}--> style="display: none;"<!--{/if}-->class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->">25 <li class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->"> 26 26 <span class="category_header"></span><span class="category_body"><a rel="external" href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$child.category_id}-->"<!--{if in_array($child.category_id, $tpl_category_id)}--> class="onlink"<!--{/if}-->><!--{$child.category_name|h}-->(<!--{$child.product_count|default:0}-->)</a></span> 27 <!--{if in_array($child.category_id, $arrParentID)}--> 28 <!--{assign var=disp_child value=1}--> 29 <!--{else}--> 30 <!--{assign var=disp_child value=0}--> 31 <!--{/if}--> 27 32 <!--{if isset($child.children|smarty:nodefaults)}--> 28 <!--{include file="`$smarty.const.SMARTPHONE_TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$child.children treeID="" }-->33 <!--{include file="`$smarty.const.SMARTPHONE_TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$child.children treeID="" display=$disp_child level=$child.level}--> 29 34 <!--{/if}--> 30 35 </li> -
branches/version-2_12-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php
r22595 r22602 37 37 // }}} 38 38 // {{{ functions 39 public $arrParentID; 39 40 40 41 /** … … 133 134 $arrTree = $objCategory->getTree(); 134 135 135 $ arrCategory = $objCategory->getList();136 $this->arrParentID = array(); 136 137 foreach ($arrParentCategoryId as $category_id) { 137 138 $arrParentID = $objCategory->getTreeTrail($category_id); 138 $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray( 139 $arrCategory, 140 'parent_category_id', 141 'category_id', 142 $arrParentID 143 ); 144 $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray( 145 $arrCategory, 146 'parent_category_id', 147 'category_id', 148 $category_id 149 ); 139 $this->arrParentID = array_merge($this->arrParentID, $arrParentID); 150 140 $this->root_parent_id[] = $arrParentID[0]; 151 $this->arrDispID = array_merge($arrBrothersID, $arrChildrenID);152 141 } 153 142 -
branches/version-2_12-dev/data/class/util/SC_Utils.php
r22597 r22602 1093 1093 } 1094 1094 1095 /* 階層構造のテーブルから与えられたIDの兄弟を取得する */1096 function sfGetBrothersArray($arrData, $pid_name, $id_name, $arrPID)1097 {1098 $max = count($arrData);1099 1100 $arrBrothers = array();1101 foreach ($arrPID as $id) {1102 // 親IDを検索する1103 for ($i = 0; $i < $max; $i++) {1104 if ($arrData[$i][$id_name] == $id) {1105 $parent = $arrData[$i][$pid_name];1106 break;1107 }1108 }1109 // 兄弟IDを検索する1110 for ($i = 0; $i < $max; $i++) {1111 if ($arrData[$i][$pid_name] == $parent) {1112 $arrBrothers[] = $arrData[$i][$id_name];1113 }1114 }1115 }1116 return $arrBrothers;1117 }1118 1119 1095 /* 階層構造のテーブルから与えられたIDの直属の子を取得する */ 1120 1096 function sfGetUnderChildrenArray($arrData, $pid_name, $id_name, $parent) -
branches/version-2_12-dev/html/user_data/packages/sphone/css/block.css
r21995 r22602 250 250 vertical-align: middle; 251 251 } 252 #categorytree li ul { 253 border: none; 254 margin: 0; 255 padding: 0; 256 } 252 257 253 258 #categorytree li:first-child { -
branches/version-2_12-dev/html/user_data/packages/sphone/js/category.js
r22586 r22602 1 /*------------------------------------------2 指定されたノードを、オープンまたはクローズする3 ------------------------------------------*/4 function openOrClose(tgt){5 //指定ノードが「hidden」のとき、リストを可視化6 if(tgt.style.visibility == "hidden"){7 tgt.style.display = "block";8 tgt.style.visibility = "visible";9 tgt.style.height = "auto";10 tgt.style.paddingTop = "0.25em";11 tgt.style.lineHeight = "1em";12 tgt.style.opacity = 1.0;13 }14 //指定ノードが「hidden」でないとき、リストを隠す15 else{16 tgt.style.display = "none";17 tgt.style.visibility = "hidden";18 tgt.style.height = "0px";19 tgt.style.paddingTop = "0";20 tgt.style.lineHeight = 0;21 tgt.style.opacity = 0;22 }23 }24 25 /*------------------------------------------26 リストープン処理27 ------------------------------------------*/28 function listopen(lv, num){29 var tgt = document.getElementsByClassName("level" + lv)[num];30 //次のレベルをサーチ → 次のレベルのリストをオープンする31 for(var i=0; i < document.getElementsByClassName("level" + (lv+1)).length; i++){32 var next_tgt = document.getElementsByClassName("level" + (lv+1))[i];33 //li34 if (next_tgt.parentNode == tgt || next_tgt.parentNode.parentNode == tgt){35 openOrClose(next_tgt);36 }37 }38 //次のレベルをサーチ → 表示ボタンの状態を変更39 for(var i=0; i < tgt.childNodes.length; i++){40 var next_tgt = tgt.childNodes[i];41 //ul42 if(next_tgt.tagName == "UL"){43 if(next_tgt.style.height == "0px"){44 if(event.srcElement.parentNode.className == "category_header plus"){45 event.srcElement.innerText = '−';46 event.srcElement.parentNode.className = "category_header minus";47 }48 next_tgt.style.height = "auto";49 }50 else{51 for(var i=0; i<next_tgt.parentNode.childNodes.length; i++){52 if(event.srcElement.parentNode.className == "category_header minus"){53 event.srcElement.innerText = '+';54 event.srcElement.parentNode.className = "category_header plus";55 }56 }57 next_tgt.style.height = "0px";58 }59 }60 }61 }62 63 /*------------------------------------------64 クリックイベントを設定する65 ------------------------------------------*/66 function setclickevent(tgt, lv, num){67 //レベル1以外の時は非表示に68 if(lv!=1){69 tgt.style.visibility = "hidden";70 tgt.style.display = "none";71 tgt.style.height = "0px";72 tgt.style.lineHeight = 0;73 tgt.style.paddingTop = 0;74 tgt.style.paddingBottom = 0;75 if(tgt.parentNode.tagName == "UL"){76 tgt.parentNode.style.height = "0px";77 tgt.parentNode.style.margin = "0";78 tgt.parentNode.style.padding = "0";79 tgt.parentNode.style.border = "none";80 }81 }82 var hasLink_flg;83 if(tgt.childNodes.length){84 for (var j = 0; j < tgt.childNodes.length; j++) {85 //クリック範囲の拡大86 if(tgt.childNodes[j].tagName == 'A'){87 tgt.setAttribute('onclick', 'location.href="' + tgt.childNodes[j].getAttribute('href') + '"');88 }89 //アコーディオンリストの操作イベント関数を追加90 else if(tgt.childNodes[j].tagName == 'UL'){91 //▶を表示し、リストオープン関数を追加92 var linkObj = document.createElement("a");93 linkObj.innerText = '+';94 $(tgt).children('span.category_header')95 .addClass('plus')96 .append(linkObj);97 j++;98 linkObj.parentNode.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');99 100 //tgt.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')');101 break;102 }103 }104 }105 }106 107 1 /*------------------------------------------ 108 2 初期化 109 3 ------------------------------------------*/ 110 4 //level?クラスを持つノード全てを走査し初期化 111 function initCategoryList(){ 112 var lv = 0; 113 //level?クラスを持つノード全てに、クリックイベントを追加 114 while(document.getElementsByClassName("level" + (++lv)).length){ 115 for (var i = 0; i < document.getElementsByClassName("level" + lv).length; i++) { 116 setclickevent(document.getElementsByClassName("level" + lv)[i], lv, i); 5 $(function(){ 6 $("#categorytree li").each(function(){ 7 if ($(this).children("ul").length) { 8 //▶を表示し、リストオープンイベントを追加 9 var tgt = $(this).children('span.category_header'); 10 var linkObj = $("<a>"); 11 linkObj.text('+'); 12 tgt 13 .click(function(){ 14 $(this).siblings("ul").toggle('fast', function(){ 15 if ($(this).css('display') === 'none') { 16 tgt.children('a').text('+'); 17 } else { 18 tgt.children('a').text('ー'); 19 } 20 }); 21 }) 22 .addClass('plus') 23 .append(linkObj); 117 24 } 118 } 119 } 25 }); 26 });
Note: See TracChangeset
for help on using the changeset viewer.