Annonce

  •  » Utilisation
  •  » IPTC, intégration à la base de donnée, champs personnes et autre...

#1 2007-09-04 01:59:39

MrSoul
Membre
Cerny, Essonne, France
2007-09-04
4

IPTC, intégration à la base de donnée, champs personnes et autre...

Bonjour

Je me permet de vous contacter car je bloque sur quelques points essentiel.
Voilà toutes mes photos sont parfaitement référencé au niveau IPTC et j'aimerais mettre mon catalogue en ligne en profitant de toutes ces infos.
J'ai réussi à intégré les champs "mots clés" dans les tags, ça marche à merveille.
Hors, j'aimerais intégré également à la base de donnée plusieurs autres champs du même type que les "mots clés" (plusieurs possibilités par champs), notamment le champ "Personnes" (que l'ont retrouve sur iView Media Pro/Expression Media) et "catégorie supplémentaires".
Ainsi que des champs d'annotation à choix uniques (titre principal, titre, catégorie, évènement, tâche, statut).
J'aimerais enfin intégré, et là c'est un développement un peu plus complexe, les champs Pays, département, ville, lieux, sous la forme d'un arbre.

Il faudrait que l'on puisse préciser (case à choix multiple) dans quels types de champs la recherche doit être effectué et pouvoir afficher les tags par type de champ.

