Добавить существующее поле в собственную форму

26 ноября 2018 в 16:38
Аватар пользователя Anodo Anodo 0 4 Решено

Программно делаю примитивную форму в своем модуле:

<?php

function my_first_form($form, &$form_state){
        
$form=array();
        
$form['name1'] = array(
            
'#type'    => 'textfield',
            
'#title' => t('Название поля'),
            
'#default_value' => t('Текст по умолчанию'),
        );
        
$form['submit'] = array(
            
'#type' => 'submit',
            
'#value' => t('Submit'),
        );
        return 
$form;
    }

function 

main_function() {
        
$form drupal_get_form('my_first_form'); //получаем поля формы
        
$form drupal_render($form); //рендерим форму
        
return $form;
    }
?>

Не могу сообразить, как в свою собственную форму добавить уже существующее поле (ссылка на термин) и настроить его виджет (автозаполнение).

Комментарии

никак.
Вам во первых необходимо создать поле с автозаполнением по термину.
Потом реализовать в hook_submit привязку tid(s)

27 ноября 2018 в 1:36

Спасибо ссылке от Orion76, разобрался, все получилось!

Если вкратце, добавляем текстовое поле с автозаполнением в форму, а в качестве источника указываем имя поля, которое является "Ссылкой на термин", например:

$form['smart1'] = array(
                '#type' => 'textfield',
                '#title' => t('Смартфон 1'),
                '#autocomplete_path' => 'taxonomy/autocomplete/field_smart_one',
                '#maxlength' => 30,
                );

Проверить, можно ли указывать это имя поля можно в браузере: http://ВашСайт/taxonomy/autocomplete/ИмяПоля

27 ноября 2018 в 12:13