问题描述
|
我正在研究Magento内部,在Widget / Tab渲染层次结构中,我有点不明白阴影标签的概念。在为表单定义选项卡时,可以将其绑定为阴影选项卡
protected function _prepareLayout()
{
parent::_prepareLayout();
$this->addTab(\'bundle_items\',array(
\'label\' => Mage::helper(\'bundle\')->__(\'Bundle Items\'),\'url\' => $this->getUrl(\'*/*/bundles\',array(\'_current\' => true)),\'class\' => \'ajax\',));
$this->bindShadowTabs(\'bundle_items\',\'customer_options\');
}
bindShadowTabs
方法是带有
/**
* Mark tabs as dependent of each other
* Arbitrary number of tabs can be specified,but at least two
*
* @param string $tabOneId
* @param string $tabTwoId
* @param string $tabNId...
*/
public function bindShadowTabs($tabOneId,$tabTwoId)
利用PHP对象的Javascript看起来像
showTabContentImmediately : function(tab) {
this.hideAllTabsContent();
var tabContentElement = $(this.getTabContentElementId(tab));
if (tabContentElement) {
Element.show(tabContentElement);
Element.addClassName(tab,\'active\');
// load shadow tabs,if any
if (tab.shadowTabs && tab.shadowTabs.length) {
for (var k in tab.shadowTabs) {
this.loadShadowTab($(tab.shadowTabs[k]));
}
}
if (!Element.hasClassName(tab,\'ajax only\')) {
Element.removeClassName(tab,\'notloaded\');
}
this.activeTab = tab;
}
if (varienGlobalEvents) {
varienGlobalEvents.fireEvent(\'showTab\',{tab:tab});
}
},
从基本的理解上,我还不完全清楚将一个选项卡“依赖”于另一个选项卡的含义是什么。这是一个简单的\“仅在呈现customer_options
选项卡时才呈现bundle_item
选项卡吗?还是其他?
解决方法
似乎这意味着,只要显示了如shadowTabs绑定在一起的任何选项卡,此grop中的其他选项卡也将被呈现。
因此不是\“仅在呈现
customer_options
选项卡时才呈现bundle_item
选项卡\”,而是\“在呈现bundle_item
选项卡或customer_options
选项卡时,也渲染另一个选项卡\”。
不确定我是否喜欢阴影的隐喻。