`
钟增生
  • 浏览: 31223 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

magento 为用户注册增加一个字段

    博客分类:
  • PHP
阅读更多

 

步骤 I. 加一个occupation/title字段到用户注册页,差不多在register.html54行,在email下方加一个Occupation显示代码

<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

代码:

<li>
<div class="input-box">
<label for="email_address"><?php echo $this->__('Email Address') ?> <span class="required">*</span></label><br/>
<input type="text" name="email" id="email_address" value="<?php echo $this->htmlEscape($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="validate-email required-entry input-text" />
</div>
<div class="input-box">
<label for="occupation"><?php echo $this->__('Occupation/Title') ?></label><br/>
<input type="text" name="occupation" id="occupation" value="<?php echo $this->htmlEscape($this->getFormData()->getOccupation()) ?>" title="<?php echo $this->__('Occupation') ?>" class="input-text" />
</div>
</li>



这是,如果进入用户注册页, 就会看到新增的字段。

步骤 2 同样在edit.phtml中,加入Occupation显示块

代码:

<li>
<div class="input-box">
<label for="email"><?php echo $this->__('Email Address') ?> <span class="required">*</span></label><br />
<input type="text" name="email" id="email" value="<?php echo $this->htmlEscape($this->getCustomer()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="required-entry validate-email input-text" />
</div>
</li>
<li>
<div class="input-box">
<label for="occupation"><?php echo $this->__('Occupation') ?> </label><br/>
<input type="text" name="occupation" id="occupation" value="<?php echo $this->htmlEscape($this->getCustomer()->getOccupation()) ?>" title="<?php echo $this->__('Occupation') ?>" class="input-text" />
</div>
</li>



步骤 3, 打开Model/Entity/Setup.php差不多在93行,email的下方,加入occupation的相关代码:

代码:

'email' => array(
'type' => 'static',
'label' => 'Email',
'class' => 'validate-email',
'sort_order' => 60,
),
'occupation' => array(
'label' => 'Occupation',
'required' => false,
'sort_order' => 65,
),



步骤4: 现在,代码就基本写好了 , 但是我们仍然需要执行一个数据库操作将occupation这个属性加入到eav_attribute表,把下面的代码块:

代码:

<?php
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$AttrCode = 'occupation';
$settings = array (
'position' => 1,
'is_required'=> 0
);
$setup->addAttribute('1', $AttrCode, $settings);
?>


放到合适的文件里执行一次。我建议把它放到register.html文件的顶部,然后重新访问register.html.查看数据库eav_attribute表就能看到新增的条目。然后把上面的代码从register.phtml中移除。


步骤 5:编辑app/code/core/Mage/Customer/etc/config.xml <fieldsets>标签下声明该字段如何处理插入和贵呢更新

代码:

<fieldsets>
<customer_account>
.....
<occupation><create>1</create><update>1</update></occupation>
</customer_account>
</fieldsets>

 

步骤 6: 最后需要在表customer_form_attribute表增加记录,将新增字段与customer的前台显示表格关联:

 

form code                               attribute_id

adminhtml_checkout              264

adminhtml_customer              264

checkout_register                       264

customer_account_create 264

customer_account_edit                264


Attribute_id 是指该属性在eav_attribute表的attribute_id

分享到:
评论

相关推荐

    magento入门学习资料

    Magento是一款强大的开源电子商务平台,以其高度可定制性和灵活性著称。作为一款基于PHP开发的系统,它为商家提供了丰富的功能,包括商品管理、订单处理、客户管理、营销工具等。以下将详细介绍`magento入门学习资料...

    magento入门文档

    当用户访问一个页面时,Magento会根据请求的URL找到对应的Layout文件,并解析该文件来生成页面布局。 **3.8 输出和getChildHtml方法** Block对象提供了许多方法来帮助输出HTML代码,其中`getChildHtml`方法用于...

    magento一步支付插件(1.6、1.7)

    Magento是一套功能强大的开源电子商务平台,它为商家提供了一个灵活且可定制的在线商店解决方案。"Magento一步支付插件(1.6、1.7)"是针对Magento 1.6和1.7版本设计的一个扩展,旨在优化购物流程,使用户能够更快捷...

    Magento 添加后台管理 addColumn

    为此,你需要创建一个新的数据模型,扩展Magento的基础数据模型类,例如`Mage::getModel('modulename/entityname')`。 2. **定义资源模型**: - 数据模型需要与资源模型关联,以便执行数据库操作。资源模型定义了...

    magento插件

    Magento是一款强大的开源电子商务平台,以其高度可定制性和丰富的功能特性深受开发者喜爱。本文将深入探讨在Magento中开发、升级和部署插件的相关知识点。 一、Magento插件系统 Magento的插件系统,也称为事件监听...

    Herve_DependBlock:在 Magento 管理表单中管理字段可见性依赖项 - 示例模块

    标题中的 "Herve_DependBlock" 是一个示例模块,专门用于演示如何在 Magento 管理表单中实现这种字段依赖性。这个模块提供了一种方法,通过编程方式控制表单元素的可见性,使得当特定条件满足时,相关的字段才会展示...

    magento-adminhtml-customer-address-allow-deselect:存储库包含模块的源文件,允许用户在新客户创建过程中编辑地址字段时取消选择单选按钮

    通过这个扩展,开发者提供了一个解决方案,让用户可以灵活地编辑和调整他们的地址字段,确保数据的准确性和个性化。 在技术层面,这个模块可能涉及到以下几个关键知识点: 1. **Magento模块结构**:每个Magento...

    magento-customer-types

    对于"Quafzi_CustomerTypes",开发者可能通过扩展Magento的顾客模型,添加新的字段来存储客户类型,并在后台界面提供一个友好的界面供管理员分配和管理这些类型。 文件列表中的"magento-customer-types-master"可能...

    custompaymentmodule:该存储库包含magento模块,该模块用于magento团队在多点处创建的magento中的自定义简单付款方式,并且该模块可公开获得

    本项目“custompaymentmodule”正是针对Magento的自定义付款方式的一个模块,旨在为商家提供一种简单且灵活的支付选项。 首先,我们来了解一下PHP。PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域占据着...

    Magento-Customer-Custom-Icon:使用此扩展程序,客户可以上传他们的头像

    "Magento Customer Custom Icon" 是一个针对Magento系统的扩展,旨在增强用户体验,允许客户上传他们自己的头像,以此来个性化他们的账户。 首先,我们要理解Magento的扩展机制。Magento采用模块化设计,允许开发者...

    magento-custom-payment-method:在Magento中创建基本的付款方式

    本文将深入探讨如何在Magento中创建一个基本的自定义支付方式。 首先,我们需要理解Magento支付模块的基本结构。每个支付方法在Magento中都是一个独立的模块,包含以下关键组件: 1. **配置文件** (config.xml):...

    categoryreview:从客户到类别和商店的评论 - Magento 的扩展

    Magento 是一个功能强大的开源电子商务平台,它允许商家创建和管理在线商店。"Category Review" 是一个针对 Magento 平台的扩展,旨在增强其产品评价功能,让顾客不仅可以对具体产品发表评论,还能对商品分类和整个...

    本科毕业设计---基于ecshop构建牛奶销售电子商务网站.doc

    基于ECShop构建牛奶销售电子商务网站 ...涵盖了电子商务的概念、知名电子商务网站、开源网店系统分析、ECShop系统架构、数据库设计、前台和后台功能模块等方面的知识点,为读者提供了一个全面的电子商务解决方案。

    JAVA网上商城系统课设报告.doc

    "JAVA网上商城系统课设报告.doc" 这份文档是关于一个基于Java技术的网上商城系统的课程设计报告。通常这样的报告会详细阐述项目的背景、目标、需求分析、系统设计和实现等多个方面,旨在展示学生对Java编程以及电子...

    cms.zip_拍卖

    总的来说,“拍卖网网站源码”是一个集成了用户管理、商品发布、出价机制、数据库操作、安全防护等多个技术领域的综合性项目。理解和掌握这个源码,不仅可以帮助开发者了解拍卖网站的运作原理,也能为构建类似的在线...

    PHP部分面试题

    - 上述配置中,`upstream` 定义了一个名为 `backend` 的服务器组。 - `proxy_pass` 指令将请求代理到这个服务器组。 - Nginx 默认采用轮询的方式进行负载均衡。 #### 十二、查询MySQL从库状态 **查询MySQL从库状态...

Global site tag (gtag.js) - Google Analytics