J'en demande beaucoup, mais pour l'heure, aucune solution existe, et je pense que PhpWebGallery serait la meilleur base possible.
Je ne demande pas du tout fait (bien que si quelqu'un se sent chaud :D) juste de l'aide.


Pour ceux que ça intéresserait, j'ai rajouté à mon fichier config.local.inc.php (ce sont les codes correspondant à iView Media Pro/Expression Media) :

Code:

$conf['show_iptc_mapping'] = array(
        'iptc_title'                                            => '2#005',
        'iptc_status'                                           => '2#007',
        'iptc_label'                                            => '2#010',
        'iptc_iptc_subject_code'                        => '2#012',
        'iptc_category'                                         => '2#015',
        'iptc_supplemental_categories'          => '2#020',
        'iptc_event'                                            => '2#022',
        'iptc_keywords'                                         => '2#025',
        'iptc_iso_country_code'                         => '2#038',
        'iptc_instructions'                                     => '2#040',
        'iptc_date_created'                                     => '2#055',
        'iptc_creator'                                          => '2#080',
        'iptc_creator_job_title'                        => '2#085',
        'iptc_city'                                                     => '2#090',
        'iptc_location'                                         => '2#092',
        'iptc_state'                                            => '2#095',
        'iptc_country'                                          => '2#101',
        'iptc_job_identifier'                           => '2#103',
        'iptc_headline'                                         => '2#105',
        'iptc_provider'                                         => '2#110',
        'iptc_source'                                           => '2#115',
        'iptc_copyright_notice'                         => '2#116',
        'iptc_people'                                           => '2#118',
        'iptc_description'                                      => '2#120',
        'iptc_description_writer'                       => '2#122',
        'iptc_creator_address'                          => '2#208',
        'iptc_creator_city'                                     => '2#209',
        'iptc_creator_state'                            => '2#210',
        'iptc_creator_postal_code'                      => '2#211',
        'iptc_creator_country'                          => '2#212',
        'iptc_creator_phone'                            => '2#213',
        'iptc_creator_e-mail'                           => '2#214',
        'iptc_creator_website'                          => '2#215',
        'iptc_iptc_scene'                                       => '2#224',
        'iptc_intellectual_genre'                       => '2#225',
        'iptc_rights_usage_terms'                       => '2#226',
        'iptc_url'                                                      => '2#227',
        'iptc_rating'                                           => '2#242',
        'iptc_perso01'                                          => '2#254',
        'iptc_jeux'                                                     => '2#255',
  );

Et à mes fichier common.lang.php :

Code:

/*<<<<IPTC*/
$lang['iptc_description'] = 'Description';
$lang['iptc_description_writer'] = 'Rédacteur';
$lang['iptc_status'] = 'Statut';
$lang['iptc_supplemental_categories'] = 'Catégories détaillées';
$lang['iptc_keywords'] = 'Mots-clés';
$lang['iptc_headline'] = 'Titre principal';
$lang['iptc_instructions'] = 'Instructions';
$lang['iptc_creator'] = 'Créateur';
$lang['iptc_creator_job_title'] = 'Fonction du créateur';
$lang['iptc_provider'] = 'Fournisseur';
$lang['iptc_source'] = 'Source';
$lang['iptc_title'] = 'Titre';
$lang['iptc_city'] = 'Ville';
$lang['iptc_state'] = 'Département/Région';
$lang['iptc_country'] = 'Pays';
$lang['iptc_job_identifier'] = 'Tâche';
$lang['iptc_category'] = 'Catégorie';
$lang['iptc_copyright_notice'] = 'Copyright';
$lang['iptc_date_created'] = 'Créé';
$lang['iptc_label'] = 'Label';
$lang['iptc_url'] = 'URL';
$lang['iptc_event'] = 'Événement';
$lang['iptc_location'] = 'Lieu';
$lang['iptc_people'] = 'Personnes';
$lang['iptc_rating'] = 'Notation';
$lang['iptc_rights_usage_terms'] = 'Droits d\'utilisation';
$lang['iptc_intellectual_genre'] = 'Domaine';
$lang['iptc_iptc_scene'] = 'Scène IPTC';
$lang['iptc_iptc_subject_code'] = 'Code rubrique IPTC';
$lang['iptc_iso_country_code'] = 'Code pays ISO';
$lang['iptc_creator_address'] = 'Créateur : Adresse';
$lang['iptc_creator_city'] = 'Créateur : Ville';
$lang['iptc_creator_state'] = 'Créateur : Département/Région';
$lang['iptc_creator_postal_code'] = 'Créateur : Code postal';
$lang['iptc_creator_country'] = 'Créateur : Pays';
$lang['iptc_creator_phone'] = 'Créateur : Téléphone';
$lang['iptc_creator_e-mail'] = 'Créateur : Courriel';
$lang['iptc_creator_website'] = 'Créateur : Site web';
/*
//Version US
$lang['iptc_description'] = 'Description';
$lang['iptc_description_writer'] = 'Description Writer';
$lang['iptc_status'] = 'Status';
$lang['iptc_supplemental_categories'] = 'Supplemental Categories';
$lang['iptc_keywords'] = 'Keywords';
$lang['iptc_headline'] = 'Headline';
$lang['iptc_instructions'] = 'Instructions';
$lang['iptc_creator'] = 'Creator';
$lang['iptc_creator_job_title'] = 'Creator: Job Title';
$lang['iptc_provider'] = 'Provider';
$lang['iptc_source'] = 'Source';
$lang['iptc_title'] = 'Title';
$lang['iptc_city'] = 'City';
$lang['iptc_state'] = 'State';
$lang['iptc_country'] = 'Country';
$lang['iptc_job_identifier'] = 'Job Identifier';
$lang['iptc_category'] = 'Category';
$lang['iptc_copyright_notice'] = 'Copyright Notice';
$lang['iptc_date_created'] = 'Date Created';
$lang['iptc_label'] = 'Label';
$lang['iptc_url'] = 'URL';
$lang['iptc_event'] = 'Event';
$lang['iptc_location'] = 'Location';
$lang['iptc_people'] = 'People';
$lang['iptc_rating'] = 'Rating';
$lang['iptc_rights_usage_terms'] = 'Rights Usage Terms';
$lang['iptc_intellectual_genre'] = 'Intellectual Genre';
$lang['iptc_iptc_scene'] = 'IPTC Scene';
$lang['iptc_iptc_subject_code'] = 'IPTC Subject Code';
$lang['iptc_iso_country_code'] = 'ISO Country Code';
$lang['iptc_creator_address'] = 'Creator: Address';
$lang['iptc_creator_city'] = 'Creator: City';
$lang['iptc_creator_state'] = 'Creator: State';
$lang['iptc_creator_postal_code'] = 'Creator: Postal Code';
$lang['iptc_creator_country'] = 'Creator: Country';
$lang['iptc_creator_phone'] = 'Creator: Phone';
$lang['iptc_creator_e-mail'] = 'Creator: E-Mail';
$lang['iptc_creator_website'] = 'Creator: Website';
*/
/*IPTC>>>>*/

Hors ligne

#2 2007-09-04 09:09:46

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

MrSoul a écrit:

Et à mes fichier common.lang.php :

Et à mes fichier local.lang.php ...

Cela sera encore mieux !

Pour le reste... c'est à analyser encore...
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2007-09-04 10:10:29

MrSoul
Membre
Cerny, Essonne, France
2007-09-04
4

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Merci pour l'astuce.

Pour l'analyse, je bloque un peu, quelqu'un pourrait tenter de m'avancer ?

Hors ligne

#4 2007-10-27 18:37:53

MrSoul
Membre
Cerny, Essonne, France
2007-09-04
4

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Je me permet de faire remonter ce post car je n'ai toujours pas avancé et je me dis que ça inspirerait quelqu'un.

Pour résumer, je recherche toujours à avoir le même comportement que les tags pour l'import du champs des mots clés IPTC (code APP13 2#025) sur le champ IPTC Personne (Code APP13 2#118).

Merci d'avance.

Hors ligne

#5 2007-10-27 19:01:22

grum
Former Piwigo Team
50% Nantes - 50% Paris
2007-09-10
2502

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

il faudrait certainement mettre en place une base du genre :
image_id*, iptc_key*, iptc_value_num*, iptc_value
avec les éléments * comme clef primaire.

exemple :
1, 'iptc_title', 0, 'titre image a'
1, 'iptc_people', 0, 'gérard'
1, 'iptc_people', 1, 'robert'
2, 'iptc_title', 0, 'titre image b'
2, 'iptc_people', 0, 'gérard'

puis revoir l'interface pour cocher les élements à prendre en compte pour la recherche

revoir la requête de recherche pour associer cette table dans les critères de recherche

revoir la synchronisation pour intégrer ces éléménts dans la base.


c'est un gros travail.


Mes photos avec Piwigo évidemment !
[ www.grum.fr ] [ photos.grum.fr ]

Hors ligne

#6 2007-10-27 22:50:08

vimages
Membre
2004-03-27
2429

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

ce que tu veux, je l'ai fait il y a un bon moment sur mes galeries... seulement pour 2 champs IPTC..  mais 1 ou 10, le principe est le même... je crois je j'avais fait un ajout dans le wiki, attends un peu je regarde.....


édit :  voici le lien que je cherchais...

en résumé,
1)tu ajoute les champs dans la table image
2)tu définis les relaltion noms de chapms/codeIPTC dans le fichier conf
3)tu ajoutes les commandes pour que lors de la synchronisation ces champs soient prix en compte
4)tu ajoute les lignes qui feront s'afficher ces infos et surtout, qui permettront la recherche par type de champ que tu souhaites

