Cestfait.ch

  • Home
  • Drupal
  • PHP 5
  • Jquery
  • Web Dev
  • Sys admin
  • Logiciels libres
  • Videos
  • Divers
  • Nous contacter
  • Mon c'est fait!
Home

Feeds : Importer multiples images

Submitted by yvan on Fri, 05/27/2011 - 13:06

Depuis que le module Feeds est devenu relativement très stable je n'utilise plus que lui pour importer le contenu sur un site Drupal.

Ce petit module à plusieurs avantages, dont notamment d'importer pleins de format différents et même du XML formaté super bizarre comme NewsML, etc. (Merci XPath).

Bref, malheureusement ce module ne gère pas encore l'importation de fichier image multiple. Heureusement, j'ai trouvé comment faire et voici la solution. (sans hacké le code du module).

D'abord, il faudra vous créer un module perso, ça j'espère que vous savez le faire, après il faut l'activer et s'assurer que ce module s'exécute après tous les modules Feeds (weight dans la table system).

Et voici le code qui vous permet de faire ce que vous voulez : 

 

 

<?php
function mymodule_feeds_node_processor_targets_alter(&$targets) {
  $targets['field_images'] = array( // ici changez le nom du field au besoin
    'name' => 'Images',
    'callback' => 'dstouch_filefield_feeds_set_target',
    'description' => 'The URL for the CCK Images field of the node.',
  );
}
 
function mymodule_filefield_feeds_set_target($node, $field_name, $value) {
  $value = explode('||', $value); // ici vous pouvez changer le séparateur de valeurs
  // Normalize $value, create an array of FeedsEnclosures of it.
  $enclosures = array();
  if (!is_array($value)) {
    $value = array($value);
  }
  foreach ($value as $k => $v) {
    if ($v instanceof FeedsEnclosure) {
      $enclosures[] = $v;
    }
    elseif (valid_url($v)) {
      $enclosures[$k] = new FeedsEnclosure($v, 'application/octet-stream');
    }
  }
 
  // Map enclosures.
  $items = isset($node->$field_name) ? $node->$field_name : array();
  foreach ($enclosures as $enclosure) {
    if ($file = $enclosure->getFile()) {
      $field = content_fields($field_name, $node->type);
      $target_dir = filefield_widget_file_path($field, user_load($node->uid));
      $info = field_file_save_file($enclosure->getFile(), array(), $target_dir);
      if ($info) {
        $info['list'] = array();
        $info['data'] = array('description' => '');
        if ($field['list_field']) {
          $info['list'] = $field['list_default'];
        }
        $items[] = $info;
        $error = false;
      }
    }
  }
  $node->$field_name = $items;
}
?>
0
Log in to vote
No votes yet
  • Login or register to post comments
  • Share this
Tags:
  • Drupal

User login

  • Create new account
  • Request new password
  • Sign in with Twitter

Translate

Sondage

Qu'elle version de drupal utilisez-vous ?

Submitted by Sir Squall on Tue, 04/10/2012 - 16:30
  • Login or register to post comments

Recent comments

  • Arf, je suis à l'armée!
    40 weeks 1 day ago
  • hahaha c'est juste! Il n'y a
    46 weeks 4 days ago
  • yeah comme sa fait plaisir de
    46 weeks 6 days ago
  • wouahou merciii :-) !
    50 weeks 5 days ago
  • J'y réponds aujourd'hui ici
    50 weeks 5 days ago
  • Salut, court article mais
    50 weeks 6 days ago
  • Oktoberfest power!!!
    1 year 3 weeks ago
  • yep je vais faire un petit
    1 year 5 weeks ago
  • It's regular approuved
    1 year 5 weeks ago
  • Pas d'exemple????
    1 year 5 weeks ago

Tags

cropping Divers drupal Drupal emacs firefox gmap Google Images Jquery jquery karmic koala La phrase du jour Lausanne Logiciels libres mysql PHP 5 RPG Sys admin ubuntu Web Dev yasnippet youtube Zend
more tags

Popular content

Today's:

  • Squall Beer Challenge '09
  • viportuguese-shop.com
  • Trip to antwerpen !
  • Emacs Transparent
  • 8ème Forum eCulture - ERACOM - 4 septembre 2009
  • Boxxy likes Drupal
  • Grep afficher les lignes avant et après
  • Drupal and Zend, form validate :)
  • Tinymce styles sorted
  • Drupal solr attachement intégration

All time:

  • Drupal 7 effet avec les jquery.ui.dialog sur Drupal 6 !
  • Dries Keynote DrupalCon Paris 2009
  • Drupal bridge zend yeah !!
  • Jquery slider c'est de la bonne !!!
  • Drupal and Zend, form validate :)
  • Jquery JSON en _POST
  • [Drupal] Lightbox avec une gmap! yeah
  • [Drupal] Domain Access & memcache sa donne quoi ?
  • viportuguese-shop.com
  • Node Import et Taxonomy CSV

Last viewed:

  • Facebook et l'open source
  • Fabric, le déploiement avec Python
  • Evolution bug [?]
  • EPSACrop sur Drupal 7
  • Emacs yasnippet Act II
  • Emacs count line region
  • Emacs avec html, css, python, autocompletation, mail, debuger php pas a pas, yas/snippet etc.. etc.. etc..
  • Emacs
  • Emacs
  • Méthodologie de gestion de projet

Twitter

Latest Articles

Derniers liens publiés

  • Get the list of all enabled module
    http://drupal.org/node/440962
  • Cloudflare et Dropbox nommés Technology pioneers
    http://techcrunch.com/2011/09/01/cloudflare-dropbox-palantir-and-kickstarter-named-technology-pioneers-by-the-world-economic-forum/
  • Apprend le javascript en t'amusant
    http://www.codecademy.com
  • EPSACrop sur Drupal 7
    http://www.aswissidea.org/
  • Drupal solr attachement intégration
    http://tika.apache.org/

Pub

Google gadget

Add to Google

Facebook page

jiwa

all good song

Partenaires

Cyber Warfare

Drupal Factory

Dev Factory

I love Smashing Magazine!
Fervens Drupal theme by Leow Kah Thong. Designed by Design Disease and brought to you by Smashing Magazine.