Magento允许用户通过管理面板更改主题颜色

时间:2013-07-18 14:05:26

标签: magento

好的,所以我想让最终用户(很可能对代码一无所知)能够改变我正在创建的主题颜色。我看到你可以创建自定义变量,但将CSS作为php文件放置并不是很有效。

那么我该如何解决这个问题,用户可以通过管理面板为导航背景或按钮背景或其他任何内容添加颜色的十六进制代码?

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是添加客户属性并让客户更改它。

使用这种方法可以实现添加客户属性:

 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类