注册后隐藏或禁用字段


Answers:


4

您可以尝试字段权限模块

特征

  • 在任何实体(不仅是节点)上启用字段权限。
  • 基于角色的字段权限允许根据用户的访问权限来设计不同的查看方式。
  • 作者级权限允许根据实体所有者是谁查看和编辑字段。
  • 默认情况下,不启用每个字段的权限。而是,管理员可以为需要此功能的字段显式启用这些权限。

如果是同一字段,如何区分用户创建和编辑?我并不是说不能,我确实想知道如何做。我猜OP也可以。
Mołot

这将是基于角色的字段权限,仅需要授予匿名权限(不确定这种情况是否适用)。
Bipin K

8

如果要在自定义模块中执行此操作

my_module_form_user_profile_form_alter(&$form, &$form_state) {
  // Since it is on registration form, field might be reqruied.
  $form['your_field']['#required'] = FALSE;
  $form['your_field']['#access'] = FALSE;
}

如何区分用户创建和编辑?
DRUPWAY

2
@Smalution你不必-登记表这将是my_module_form_user_register_form_alter,不会my_module_form_user_profile_form_alter
Mołot

1
钩子是hook_form_FORM_ID_alter用于注册和编辑的FORM_ID不同
arpitr

好的,我知道了。我已经检查了用户何时注册其表单ID“用户注册表单”,以及何时正常编辑其表单ID“用户配置文件表单”。
DRUPWAY

是的,正如预期的那样:)
arpitr's

1

尝试使用以下代码:

function MODULENAME_form_alter(&$form_state, $form_id){
  $form[$field]['#access'] = FALSE;
  $form[$field]['#disabled'] = TRUE;
  }

2
请添加一些描述性文字。
Mołot

$ form ['field_name'] ['#disabled'] = TRUE; 也可以。
pinueve

1

使字段可见性属性仅适用于匿名用户。因此,价值将在注册时存储。这样,没有人可以访问该字段。一旦安装了字段权限模块,您将发现此选项仅适用于匿名用户。


1
function module_form_alter(&$form_state, $form_id) {
 if (isset($form['title'])) {
    $form['title']['#required'] = FALSE;
    $form['title']['#type'] = 'value';
  }
}

0

尝试使用hook_form_alter,请参见下面的示例:

function MODULENAME_form_alter(&$form_state, $form_id){
      global $user;
      //$form_id :: user detail edit form id
      if($user->uid != 0 && $form_id == "required_form_id"){
         //$field :: requied field name
          $form[$field]['#access'] = FALSE;

      }
   }

0

将此代码放在自定义模块中,该字段将能够显示新内容,但将无法对其进行编辑。

if ($form_id == 'YOUR_FORM_ID') {
//dsm($form);

// for user form use '#user' instead of '#node' and uid instead of nid
if (isset($form['#node']) && isset($form['#node']->nid)){

    // Prevent editing a field once the node has been created
    // hiding the field entirely on the edit form.
    $form['field_name']['#access'] = FALSE;

    // disable update field on the edit form (gray color).
    $form['field_name']['#disabled'] = TRUE;
}

}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.