Annonce

  •  » Utilisation
  •  » Comment ajouter la gestion d'autre champs IPTC dans votre gallerie.

#1 2005-11-18 12:42:41

nnikloss
Membre
2005-09-09
63

Comment ajouter la gestion d'autre champs IPTC dans votre gallerie.

Bonjour,
Comme peuvent en témoigner mes quelques posts sur ce forum, j'ai cherché comment intégré d'autres champs IPTC dans phpwebgallery.

En fait c'est plutot facile mais un peu fastidieux.

Concretement, je voulais rajouter les champs iptc suivant:

  'pays'           
  'region'         
  'ville'         
  'categories'     
  'scategories'   
  'people'

Vous trouverez ci dessous un petit howto des modifs effectuées

PS: Il me reste le problème de synchro local et distante qui ont du mal à s'executer dans la limite de 30 sec de free. En local je le fait dossier par dossier (long mais efficace), pour le distant je le fait par dossier à 1h du mat et sa passe encore, sauf si ke fichier xml produit est trop gros.

Cordialement,
Niklos


Ajouter dans la table "images" de phpwebgallery les champs:

  'pays'           
  'region'         
  'ville'         
  'categories'     
  'scategories'   
  'people'         


Dans le fichier config_default.inc.php
Remplacer:

Code:

$conf['show_iptc_mapping'] = array(
  'iptc_keywords'        => '2#025',
  'iptc_caption_writer'  => '2#122',
  'iptc_byline_title'    => '2#085',
  'iptc_caption'         => '2#120',
  );

// use_iptc: Use IPTC data during database synchronization with files
// metadata
$conf['use_iptc'] = true;

// use_iptc_mapping : in which IPTC fields will PhpWebGallery find image
// information ? This setting is used during metadata synchronisation. It
// associates a phpwebgallery_images column name to a IPTC key
$conf['use_iptc_mapping'] = array(
  'keywords'        => '2#025',
  'date_creation'   => '2#055',
  'author'          => '2#122',
  'name'            => '2#005',
  'comment'         => '2#120',
  );

Par:

Code:

$conf['show_iptc_mapping'] = array(
  'iptc_keywords'        => '2#025',
  'iptc_caption_writer'  => '2#122',
  'iptc_byline_title'    => '2#085',
  'iptc_caption'         => '2#120',
  'iptc_pays'            => '2#101',
  'iptc_region'          => '2#095',
  'iptc_ville'           => '2#90',
  'iptc_categories'      => '2#022',
  'iptc_scategories'     => '2#23',
  'iptc_people'          => '2#118'
  );

// use_iptc: Use IPTC data during database synchronization with files
// metadata
$conf['use_iptc'] = true;

// use_iptc_mapping : in which IPTC fields will PhpWebGallery find image
// information ? This setting is used during metadata synchronisation. It
// associates a phpwebgallery_images column name to a IPTC key
$conf['use_iptc_mapping'] = array(
  'keywords'        => '2#025',
  'date_creation'   => '2#055',
  'author'          => '2#122',
  'name'            => '2#005',
  'comment'         => '2#120',
  'pays'            => '2#101',
  'region'          => '2#095',
  'ville'           => '2#90',
  'categories'      => '2#022',
  'scategories'     => '2#23',
  'people'          => '2#118'
  );

Pour la recherche dans functions_category.inc.php
Remplacer:

Code:

$textfields = array('file', 'name', 'comment', 'keywords', 'author');

Par:

Code:

$textfields = array('file', 'name', 'comment', 'keywords', 'author', 'pays', 'region', 'ville', 'categories','scategories','people');

Dans functions_metadata.inc.php afin de remplir comme il faut la base de donnée avec les champs multiple (ici 025 et 118)
Remplacer:

Code:

if ($iptc_key == '2#025')

Par:

Code:

if ($iptc_key == '2#025'or $iptc_key == '2#118')

***************************************************
Dans le cas de la synchro avec des sites distants j'ai essayé les modifs suivantes qui permette d'exporter les infos dans le xml mains ne permette pas l'intégration des nouveaux champs. Cette méthode xml ayant des limites, je suis en train de regarder pour faire la même fonction directement de base à base (update).
*************************************

Dans le cas de le présence de site distant modifier le fichier create_listing_file.php:

Remplacer:

Code:

if ($iptc_key == '2#025')

Par :

Code:

if ($iptc_key == '2#025'or $iptc_key == '2#118')

Remplacer:

Code:

   if (isset($iptc['keywords']))
  {
    // keywords separator is the comma, nothing else. Allowed characters in
    // keywords : [A-Za-z0-9], "-" and "_". All other characters will be
    // considered as separators
    $iptc['keywords'] = preg_replace('/[^\w-]+/', ',', $iptc['keywords']);
    $iptc['keywords'] = preg_replace('/^,+|,+$/', '', $iptc['keywords']);
  }

Par:

Code:

   if (isset($iptc['keywords']))
  {
    // keywords separator is the comma, nothing else. Allowed characters in
    // keywords : [A-Za-z0-9], "-" and "_". All other characters will be
    // considered as separators
    $iptc['keywords'] = preg_replace('/[^\w-]+/', ',', $iptc['keywords']);
    $iptc['keywords'] = preg_replace('/^,+|,+$/', '', $iptc['keywords']);
  }
  if (isset($iptc['people']))
  {
    // people separator is the comma, nothing else. Allowed characters in
    // people : [A-Za-z0-9], "-" and "_". All other characters will be
    // considered as separators
    $iptc['people'] = preg_replace('/[^\w-]+/', ',', $iptc['people']);
    $iptc['people'] = preg_replace('/^,+|,+$/', '', $iptc['people']);
  }

Remplacer:

Code:

  $attributes = array('file','tn_ext','representative_ext','filesize',
                      'width','height','date_creation','author','keywords',
                      'name','comment','path');

Par:

Code:

  $attributes = array('file','tn_ext','representative_ext','filesize',
                      'width','height','date_creation','author','keywords',
                      'name','comment','path','pays','region','ville', 'categories','scategories','people');

Dernière modification par nnikloss (2005-11-18 13:42:31)

Hors ligne

#2 2006-08-26 15:07:19

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Comment ajouter la gestion d'autre champs IPTC dans votre gallerie.

Salut nnikloss,

J'ai modifié wiki afin d'intégrer la recherche dans les nouveaux champs IPTC comme tu le signalais dans ce post. L'article du wiki parle également des modifications à faire sur les fichiers picture.php & picture.tpl afin d'afficher en permanence les nouveaux champs sous la photo.

La suite par ici :
-> Modifier le choix d'informations affichées par défaut sous la photo de taille moyenne

@+


Environnement mac et hébergement chez free.

Hors ligne

#3 2006-08-26 18:05:47

nnikloss
Membre
2005-09-09
63

Re: Comment ajouter la gestion d'autre champs IPTC dans votre gallerie.

Bonne idée de mettre ca dans le wiki, j aurais du y penser.

Par contre cette modif était valable pour la 1.5.X, pour la 1.6 la modification sur la recherche est différente.

Niklos

Hors ligne

  •  » Utilisation
  •  » Comment ajouter la gestion d'autre champs IPTC dans votre gallerie.

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact