国际电子商务技术 & Magento开发公司

Magento technologies

Welcome visitor! You canlogin orcreate an account.

热线:+86-0532-58973093

麦神电子商务
Mygod Technologies

官方认证开发工程师

在magento网店中,如果一个产品没有客户评论信息,那么产品列表页面是不显示产品的评论信息的,也就不会显示add to review

我们现在要的是把这个给调出来

首先找到文件template/catalog/product/list.phtml

找到代码:

 <?php if($_product->getRatingSummary()): ?>

把这个if语句去掉,list和grid,都去掉

然后到template/review/helper/summary.phtml文件,找到代码:

<?php if ($this->getReviewsCount()): ?>

<?php elseif ($this->getDisplayIfEmpty()): ?>
    <p class="no-rating"><a href="<?php echo $this->getReviewsUrl() ?>#review-form"><?php echo $this->__('Be the first to review this product') ?></a></p>
<?php endif; ?>

都去掉

然后刷新缓存,保存,产品列表页面就会出现review toolbar!

0 Comments | Posted in magento结构 By terry water

magento--调用数据库的步骤--使用magento机制访问数据库

2011年10月23日星期日 Asia/Shanghai下午12:00:16

以前写的一个函数

在后台附加一个属性,譬如品牌

然后,在产品详细页面,把同个品牌的产品都调用出来!下面是程序代码

 

public function getOtherProduct(){
    $_producty = $this->getProduct();
    $_biaoshi = $_producty['biaoshi'];

    $resource = Mage::getSingleton('core/resource'); 
        $read = $resource->getConnection('catalog_read'); 
        $categoryProductTable = $resource->getTableName('catalog/category_product'); 
        //$productEntityIntTable = $resource->getTableName('catalog/product_entity_int'); // doesn't work
        $productEntityIntTable = (string)Mage::getConfig()->getTablePrefix().'catalog_product_entity_int'; 
        $eavAttributeTable = $resource->getTableName('eav/attribute');
        $product_attribute_valueTable = (string)Mage::getConfig()->getTablePrefix().'catalog_product_entity_varchar';
//return $product_attribute_valueTable;
       // var_dump($productEntityIntTable); exit;
       
        // Query database for featured product 
        $select = $read->select() 
                       ->from(array('cp'=>$categoryProductTable)) 
                      // ->join(array('pei'=>$productEntityIntTable),'pei.entity_id=cp.product_id', array()) 
                         ->join(array('pss'=>$product_attribute_valueTable),'pss.entity_id=cp.product_id',array())
               
                       ->joinNatural(array('ea'=>$eavAttributeTable)) 
                          //    ->joinNatural(array('pss'=>$product_attribute_valueTable))
                       // ->where('cp.category_id=?', $categoryId) 
                       ->where('pss.value=?',$_biaoshi)
                     // ->where('ea.a')
                       ->where('ea.attribute_code="biaoshi"'); 
                          ;
                       $rows = $read->fetchAll($select); 
        $ids = array();
        foreach($rows AS $row) { 
          $ids[] = $row['product_id']; 
        } 
        $ret = implode(',', $ids); 
        $ids = array_unique($ids);
       //  return $ids;
        //
        $productList = array();
        foreach($ids as $idq){
       
            $product = Mage::getModel('catalog/product')->load($idq);
            $productList[] = $product;
        }
       //  $product = Mage::getModel('catalog/product')->load($this->getProductId());
       
      //   $collection = Mage::getModel('catalog/product')->getCollection(); 
    //  $collection->getSelect()->where('e.entity_id in (?)', $ids); 
    //  $collection->addAttributeToSelect('*');
     
    //  $productList = $collection->load(); 
       
      return $productList; 
      //  return $ids; 
   
   
       
   
   
    }

如果你想成为一个magento二次开发程序员,上面的代码,你会感兴趣!

0 Comments | Posted in magento结构 By terry water

如何在magento下面直接操作数据库

2011年10月18日星期二 Asia/Shanghai上午1:38:40

  1. 对于magentp网店,我们有的时候需要链接一下数据库,然后查询或者修改一些数据库的信息来达到我们的意愿,当然对于这个,实现的方法有很多种,下面介绍一种比较简单的方式:
  2. $w = Mage::getSingleton(’core/resource’)->getConnection(’core_write’);  
  3. $result = $w->query(’select ’entity_id’ from ’catalog_product_entity’);  
  4. 看到后,一定要试试,监测一下,然后才能成为你自己的东西!

0 Comments | Posted in magento结构 By terry water

Magento模块介绍

