- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解导航栏是如何在 magento 中形成的,并在 topmenu.phtml 中遇到了我无法弄清楚的这一行。
<?php $_menu = $this->getHtml('level-top') ?>
我知道如何调用子 block ,但“level-top”在哪里?似乎是一个特殊的关键词。任何人都可以解释这是在哪里定义的以及它如何链接到顶部导航吗?
提前致谢。
最佳答案
是的,这有点奇怪,但归结为以下几点:
调用$this->getHtml('level-top')
引用 block 类Mage_Page_Block_Html_Topmenu
($this
是一个实例那个类的)里面的方法:
public function getHtml($outermostClass = '', $childrenWrapClass = '')
{
Mage::dispatchEvent('page_block_html_topmenu_gethtml_before', array(
'menu' => $this->_menu,
'block' => $this
));
$this->_menu->setOutermostClass($outermostClass);
$this->_menu->setChildrenWrapClass($childrenWrapClass);
if ($renderer = $this->getChild('catalog.topnav.renderer')) {
$renderer->setMenuTree($this->_menu)->setChildrenWrapClass($childrenWrapClass);
$html = $renderer->toHtml();
} else {
$html = $this->_getHtml($this->_menu, $childrenWrapClass);
}
Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
'menu' => $this->_menu,
'html' => $html
));
return $html;
}
--> $outermostClass
持有值top-level
从那里您可以看到对 $renderer->toHtml()
的调用,其中 $renderer
是 Mage_Page_Block_Html_Topmenu_Renderer
的一个实例。
protected function _toHtml()
{
$this->_addCacheTags();
$menuTree = $this->getMenuTree();
$childrenWrapClass = $this->getChildrenWrapClass();
if (!$this->getTemplate() || is_null($menuTree) || is_null($childrenWrapClass)) {
throw new Exception("Top-menu renderer isn't fully configured.");
}
$includeFilePath = realpath(Mage::getBaseDir('design') . DS . $this->getTemplateFile());
if (strpos($includeFilePath, realpath(Mage::getBaseDir('design'))) === 0 || $this->_getAllowSymlinks()) {
$this->_templateFile = $includeFilePath;
} else {
throw new Exception('Not valid template file:' . $this->_templateFile);
}
return $this->render($menuTree, $childrenWrapClass);
}
此方法现在将模板文件加载到 $includeFilePath
变量中,在我的例子中是 /vagrant/app/design/frontend/rwd/default/template/page/html/topmenu/renderer.phtml
(取决于您使用的主题)。
我无法发现 $outermostClass
与值 top-level
的任何使用。
关于menu - magento : trying to decipher level-top,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141098/
我正在为 Node 项目编写一个 javascript 模块。 我收到一个非常模糊的错误 protocol\Parser.js:82 throw err; TypeError: error:
我试图了解导航栏是如何在 magento 中形成的,并在 topmenu.phtml 中遇到了我无法弄清楚的这一行。 getHtml('level-top') ?> 我知道如何调用子 block ,但
我很难理解这个表达式: [[NSRegularExpression regularExpressionWithPattern:@"^([^:]+?):([^:]+?):([^:]+?):(.*)$"
代码如下: var kk = JSON.stringify(object); console.log(kk); var kk1 = encrypt(kk); conso
我正在尝试解密文件并将其作为对客户端的响应发送。它只适用于下载文件,如下所示: input.pipe(res); 但是当我将解密添加到管道中时,如下所示: input.pipe(decipher).p
我正在尝试加密/解密。加密工作正常,它将加密数据写入文件。解密时出现长度错误问题。我使用了“utf-8”格式,但错误仍然存在。 / A decrypt function function decr
我是一名优秀的程序员,十分优秀!