好的,所以我想让最终用户(他们很可能对代码一无所知)能够更改我正在创建的主题颜色。我看到您可以创建自定义变量,但是将您的 CSS 作为 php 文件并不是很有效。
那么我该如何解决这个问题,用户可以通过管理面板为导航背景或按钮背景或其他任何颜色放置颜色的十六进制代码?
好的,所以我想让最终用户(他们很可能对代码一无所知)能够更改我正在创建的主题颜色。我看到您可以创建自定义变量,但是将您的 CSS 作为 php 文件并不是很有效。
那么我该如何解决这个问题,用户可以通过管理面板为导航背景或按钮背景或其他任何颜色放置颜色的十六进制代码?
一种方法是添加客户属性并让您的客户更改它。
添加客户属性可以通过这种方法实现:
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 类