我对magento很新。我能知道_tohtml(带下划线)和tohtml之间有什么不同吗?我找不到任何关于使用_tohtml的相关文章。如果有人能详细解释如何使用_tohtml,我们将不胜感激。
答案 0 :(得分:1)
您可以在方法声明中看到注释。
tohtml()是一个无法覆盖的最终方法。
但是如果需要,您可以在子块中覆盖_tohtml()方法。
final public function toHtml()
{
Mage::dispatchEvent('core_block_abstract_to_html_before', array('block' => $this));
if (Mage::getStoreConfig('advanced/modules_disable_output/' . $this->getModuleName())) {
return '';
}
$html = $this->_loadCache();
if ($html === false) {
$translate = Mage::getSingleton('core/translate');
/** @var $translate Mage_Core_Model_Translate */
if ($this->hasData('translate_inline')) {
$translate->setTranslateInline($this->getData('translate_inline'));
}
$this->_beforeToHtml();
$html = $this->_toHtml();
$this->_saveCache($html);
if ($this->hasData('translate_inline')) {
$translate->setTranslateInline(true);
}
}
$html = $this->_afterToHtml($html);
/**
* Check framing options
*/
if ($this->_frameOpenTag) {
$html = '<'.$this->_frameOpenTag.'>'.$html.'<'.$this->_frameCloseTag.'>';
}
/**
* Use single transport object instance for all blocks
*/
if (self::$_transportObject === null) {
self::$_transportObject = new Varien_Object;
}
self::$_transportObject->setHtml($html);
Mage::dispatchEvent('core_block_abstract_to_html_after',
array('block' => $this, 'transport' => self::$_transportObject));
$html = self::$_transportObject->getHtml();
return $html;
}