わかりましたので、エンド ユーザー (コードについて何も知らない可能性が高い) が、作成中のテーマの色を変更できるようにしたいと考えています。カスタム変数を作成できることはわかりましたが、CSS を php ファイルとして配置するのはあまり効率的ではありません。
では、ユーザーがナビゲーションの背景やボタンの背景などの色の 16 進コードを入力できるようにするには、どうすればよいでしょうか。管理パネルを使用しますか?
わかりましたので、エンド ユーザー (コードについて何も知らない可能性が高い) が、作成中のテーマの色を変更できるようにしたいと考えています。カスタム変数を作成できることはわかりましたが、CSS を php ファイルとして配置するのはあまり効率的ではありません。
では、ユーザーがナビゲーションの背景やボタンの背景などの色の 16 進コードを入力できるようにするには、どうすればよいでしょうか。管理パネルを使用しますか?
これを行う 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 クラスを設定します