您可以創建一個擴展,以觀察佈局負載之前的事件。 有了一些請求參數,你可以識別你想要包含一些CSS或JS的頁面。
例如:
app/code/local/Foo/Bar/etc/config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Foo_Bar>
<version>0.1.0</version>
</Foo_Bar>
</modules>
<global>
<models>
<foo_bar>
<class>Foo_Bar_Model</class>
</foo_bar>
</models>
</global>
<frontend>
<events>
<controller_action_layout_load_before>
<observers>
<customer_is_logged_in_observer>
<class>foo_bar/observer</class>
<method>beforeLoadLayout</method>
</customer_is_logged_in_observer>
</observers>
</controller_action_layout_load_before>
</events>
</frontend>
</config>
app/code/local/Foo/Bar/Model/Observer.php
class Foo_Bar_Model_Observer
{
public function beforeLoadLayout($observer)
{
if(Mage::app()->getRequest()->getControllerName()=='page' &&
Mage::app()->getRequest()->getRouteName()='cms')
{
$head=$observer->getEvent()->getLayout()->getBlock('head');
$head->addItem('skin_js', 'js/foo.js');
$head->addItem('skin_css', 'css/foo.css');
}
}
}
不幸的是,這不是動態。您必須爲每個新頁面添加自定義XML代碼。所以如果我們找不到解決方案,這將是最後的選擇。 –