2

商品ページのレビューまとめブロックをカスタマイズしたいのですが、レビューモジュールのヘルパーブロック(これは「ヘルパー」と呼ばれるブロックで、ヘルパーではありません)が登録されている(接続されている)場所が見つからないようです。を実際のクラス名に) 既存のレイアウト xml に追加します。

Magento コア コードを少し掘り下げて、次のような行を確認しました。

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

次のようなものに評価されます: 'Namespace_Modulename_Block_Blockname'

app/code/core/Mage/Core/Model/Config.php行 1173のファイルに見られるように、メモリ内の XML 構成には何らかの方法でレビュー グループとヘルパーが含まれています。

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();

Mage::log を使用して、行 1173 に続くコードが$configオブジェクトから必要な情報を取得できることを確認しました。

誰かが私にこれに関するヒントを与えることができれば、それは大歓迎です.

4

1 に答える 1

1

見てみると

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

にノードがあることがわかります。

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

reviewブロックのグループとして登録します。その後、エイリアス ( groupname/classname) のクラス部分が Leading_Camel_Cased になり、グループ用に構成されたクラスに追加されるため、Helper という名前のブロックを特に構成する必要はありません。

于 2011-11-10T16:10:39.963 に答える