您的位置 首页

Magento 创建新的产品详情页面

当我们在为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>

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

此文章通过 python 爬虫创建,原文是自己的csdn 地址: Magento 创建新的产品详情页面

本文来自网络,不代表找知博客立场,转载请注明出处:http://zhaozhiyong.cn/114.html

作者: 于老大

关注微博
返回顶部
//