hook_user():将额外的字段插入数据库而不仅仅是表单

2024-03-19

我可以在注册中添加一个额外的字段。我需要知道的是我需要采取什么步骤来获取该输入并将其插入到 drupal 的用户表中。下面的代码位于我的模块中,它仅向表单添加一个字段,但是当提交时,它不会对数据执行任何操作。

function perscriptions_user($op, &$edit, &$account, $category = NULL){
  if ($op == 'register') {
    $form['surgery_address'] = array (
      '#type' => 'textarea',
      '#title' => t('Surgery Address'),
      '#required' => TRUE,
    );      

     return $form;     
  }

  if ($op == 'update') {
    // …
  }
}

据报道hook_user() 文档 http://api.drupal.org/api/function/hook_user/6:

$op 正在执行什么类型的操作。可能的值(按字母顺序排列):
- “插入”:正在添加用户帐户。该模块应将其对用户对象的自定义添加保存到数据库中,并在 $edit 中将保存的字段设置为 NULL。
- “更新”:正在更改用户帐户。该模块应将其对用户对象的自定义添加保存到数据库中,并在 $edit 中将保存的字段设置为 NULL。
- “验证”:用户帐户即将被修改。该模块应验证其对用户对象的自定义添加,并根据需要注册错误。

该模块需要在中创建自己的数据库表hook_install().

hook_user()可以使用以下代码来实现,例如:

function perscriptions_user($op, &$edit, &$account, $category = NULL){
  if ($op == 'register' || ($op == 'form' && $category = 'account')) {
    $form['surgery_address'] = array (
      '#type' => 'textarea',
      '#title' => t('Surgery Address'),
      '#required' => TRUE,
    );

    return $form;     
  }

  if ($op == 'insert' || $op == 'update') {
    prescriptions_save_user_profile($account->uid, $edit['surgery_address']);
  }
  if ($op == 'validate' && $category == 'account') {
    // Verify the entered values are valid.
    // In this example, the value is contained in $edit['surgery_address'].
  }
}

