Magento 创建新的产品详情页面

当我们在为magento 开发手机模版的时候常常需要 将详细的图文消息放到另一页面,其中一个目的是

提高加载速度。 例如我们在productController.php 中创建一个新的Action叫做descAction

注:这里不会去提醒你 要重写模块而不是修改core 文件。

产品的信息获取详细看这里

http://blog.csdn.net/m0sh1/article/details/40299847

先直接看代码:

 public function descAction(){
        $productId  = (int) $this->getRequest()->getParam('id');
        $_product = $_product=Mage::getModel('catalog/product')->load($productId);
        $_productUrl = $_product->getProductUrl();

        $curPackage = Mage::getSingleton('core/design_package')->getPackageName();
        $curTheme = Mage::getSingleton('core/design_package')->getTheme('frontend');
        if($curPackage === "mobile" && $curTheme === "mobile"){
            $this->loadLayout();
            $this->renderLayout();
        }else{
            $this->_redirectUrl($_productUrl);
        }
    }

这里之所以做一个if判断 是因为不希望在电脑版的模板中额外分割出来一个产品描述页面。

但是不排除用户从手机访问了描述页面然后复制链接用电脑打开。


通过函数

 Mage::getSingleton('core/design_package')->getPackageName();

 Mage::getSingleton('core/design_package')->getTheme('frontend');

判断当前的package和theme  判断条件中的mobile要根据实际情况自己修改。

创建Block

<?php
class Mobile_Block_Catalog_Product_Desc extends Mage_Catalog_Block_Product_Abstract{

}


之后我们在对应模板下的layout中找到catalog.xml 加入代码:

    <catalog_product_desc>
        <reference name="root">
            <action method="setTemplate"><template>page/1column.phtml</template></action>
        </reference>
        <reference name="head">
            <action method="addJs"><script>varien/product.js</script></action>
            <action method="addCss"><script>css/media.css</script></action>
        </reference>
        <reference name="content">
            <block type="mobile/catalog_product_desc" name="product.desc" template="catalog/product/desc.phtml">
                <block type="catalog/product_view_description" name="product.description" as="description" template="catalog/product/view/description.phtml">
                </block>
            </block>
        </reference>
    </catalog_product_desc>

同时创建 desc.phtml 用来前端显示:


<?php
    $id = (int) $this->getRequest()->getParam('id');
    $_product=Mage::getModel('catalog/product')->load($id);

?>
<?php echo "Product Info"?>
<div class="product-specs">
    <?php $_description = $_product->getDescription(); ?> // 不考虑带有mobile description
    <?php echo $this->helper('catalog/output')->productAttribute($_product, $_description, 'description') ?>
</div>

至此再加上一些自己实际处理情况的代码就可以了。



“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

Simael__Aex

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值