Magento:延迟头块加载直到我的事件触发

Magento:延迟头块加载直到我的事件触发,magento,events,block,observers,load-order,Magento,Events,Block,Observers,Load Order,我有两名观察员: <events> <controller_action_layout_load_before> <observers> <QuBit_UniversalVariable_Model_Page_Observer> <type>singleton</type> <class>universal_variable_main/o

我有两名观察员:

<events>
    <controller_action_layout_load_before>
      <observers>
        <QuBit_UniversalVariable_Model_Page_Observer>
          <type>singleton</type>
          <class>universal_variable_main/observer</class>
          <method>setUniversalVariable</method>
        </QuBit_UniversalVariable_Model_Page_Observer>
      </observers>
    </controller_action_layout_load_before>
    <catalog_block_product_list_collection>
      <observers>
        <QuBit_UniversalVariable_Model_Page_Observer>
            <type>singleton</type>
            <class>universal_variable_main/observer</class>
            <method>setCatalogProductListing</method>
        </QuBit_UniversalVariable_Model_Page_Observer>
      </observers>
    </catalog_block_product_list_collection>
  </events>
在使用布局XML添加块时,我是否需要在setCatalogProductListing中以编程方式创建它,或者是否有其他方法防止在所有数据可用之前加载它

甚至有可能在这里以编程的方式创建它,或者到现在为止头部已经完成了吗


提前感谢

在调度
目录(catalog)块(block)(product)列表(list)集合(
事件)时,
头(head)已经被输出,因此实际上没有什么可以改变它(或者实际上,它取决于列表块的位置,但在几乎所有情况


在呈现头部之前,您必须直接处理布局块和列表块,以从集合中检索数据,但方法取决于您是要将代码应用于所有列表块,还是仅应用于类别块(知道块也可以从CMS内容调用,因此在相应的页面/块本身输出之前可能不存在)。

是的,头部已经被输出,因为
catalog\u block\u product\u list\u集合
事件在
Mage\u catalog\u block\u product\u list::\u beforeToHtml()
(因此,在呈现产品列表时)。你真的需要在头部填充脚本吗?是的,因为它是一个通用变量javascript对象,QuBit Opentag标记管理脚本将调用它。这些对象可以注入DOM中的任何位置。其次,我想对git项目执行一个拉取请求,以便它与主repostory合并,从而在所有sce中正常工作当你说头部已经被输出时,你的意思是即使以编程方式添加一个块也会失败吗?我有点被“是”弄糊涂了您的评论是从开始的。除此之外,块是呈现到一个缓冲区中,然后在构建整个页面时发送,还是在呈现时作为输出发送。如果它们呈现到一个缓冲区中,是否有方法获取该缓冲区以将其作为字符串进行操作?编辑:好,已经阅读了Alans关于块生命周期的精彩文章我想我现在明白发生了什么,@blmage我相信你的评论实际上是一个答案-事件永远不会像它实际呈现的那样到达标题栏。如果你想将你的评论粘贴到答案中,我将删除它。很抱歉,回答太晚了!选择“是”,我的意思是,在调度事件时,头部已经输出,因此实际上没有任何东西可以改变它,即使在其中添加块。
2013-07-12T07:18:44+00:00 DEBUG (7): loading setUniversalVariable
2013-07-12T07:18:44+00:00 DEBUG (7): loading template
2013-07-12T07:18:48+00:00 DEBUG (7): loading setCatalogProductListing