我在CMS->頁面「主頁」文件中。在內容我寫這樣的線是這樣的:CMS頁面添加塊magento
{{block type="myfolder/newfile" template="myfolder/newfile.phtml"}}
我想渲染內容文件newfile.phtml。我做錯了什麼?
我的新文件下:應用程序\設計\前臺\ DEFAULT \ themeas \模板\ MyFolder文件\ newfile.phtml
我在CMS->頁面「主頁」文件中。在內容我寫這樣的線是這樣的:CMS頁面添加塊magento
{{block type="myfolder/newfile" template="myfolder/newfile.phtml"}}
我想渲染內容文件newfile.phtml。我做錯了什麼?
我的新文件下:應用程序\設計\前臺\ DEFAULT \ themeas \模板\ MyFolder文件\ newfile.phtml
你需要給你的塊的名稱。這就是Magento將參考該塊的方式。此外,您的塊類型必須有效,才能呈現塊。對於默認塊嘗試使用類型=「核心/模板」
你的新代碼應該是這樣的:
{{block type="core/template" name="my.block.name" template="myfolder/newfile.phtml"}}
約type屬性另要注意,它並不是一個真正的目錄/文件結構,相反,它是一個使用Magento自動加載器映射的URI。 「核心」涉及Mage_Core_Block_Core類(位於app/code/core/Mage/Core目錄下),然後斜槓後的信息與該目錄內的文件夾相關。因此type =「core/template」解析爲位於app/code/core/Mage/Core/Block/Template.php的這個類Mage_Core_Block_Core_Template。所有的type屬性都在告訴Magento你需要在你的塊中加載哪些方法。
一對夫婦的其他類型的塊,你可以嘗試是:
對於產品列表:目錄/所屬類別
對於文本列表(塊自動呈現出子塊):核心/ text_list
對於分類塊:目錄/ category_view
還有更多,找到新的一個好方法就是看一個塊,它對你正在做的事情做出類似的行爲,並找到它在XML中定義的位置。
如果你想傳遞變量來將擋,你可以這樣做:
{{block type="core/template" name="my.block.name" myvariable="5" template="myfolder/newfile.phtml"}}
我想提供一種替代方案:
以上答案做工精細,但它是我個人的不要在CMS頁面的內容中插入塊,因爲客戶可以(並且已經)在嘗試使用所見即所得編輯文本和內容時刪除了這一重要行。
你可以添加以下的中佈局>佈局更新XML一個CMS頁面的部分:
<reference name="content">
<block after="-" type="your/block_type" name="block.name" template="your/block/template/file.phtml"/>
<action method="insert" ifconfig="your/block_type">
<block>block.name</block>
</action>
</reference>
這樣一來,客戶不太可能編輯這個標籤!
希望這可以幫助其他人解決這個問題!
由於Magento 1.9.2.2或等效補丁,您還需要授予新塊的權限。您在後端執行此操作: System |權限|塊
也就是說,如果你想顯示:
{{block type="catalog/product_bestseller" name="krillo.bestseller" template="catalog/product/bestseller.phtml"}}
添加您的塊名稱「目錄/ product_bestseller」,並設置狀態爲「允許」在我的網站之一
它的工作沒有名字,直到版本1.9.2.3 as'''{{block type =「catalog/product_list」category_id =「8」template =「catalog/product/featured.phtml」}}''' – lrkwz 2016-01-27 17:02:50
不要忘記給塊權限,否則不會顯示(magento版本1.9+)system-> permission-> blocks – Mike 2016-07-21 13:50:09