如何更新表单提交的自定义用户字段 -- 7 领域 和 users 领域 drupal 相关 的问题

How to update custom user field on form submit


0
vote

问题

中文

我想创建一个只有一个列出的自定义用户帐户字段之一的基本页面,可供编辑。

例如,我有一个自定义用户帐户字段:field_companyname

然后将用户转到 www.example.com/?q=user/1/edit , 我希望用户转到不同的页面(i.e www.example.com/node/5 )。 在此页面上,应该只有一个文本输入字段和提交按钮,以将新数据保存到用户帐户。

我很确定我需要实现 user_save() ,但我只是不知道从这里去哪里。

  // load user object $existingUser = user_load('USERID');  // update some user property $existingUser->some_property = 'foo';  // save existing user user_save((object) array('uid' => $existingUser->uid), (array) $existingUser);   

将非常感谢任何帮助或指针。谢谢你的看!

编辑:我能够使用以下代码将整个用户帐户编辑表单加载到节点上:

  <?php   module_load_include('pages.inc', 'user', 'user');   global $user;   $account = user_load($user->uid);   $output = drupal_render(drupal_get_form('user_profile_form', $account));   return $output; ?>   
但是,我仍然无法弄清楚如何只显示我的单个自定义字段。任何帮助都非常感谢。

编辑#2:我使用CSS隐藏我不想显示的其他字段。似乎应该有更好的方法来做这件事。但我猜这将是现在的工作,除非其他人可以颂扬: - )

再次感谢。

英文原文

I want to create a basic page that has only one of my custom user account fields listed, and available to edit.

For example, I have a custom user account field: field_companyname

Rather then directing the user to go to www.example.com/?q=user/1/edit, I want the user to go to a different page (i.e www.example.com/node/5). On this page, there should only be a single text input field, and a submit button to save the new data to the user account.

I'm pretty sure I need to implement user_save(), but I just don't know where to go from here.

// load user object $existingUser = user_load('USERID');  // update some user property $existingUser->some_property = 'foo';  // save existing user user_save((object) array('uid' => $existingUser->uid), (array) $existingUser); 

Any help or pointers would be much appreciated. Thanks for looking!

EDIT: I was able to load the entire user account edit form onto a node using the following code:

<?php   module_load_include('pages.inc', 'user', 'user');   global $user;   $account = user_load($user->uid);   $output = drupal_render(drupal_get_form('user_profile_form', $account));   return $output; ?> 

However, I still cannot figure out how to display ONLY my single custom field. Any help is greatly appreciated.

EDIT #2: I used CSS to hide the other fields that I did not want to display. Seems like there should be a better way to do this. But I guess this will work for now, unless anyone else can chime in :-)

Thanks again for looking.

     
   
   

回答列表

1
 
vote

使用 field_attach_form 使用字段名称和用户对象的页面。您可以使用 field_attach_form_validate field_attach_submit 验证并提交值。

 

Use field_attach_form in your page with the field name and user object. You can use field_attach_form_validate and field_attach_submit to validate and submit the values.

 
 
0
 
vote

使用 hide()功能隐藏不必要的领域。您可以隐藏表单字段:

  hide($form['field_name']);   

实现 hook_form_form_id_alter()用隐藏()函数来做魔法

 

Use hide() function hide unnecessary fields. You can hide form field like:

hide($form['field_name']); 

Implement hook_form_FORM_ID_alter() to do your magic with a hide() function

 
 

相关问题

1  面板布局设计师  ( Panel layout designer ) 
我遇到了这个视频显示如何使用面板设置自定义主页。我安装了混沌工具套件,以及面板模块,但我没有看到视频中的布局设计器界面,因为它在视频中显示。 ...

3  如何设置Drupal性能监控以绕过清漆?  ( How to setup drupal performance monitoring to bypass varnish ) 
本月我的Drupal Hosting Company有很多正常运行时间问题。 大多数时候我的pingdom监视器甚至没有提醒问题,因为清漆仍然能够为缓存的主页提供服务。 如何绕过清漆以检查Drupal实例的真实健康吗?它们有一个用户名/密码选项,但我确定的是http用户名/密码,而不是基于表单的登录名。 如果我指定假...

