【问题标题】:Form does not display for a Node/Content Type in Drupal 7Drupal 7 中的节点/内容类型不显示表单
【发布时间】:2011-12-23 21:59:30
【问题描述】:

我正在尝试在 drupal 中创建节点/内容类型,因此我至少有一个 .info、.install 和 .module 文件。

模块创建良好,我可以从模块管理页面启用/禁用它,此外,Drupal 能够将此模块识别为内容类型,并且当我在内容菜单中单击“添加内容”时它会出现.

一切正常,但它不显示表单元素,而是直接从开始

表单元素代码如下:

function newNode_form($node,&$form_state) 
{ 
 $type = node_get_types('type',$node); 

 $form['title']= array( 
    '#type' => 'textfield',  
    '#title' => check_plain($type->title_label),  
    '#default_value' => !empty($node->title) ? $node->title : '',  
    '#required' => TRUE,  
    '#weight' => -5, 
  ); 

  $form['field1'] = array( 
    '#type' => 'textfield',  
    '#title' => t('Custom field'),  
    '#default_value' => $node->field1,  
    '#maxlength' => 127, 
  ); 
  $form['selectbox'] = array( 
    '#type' => 'select',  
    '#title' => t('Select box'),  
    '#default_value' => $node->selectbox,  
    '#options' => array( 
      1 => 'Option A',  
      2 => 'Option B',  
      3 => 'Option C', 
    ),  
    '#description' => t('Choose an option.'), 
  ); 
return $form; 
}

谁能告诉我怎么回事

P.S:仅供参考:在我的 .install 文件中,仅存在安装和卸载挂钩函数。我还没有创建数据库表,这个内容类型是我创建内容类型 UI 而不一定是完整的 UI 的演练。

【问题讨论】:

    标签: drupal-7 drupal-modules drupal-forms


    【解决方案1】:

    Drupal 的钩子系统使用小写和小写来动态加载模块函数。

    <module name>_<hook_name>
    

    尝试像这样声明你的函数:

    function new_node_form($node, &$form_state) {
    ...
    

    【讨论】:

    • 是的,但是您的回答不正确,感谢您的帮助,我想通了。模块的名称是 newNode,因此获取 new_node 命名术语不是解决方案。答案是这是 Pre-Drupal 7 的策略,而不是 Drupal 7 安装节点的方式。感谢您的帮助。
    猜你喜欢
    • 2014-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多