&引用;getLogoAlt";不适用于Magento中的内容部分
在Magento CE 1.5.1中,为什么getLogoAlt虽然可用于标题部分,但却不可用于内容部分 在主页的内容部分,我的主题的home.phtml&引用;getLogoAlt";不适用于Magento中的内容部分,magento,Magento,在Magento CE 1.5.1中,为什么getLogoAlt虽然可用于标题部分,但却不可用于内容部分 在主页的内容部分,我的主题的home.phtml 哪个输出为 <h1 class="no-display"></h1> <h4><a href="http://mystore.com/" id="logo" style="background-image:url(http://mystore.com/skin/frontend/mytheme/
哪个输出为
<h1 class="no-display"></h1>
<h4><a href="http://mystore.com/" id="logo" style="background-image:url(http://mystore.com/skin/frontend/mytheme/orange/images/logo.png)"><strong>Buy widgets here!</strong></a></h4>
但是header.phtml
正确输出为
<h1 class="no-display"></h1>
<h4><a href="http://mystore.com/" id="logo" style="background-image:url(http://mystore.com/skin/frontend/mytheme/orange/images/logo.png)"><strong>Buy widgets here!</strong></a></h4>
“标题部分”是添加了以下布局更新XML的块
<block type="page/html_head" name="head" as="head">
当您从模板中使用$this->someMethod()
时,您正在对模板的块类调用一个方法。每个模板“属于”一个块。如果我们再看一下header类
#File: app/code/core/Mage/Page/Block/Html/Header.php
public function getLogoAlt()
{
if (empty($this->_data['logo_alt'])) {
$this->_data['logo_alt'] = Mage::getStoreConfig('design/header/logo_alt');
}
return $this->_data['logo_alt'];
}
我们可以看到getLogoAlt
的定义
您提到的另一个模板,home.phtml
,添加了以下布局更新xml
<block type="core/template" name="default_home_page" template="cms/default/home.phtml"/>
即使块没有定义这些方法。因此,这意味着您可以调用任何块上的getLogoAlt
,而不会抛出错误,但只有头块将返回值。如果您想在任何模板中使用该值,只需调用
$logo_alt = Mage::getStoreConfig('design/header/logo_alt');
在模板顶部,然后使用
$logo\u alt
非常感谢您完整的回答和解释!嗨,很好的解释。在除页眉以外的其他模板上使用此函数的最佳方式是什么?我认为将函数添加到Mage\u Core\u Block\u Text\u列表中是不好的?
$this->setFooBar('setting a value for the foo_bar data property');
echo $this->getFooBar();
$logo_alt = Mage::getStoreConfig('design/header/logo_alt');