2013-07-13 74 views
0

我需要在我的列表頁面的頭部插入一個javascript對象,其中包含該頁面上列出的產品的json表示形式,即不是該類別中的所有產品,而只是那些已由工具欄分頁的產品。Magento什麼是解決觀察者加載訂單問題的最佳途徑?

我發現我可以通過在catalog_block_product_list_collection上放置一個觀察器來獲取這些數據,但是這是在頭塊已經被渲染之後,所以因此阻止我在頭的子塊中使用該數據。

就我所見,我有兩個選擇。

  1. 將javascript塊加載到頁腳並使用jquery將它注入到標題中。
  2. 確定Magento在調用catalog_block_product_list_collection之前做了什麼,然後重新創建模型中的邏輯。

我想知道哪種方式有經驗的Magento開發人員會跳和兩種技術的陷阱,提前致謝。

回答

0

所以你已經添加了一個自定義塊頭,如果我有你的權利,如果是這樣,你應該能夠從列表塊中檢索產品集合。

$this->getLayout()->getBlock('product_list')->getLoadedProductCollection(); 

我可能誤解了你的問題,但也許它有幫助。

+0

感謝@butterbrot這看起來像是可以做的工作,我不知道你可以從塊本身得到父級佈局,儘管現在看起來很明顯,當我想到它時。我會放棄它。我會回來讓你知道結果。 –

+0

酷,手指交叉,保持我張貼 – butterbrot

+0

它拉入產品集合,但分頁尚未應用於我的對象或product_list塊本身都不顯示頁面上的所有內容。我認爲,調用getLoadedProductCollection()加載產品集合如果爲null並且作爲單例。法師通常必須一直在做一些設置工作,我們已經側過步,因此阻止了,我可以通過克隆對象解決單身問題,並且產品將在頁面上正確顯示,但是在我的頭部json中,我仍然有兩個許多產品。看起來我需要克隆並確定安裝工作是什麼。 –