2011-09-05 62 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> 

getJsObjectName()屬於類Mage_Adminhtml_Block_Widget_Tabs的方法聲明。它看起來像這樣:

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

的ID,然後由標籤類的每一個派生集,在這種情況下,它是Mage_Adminhtml_Block_Catalog_Category_Tabs它做到這一點:

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

嗨ClockWorkGeek, 感謝您指出了這一點。這無疑幫助我瞭解發生了什麼事情。 變量名稱連接在getJsObjectName中的事實解釋了爲什麼我無法通過文本搜索找到它。 如果我假設正確,這意味着getJsObjectName解析getId()到'選項卡' - 從而使'tabsJsTabs'。我猜get1d方法只是使用模板名稱 - 即標籤(.phtml)? 只是爲了讓我完成這個圖片,變量名的'category_info_'部分在哪裏構造? 再次感謝您的幫助, Ian –

0

我正在尋找同樣的東西,所以想在這裏添加「category_info_tabs」的位置: ./app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php