0

Magento 属性で、表示を減らす/増やすボタンを作成したいと考えています。今のところ、ナビゲーションには 50 色か何かのブロックがあります。Show Less/Show More ボタンを作成することは可能ですか? 私がインターネットで見つけた唯一のものはこれでした:

Go to the app/design/frontend/default/YOUR_THEME/template/catalog/layer/filter.phtml 

Replace the existing code with: 

<ol> 
 <?php 
 $displaySize=4; 
 $i=0; 
 $filterName=strtolower($this->getName()); 
 $cnt=count($this->getItems()); 
 foreach ($this->getItems() as $_item): ?> 
 <?php if($i == $displaySize) { ?> 
 <div id="more-<?php echo $filterName?>"><a >Show Filter</a></div> 
 <div id="cont-<?php echo $filterName?>"> 
 <?php } ?> 
 <li> 
 <?php if ($_item->getCount() > 0): ?> 
 <a href="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?></a> 
 <?php else: echo $_item->getLabel() ?> 
 <?php endif; ?> 
 (<?php echo $_item->getCount() ?>) 
 </li> 
 <?php $i++; 
 if($i==$cnt && $cnt > $displaySize) 
 echo '<div id="less-'.$filterName.'"><a >Hide Filter</a></div></div>'; ?> 
 <?php endforeach ?> 
 </ol> 
 Now open the file view.phtml in the same folder 

 Add in the beginning: 

<?php $displaySize=4; 
 $hiddenFilters=array(); ?> 
 Add just before if($_filter->getItemsCount()): 

if($_filter->getItemsCount() > $displaySize) 
 $hiddenFilters[]=strtolower($_filter->getName()); 
 Add at the end of file: 

<script> 
 Event.observe(window, ‘load’, 
function() { 
 <?php foreach($hiddenFilters as $v) 
 { 
 echo "$('cont-".$v."').hide();"; 
 } ?> 
 } 
 ); 

 // Register event ‘click’ and associated call back. 
 Event.observe(document, ‘click’, respondToClick); 

 // Callback function to handle the event. 
 function respondToClick(event) { 
 var element = event.element(); 
 //------ 
 <?php foreach($hiddenFilters as $p) 
 { 
 echo "if(element.up('div').id=='more-".$p."') 
 { 
 $('cont-".$p."').show(); 
 $('more-".$p."').hide(); 
 } 
 if(element.up('div').id=='less-".$p."') 
 { 
 $('cont-".$p."').hide(); 
 $('more-".$p."').show(); 
 }"; 
 } ?> 

 //----- 

 } 

 </script> 

このスクリプトは正常に動作するはずですか? また、適切に構築されていますか? 前もって感謝します!

4

1 に答える 1

1

それを制御するには、テンプレート レベルで jQuery の「drawer」を使用することをお勧めします。

作成方法の詳細については、http: //jqueryfordesigners.com/slide-out-and-drawer-effect/をご覧ください。

于 2013-01-02T16:04:55.093 に答える