2010-05-16 8 views
4

Я хотел бы установить некоторые значения в узле перед фактической записью данных в БД. У меня уже есть работа, изменяя book_nodeapi, но я хотел бы сделать это извне кода, некоторые опции _alter, которые позволят мне оставить код модуля нетронутым, были бы замечательными.Как обновить узел (книгу или страницу), прежде чем сохранять его, не касаясь кода модуля в Drupal?

Благодаря

ответ

1

Если я понимаю, что вам нужно, модуль Rules может быть очень полезен в таких задачах. Все, что вам нужно сделать, это создать условие в соответствии с типом содержимого, которое вы хотите, и иметь действие, которое устанавливает значение. Установка значения может быть выполнена с использованием статических значений, значений Token или даже кода PHP.

Here - это скринкаст с основами правил.

+0

+1 - это несколько менее гибкий способ по сравнению с предложением ceejayoz использования 'hook_nodeapi', но может быть достаточно для ваших нужд и не требует специального кода в настраиваемом модуле. –

+0

Ну, правда. Я читал «Я бы хотел сделать это из-за пределов кода» и думал, что вы действительно не хотите кодировать ... – Shushu

2

Вы можете сделать пользовательский модуль и реализовать hook_nodeapi (mymodule_nodeapi) в нем так же, как книга модуль делает. Каждый активный модуль получает возможность подключаться к nodeapi для всех узлов.

+1

+1 - это самый гибкий способ сделать это - вам нужно внести изменения в операцию «presave» (операции вставки/обновления будут запускаться только * после *, узел был сохранен в база данных) –

 Смежные вопросы

  • Нет связанных вопросов^_^