按Bundle Drupal 8链接自动完成过滤

时间:2017-09-06 13:41:35

标签: drupal hyperlink autocomplete drupal-8

有没有人知道如何将链接字段的自动填充建议限制为仅限某些包 - 不是全局的,而是每个链接字段实例?我几乎找到了自定义https://github.com/minnur/Alter-Entity-Autocomplete的解决方案,但这对于所有自动填充都是全局的,我需要以某种方式获取调用链接字段实例。

2 个答案:

答案 0 :(得分:0)

这可以使用hook form alter:

function hook_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  // if $form_id ==  'xyz'
  $form['field_mylink']['widget'][0]['uri']['#selection_handler']="default:node";
  $form['field_mylink']['widget'][0]['uri']['#selection_settings']=[
    'target_bundles'=>['article'=>'article', 'page'=>'page'], //etc
  ];

}

答案 1 :(得分:0)

我写了以下Drupal贡献模块来解决问题:

Link Field Autocomplete Filter

模块添加了一个链接字段配置,用于过滤允许的配置 自动填充字段中的内容类型。

您可以使用Drupal后端使用drupal核心 Update Manager模块(必须启用)手动安装模块: http://yourSite/admin/reports/updates/install 并按照那里的说明进行操作。

使用Drush,您可以使用以下命令安装:

drush dl link_field_autocomplete_filter; // download
drush en link_field_autocomplete_filter; // enable the module

您也可以使用Composer下载模块:

composer require drupal/link_field_autocomplete_filter

只需启用该模块,一系列复选框(每种内容类型一个)将出现在“链接字段”字段 - 实例配置表单中。如果您选中“无”,则所有内容类型将在自动填充中显示为建议。否则只会显示已检查的那些。