0

我想在 cms 页面上显示我对所有产品的所有评论。有人知道怎么做吗?我正在使用 Magento 1.4.2

4

1 回答 1

0

这一切都取决于您使用什么模块来为 Magento 的功能提供扩展。如果您查看模块的文件夹(比如说它的 Cmdcentral/Review)

app/code/community/Cmdcentral/Review/

这是模块所在的位置(它也可能在本地)在etcforconfig.xml中查找将有一个看起来像这样的部分:

<config>
 ...
   <global>
    ....
    <models>
      <review>
          <class>Cmdcentral_Review_Model</class>
      </review>
      <review_mysql4>
         <class>Cmdcentral_Review_Model_Mysql4</class>
         <entities>
              <reviews>table_in_database</reviews>
         </entities>
      </review_mysql4>
   </models>
  .....
 </global>
  ...
</config>

这将根据您所拥有的而有所不同。重要的是内部节点的名称<entities></entities>在我的情况下是<reviews></reviews>

然后,您可以查看controllers文件夹以IndexController.php创建如下所示的新函数:

public function showallAction(){
   $this->loadLayout();
   $this->renderLayout();

}

现在您必须为此创建一个块,在其中创建一个新块app/code/community/Cmdcentral/Review/Blocks并调用它Showall.php

您的块应如下所示:

<?php class Cmdcentral_Review_Block_Showall extends Mage_Core_Block_Template{
   public function getAllReviews(){
       return Mage::getModel('review/reviews')->getCollection();
   }
}

review是模块名称,reviews是我们<entities></entities>config.xml.

接下来我们app/design/frontend/从这里开始,我们正在寻找的文件很可能在base/default但也可能在另一个主题的文件夹中。我们正在寻找的文件Modulename.xml在我的情况下将是app/design/frontend/base/default/layout/Review.xml 打开您的布局文件,现在只需在<layout></layout>节点中添加它:

<review_index_showall>
  <reference name="content">
    <block type="review/showall" name="showall" template="review/showall.phtml"/>
   </reference>
<review_index_showall>

这只是告诉 Magento,当我们加载review/index/showall路由并访问showallAction()控制器中的函数时,将块添加到内容中。

现在块也有一个template="review/showall.phtml"属性。去app/design/frontend/base/default寻找一个review目录(或任何模块被称为)。如果它不存在(我怀疑)创建它!在此创建showall.phtml. 所以现在你应该让它看起来像app/design/frontend/base/default/review/showall.phtml

打开这个文件,现在你创建了你的页面。~呸!

只需记住使用$this->getAllReviews()来获取您的评论/评论集合,然后只需执行以下操作:

$reviews = $this->getAllReviews();
foreach($reviews as $review){
  echo $review->getData('column_name');
  #or
  echo $review->getColumnName();
  #does the same thing
}

我希望这会有所帮助,我没有犯任何错误。请记住,起初 Magento 会让您哭泣,但当您习惯 Magento 时,它会变成断断续续的呜咽声!

于 2013-03-08T20:01:53.747 回答