2011年5月11日星期三 Asia/Shanghai下午6:11:22

Magento模块介绍

                magento的module(模块)
Magento模块结构,是Mgento的核心组成部分,Magento的每一个请求都要执行这里面的东西,app/code/core/Mage下面放的是magento的核心代码,magento的模块都在这里面,我们自己写的一般放在app/code/core/community或者app/code/core/local下面,
参看下面的目录结构和相关的代码中定义的类名:
- App/
|- code/
| |- community/
| |- core/
| | |- Mage/
| | |- Zend/
| |- local/
|- design/
|- etc/
那么Magento模块是由那些部分组成呢,下面详细介绍:
Magento是由下面几部分组成
Block        
Etc       配置文件
Sql            数据库相关的sql文件
Helper        辅助类
Controller    控制类
Contrillers    控制类
Model        模型

下面要引入几个概念:

包(Package)
所有的模块是放在代码池中都是先建立一个包,然后在写模块,这样可以保持一定的同义和连贯,同时也避免了类名的重复性,易于magento工程结构的搭建。

模型(Model)
magento的数据库操作一般放在这里,可以说是magneto的数据层,比作为magento的肌肉,block一般所需的数据库操作都是从这里取数据,在请求执行过程中负责底层的数据工作。


块(Block)
一个block和一个phtml文件对应,,phtml文件中所需的数据是通过block文件给予的,有点像smarty的结构,将业务逻辑和前台显示分离,这样可以让设计师和程序员的工作分开,从这里看,Magento的一个请求,实际上是在处于模板文件和他所对应的block这个对象,

当然,Magento的模板系统是用PHP文件编写的。所以renderView()方法也只不过是简单的调用include来包含相关的模板文件。也就是说,如果你想使用 某个模板引擎,你可以通过修改Mage_Core_Block_Template类的renderView方法去调用你所选择的模板系统的呈现函数。

控制器(Controller)

控制器是Magento所有业务逻辑的起点。业务逻辑是指业务理论中的规则。至于

Magento业务逻辑和域逻辑(数据处理指令)的区分是不太明显的。有的人认为检查必须栏位和可选栏位就是属于业务逻辑,而有人认为那应该属于域逻辑。Magento中的大多数的逻辑的是在模型中实现的。

控制器类继承了Mage_Core_Controller_Varien_Action基类,而这个基类是Zend框架的Zend_Controller_Action类的修改版本。其中比较重要的方法包括:
l  dispatch($action)
l  preDispatch();
l  postDispatch()
辅助类(Helper)
对于一些写在block和model不合适的类,就写在了helper中
比较有用 的两个类就是    
l  __(两个下划线)
l  htmlEscape
双下划线方法是翻译接口,用来实现magento的翻译功能,也就是你把翻译文件包写好后,当你选定那个store的时候,他就会使用那个store中的翻译文件,然后就会呈现那种语言,对于这个函数,它几乎被所有的对象封装使用,也就是说你几乎可以在代码中的任何地方调用这个方法来翻译一个字符串。
htmlEscape只是简 单封装了htmlspecialchars函数,不过它也可以接收一个数组并对数组中的每个元素应用htmlspecialchars函数。

配置文件(config files)
Magento的牛逼之处就是在配置文件,配置文件保存在etc这个目录下,比较有用的有三个配置文件,config.xml,system.xml,convert.xml,其实另外两个文件的东西都可以写在config文件中,然后通过标签标示,但是为了更好的明确,还是分开比较好,一般说来,config.xml是直接影响你模块的行为,其它的两个文件system.xml和convert.xml会自动为你在后台配置页面创建设置表单。
组后,所有的配置文件在magento初始化的时候会被组合在一起,这就是说,可以通过配置文件覆盖或者重写模块的任何位置的模块的配置,由此,体现出magento强大的功能

到此magento模块的功能介绍完毕,这里只是介绍了一个大概,后续的工作需要大量的使用来更好的了解magneto的模块机制,学习magneto是一个体力活!

转载请注明链接地址:MagentoWater

标签:

0 Comments | Posted in magento结构 By Terry
 
  • Mygod Technologies
  • 青岛麦神网络有限公司
  • 香港中路8号
  • 中铁青岛中心大厦A3001
  • 市南区, 青岛, 266000
  • 电话: 0532-5897-3093

订阅我们的最新消息。

我们将严格尊重您的隐私。

关注我们的微信
获取外贸电子商务最新资讯;跨境推广最新策略;电子商务网站技术最新趋势。

2018 Mygod Technologies. 保留所有权. Privacy Policy