prescriptions_save_user_profile()是将用户配置文件值保存在数据库中的函数。该代码检查类别以避免在用户配置文件编辑表单中显示的所有选项卡中显示相同的表单字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hook_user():将额外的字段插入数据库而不仅仅是表单 的相关文章

  • 使用 jQuery 和 Drupal6 自动更新宽度/长度/面积

    我正在使用 Drupal 创建测量表 Drupal 6 中的测量表 并且现在所有字段都已就位 我只需要编写一些 jQuery 在用户输入数据时自动更新相应的字段 代码如下 jQuery document ready function inp
  • 如何将许多现有文件与 drupal 文件字段关联起来?

    我的服务器上已经存储了许多来自静态网站的 mp3 文件 我们现在正在转向 drupal 我将为每个音频文件创建一个节点 但我不想再次上传每个文件 我宁愿将文件复制到我想要的 drupal 文件目录中 然后将节点与适当的文件关联 关于如何实现
  • 使用文件字段保存节点

    我正在为 Drupal 站点创建批量上传功能 使用 flash 我可以将文件上传到特定的 url 然后由该 url 处理这些文件 我想要做的不仅仅是上传文件 而是创建一个特定类型的节点 并将文件保存到已使用 CCK 设置的文件字段中 由于这
  • 更改 Drupal 的主题并保留 Garland 作为管理主题?

    如何在不更改管理主题 站点的 contrib 主题和管理界面的 Garland 的情况下将 contrib 主题应用到 Drupal 6 站点 Thanks 转到管理 gt 站点配置 gt 管理主题 在那里 您可以设置管理主题 如果您想对管
  • 挂钩 Drupal 注册并根据业务逻辑验证用户信息

    我想挂接到注册模块 我已经拥有一个包含 50000 个使用我的旧网站的用户的数据库 现在我正在迁移到 Drupal 我还没有将条目迁移到 drupal 数据库 我将检查我的旧数据库 当用户尝试在 Drupal 中注册时 我需要检查他提供的用
  • 如何在使用 node_save($node) 创建节点时将图像附加到节点;

    您好 我正在使用 drupal 7 并尝试通过使用 php 解析 xml 来导入数据 然后使用以下命令创建节点node save node 到目前为止 我已经成功地从 xml 创建节点 无需任何图像 我想在导入图像时将图像附加到节点 我知道
  • 从 Drupal 的节点菜单设置中删除导航菜单

    如何从节点编辑表单的菜单设置中删除 导航 菜单 和其他菜单 我怀疑这可以通过使用 module form alter 这样的钩子来实现 但我不确定如何实现它 这样做的动机是为了消除用户在下拉菜单中出现标准主链接菜单以外的菜单时所产生的困惑
  • Drupal 从 Twitter 导入推文作为节点

    我希望能够将我的推文作为 Nndes 从 twitter 导入到 Drupal 中 我希望能够链接 names and tags返回正确的页面 我也不希望 myTweeterName 出现在推文的开头 你会怎样做呢 twitter 模块不创
  • head 标签中 src/href 属性末尾有奇怪的字符

    快速问题 为什么 drupal 在末尾添加字符src or href中的属性link and script页面头部的标签 我有这个 对于加载的每个样式表和脚本都是相同的 我不明白为什么要这样做 我想这可能就是我的主题在 IE 中一团糟的原因
  • 如何删除 NodeReference 字段中的节点 ID [nid:n]

    这是此链接的同一问题 删除节点引用自动完成中的 nid n https stackoverflow com questions 1515722 removing nidn in nodereference autocomplete 根据第一
  • Drupal Views 将每个分类限制的最新内容显示到一个节点

    我想创建一个视图 其中显示所有 5 个分类术语 然后显示最新发布的节点 但这受到 1 的限制 例如 税收条款 1最新节点发布 税务条款 2最新节点发布 etc etc 目前 我按分类术语进行分组 因此它显示所有已发布的节点 然后按发布日期降
  • Drupal 6 到 7 迁移

    我们有一个用 drupal 6 编写的 drupal 站点 我们知道我们必须为 drupal 7 重写它 大部分 但最重要的部分是迁移数据 CCK migrate 只能迁移大约 90 的田地 我正在寻找一种干净的方法将 drupal 6 数
  • Drupal 7 Forms API - AJAX Forms 错误:检测到非法选择。请联系网站管理员

    我设置了一个表单 用户可以从下拉列表中选择一个项目 一旦选择该项目 就会填充另一个下拉列表 然后 根据从第二个下拉列表中选择的值 可能会或可能不会显示字段集 如果显示字段集 则有一个字段和一个按钮 通过单击该按钮 您可以添加同一字段的另一个
  • 如何更改页脚 由 Drupal 及其链接提供支持?

    我正在 Drupal 上工作 我想知道如何更改由 Drupal 提供支持的页脚文本以及为其提供的链接 我想要 版权所有 2012 我的网站名称 保留所有权利 我无法得到它 任何人都可以帮助我 只需转到 结构 gt 块 gt 添加块 将块标题
  • 如何在不使用 API 的情况下向 Drupal 6.x 注册用户?

    我们必须有一个通过用 java 编写的 Web 服务可用的 注册 方法 因此从今往后我们无法访问 Drupal API 但我们需要能够成功注册用户 简单地将用户添加到用户表中是行不通的 因为新创建的用户永远无法成功登录 我再次喜欢 Drup
  • 在每个页面上缓存包含特定于会话的数据的 Drupal 站点

    我们有一个用 Drupal 6 编写的网站 我们想使用Drupal的缓存机制来提高性能 但是当我们打开它时 我们发现了问题 因为我们的站点每个页面都显示会话数据 Drupal 的缓存系统仅适用于静态内容页面 而我们的会话数据实际上意味着我们
  • Drupal Ubercart:多币种?

    将多货币支持集成到 Ubercart 的最安全方法是什么 我找到了这个模块 http drupal org project multicurrency http drupal org project multicurrency但它仍在开发中
  • 更改 Drupal 中的节点创建标题?

    假设我有一个名为 产品 的节点 当我创建这样的节点时 它将始终显示 创建产品 作为节点的标题 创建节点时如何更改此标题 你的意思是你有一个内容类型 http drupal org node 21947 产品 创建 产品 类型的节点时的 创建
  • 如何修改Drupal 6中的HTML标签?

    我是 Drupal 的新手 我需要向 HTML 标记添加属性 但我找不到方法 感谢您的帮助 这可能部分取决于您的主题机制 然而 doctype 和 html 标签可能是硬编码的page tpl php或类似的 位于sites all the
  • 如何以编程方式创建论坛主题?

    我刚刚通过以下链接了解了如何以编程方式创建论坛和容器 http www unibia com unibianet drupal how create drupal forums and containers programmatically

随机推荐