如何在Drupal 7的内容类型中添加自定义字段

时间:2017-03-19 09:57:26

标签: php drupal drupal-7

我想添加一个自定义字段,该字段的值将来自外部API。例如,值可能是:

array(
     'v1'=>'value1'
     'v2'=>'value2'
     'v3'=>'value3'
)

所以,我想在下拉菜单中将它们显示为内容类型文章中的字段。

2 个答案:

答案 0 :(得分:0)

我不是正确答案,但根据我的观点,存储第三方数据库的所有值并不是更好。

为了实现你的目标,我会这样做。

内容类型包含另外两个字段的文章:

  • 数字字段:Id(api_db_id):v1,v2,v3 ....
  • 文本字段:值(api_db_value)E.g:值1,值2 ...

以上字段将被隐藏。

在渲染表单之前E.g:通过使用hook_form_alter,我们可以连接到第三方API并获取值并填入选择列表

E.g:

function myhook_form_alter(&$form, &$form_state, $form_id) {

  if($form_id == 'article'){

    /*

    Third Party API connection code which will generate $dropdown_array.

     */

    $options = $dropdown_array;
      // Alter form
      $form['title'] = array(     
         '#type' => 'select',
         '#default_value' => '1',// set default value.        
         '#options' => $options,
      ); 

   }//endif
}

最后一步将在提交表单之前我们将选定的ID和值分配给我们的新字段。

答案 1 :(得分:0)

您应该创建一个自定义模块来实现您的字段 可以找到一个很好的教程HERE 您可以查看examples module的第7版,特别是代码中包含非常好文档的field_example
一旦你了解它(钩子)是如何工作的,那么真的没有那么多代码可以编写。

这样做可能比尝试更改其他类型的字段要好得多,它应该按预期自动与视图集成。