0

私は2人のオブザーバーを持っています:

<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>

javascript を含むブロックを Head にロードしたいのですが、 Observerで収集されたデータをブロックに入力する必要があります。私の問題は、イベントが発生する前にブロックが読み込まれることです。これを証明するためにログを追加しました。

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

現時点では、レイアウト XML を使用してブロックを追加していますが、代わりにsetCatalogProductListingでプログラムで作成する必要がありますか、またはすべてのデータが利用可能になるまでロードされないようにする他の方法がありますか?

そして、ここでプログラムで作成することさえ可能ですか、それともこの時点で頭はすでにファイナライズされていますか?

前もって感謝します

4

1 に答える 1