Как сделать title с автозавершением (autocomplete)?

Главные вкладки

Аватар пользователя Valery.O Valery.O 29 января 2017 в 6:06

Есть тип материала, заголовком которого должен быть заголовок ноды из другого типа материала.
Чтобы не вводить постоянно одно и то же, нужно сделать чтобы title был с автозаполнением и брал заголовки у другого типа материала.

Например, есть тип материала "Склад", куда добавлены все изделия.
И есть тип материала "брак" в который каждый день вписывается % брака по каждому изделию.
Когда мы создаем "брак", то по сути у нас title берется из title "Склад".

example

Подскажите, как можно реализовать.?

Комментарии

Аватар пользователя Valery.O Valery.O 29 января 2017 в 7:00
<?php
function MYMODULE_form_node_MYTYPE_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state$form_id) {
  
$form['title']['#type'] = 'entity_autocomplete';
  
$form['title']['#target_type'] = 'node';
}
?>

Автозавершение заработало, но после сохранения выдает ошибку, что поле title обязательно для заполнения, хотя оно заполнено...
И ещё вопрос, как сделать чтобы автозавершение было только по определенному типу материала, а не по всем?

Аватар пользователя Valery.O Valery.O 29 января 2017 в 7:02

<?php$form['title']['#selection_settings']['target_bundles'] = 'MY_TYPE';?>
такая строчка не сработала, всё равно шарит по всем типам материала

Аватар пользователя Valery.O Valery.O 29 января 2017 в 15:34
<?php
function MYMODULE_form_node_MYTYPE_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state$form_id) {
  
$form['title'] = array(
  
'#type' => 'entity_autocomplete',
  
'#target_type' => 'node',
  
'#selection_settings' => array(
    
'target_bundles' => array('contenttype'),
  ),
);
}
?>

Теперь автозаполнение работает как надо, но не может сохранить материал.