1

クエリ文字列を介して Magento テンプレートを変更することは可能ですか?

カスタム テンプレートを開発していますが、何かが壊れていないかどうかを確認したい場合があるため、クエリ文字列を介してデフォルトのテーマを変更したいと考えています。

私はこのようなものを探しています:

?_theme=デフォルト

このようなものは存在しますか?

4

3 に答える 3

5

プログラムで:

イベントをリッスンしているオブザーバーを書くことができます<controller_action_predispatch>

オブザーバー メソッドは次のようになります。

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
于 2013-06-27T22:14:14.597 に答える
1

1-2-3.:) 新しい開発テーマを作成し、すべてのファイルを現在のライブ テーマから新しいテーマにコピーします (アプリ/デザインとスキンの両方)。次に 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');
}
}

実際、デザインの微調整に非常に役立ちます。作業が終了したら、次回までオブザーバーを無効にするか、モジュールを無効にする必要があります

于 2013-07-18T09:46:09.753 に答える