我正面临着一个非常奇怪的故障。所以,我正在尝试使用以下代码{{block type="core/template" name="ves_random_products" template="page/RandomProducts.phtml"}}
向我的家添加一个块,它可以很好地工作,从集合中显示随机产品等等。
现在我正在使用整页缓存扩展,我需要使这个块动态化,问题是Magento似乎不会将“ves_random_products”作为块名称,当页面加载时,我的block没有名称(无名/匿名),当我执行var_dump(Mage::app()->getLayout()->getAllBlocks());
时,块的名称显示为“ANONYMOUS_0”。最奇怪的是,在Mage::app()->getLayout()->getAllBlocks()
内,我可以看到参数“name”,其值为“ves_random_products”。 var_dump的完整输出是:
array(1) {
["ANONYMOUS_0"]=>
object(Mage_Core_Block_Template)#243 (31) {
["_viewDir":protected]=>
string(32) "/var/www/html/magento/app/design"
["_viewVars":protected]=>
array(0) {
}
["_baseUrl":protected]=>
NULL
["_jsUrl":protected]=>
NULL
["_allowSymlinks":protected]=>
NULL
["_template":protected]=>
string(25) "page/RandomProducts.phtml"
["_nameInLayout":protected]=>
string(12) "ANONYMOUS_0"
["_layout":protected]=>
object(Mage_Core_Model_Layout)#192 (15) {
["_update":protected]=>
object(Mage_Core_Model_Layout_Update)#191 (7) {
["_elementClass":protected]=>
NULL
["_packageLayout":protected]=>
NULL
["_cacheId":protected]=>
NULL
["_cachePrefix":protected]=>
NULL
["_updates":protected]=>
array(0) {
}
["_handles":protected]=>
array(7) {
["default"]=>
int(1)
["cms_page"]=>
int(1)
["STORE_fsview"]=>
int(1)
["THEME_frontend_default_ves_superstore"]=>
int(1)
["cms_index_index"]=>
int(1)
["page_one_column"]=>
int(1)
["customer_logged_out"]=>
int(1)
}
["_subst":protected]=>
array(2) {
["from"]=>
array(2) {
[0]=>
string(11) "{{baseUrl}}"
[1]=>
string(17) "{{baseSecureUrl}}"
}
["to"]=>
array(2) {
[0]=>
string(26) "http://mystore.com/"
[1]=>
string(27) "https://mystore.com/"
}
}
}
["_blocks":protected]=>
*RECURSION*
["_output":protected]=>
array(0) {
}
["_area":protected]=>
string(8) "frontend"
["_helpers":protected]=>
array(0) {
}
["_directOutput":protected]=>
bool(false)
["_xml":protected]=>
object(Mage_Core_Model_Layout_Element)#40 (0) {
}
["_cacheId":protected]=>
NULL
["_cacheTags":protected]=>
array(0) {
}
["_cacheLifetime":protected]=>
NULL
["_cacheChecksum":protected]=>
bool(false)
["_cacheSaved":protected]=>
bool(false)
["_cache":protected]=>
NULL
["_elementClass":protected]=>
string(30) "Mage_Core_Model_Layout_Element"
["_xpathExtends":protected]=>
string(13) "//*[@extends]"
}
["_parent":protected]=>
NULL
["_alias":protected]=>
NULL
["_anonSuffix":protected]=>
NULL
["_children":protected]=>
array(0) {
}
["_sortedChildren":protected]=>
array(0) {
}
["_childrenHtmlCache":protected]=>
array(0) {
}
["_childGroups":protected]=>
array(0) {
}
["_request":protected]=>
NULL
["_messagesBlock":protected]=>
NULL
["_isAnonymous":protected]=>
bool(true)
["_parentBlock":protected]=>
NULL
["_frameOpenTag":protected]=>
NULL
["_frameCloseTag":protected]=>
NULL
["_sortInstructions":protected]=>
array(0) {
}
["_factory":protected]=>
NULL
["_app":protected]=>
NULL
["_data":protected]=>
array(5) {
["type"]=>
string(13) "core/template"
["name"]=>
string(19) "ves_random_products"
["template"]=>
string(25) "page/RandomProducts.phtml"
["block_params"]=>
array(3) {
["type"]=>
string(13) "core/template"
["name"]=>
string(19) "ves_random_products"
["template"]=>
string(25) "page/RandomProducts.phtml"
}
["module_name"]=>
string(9) "Mage_Core"
}
["_hasDataChanges":protected]=>
bool(true)
["_origData":protected]=>
NULL
["_idFieldName":protected]=>
NULL
["_isDeleted":protected]=>
bool(false)
["_oldFieldsMap":protected]=>
array(0) {
}
["_syncFieldsMap":protected]=>
array(0) {
}
}
}
我正在尝试没有成功让这个块有一个名字,我做错了什么?看着整个互联网,似乎我是唯一一个面临这个问题的人(?!)。奇怪的。这是一个核心故障吗?谢谢!
答案 0 :(得分:1)
我不确定,但是因为看起来你在CMS中添加了这个块我觉得这个名字被忽略了。您可能需要将其保存在布局XML中,以使其实际计为命名。
无论哪种方式,我认为只是命名它将解决你的主要问题,你需要的是打孔FPC - 使用这种方法可能会有所帮助:
https://magento.stackexchange.com/questions/35140/static-block-fpc-hole-punch