{{block type="tag/popular" template="tag/popular.phtml"}}blockDirective(): /magento/app/code/core/Mage/Core/Model/Email/Template/Filter.php at line 191 /**
* Retrieve Block html directive
*
* @param array $construction
* @return string
*/
public function blockDirective($construction)
{
$skipParams = array('type', 'id', 'output');
$blockParameters = $this->_getIncludeParameters($construction[2]);
$layout = Mage::app()->getLayout();
if (isset($blockParameters['type'])) {
$type = $blockParameters['type'];
$block = $layout->createBlock($type, null, $blockParameters);
} elseif (isset($blockParameters['id'])) {
$block = $layout->createBlock('cms/block');
if ($block) {
$block->setBlockId($blockParameters['id']);
}
}
if ($block) {
$block->setBlockParams($blockParameters);
foreach ($blockParameters as $k => $v) {
if (in_array($k, $skipParams)) {
continue;
}
$block->setDataUsingMethod($k, $v);
}
}
if (!$block) {
return '';
}
if (isset($blockParameters['output'])) {
$method = $blockParameters['output'];
}
if (!isset($method) || !is_string($method) || !is_callable(array($block, $method))) {
$method = 'toHtml';
}
return $block->$method();
}blockDirective 方法会创建好对应的 block对象,并且调用对应的 toHtml 方法。
Magento Block Directive
本文介绍了Magento中blockDirective方法的实现细节,该方法用于创建指定类型的block并调用其toHtml方法来获取HTML输出。
141

被折叠的 条评论
为什么被折叠?



