хорошо, я не знаю, работает ли он или нет, попробуйте следующие шаги
1 - сначала вы должны сказать drupal .... когда пользователь редактирует страницу профиля, что-то делает ... (что бы то ни было ... вставляет что-то в базу данных ... извлекает что-то .. и т. Д.)
/**
* Implementation of hook_form_alter
*/
function newcontent_form_alter(&$form, &$form_state, $form_id){
if($form_id == 'user_profile_form'){
$form['#submit'][] = '_do_something_when_user_save_profile';
}
}
/**
* do something when user save profile
*/
function _do_something_when_user_save_profile($form,$form_state){
// do something
}
теперь я думаю, что нам нужно сделать несколько запросов ... сначала нам нужно создать 2 таблицы
http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_schema/7
(этот URL поможет вам создать схему)
первая таблица будет содержать текущее значение поля, которое вы хотите отслеживать, поэтому я думаю, что эта таблица должна иметь следующие поля
(первичный ключ, идентификатор пользователя, имя поля, значение поля)
во второй таблице будет указана дата последней операции, выполненной пользователем
Я думаю, что поля будут выглядеть следующим образом (первичный ключ, идентификатор пользователя, имя поля, дата)
теперь давайте вернемся к функции отправки формы
/**
* do something when user save profile
*/
function _do_something_when_user_save_profile($form,$form_state){
// now i can check in the first table to see
// is the current submitted value for this field = the value in the table
// if its = the table value then the user didn't change any thing now i dont
// need to update the second table
// if the current submitted value != the value in the table then its mean
// that the user have updated this field ...
// now i should insert new value to the second
// table with the current date time and the current field value
}
надеюсь, вы меня поняли и извините за мой плохой английский