2013-08-27 36 views
2

我目前正在一個實時網站上工作,但麻煩的是他們想切換主題,所以我想安裝新主題並僅使其可通過我的IP地址進行查看。以編程方式更改Magento的核心數據

問題是我不知道如何以編程方式更改Magento主題和皮膚值。

難道你們能幫助我嗎?

+1

直播網站開發... Eeew! –

+0

我現在已經改變了它,所以我有2家商店,我正在做我的更改到新店,然後我會添加他們,一旦我完成 – molleman

+0

好東西,Magento的快樂是破壞它並修復它在別處,所以你的客戶不要帶來不便。 –

回答

3

所以這不是一個直接的答案。最佳實踐將是備份數據庫和系統,並還原到開發環境文件和數據庫。

編輯core_config_data表中每個商店的兩個條目,以將網址從實時網站更改爲開發網站網址。

然後在開發站點上開發新的或修改的主題,並在準備推送更改時將文件部署到活動服務器。

可能有另一種方法來做到這一點。您可以在Magento安裝中創建一個新商店請參閱How to Make Multiple Stores,然後將主題文件夾複製到您的開發名稱目錄中。最後,配置新的/ dev存儲以使用您的開發主題。

這兩個都是可行的選擇。試圖欺騙Magento爲您的知識產權提供一個主題,而向其他人提供另一個主題似乎是在尋求麻煩。

2

這可以在不對Magento內核進行修改的情況下完成。

它涉及到Chrome並將您的用戶代理設置爲自定義。

首先,在Magento中創建一個異常 - 我們將匹配的表達式設置爲dev並將程序包設置爲new-theme。這將設置你的包爲new-theme,如果你的用戶代理相匹配dev(將成爲位於app/design/frontend/new-theme主題:

Magento config

然後第二個,也是最後一步就是打開你的開發工具欄在Chrome和設置您的用戶-agent爲dev

Chrome config

採取以下兩個簡單的步驟,你只能爲自己編程設置你的主題包,而不會影響其他

01。
1

您可以

Mage::getSingleton('core/design_package')->setTheme('default'); 

對於剛剛創建,加載在所有頁面塊,並把它添加到構造函數的執行做到這一點。

XML將是類似的東西:

<layout version="0.1.0"> 
    <default> 
     <reference name="content"> 
      <block type="kervin/theme" name="kervin.theme"/> 
     </reference> 
    </default> 
</layout> 

和theme.php,塊將是:

class My_Kervin_Block_Theme extends Mage_Core_Block_Template 
{ 
    public function __construct() 
    { 
     if ($_SERVER["REMOTE_ADDR"] == 'xxx') { 
      Mage::getSingleton('core/design_package')->setTheme('default'); 
     } 

    } 
} 
+0

SetTheme將設置'layout','template','skin','locale'作爲你傳遞的值(這裏是'default')。 –

相關問題