2011-09-05 3 views
2

관리자 영역에서 일부 기능을 리버스 엔지니어링하려고하는데 문제가 발생했습니다. 코드의 내 사용자 지정 버전이 실행되는 경우는 category_info_tabsJsTabs이 Magento - js 변수 category_info_tabsJsTabs -이게 뭐지?

정의되지 않는다는 것을 말하고,이 다음 줄에 실패하면 (category_info_tabsJsTabs.activeTab) 템플릿 파일 adminhtml_catalog_category_tree.phtml에서 원래이었다 {

이 문자열에 대한 텍스트 검색을했는데 어디서나 찾을 수있는 것 같아서 선언 된 위치를 파악합니다. 누구든지이 일을 도울 수 있습니까?

덕분 이안

답변

3

은 특정 변수 app/design/adminhtml/default/default/template/widget/tabs.phtml

<script type="text/javascript"> 
    <?php echo $this->getJsObjectName() ?> = new varienTabs('<?php echo $this->getId() ?>', '<?php echo $this->getDestElementId() ?>', '<?php echo $this->getActiveTabId() ?>', <?php echo $this->getAllShadowTabs()?>); 
</script> 

클래스에 속하는 Mage_Adminhtml_Block_Widget_TabsgetJsObjectName() 방법에 선언된다. 그것은 다음과 같습니다

public function getJsObjectName() 
{ 
    return $this->getId() . 'JsTabs'; 
} 

의 ID는 다음이 경우는 않는 Mage_Adminhtml_Block_Catalog_Category_Tabs이며, 탭 클래스의 각 하위에 의해 설정이 :

$this->setId('category_info_tabs'); 
+0

안녕 ClockWorkGeek, 그 지적 감사합니다. 그게 무슨 일이 벌어지고 있는지 이해하려고 애쓰는 데 확실히 도움이되었습니다. getJsObjectName에서 변수 이름을 연결한다는 사실은 텍스트 검색으로 찾을 수없는 이유를 설명합니다. 올바르게 가정한다면 getJsObjectName이 getId()를 'tabs'로 결정하므로 'tabsJsTabs'가됩니다. 나는 getId 메소드가 단순히 템플릿 이름 즉 탭 (.phtml)을 사용한다고 추측하고있다. 나를 위해 그림을 완성하기 만하면, 변수 이름의 'category_info_'부분은 어디에 구성되어 있습니까? 도움을 다시 주셔서 감사합니다. 이안 –

0
내가 같은 물건을 검색 한

, 그래서 여기에 'category_info_tabs'의 위치를 ​​추가 생각 : ./app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php