0

わかりましたので、エンド ユーザー (コードについて何も知らない可能性が高い) が、作成中のテーマの色を変更できるようにしたいと考えています。カスタム変数を作成できることはわかりましたが、CSS を php ファイルとして配置するのはあまり効率的ではありません。

では、ユーザーがナビゲーションの背景やボタンの背景などの色の 16 進コードを入力できるようにするには、どうすればよいでしょうか。管理パネルを使用しますか?

4

1 に答える 1

0

これを行う 1 つの方法は、顧客属性を追加して、顧客に変更させることです。

顧客属性の追加は、次のような方法で実現できます。

 public function addCustomerAttribute($params){

     try{

        $setup = Mage::getModel('customer/entity_setup', 'core_setup');
        $setup->addAttribute('customer', $params['code'], array(
                     'type' => $params['type'] ,
                     'input' => $params['input'],
                     'label' => $params['name'],
                     'global' => $params['scope'],
                     'visible' => 1,
                     'required' => $params['required'],
                     'user_defined' => 1,
                     'default' => $params['defaultvalue'],
                     'visible_on_front' => $params['visible_on_front'],
                     'used_in_forms', array('adminhtml_customer','customer_account_edit')
        ));

        Mage::getSingleton('eav/config')
             ->getAttribute('customer', $params['code'] )
             ->setData(
                'used_in_forms', array('adminhtml_customer','customer_account_edit')
             )
             ->save();

        return true;

     }catch(Exception $e){
        throw new Exception('Probleme de création d\'attribut client ' . $e->getMessage());
     }
 }

次に、顧客がログインしている場合は、値を変更して保存します。

その後、それを取得できます

$customerColor = Mage::getSingleton('customer/session')->getCustomer()->getAttributecode()

この値を使用して、テンプレートに CSS クラスを設定します

于 2013-07-18T14:44:06.333 に答える