Где зарегистрирован блок «Помощник» модуля «Обзор»? - PullRequest
2 голосов
/ 10 ноября 2011

Я хочу настроить сводный блок обзора на странице продукта, но не могу найти, где находится блок Helper (этот блок называется «Helper», а не «helper») модуля Review.зарегистрирован (связан с реальным именем класса) в существующем макете xml.

Я немного покопался в коде ядра Magento, чтобы увидеть, как строка вроде:

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

оценивает что-то вроде: 'Namespace_Modulename_Block_Blockname'

Каким-то образом XML-конфигурация в памяти содержит группу обзора и помощника, как видно из файла app/code/core/Mage/Core/Model/Config.php в строке 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();

Я проверил с помощьюMage :: log сообщает, что код, следующий за строкой 1173, может получить необходимую информацию из объекта $config.

Если кто-то может дать мне советы по этому поводу, он будет очень признателен.

1 Ответ

1 голос
/ 10 ноября 2011

Если вы посмотрите на

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

Вы можете увидеть, что есть узел на

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

. Здесь review регистрируется как группа для блоков.После этого нет необходимости специально настраивать блок с именем Helper, поскольку часть псевдонима класса (groupname/classname) будет Leading_Camel_Cased и добавлена ​​к классу, настроенному для группы.

...