Drupal:如何从api中检索数据,并在下拉菜单中使用部分数据作为选项


Drupal: How to retrieve data from api and use parts of it as options in a dropdown menu

我有一个drupal内容类型名为"Event",我想创建一个drupal模块,从api检索数据,并使用该数据在"Event"的编辑界面的下拉表单字段中填充一组选项。

我有两个问题:

  1. 我可以使用什么drupal函数从api检索数据并存储它
  2. 我可以在模块中使用哪些函数来创建特定类型的表单字段,并将其下拉菜单的选项设置为从api检索的数据。
$option_terms = taxonomy_get_tree(VID_OF_THE_TAXONOMY_VOCAB);
$options = array();
foreach ($option_terms as $option_term) {
  $options[$option_term->tid] = $option_term->name;
}
$form['dropdown_field_name'] = array(
  '#type' => 'select',
  '#title' => t('The dropdown'),
  '#options' => $options,
);
  1. 从API获取数据并存储它-假设有一个外部端点,您将从中获取此JSON。你可能想在那里发出一个HTTP请求来获取它。我看一下drupal_http_request。至于存储它,您可能希望将其存储在数据库中,因此您将希望创建一个可以接受数据的表,然后显然将其放在SQL中。这取决于数据……也许使用分类法会更好,这取决于…

  2. 你需要使用hook_form(),然后创建一个下拉字段。例如,如果您将下拉菜单的选项存储在Drupal分类法中,则可以根据顶部的代码生成"选项数组"。