西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento创建新的产品详情页面

时间:2016-10-27 10:48来源:未知 作者:好模板 点击:
当我们在为magento 开发手机模版的时候常常需要 将详细的图文消息放到另一页面,其中一个目的是 提高加载速度。 例如我们在productController.php 中创建一个新的Action叫做descAction 注:这

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

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

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容