Pages: 1
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:
$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:
$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:
$textfields = array('file', 'name', 'comment', 'keywords', 'author');
Par:
$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:
if ($iptc_key == '2#025')
Par:
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:
if ($iptc_key == '2#025')
Par :
if ($iptc_key == '2#025'or $iptc_key == '2#118')
Remplacer:
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:
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:
$attributes = array('file','tn_ext','representative_ext','filesize', 'width','height','date_creation','author','keywords', 'name','comment','path');
Par:
$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
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
@+
Hors ligne
Pages: 1