Пользовательский PHP-код для создания узла с правилами


Я пытаюсь создать автоматическую регистрацию с помощью правил. В основном, когда создается новый ресурс, запускается правило и создается новый узел регистрации с пользовательским PHP, но новый узел не создается. Я не вижу никаких ошибок в отчетах. Вот код:

$node = new stdClass;
$node->type = 'asset_event';
$node->title = 'Automatic Registration';
$node->[field_first_name]['und'][0]['value'] = [site:current-user];
$node->[field_asset_event_type]['und'][0]['tid'] = 791;
$node->[field_asset_additional_informati]['und'][0]['value'] = 'Event created by automatic registration';
$node->[field_link_to_asset_id]['und'][0]['value'] = [node:field-link-to];
node_object_prepare($node);
node_save($node);

Спасибо за любую помощь.

 1
Author: ermannob, 2013-01-23

2 answers

В правиле:

  1. Создайте новую сущность
  2. Узла типа
  3. В конце вашего действия раздел "Предоставленные переменные" даст вам метку созданной сущности
  4. Используйте эту уже выбранную сущность, чтобы задать поля (с "Задать значение") этого узла.

Наслаждайтесь!

 1
Author: Gregory Kapustin, 2013-01-23 16:10:52

Я делал что-то подобное, но я был на Drupal 6.

В любом случае, я могу заметить некоторые странные вещи в вашем коде. Я постараюсь переписать его так, как я считаю правильным.

$node = new stdClass(); //please note the ()
$node->type = 'asset_event';
$node->title = 'Automatic Registration';
$node->field_first_name['und'][0]['value'] = [site:current-user]; //field names without []
$node->field_asset_event_type['und'][0]['tid'] = 791;
$node->field_asset_additional_informati['und'][0]['value'] = 'Event created by automatic registration';
$node->field_link_to_asset_id['und'][0]['value'] = [node:field-link-to];
node_object_prepare($node);
node_save($node);

Я не уверен, что это можно считать ответом, но я надеюсь, что это немного поможет.

 0
Author: ermannob, 2013-01-23 15:55:27