là ce ne sont que les principes, mais dans le wiki j'avais plus détaillé bien sur.. et si celà concernait une ancienne version, les éléments concerné n'ont pas changé depuis, c'est toujours valable.

tu as du boulot ! bon courage !

Dernière modification par vimages (2007-10-27 23:01:48)

Hors ligne

#7 2007-10-28 07:23:36

awaloo
Membre
Carrément à l'est
2007-02-16
43

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Tiens Mr Soul de Nikon Lovers...
Bonjour ;-)


"Les seules questions bêtes sont celles qu'on ne pose jamais."
Mes galeries phpwebgallery

Hors ligne

#8 2007-10-28 13:37:50

MrSoul
Membre
Cerny, Essonne, France
2007-09-04
4

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Mon problème, ce n'est pas trop la base de donnée, à ce niveau c'est assez simple, il faut :

Doubler la taille de la table "phpwebgallery_images" en rajoutant les champs suivants :
IPTC_Category
IPTC_City
IPTC_CopyrightNotice
IPTC_Country
IPTC_CountryCode
IPTC_Creator
IPTC_CreatorAddress
IPTC_CreatorCity
IPTC_CreatorCountry
IPTC_CreatorEmail
IPTC_CreatorPhone
IPTC_CreatorPostcode
IPTC_CreatorState
IPTC_CreatorTitle
IPTC_CreatorURL
IPTC_Description
IPTC_DecriptionWriter
IPTC_Event
IPTC_Headline
IPTC_Instructions
IPTC_IntellectualGenre
IPTC_JobIdentifier
IPTC_Location
IPTC_Provider
IPTC_Source
IPTC_State
IPTC_Status
IPTC_Title
IPTC_URL
IPTC_UsageTerms
IPTC_AnnotationWriter
IPTC_Author
IPTC_AuthorTitle
IPTC_Caption
IPTC_Copyright
IPTC_Credit
IPTC_Genre
IPTC_Transmission
IPTC_DateCreated
IPTC_EventDate

