Как программно добавить ревизию к node во время ее сохранения

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

Аватар пользователя engenes engenes 6 марта 2019 в 10:02

Создал ноду. При нажатии на кастомную кнопку на сервер отправляется post запрос. он дергает функцию которая делает следующее

<?php
$nid 
//пришедший в посте id ноды
    
$node_projekt node_load($nid);
    
$node_projekt->field_set_production['und'][0]['value'] = date('Y-m-d H:i:s');//запись данных в поле
    
node_save($node_projekt);
?>

при сохранении ноды выполняются следующие скрипты

<?php
function моймодуль_hand_node_presave($node) {
    
$node->log 'запись в лог ревизии';
}
?>

эти функции срабатывают нормально, если нода была создана и один раз отредактирована.
Если нода не редактировалась, то кнопка "ревизии" не появляется.

Но при этом, если пересохранить материал, то кнопка ревизии появится, а на странице ревизий сразу будут все записи в лог, которые я ранее добавил программно.

как сделать чтобы во время сохранения ноды независимо от того создана она программно или нет,запись в лог ревизии добавлялась, и появлялась кнопка ревизий

Лучший ответ

Аватар пользователя sas@drupal.org sas@drupal.org 6 марта 2019 в 14:29

Ни надо никаких пресейвов
Просто перед node_save($node)

$node->log = t('My revision');
$node->revision = 1;

Комментарии