すべての製品のすべてのレビューをcmsページに表示したいと思います。誰かがこれを行う方法を知っていますか?Magento1.4.2を使用しています
1 に答える
それはすべて、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 に慣れると断続的な泣き声に変わります。