2

私は現在ライブWebサイトに取り組んでいますが、問題はテーマを切り替えたいので、新しいテーマをインストールして、私のIPアドレスでのみ表示できるようにしたいことです.

問題は、Magento のテーマとスキンの値をプログラムで変更する方法がわからないことです。

ここで私を助けてくれる人はいますか?

4

3 に答える 3

3

したがって、これは直接的な答えではありません。ベスト プラクティスは、データベースとシステムをバックアップし、開発環境のファイルとデータベースに復元することです。

core_config_data テーブルの各ストアの 2 つのエントリを編集して、URL をライブ サイトから開発サイトの URL に変更します。

次に、開発サイトで新しいテーマまたは変更したテーマを開発し、変更をプッシュする準備ができたら、ファイルをライブ サーバーにデプロイします。

これを行う別の方法があるかもしれません。Magento インストールで新しいストアを作成できます。複数のストアを作成する方法を参照してから、テーマ フォルダーを開発用の名前ディレクトリにコピーします。最後に、開発テーマを使用するように new/dev ストアを構成します。

これらは両方とも実行可能なオプションです。Magento をだまして、1 つのテーマを自分の IP に提供し、別のテーマを他のすべての人に提供しようとするのは、面倒なことのように思えます。

于 2013-08-27T22:22:55.863 に答える
2

これは、Magento コアに変更を加えることなく実行できます。

これには、Chrome と、ユーザー エージェントをカスタムとして設定することが含まれます。

まず、Magento で例外を作成します。一致した式を asdevに設定し、パッケージを に設定しますnew-themenew-themeこれにより、ユーザーエージェントが一致するかのようにパッケージが設定されますdev(次の場所にあるテーマが提供されapp/design/frontend/new-themeます:

マジェント構成

次に、最後の 2 番目のステップとして、Chrome でデベロッパー ツールバーを開き、ユーザー エージェントを次のように設定しますdev

クローム設定

これらの 2 つの簡単な手順を実行すると、他の人に影響を与えることなく、テーマ パッケージをプログラムで自分だけに設定できます。

于 2013-09-13T05:35:49.660 に答える
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');
        }

    }
}
于 2013-09-13T11:08:05.187 に答える