2011-11-10 7 views
2

レビューページのレビューサマリーブロックをカスタマイズしたいのですが、レビューモジュールのヘルパーブロック(これはヘルパーではないブロック、ヘルパーではありません)がどこに登録されているかわかりません。「レビュー」モジュールの「ヘルパー」ブロックはどこに登録されていますか?

$this->getLayout->createBlock('modulename/blockname'); 

のようなものと評価されます: 「Namespace_Modulename_Block_Blocknameの既存のレイアウトXMLで(実際のクラス名に接続)

を私のような行がどのように確認するためにMagentoのコアコードに少し掘っ

どうやらメモリ内のXML構成には、ライン1173上のファイルapp/code/core/Mage/Core/Model/Config.phpに見られるように、レビューグループとヘルパー、:私は$configオブジェクトのうち、必要な情報を得ることができますライン1173を以下のメイジ::ログのそのコードを使用してチェック

1164 $classArr = explode('/', trim($classId)); 
1165 $group = $classArr[0]; 
1166 $class = !empty($classArr[1]) ? $classArr[1] : null; 
1167 
1168 if (isset($this->_classNameCache[$groupRootNode][$group][$class])) { 
1169  return $this->_classNameCache[$groupRootNode][$group][$class]; 
1170 } 
1171 
1172 //$config = $this->getNode($groupRootNode.'/'.$group); 
1173 $config = $this->_xml->global->{$groupType.'s'}->{$group}; 
1174 
1175 if (isset($config->rewrite->$class)) { 
1176  $className = (string)$config->rewrite->$class; 
1177 } else { 
1178  if (!empty($config)) { 
1179   $className = $config->getClassName(); 

誰でも私にこれに関するヒントを与えることができます、それは非常に感謝します。

答えて

1

あなたは

app/code/core/Mage/Review/etc/config.xml 

を見てみる場合は、ノードがこれはブロックのグループとしてreview登録

<config> 
    <global> 
     <blocks> 
      <review> 
       <class>Mage_Review_Block</class> 
      </review> 
     </blocks> 
    </global> 
</config> 

でありますことがわかります。その後、エイリアスのクラス部分(groupname/classname)はLeading_Camel_Casedになり、グループに設定されたクラスに追加されるため、Helperという名前のブロックを特別に設定する必要はありません。

+0

お返事ありがとうございました。ご返信ありがとうございました。申し訳ありませんが、私はあなたの前に戻りませんでした。このレベルでしか書き換えができないことを理解していますか?私にとっては、Reviewモジュールのどのブロックをサブクラス化したいのであれば、それらをすべてサブクラス化することになるでしょう。 – pancake

+0

ちょっとした啓示がありました。編集した質問をチェックしてください。 – pancake

+0

しかし、これはおそらく最適な場所です:自分のカスタムモジュールのconfig.xmlで "review_helper"を書き直そうとしました。ヘルパーと呼ばれるブロック自体。それは "ヘルパー"だったはずです、今それは動作します! – pancake

関連する問題