0

Good day

I have a problem with the side of developer

with certainly conditions i need remove a item from source. for example i have in source

nid and phone1 and phone2

but if phone2 is the same that phone1 remove, all this is in updates nodes

function custom_feeds_before_update($source, $item, $entity_id){

  $entity = node_load($entity_id);
   if (isset($item['phone 2'])) { 
      if($entity->field_phone_1['und'][0]['value'] == $item['phone 2']){
         unset($item['phone 2']);
      }
  }
}
function custom_feeds_presave($source, $item, $entity_id){

  $entity = node_load($entity_id);
   if (isset($item['phone 2'])) { 
      if($entity->field_phone_1['und'][0]['value'] == $item['phone 2']){
         unset($item['phone 2']);
      }
  }
}

something i make wrong? none working never unset if i make dpm in item no appear the item but if i see the node appear update, is other hook

thanks for any help

closed as too broad by kiamlaluno Aug 9 at 10:02

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Are these two functions actual Drupal hook functions? Documentation shows otherwise. Also is this D7 or D8? – cchen Sep 12 '18 at 18:17
  • is for drupal 7 – jonathan Sep 13 '18 at 14:53
  • okay are these two functions actual Drupal hook functions? – cchen Sep 13 '18 at 15:07
  • yes hook_feeds_presave and hooks_feeds_before_update – jonathan Sep 13 '18 at 18:39
1

To alter the source items for the D7 version of Feeds, implement the hook hook_feeds_after_parse().

/**
 * Implements hook_feeds_after_parse().
 *
 * Removes duplicate phone numbers for importer 'myimporter'.
 */
function mymodule_feeds_after_parse($source, $result) {
  if ($source->importer->id == 'myimporter') {
    foreach ($result->items as &$item) {
      if (isset($item['phone 1']) && isset($item['phone 2']) && $item['phone 1'] == $item['phone 2']) {
        // If phone 1 and phone 2 are the same, do not import phone 2.
        unset($item['phone 2']);
      }
    }
  }
}

Not the answer you're looking for? Browse other questions tagged or ask your own question.