2016-02-23 3 views
2

У меня есть узел Drupal 7 с настраиваемыми полями. У меня нет проблем с установкой значений для одиночных текстовых полей, но я не уверен, как установить поле списка выбора в один из разрешенных ключей поля.Создать drupal-узел программно и установить пользовательское поле списка выбора

Это код, который я попытался присвоить списку выбора «ожидающему» ключу.

$node->field_referee_status['und'][0]['tid'] = 'pending'; 

Node Код создания:

// CREATE NODE 
$node = new stdClass; 
$node->type = 'referee'; 
$node->title = 'Referee report for xx'; 
$node->uid = $user->uid; 
$node->status = FALSE; 
$node->field_referee_status['und'][0]['tid'] = 'pending'; 
$node->field_referee_id['und'][0]['value'] = 'test'; 
$node->field_testff['und'][0]['value'] = "testworked"; 
node_object_prepare($node); 
node_save($node); 

Вопрос: Кто-нибудь знает правильный путь, чтобы присвоить значение ключа для пользовательского выбора поля списка при создании Drupal узлов программно?

ответ

5

Это должно работать

изменение

$node->field_referee_status['und'][0]['tid'] = 'pending'; 

в

$node->field_referee_status['und'][0]['value'] = 'pending'; 
1

приращение Try 0 (дельта) из

$node->field_referee_status['und'][0]['value'] = 'pending'; 

т.е. $node->field_referee_status['und'][1]['value'] = 'approved';

1

Вместо передачи "ожидающего" текста для "$node->field_referee_status['und'][0]['tid']". Пожалуйста, попробуйте передать его здесь. Вы можете получить «ожидающий» термин, используя следующую функцию.

Синтаксис:

taxonomy_get_term_by_name($name); 

т.е.

$term = taxonomy_get_term_by_name('pending'); 
$node->field_referee_status['und'][0]['tid'] = $term->tid; 
Смежные вопросы