0

すべての製品のすべてのレビューをcmsページに表示したいと思います。誰かがこれを行う方法を知っていますか?Magento1.4.2を使用しています

4

1 に答える 1

0

それはすべて、Magento の機能にその拡張機能を提供するために使用しているモジュールに依存します。モジュールのフォルダーを見ると (Cmdcentral/Review としましょう)

app/code/community/Cmdcentral/Review/

これは、モジュールが存在する場所です (ローカルにもある可能性があります) etcfor を見てくださいconfig.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>

review/index/showallこれは単に、ルートをロードshowallAction()してコントローラーの関数にアクセスするときに、ブロックをコンテンツ内に追加するように Magento に指示するだけです。

ブロックにもtemplate="review/showall.phtml"属性が追加されました。ディレクトリ(またはモジュールが呼び出されたもの)をapp/design/frontend/base/default探しに行きます。review存在しない場合は (私には疑わしい)、作成してください! この中で create 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 に答える