Ensuite, créé des tables pour les mots clés unique avec id + mots clés :

IPTC_Categories
IPTC_Keywords
IPTC_People
IPTC_Scenes
IPTC_SubjectCodes

Et les tables relationnels entre les images et les mots clés (id/id) :

RELA_Categories
RELA_Keywords
RELA_People
RELA_Scenes
RELA_SubjectCodes



Pour la première partie, rajouter les mots clés dans la table phpwebgallery_images, c'est plutôt simple.
Là où sa se complique, c'est pour les mots clés répètables car phpwebgallery n'est pas du tout prévu pour ça et récupérer le code des tags (qui se balade dans un nombre incalculable de fichiers), c'est trop la misère et c'est là que je bloque.
Comment dire, je suis photographe, pas programmeur (je tripote, mais pas trop non plus).

En gros, j'ai des vrais attentes de photographe, mais je n'ai ni le temps, ni les compétences pour développer ça...
Bon, ok, mon rève le plus intime serait que phpWebGallery devienne phpImageBank :D (de plus, c'est un peu vers quoi il se tourne).
Pour l'heure, j'hésite, vu la complexité de la chose, je ne sais pas trop si il faudrait que je tente de modifier phpWebGallery ou que je dévelloppe moi même mon petit script.

Si vous avez des idées pour dupliquer sans trop de difficulté le système de tags pour les 5 champs "répètable", je suis preneur.

En tout cas merci a vous (Awaloo> Arggg, je me suis encore fait couillonner avec mon avatar "standard" ;) )

Hors ligne

#9 2008-02-27 00:23:55

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

J'essaie de faire la même chose, pour quelques champs IPTC. (globalement : pays / région / ville / localisation qui sont renseignés dans toutes mes images)

Pour l'instant (pour reprendre grosso modo la check list de vimages)  :
1) ajouté les champs dans la table image
2) défini des relations dans le fichiers conf
3) ajouté les commandes pour que lors de la synchro les champs soient pris en compte
4) modifié picture.php pour renseigner mes nouvelles variables à afficher
5) modifié picture.tpl pour afficher les infos

Ca ça marche, par contre pour permettre la recherche sur ces critères... je coince complètement.
Sur le wiki qui avait été fait pour la version 1.5, la fin (pour permettre la recherche) ne semble plus applicable pour la v1.7.

Hors ligne

#10 2008-02-27 06:56:08

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Zaphod a écrit:

Ca ça marche, par contre pour permettre la recherche sur ces critères... je coince complètement.
Sur le wiki qui avait été fait pour la version 1.5, la fin (pour permettre la recherche) ne semble plus applicable pour la v1.7.

