3

私はテンプレートファイルにいますprice.phtml。ブロックを呼び出している親を見て、それに基づいて何らかの動作を行うコード行が必要です。本来は親がカタログ一覧ページならfrom: 、価格にタグをつけてほしい。親が の場合、configurable.phtml単純に価格を通常どおり表示したい。

価格に を追加するコードは既にありますがfrom:、親の呼び出し元が何であるかを伝える if ステートメントが必要です。

::parent以前、Mage ファイルを閲覧しているときにこのようなものを見たことがありますが、それがここに当てはまるかどうかはわかりません...

ありがとう!

4

2 に答える 2

14

呼び出すことで、phtml からブロックの親ブロックへの参照を取得できます。

$parent = $this->getParentBlock();

parent::someMethodブロックや Magento とは何の関係もない呼び出し。これらは、親クラスでメソッドを呼び出す必要があることを示すために使用される PHP コンストラクトです。

于 2011-08-04T22:58:58.677 に答える
7

Magento で視覚化するページの種類を理解するのに役立つ一連のメソッドを次に示します。

  • 現在の CMS ページ:Mage::getSingleton('cms/page')->getIdentifier();
  • 現在のルート:Mage::app()->getFrontController()->getRequest()->getRouteName();
  • 現在のコントローラー:Mage::app()->getFrontController()->getRequest()->getControllerName();
  • 現在のアクション:Mage::app()->getFrontController()->getRequest()->getActionName();

したがって、たとえば、カタログ リスト ページにいることを理解したい場合は、最後の 3 つを使用して、ルートがcatalogであるかどうか、コントローラーがカテゴリであり、アクションがビューであるかどうかを確認できます。

もう 1 つの方法は、次の方法でブロックまたはテンプレートから取得できる現在のレイアウト ハンドルの配列にcatalog_category_view レイアウトハンドルが存在するかどうかを確認することです。$this->getLayout()->getUpdate()->getHandles()

それが役に立てば幸い。

よろしく、 アレッサンドロ

于 2011-08-08T07:55:34.207 に答える