2011-11-10 2 views
2

제품 페이지에서 검토 요약 블록을 사용자 정의하고 싶지만 검토 모듈의 도우미 블록 ("도우미"가 아닌 도우미가 아닌 블록)이 어디에 등록되어 있는지 찾을 수 없습니다 기존의 레이아웃 XML에 (실제 클래스 이름에 연결) "검토"모듈의 "도우미"블록은 어디에 등록되어 있습니까?

내가 좋아하는 줄 방법을 볼 수있는 Magento의 핵심 코드로 조금 파고 :.

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

이 같은 것을 평가 : 'Namespace_Modulename_Block_Blockname'

어떻게 든 메모리의 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(); 

.

누구든지 내게이 팁을 줄 수 있다면 크게 감사하겠습니다. 당신이

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

에서

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

당신은 노드가 있음을 볼 수 있습니다에서 살펴 경우

답변

1

이것은 블록 그룹으로 review을 등록합니다. 그런 다음 별칭 (groupname/classname)의 클래스 부분이 Leading_Camel_Cased가되어 그룹에 구성된 클래스에 추가되므로 Helper라는 블록을 구체적으로 구성 할 필요가 없습니다.

+0

답장을 보내 주셔서 감사합니다. 이전 답변으로 돌아 가지 않아서 죄송합니다. 이 레벨에서만 재 작성이 가능하다는 것을 알고 있습니까? 나에게 그것은 Review 모듈의 어떤 블록을 서브 클래스 화하기 원한다면, 나는 그것들 모두를 서브 클래스 화해야한다는 것을 의미 할 것이다. – pancake

+0

방금 ​​약간의 계시를 받았는데 편집 된 질문을 확인하십시오. – pancake

+0

그러나 이것은 아마도 가장 좋은 장소입니다. 내 맞춤 모듈의 config.xml에서 "review_helper"를 다시 작성하려고했습니다. 전체 "도우미"가 도우미라는 블록이 아니라 도우미가 아니라 그 자체. "도우미"여야했는데 이제는 작동합니다! – pancake

관련 문제