好的,所以这是我的钩子形式alter function.它导致现场的所有注册表格被覆盖,我不想要,因为我只想在这个页面上.
function special_registration_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_register') {
drupal_set_title(t('Custom registration'));
$form['firstname'] = array('#type' => 'textfield',
'#title' => t('First Name: *'),
'#required' => TRUE,
'#size' => 45,
'#weight' => - 100,);
$form['lastname'] = array('#type' => 'textfield',
'#title' => t('Last Name: *'),
'#required' => TRUE,
'#size' => 45,
'#weight' => - 99,);
}
我只在这个页面上捕获并存储在另一个表中的名字和姓氏.
在其他页面上,我只想要一个好的老式形式.我还需要改变体重吗?我知道我错过了一些基本的东西.
当我创建一个节点时,我希望它以编程方式创建一些引用刚刚创建的节点的节点.
我虽然我只需要为我的表单更改form_alter提交函数来调用自定义函数来创建节点.
检查输出$ form_state我可以看到NID是Null.这对我来说意味着我的节点是在提交被触发后创建的.这说得通.如何在创建节点后调用代码以便我可以自动创建一些引用的节点?
我正在创建一个模块,允许用户在这种情况下更新单个字段,即用户实体.
下面的代码是我最初用于使其工作并测试模块的其他元素的方法的示例
global $user;
$account = user_load($user->uid);
$edit = (array) $account;
$edit['field_lastname']['und'][0]['value'] = 'test';
user_save($account, $edit);
Run Code Online (Sandbox Code Playgroud)
然而,这绕过了Drupal中其他地方定义的任何字段验证.我不想重现其他地方写的任何验证 - 这不是Drupal方式!
我的问题是:Drupal 7中是否有一个函数可以调用来更新单个字段的值.我想这样的函数会清除相应的缓存,调用字段验证等.
我知道解决方案将与我当前基于用户对象的解决方案完全不同.我只是不能为我的生活在API中找到合适的功能.我徘徊是否我正在寻找一个保存功能的事实是问题 - 并且还有一些其他必要的步骤.
任何帮助感激不尽.
我想为注册用户创建一个输入表单,与管理员的内容创建表单分开.每次提交都将创建多个节点.为了说明这种情况,我将使用内容类型Project和Review.
项目:标题,描述,所有者,评级.
评论:标题,评论者,项目,难度
我使用CCK模块设置了内容类型及其字段.我想为注册成员创建一个输入表单(非管理员).其字段包括项目名称,描述,所有者,评级,评论,难度.
提交表单后," 项目名称"," 描述"," 所有者 "和" 评级"值将进入新的" 项目"节点,其余部分将进入新的" 审阅"节点.
我想做的另一个定制是评级和难度输入字段使用星级评分输入.
实现这一目标的最佳方法是什么?我应该创建自定义模块和自定义表单(任何人都可以指出我如何做到这一点)?或者我可以使用任何模块吗?
谢谢
我正在尝试创建一个用户创建其帐户的模块,并在提交时,我获取他的信息并将其插入第二个数据库中.我的意思是他将存在于数据库和Drupals用户表以及其他数据库的用户表中.
如何获取他的信息并将其插入自定义数据库?
我对Drupal开发完全不熟悉.
提前感谢您的任何帮助或建议.
是否可以在复选框的标签/标题中添加简单的html链接?我尝试了以下代码:
<?php
$form['legal']['#type'] = 'checkbox';
$form['legal']['#required'] = TRUE;
$form['legal']['#title'] = t(
'You must accept our @tos and @legals',
array(
'@tos' => l(t('terms of service'), 'node/6'),
'@legals' => l(t('legals'), 'node/7')
)
);
?>
Run Code Online (Sandbox Code Playgroud)
但是这会产生以下标签(html标记不是"翻译"):
"你必须接受我们的<a href ="/ node/6">服务条款</ a>和<a href ="/ node/7"> legals </ a>*"
(我在开口括号后添加了空格,以便它不会转换为我想要的链接)
这样的事情不可能吗?我是drupal的新手.也许有人可以帮助我...谢谢!
我有一个带有姓名和电子邮件字段的网络表单.提交表单时,名称和电子邮件应存储在数据库中,PDF文件应开始下载.
我的问题是如何覆盖Web表单的提交功能,以便我可以在那之后添加额外的功能?
我有一个显示两个提交按钮的表单.第一个提交按钮将$ form_state ['storage']设置为一个值.第二个提交按钮然后读取此$ form_state ['storage']值.如果设置了该值,则会显示成功消息.如果未设置该值,则会显示失败消息.
以下是将重现我的问题的代码:
function mymodule_test_admin() {
return drupal_get_form('mymodule_test_form');
}
function mymodule_test_form(&$form_state) {
$form['mymodule_test_form1'] = array(
'#type' => 'fieldset',
'#title' => t('test 1'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#tree' => TRUE
);
$form['mymodule_test_form1']['submit'] = array(
'#type' => 'submit',
'#value' => t('button 1'),
'#submit' => array('mymodule_test_form1_submit')
);
$form['mymodule_test_form2'] = array(
'#type' => 'fieldset',
'#title' => t('test 2'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#tree' => TRUE
);
$form['mymodule_test_form2']['submit'] = array(
'#type' => 'submit',
'#value' => t('button 2'),
'#submit' …Run Code Online (Sandbox Code Playgroud) 如何使用hook_submit保存复选框的状态?
hook_form:
$versionArray = array('ver 1.7.0.0-beta1' => 'ver 1.7.0.0-beta1', 'ver 1.6.2.0' => 'ver 1.6.2.0', 'ver 1.5.1.0' => 'ver 1.5.1.0', 'ver 1.4.2.0' => 'ver 1.4.2.0', 'ver 1.3.3.0' => 'ver 1.3.3.0');
$form['mage']['version'] = array(
'#type' => 'checkboxes',
'#title' => t('Select'),
'#required' => TRUE,
'#options' => $versionArray
);
Run Code Online (Sandbox Code Playgroud)
hook_submit:
....
$node->field_checkboxes[0]['value'] = $form_state['values']['mage']['version'];
....
node_save($node)
Run Code Online (Sandbox Code Playgroud)
我已正确保存所有其他字段,但这些字段仍为空白.
谢谢罗伯特
我在网上搜索一个教程来创建一个在页面上显示的表单,当我们使用模块和块显示内容时,我们是否应该在模块中显示一个表单?由于我是drupal的新手,我对drupal形式一无所知.我下载并安装了示例表单模块.但我不知道这个表格会在哪里显示出来.我从这里下载了它 http://drupal.org/node/1121110