Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5120128
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2008-12-15 01:48:36

要在magento的注册页面添加字段,需要修改4个文件。

app/design/frontend/default/yourtheme/template/customer/form/register.phtmlHTML 表单

app/design/frontend/default/yourtheme/template/customer/form/edit.phtmlHTML form 用户编辑表单

app/code/core/Mage/Customer/Model/Entity/Setup.php - 客户注册属性的数组

app/code/core/Mage/Customer/etc/config.xml - 表单中各项的描述

首先我们来添加一个文本框用来输入用户的职业occupation/title. 在register.html的第54行 :

  •    
    class="input-box">
  •        
  •         "text" name="email" id="email_address" value="htmlEscape($this->getFormData()->getEmail()) ?>" title="__('Email Address') ?>" class="validate-email required-entry input-text" />
  •    
  • 现在我们需要添加:职业“(occupation)的文本框, 所以把代码改为:

  •    
    class="input-box">
  •        
  •         "text" name="email" id="email_address" value="htmlEscape($this->getFormData()->getEmail()) ?>" title="__('Email Address') ?>" class="validate-email required-entry input-text" />
  •    
  •    
    class="input-box">
  •        
  •         "text" name="occupation" id="occupation" value="htmlEscape($this->getFormData()->getOccupation()) ?>" title="__('Occupation') ?>" class="input-text" />
  •    
  • 现在刷新创建新用户/注册页面,就可以看到新的字段出现了。

    用类似的方法修改 edit.phtml, 用 getCustomer替换 getFormData . 在1.1.3 版里, 修改第32行. 旧代码如下:

    1.        
  •             echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getCustomer())->toHtml() ?>
  •        
  •        
  •            
    class="input-box">
  •            
  •             "text" name="email" id="email" value="htmlEscape($this->getCustomer()->getEmail()) ?>" title="__('Email Address') ?>" class="required-entry validate-email input-text" />
  •            
  •        
  • 用来替换的新代码:

    1.        
  •             echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getCustomer())->toHtml() ?>
  •        
  •        
  •            
    class="input-box">
  •            
  •             "text" name="email" id="email" value="htmlEscape($this->getCustomer()->getEmail()) ?>" title="__('Email Address') ?>" class="required-entry validate-email input-text" />
  •            
  •        
  •            
  •                
    class="input-box">
  •                    
  •                     "text" name="occupation" id="occupation" value="htmlEscape($this->getCustomer()->getOccupation()) ?>" title="__('Occupation') ?>" class="input-text" />
  •                
  •            
  • 现在要把数据插入数据库. 找到 Setup.php的第93行 , 可以看到如下的代码:

    1. 'email' => array(
    2.                         'type'          => 'static',
    3.                         'label'         => 'Email',
    4.                         'class'         => 'validate-email',
    5.                         'sort_order'    => 6,
    6.                     ),

    我们需要添加我们自己的属性到这个文件里,所以修改代码为:

    1. 'email' => array(
    2.                         'type'          => 'static',
    3.                         'label'         => 'Email',
    4.                         'class'         => 'validate-email',
    5.                         'sort_order'    => 6,
    6.                     ),
    7. 'occupation' => array(
    8.                         'label'         => 'Occupation',
    9.                         'required'      => false,
    10.                         'sort_order'    => 7,
    11.                     ),

    就在职业occupation数组下面, 你会看到group_id 等等. 你需要增加排列顺序(sort_order). 因为职业(occupation )的 sort_order是 7, 所以从8开始类推.

    现在我们的代码已经建好了,但是我们仍然需要吧这个属性添加到mysql数据库的 eav_attribute表里. 下面这段代码介绍如何实现:

    1. $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
    2. $AttrCode = 'ocupation';
    3. $settings = array (
    4.     'position' => 1,
    5.     'is_required'=> 0
    6. );
    7. $setup->addAttribute('1', $AttrCode, $settings);
    8. ?>

    我建议这段代码放到 register.html 文件的最上面. 你只需要加载一次这段代码,然后找到并且删除它。如果你到数据库里查看eav_attribute 表,你会发现那个属性已经添加了。

    此外,你可以调用函数getOccupation来显示customer数据

    原文作者: Chris Woodard

    [更新 30 Aug 2008 - AlexSz] 要插入这段数据必须编辑一个 .xml file: app/code/core/Mage/Customer/etc/config.xml 找到 . 添加下面这行:

    1. >>1>>1>>

    代码摘录如下:

    1. >
    2.             >
    3.                 >>1>>1>>1>>
    4.                 >>1>>1>>1>>
    5.                 >>1>>1>>1>>
    6.                 >>1>>1>>1>>
    7.                 >>1>>1>>1>>
    8.                 >>1>>1>>
    9.                 >>1>>
    10.                 >>1>>
    11.                 >>1>>1>>
    12.                 >>1>>1>>
    13.                 >>1>>1>>
    14.             >
    15.         >
    阅读(2326) | 评论(0) | 转发(0) |
    0

    上一篇:Setting up development environment for Magento

    下一篇:PHP远程下载类

    给主人留下些什么吧!~~