Normal, mais cela passe par une demande d'évolution à faire dans l'outil de suivi des Bugs.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2008-02-27 07:45:53

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Et est-ce qu'il y a quelque chose d'existant qui explique comment rajouter un critère de recherche ?

Hors ligne

#12 2008-02-27 11:02:10

vimages
Membre
2004-03-27
2429

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

VDigital a écrit:

Zaphod a écrit:

Ca ça marche, par contre pour permettre la recherche sur ces critères... je coince complètement.
Sur le wiki qui avait été fait pour la version 1.5, la fin (pour permettre la recherche) ne semble plus applicable pour la v1.7.

Normal, mais cela passe par une demande d'évolution à faire dans l'outil de suivi des Bugs.
8-)

est-ce que ma façon de faire ne permet justement celà ? et bien non.. plus maintenant, mais elle permet l'affichage des infos sous les photos.
- ajout des colonnes dans la table
- ajout des champs dans "include/local_conf.inc.php"
- ajout des lignes de code dans picture.php et picture.tpl

ma méthode en pwg1.5 était celle-ci : http://phpwebgallery.net/doc/doku.php/f … le_moyenne

pour le moment, en PWG 1.7.1 c'est ceci : http://phpwebgallery.net/doc/doku.php/f … hamps_iptc , mais donc sans recherche possible pour le moment. je vois si je peut la réintroduire.

Dernière modification par vimages (2008-02-27 11:36:41)

Hors ligne

#13 2008-02-27 11:09:50

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Wiki (vimages en 1.5) a écrit:

Pour inclure dans le moteur de recherche les nouveaux champs iptc.
Dans include/functions_category.inc.php, remplacez :
$textfields = array('file', 'name', 'comment', 'keywords', 'author');

Par :
$textfields = array('file', 'name', 'comment', 'keywords', 'author', 'place_creation', 'instructions');

Ainsi que :
$fields = array('file', 'name', 'comment', 'keywords', 'author');

Par :
$fields = array('file', 'name', 'comment', 'keywords', 'author', 'place_creation', 'instructions');

Effectivement, j'avais oublié ça. Je n'ai pas regardé mais j'imagine que cela ne marchera plus en 1.7 ou si cela veut bien encore le faire, j'ai dans l'idée que cela ne devrait pas suffire. Je peux me tromper.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#14 2008-02-27 11:14:32

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

Maintenant tout ça va falloir l'imaginer en plugin...

Si vous ajouter des colonnes directement dans la table #_images, à vous d'en assurer la compatibilité avec les releases futures.

Exemples:
(Désinstallation = export)...
(En admin, prévoir un ré-import après upgrade).

8-)

PS: Si j'avais envie de le faire, je ferai une table séparée #_image_infos.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#15 2008-02-27 11:20:35

vimages
Membre
2004-03-27
2429

Re: IPTC, intégration à la base de donnée, champs personnes et autre...

tu as raison vincent... en général, sur un upgrade, tout est conservé...

puisque le sujet est revenu sur le tapis, je rapelle aussi mon avis qui était qu'une évolution sur la présentation des IPTC serait bienvenue.. rendre ce genre de modif possible avec des options en natif...

je mets tout de même un warning...!
avec les grosses galeries, la table images prends des proportions inquiétantes... de nombreux mots clés... l'ajout non raisonnable des colonnes, autant de champs à trier, afficher... risquent fort de ramentir l'affichage global. A chacun de savoir utiliser les champs réellement important.

la création d'une nouvelle table serait une bonne chose.. mais là ce n'est plus à ma portée.


(je fini rapidement le wiki)

Dernière modification par vimages (2008-02-27 11:21:44)

Hors ligne

  •  » Utilisation
  •  » IPTC, intégration à la base de donnée, champs personnes et autre...

Pied de page des forums

Propulsé par FluxBB

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