閱讀619 返回首頁    go 阿裏雲 go 技術社區[雲棲]


magento -- 調整產品頁自定義選項或配置項的位置

Magento的產品頁顯示自定義選項或可配置產品的配置項在模板文件裏都是歸類於Options,默認模板下這一塊會顯示在產品信息的下方,如圖

 

這個位置很多人覺得並不好看或合理,想要把它挪到圖片的右邊,也就是Quick Overview所在的位置,如下圖

 

打開後台產品頁,找到Design下的Display product options in屬性,可以看到兩個選項:Product Info Column和Block after Info Column,其中默認選中的是Block after Info Column,從字麵意思就可以理解,Options的內容默認是顯示產品信息的下方,如果把該產品的Display product options in屬性設置為Product Info Column,前台就會看到第二張圖片的效果。

也就是說,Magento係統本身就為這一塊提供了兩種顯示位置,通過修改後台的屬性值可以選擇使用哪種位置,不過問題來了,如果我希望所有產品的Options內容默認都顯示在Product Info Column,而不用所有產品一個個打開去改屬性,那就需要修改代碼來實現了。

打開產品頁的主模板文件view.phtml,可以看到兩端類似的代碼

<?php if ($_product->isSaleable() && $this->hasOptions()):?> <?php echo $this->getChildChildHtml('container1', '', true, true) ?> <?php endif;?> 

 

 

<?php if ($_product->isSaleable() && $this->hasOptions()):?> <?php echo $this->getChildChildHtml('container2', '', true, true) ?> <?php endif;?> 

 

這兩段就分別是Product Info Column和Block after Info Column兩個位置,從代碼在view.phtml裏的位置就可以看出,也就是說後台默認是Block after Info Column的情況下,信息會顯示在container2裏。現在剪切container2這段代碼,把它放到和container1同一個位置,這樣,產品新加完默認情況下Options就會顯示在第二張圖片顯示的位置了,模板文件裏最後的代碼如下

<?php echo $this->getChildHtml('other');?> <?php if ($_product->isSaleable() && $this->hasOptions()):?> <?php echo $this->getChildChildHtml('container2', '', true, true) ?> <?php endif;?> <?php if ($_product->isSaleable() && $this->hasOptions()):?> <?php echo $this->getChildChildHtml('container1', '', true, true) ?> <?php endif;?> 

最後更新:2017-04-02 06:51:29

  上一篇:go HGE一點東東
  下一篇:go HGE 係列教材(8) --- hgeResourceManager helper class(本文未完成)