4  在我的帐户菜单中“添加链接”  ( Add link in my account menu ) 
用户帐户页面(http://example.com/user)包含一些默认选项卡,如"查看" ,"编辑" 等。 我想在那里添加我的菜单链接。要返回的内容应依赖于用户ID。我该怎么做呢? ...

3  选择列表的钩形更改  ( Hook form alter for select list ) 
我试图将标题的文本字段过滤器转换为使用钩形窗体删除的选定列表: function myhook_form_alter(&$form, &$form_state, $form_id) { if($form_id == 'views_exposed_form'){ // load nodes fi...

1  在重写视图期间删除了HTML标记  ( Html tags removed during views rewriting ) 
hello我创建了一个带有模块"视图和数据导出" 的站点地图。我的页面的站点地图工作正常,但我会将图像添加到我的页面。 站点地图应该看第一捕获,我用数字进行测试,它们很好地放置。当我"重写结果" 时,标签被忽略。 如何实现这些标签?自从我上面已经几个星期了。 谢谢 如果我用文本数据替换HTML标签,它可以工作: ...

1  如何在单个页面上显示答案模块的所有链接?  ( How to display all links of the answers module on a single page ) 
我使用 ansess 模块,它提供了各种视图,如图所示图片下面。但它不提供我们可以作为链接提供这些视图的任何东西。 我的意思是我希望一行中的所有这四个视图作为页面的菜单选项卡, 所以,它应该是这样的: 主菜单选项卡: Q&A 此q&amp;单击选项卡,它应显示第一个选项卡的所有这些选项卡,默认为: 所有问题...

1  答案模块的“搜索问题”为什么不显示任何结果?  ( Why does search question of the answers module not show any results ) 
answers 模块没有显示任何结果。我正在粘贴所键入的问题,但它只是显示"没有问题匹配" 。 是什么问题? 编辑:我现在确实得到了解决方案,我正在尝试其他相关的模块最佳答案和 answers userpopts 在启用搜索功能后启动工作。可能是它们之间相互相互的其他模块启用并开始工作,但我无法讨论它,作为答案...

2  Web服务器身份验证  ( Webserver authentication ) 
我正在寻找一个模块,用于为MS Windows网络实现单一登录。我找到了Web服务器身份验证( https://www.drupal.org/project/webserver_auth )。但是我在配置之前激活了模块,现在我无法访问admin,或者作为任何其他开发人员用户,以继续工作我的项目配置。 曾经有过这个问题...

4  维护页面 - >显示特定块  ( Maintenance page show a specific block ) 
如何在维护页面(例如jQuery倒计时)上提供块?它是关于设置正确的权限吗? ...

0  链接到视图中的节点  ( Link to node in views ) 
我有一个有2个显示器的视图: 列表:它是一个未格式化的列表,包含一个页面 表:显示表中的节点标题。 我需要的是在第二个显示器的每一行中的标题重定向到第一个显示中的相应节点,无论"每页项目" 和排序。 ...

1  搜索API +视图  ( Search api views ) 
如何在视图中使用与索引节点的关系来检索来自其他实体的字段? 作为一个示例...如果我使用"索引节点:作者" 创建关系。然后尝试在搜索结果视图中显示作者的名称,名称为空。我已经尝试了从选项中的每个关系和字段组合,但名称始终为空。 ...

4  如何在预告片中添加“添加新评论”链接中的rel =“nofollow”?  ( How to add rel nofollow in add new comment link in teaser ) 
是否有一个代码在预告片下"添加新的评论" 链接中添加rel ="nofollow" ? 这是D7生成的预告片中的代码: 添加新评论 所以我如何在该行中添加rel ="nofollow" ? ...

3  通过URL通过分类学术语,以在Drupal 7中添加内容表格  ( Passing a taxonomy term via url to add content form in drupal 7 ) 
好的,我有一个drupal 7网站。这种情况是,让我们说我在我的网站上遇到恰好有一个分配给它的分类学期 - 让我们说这是ABC的术语。在侧边栏中的块中,我有一个链接将用户发送到Aducuit主题的添加内容表单。表单主题内容类型也具有CCK字段(相同的词汇表)。我正在尝试使用与他们来自的页面相同的术语abc填充该字段。...

0  自动填充内容类型到另一个  ( Auto fill from on content type to another ) 
我有一个名为联系人的内容类型,一个人的基本信息。 (〜600节点) 我有另一个内容类型,如表单,具有所有与联系点的选择列表。当用户选择所需的 contact 时,按从选择列表中的名称,我需要其余的信息 contact 来自动 - 填写表格上的文本框。 任何想法? 注意:使用drupal 7 ...

4  如何在Drupal 7中以编程方式创建节点?  ( How to create a node programmatically in drupal 7 ) 
我知道您可以通过创建节点对象,然后触发node_save()以编程方式创建节点,但我实际上没有想要在数据库中存储节点。 是否有一种方法可以在查找内容屏幕中显示的代码中创建特定内容类型的节点,并使用视图等工作,但没有物理存储在数据库中。 我问的原因是,我有一个查看特定内容类型的一系列节点,但我想在该列表中创建自定义节...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.