Какая часть api каналов знает, есть ли разница между старыми и новыми данными?


Я хочу отметить элемент, если канал внес какие-либо изменения в запись. Какой крючок я могу использовать для проверки новых и старых данных, чтобы увидеть, есть ли разница? Мне нужно пометить измененные данные флагом, а также получить журнал всех измененных узлов. Прямо сейчас каналы, похоже, помечают все как обновленное, даже если изменений нет.

Я попытался заглянуть в hook_feeds_presave, но там уже изменены как $item, так и $entity. Какой крючок может видите сравнение между старым и новым?

Author: Pierre.Vriens, 2015-07-27

1 answers

Я изменяю код в hook_feeds_before_update и пишу код следующим образом:

if ($item){
    $node = node_load($item);
    $changed=false;

      if ($entity['ITEM'] != $node->field_item[LANGUAGE_NONE][0]['value']){
         if (trim($entity['ITEM'])=="UNKNOWN"){
             $entity['ITEM'] = $node->field_item[LANGUAGE_NONE][0]['value'];

         }

      } 

А затем я отмечаю это правилом:

{ "rules_flag_when_updated_by_feed" : {
"LABEL" : "Flag when updated by feed",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "flag", "feeds" ],
"ON" : { "feeds_import_csv_importer" : [] },
"DO" : [
  { "flag_flagnode" : {
      "flag" : "flag_asset_for_review",
      "node" : [ "node" ],
      "flagging_user" : [ "site:current-user" ],
      "permission_check" : "1"
    }
  }
]

} }

 0
Author: Diana, 2015-07-28 19:02:29