/**
* 添加搜索框可以编辑默认调用组
*
* Implements hook_form_FORM_ID_alter().
*
* @param array $form
* @param FormStateInterface $form_state
* @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
* @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
*/
function portal_form_taxonomy_overview_terms_alter(array &$form, FormStateInterface $form_state)
{
$current_path = \Drupal::service('path.current')->getPath();
$is_permission_group = preg_match('/permission_group/', $current_path);
if (!$is_permission_group) {
return;
}
$config = \Drupal::service('config.factory')->getEditable('config.settings');
if (!empty($config->get('default_cert_id')[0]['target_id'])) {
$default_term = \Drupal\taxonomy\Entity\Term::load($config->get('default_cert_id')[0]['target_id']);
} else {
// can't be '' and can't be NULL?;
$default_term = '';
}
$form['field_default_cert_id'] = [
'#type' => 'entity_autocomplete',
'#target_type' => 'taxonomy_term',
'#selection_settings' => [
'target_bundles' => array('permission_group'),
],
'#autocreate' => array(
'target_bundles' => array('permission_group'),
'bundle' => ('tags'),
),
'#title' => ('默认调用组为'),
'#tags' => TRUE,
'#default_value' => $default_term,
'#size' => '30'
];
$form['actions']['submit']['#submit'] = [
'callback' => '_form_taxonomy_overview_terms_form_submit',
];
}
/**
* 更新默认调用组提交方法
*
* @param array $form
* @param FormStateInterface $form_state
*/
function _form_taxonomy_overview_terms_form_submit(array $form, FormStateInterface $form_state) {
$cert_id = $form_state->getValue('field_default_cert_id');
$config = \Drupal::service('config.factory')->getEditable('config.settings');
$config->set('default_cert_id', $cert_id)->save();
// $tax = \Drupal::formBuilder()->getForm('taxonomy_overview_terms');
// $tax::save($form, $form_state);
}
网友评论