嗨,

关于CCK,我有一个问题,如果有人会这么善意回答:

如何隐藏使用CCK创建的字段?我不希望它们在创建新类型时显示,因为它们将在数据库插入期间自动填充或在以后填写。

例如:
date_created 
num_products_imported 等字段

欢呼,
Frychiko

评论

jefflane的头像

我认为这是以下,但事实并非如此,以下仅适用于表单显示,而不适用于创建内容的人

选择以下
管理 - >内容管理 - >内容类型 - >管理字段 - >显示字段

然后,对于要隐藏的每个元素,从以下每个
Label 
Teaser 
完整节点的下拉菜单中选择“隐藏”

然后点击保存,应该这样做。

WorldFallz的头像

对于内容创建,您可以使用计算字段或使用内容权限模块,也不要将视图字段权限授予您不希望看到的任何角色。

nerdoc的头像

认为后者不起作用。
如果您没有给角色查看/编辑权限以查看某些字段,那么如果您没有正确的权限,则该字段不会自动填写为其标准值...

satish04mca的头像

我试过这个
// ---------------------------------- 
选择以下
管理 - >内容管理 - >内容类型 - >管理字段 - >显示字段

然后,对于要隐藏的每个元素,从以下每个
Label 
Teaser 
完整节点的下拉菜单中选择“隐藏” 
// -------------------- ----------------

但它不起作用.. 
我必须将一些默认的javascript代码放入隐藏字段,以便在页面之间显示赞助链接。
怎么样???

TIA

gala4th的头像

以下代码能够使CCK字段成为隐藏类型字段。

方法1:

/**
* Implementation of hook_form_alter().
*/
function YourModuleName_form_alter(&$form, $form_state, $form_id) {
  if (isset($form['type']) && isset($form['#node'])) {
    ### Make a CCK field becoming a hidden type field.
    // ### Use this check to match node edit form for a particular content type.
    if ($form_id === 'YourContentTypeName_node_form') {
      $form['CCK_Field_Name']['#prefix'] = '<div style="display:none;">';
      $form['CCK_Field_Name']['#suffix'] = '</div>';
    }
  }
}

方法2:

/**
* Implementation of hook_form_alter().
*/
function YourModuleName_form_alter(&$form, $form_state, $form_id) {
  if (isset($form['type']) && isset($form['#node'])) {
    ### Make a CCK field becoming a hidden type field.
    // ### Use this check to match node edit form for a particular content type.
    if ($form_id === 'YourContentTypeName_node_form') {
      $form['#after_build'] = array('_test_set_cck_field_to_hidden');
    }
  }
}

/**
 * 
 * @param
 * @return
*/
function _test_set_cck_field_to_hidden($form, &$form_state) {
  $form['field_NameToBeHidden'][0]['value']['#type'] = 'hidden';
  $form['field_NameToBeHidden'][0]['#value']['value'] = 'testValue';

  return $form;
}
truyenle的头像

非常感谢gala4th,方法1对我来说就像魅力一样。

Truyenle

wkmit的头像

方法1要记住的一件事是,有人可以简单地使用firebug来设置display:block来使元素可见。
如果您不担心安全性,这不是问题。

nobarte的头像

方法2比1更安全。
用户无法操纵变量。

ezarria的头像

方法1好的...谢谢!

leisurman的头像

您好,我想隐藏2个cck字段。
文件附件(上传)
上传内联文件(field_upload_inline_file)

我应该用什么代替'YourModuleName'?

YourModuleName_form_alter

Hugo Estrada的头像

任何人都知道他们是否会包括它?排除该字段并将其转换为隐藏字段应该存在差异。

AviadG的头像

如果您使用默认值(在创建字段时设置)自动填充字段,则可以隐藏表单上的字段并轻松地在节点视图上显示该字段。您所要做的就是设置权限...不要授予角色编辑表单上字段的权限,并且授予相同角色查看字段的权限。因此,在没有用户做任何事情的情况下,在创建节点之后,将出现新字段。



来自  https://www.drupal.org/forum/support/post-installation/2008-05-12/cck-hidden-fields