2013-06-27 32 views
0

是否可以通過查詢字符串更改Magento模板?如何通過查詢字符串更改Magento主題?

我正在開發一個自定義模板,有時候我想檢查一下是否因爲某個東西而損壞了,所以我想通過查詢字符串更改默認模板的主題。

我looing這樣的事情:

_theme =

是否存在默認情況下是這樣的?

回答

1

簡短的回答是不,你不能(據我所知)

但是,如果這是你的本地安裝(你只用一個開發環境!),你可以使用一個技巧:

Create another Store view並分配任何你想要的主題,那家商店視圖,然後訪問它像yourstore.com/?___store=storecode

+0

這很容易沒有代碼需要,就像這個想法。 –

3

編程:

你可以寫在監聽事件觀察員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 
+0

嗨,這很棒,但我不想編碼來存檔。 –

1

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'); 
} 
} 

確實對設計調整非常有幫助。工作完成後,觀察者應該被禁用或模塊停用,直到下一次