Создал правило - после сохранения материала.
В действие добавляю следующий пункт (см. картинку).
Но почему то возникают проблемы... Или др. действие требуется?
Вложение | Размер |
---|---|
saveentity.jpg | 36.56 КБ |
Создал правило - после сохранения материала.
В действие добавляю следующий пункт (см. картинку).
Но почему то возникают проблемы... Или др. действие требуется?
Вложение | Размер |
---|---|
saveentity.jpg | 36.56 КБ |
Комментарии
Может я что-то не то в - Data selector выбираю?
Может правило сделать "перед сохранением"? Провести изменения и дать движку нормально в штатном режиме завершить сохранение ноды?
Мне нужно nid вытащить в заголовок. А это только после создания ноды можно сделать.
А ошибка - не сохраняет, пишет ошибку...
Но при этом... работает удалить... ноду...
кажется нашел косяк но не понимаю почему.
нода по дефолту не должна публиковаться. и когда я выбираю публиковать - ошибка. если не выбираю публиковать - все нормально.
Как решить вопрос с публикацией...
А если не выбирать при создании ноды- опубликовано, а добавить в действие в правило, после действия сохранения... то же ошибка.
А что нужно выбрать в правилах если требуется после добавления ноды изменить значение поля... что то не могу разобраться...
походу баг в каком то модуле... Entity Api или Rules или в модуле Node
Я на нулевый друпал ставил, такой же вроде глюк...
В чем может быть проблема о невозможности пересохранения ноды рулесами, если нода - имеет стаутс опубликованая. (удаление и создание пашет)
Выяснил ошибку
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '917-2-content_access_rid' for key 'PRIMARY': INSERT INTO {node_access} (nid, realm, gid, grant_view, grant_update, grant_delete) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5); Array ( [:db_insert_placeholder_0] => 917 [:db_insert_placeholder_1] => content_access_rid [:db_insert_placeholder_2] => 2 [:db_insert_placeholder_3] => 1 [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => 0 ) в функции node_access_write_grants() (строка 3440 в файле /home/u3311/domains/agatawar.ru/modules/node/node.module).
РЕШЕНО!
нужно в модуле ядра 2 строчки спустить на 2 строки ниже
Такая должна быть последовательность строк!
// Save fields.
$function = "field_attach_$op";
$function('node', $node);
// Update the node access table for this node. There's no need to delete
// existing records if the node is new.
$delete = $op == 'update';
node_access_acquire_grants($node, $delete);
module_invoke_all('node_' . $op, $node);
module_invoke_all('entity_' . $op, $node, 'node');