是否可以通過查詢字符串更改Magento模板?如何通過查詢字符串更改Magento主題?
我正在開發一個自定義模板,有時候我想檢查一下是否因爲某個東西而損壞了,所以我想通過查詢字符串更改默認模板的主題。
我looing這樣的事情:
_theme =
是否存在默認情況下是這樣的?
是否可以通過查詢字符串更改Magento模板?如何通過查詢字符串更改Magento主題?
我正在開發一個自定義模板,有時候我想檢查一下是否因爲某個東西而損壞了,所以我想通過查詢字符串更改默認模板的主題。
我looing這樣的事情:
_theme =
是否存在默認情況下是這樣的?
簡短的回答是不,你不能(據我所知)
但是,如果這是你的本地安裝(你只用一個開發環境!),你可以使用一個技巧:
Create another Store view並分配任何你想要的主題,那家商店視圖,然後訪問它像yourstore.com/?___store=storecode
編程:
你可以寫在監聽事件觀察員210
觀察員方法看起來是這樣的:
public function changeTheme(){
if (Mage::app()->getRequest()->getParam('layout_switch') == '1'){
Mage::getDesign()->setArea(‘frontend’)
->setPackageName(Mage::app()->getRequest()->getParam('package'))
->setTheme(Mage::app()->getRequest()->getParam('theme'));
}
return;
}
}
然後你只需要調用與例如,您的網頁
yourdomain.com/index.php/layout_switch/1/package/default/theme/default
嗨,這很棒,但我不想編碼來存檔。 –
1-2-3一樣簡單。:)創建一個新的開發主題,所有的文件從當前活動的主題複製到新的(包括應用/設計和SKING)。然後觀察controller_action_predispatch事件,然後在觀察者函數中簡單地:
$controllerAction = $observer->getControllerAction();
if ($controllerAction->getLayout()->getArea() == Mage_Core_Model_App_Area::AREA_FRONTEND) {
$ipAddress = Mage::helper('core/http')->getRemoteAddr();
$ipAddresses = array('xxx.xxx.xxx.xxx');
if (in_array($ipAddress, $ipAddresses)) {
Mage::getDesign()->setTheme('theme-wanted');
}
}
確實對設計調整非常有幫助。工作完成後,觀察者應該被禁用或模塊停用,直到下一次
這很容易沒有代碼需要,就像這個想法。 –