#1 2009-01-18 19:47:53

bert69
Membre
1970-01-01
45

[Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Bonjour,

j'aimerai que l'affichage de ma date de création d'une photo (récupérée dans les IPTC de l'image) soit affichée non pas en YYYYMMDD (ex:20090118) mais dans ce format là DD/MM/YYYY (ex: 18/01/2008).

Je pense que tout se passe dans les picture.php ou dans metadonnées.php mais n'ai aucune idée de la marche à suivre !

Merci d'avance !

Dernière modification par bert69 (2009-01-20 22:14:17)

Hors ligne

#2 2009-01-18 20:23:46

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Avant d'envisager 14h30, j'aimerai revenir à 12h si tu en es d'accord.

Quelle date IPTC? Elle représente quelle date par rapport à l'image?


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 2009-01-18 22:48:06

bert69
Membre
1970-01-01
45

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Revenons à 12h :)

Je parle ici de la date de création de l'image, celle correspondant au code 55 dans le tableau IPTC

Voici la ligne correspodante a ce champs dans le tableau IPTC qui est dans le Wiki.

------------  55    Date Created    non répétable, 8 caractères, forme AAAAMMJJ    Date de création de l’objet ---------------

Hors ligne

#4 2009-01-18 23:09:10

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Pourquoi ne pas récupérer la date de prise de vue dans les Exifs?

Au moins tu n'as pas à la renseigner, elle est à jour à condition que l'appareil soit correctement configuré.


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

#5 2009-01-18 23:57:59

bert69
Membre
1970-01-01
45

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

La date exif est par defaut avec l'heure, ce que je ne veux pas.

Voici ce que ça affiche

DateTimeOriginal      2008:12:18 16:20:51

Il me faudrait seulement:

Date  2008:12:18

Et encore mieux !!! ceci:

Date  18/12/2008

ll faudrait aussi que ce champ exif soit affiché apres les IPTC, sous la photo ...

Mais c'est peut-être plus simple ?

Hors ligne

#6 2009-01-19 07:17:51

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Bien sûr que c'est très simple, je vais t'expliquer tout ça si possible dans la journée.


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

#7 2009-01-19 10:53:53

bert69
Membre
1970-01-01
45

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

OKI dans l'attente !

Hors ligne

#8 2009-01-19 12:11:21

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Créée le Jeudi 24 Août 2006 en version française ("Created on Thursday 24 August 2006" dans la version anglaise).

Cette indication est en standard dans la galerie.
Mais peut-être n'as-tu pas su mettre en oeuvre cette technique, c'est ce que je vais tenter d'expliquer.

1 - Jeudi 24 Août 2006: c'est bien le champ 'DateTimeOriginal' des Exifs.

En standard, le ficher à ne jamais modifier (config_default.inc.php) indique:

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

// use_exif_mapping: same behaviour as use_iptc_mapping
$conf['use_exif_mapping'] = array(
  'date_creation' => 'DateTimeOriginal'
  );

Qu'est que cela signifie?
La date Exif 2006:08:24 16:12:31 servira à charger la colonne 'date_creation' de la table phpwebgallery_images.

Elle servira à quel moment?
A chaque synchronisation des Méta-données.

Quel est l'intérêt?
Plus la peine d'aller lire les données Exif, ces données sont là dans la base.

Donc, il suffit de synchroniser correctement ses données.

2 - "Créée le" ne te convient pas? Tu voudrais "Date de prise de vue" à la place?
Installe le plugin LocalFiles Editor (sans te tromper de compatibilité) si ce n'est déjà fait.
Dans l'onglet "Langues", en Français, tu ajouteras:

$lang['Created on'] = 'Date de prise de vue';


Et cela le fera très bien...


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

#9 2009-01-19 13:00:40

bert69
Membre
1970-01-01
45

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Je pense avoir compris le systeme d'integration des données exif par le :

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

// use_exif_mapping: same behaviour as use_iptc_mapping
$conf['use_exif_mapping'] = array(
  'date_creation' => 'DateTimeOriginal'
  );


Mais mon probleme principal est la "mise en forme" de ces données.

Celle ci, en particulier, s'affiche comme suit :

2008:12:16 16:12:25

Ma question est :

Peut on changer cette mise en forme pour quelle soit affichée dans cette forme :

16/12/2008

tout tsimplement.

C'est seulement une question de mise en forme !

Hors ligne

#10 2009-01-19 13:35:54

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Je m'en doutais un peu mais avant d'aller plus loin, je devais m'en assurer.

Ce que tu cherches est codé en dur dans PhpWebGallery 1.7.x

// creation date
  if (!empty($picture['current']['date_creation']))
  {
    $val = format_date($picture['current']['date_creation']);
    $url = make_index_url(
      array(
        'chronology_field'=>'created',
        'chronology_style'=>'monthly',
        'chronology_view'=>'list',
        'chronology_date' => explode('-', $picture['current']['date_creation'])
        )
      );
    $infos['INFO_CREATION_DATE'] =
      '<a href="'.$url.'" rel="nofollow">'.$val.'</a>';
  }

Pour changer la présentation, il faut écrire un plugin:

1 - sur la base de l'événement 'render_element_content' càd. par exemple:
add_event_handler('loc_end_picture', 'my_date_replacement' );

2 - Dans le principe, en repartant de la date de création, on va refaire le contenu de $infos['INFO_CREATION_DATE'] sans toucher à rien d'autre.

3 - Le code sera sans l'avoir testé moi-même:

if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
add_event_handler('loc_end_picture', 'my_date_replacement' );
function my_date_replacement()
{
  global $picture, $infos;
  if (empty($picture['current']['date_creation'])) return;
  $url = make_index_url(
    array(
      'chronology_field'=>'created',
      'chronology_style'=>'monthly',
      'chronology_view'=>'list',
      'chronology_date' => explode('-', $picture['current']['date_creation'])
      )
    );
  $val =  explode('-', $picture['current']['date_creation']);
  $infos['INFO_CREATION_DATE'] =
    '<a href="'.$url.'" rel="nofollow">'.$val[2].'/'.$val[1].'/'.$val[0].'</a>';
}

La première ligne étant facultative.


4 - Où mettre ce code?
LocalFiles Editor, onglet "Plugin Personnel".
Une fois enregistré, on n'oubliera pas de vérifier que le "Plugin Personnel" est bien activé.


Bon affichage... ( Je n'ai pas testé ).

Je viens de le tester (avec render_element_content également) et cela ne fonctionne pas... Je chercherai ce soir peut être.

Dernière modification par VDigital (2009-01-19 15:01:54)


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 2009-01-19 14:53:03

bert69
Membre
1970-01-01
45

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Bon, je vais prendre quelques minutes pour comprendre le fonctionnement de ce lignes de codes et l'integrer ensuite dans un plugin perso.

Je te tiens au courant ce soir.

Merci !

Hors ligne

#12 2009-01-19 15:02:36

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Cf. mes commentaires de révision.


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

#13 2009-01-19 17:45:39

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
add_event_handler('loc_end_picture', 'my_date_replacement' );
function my_date_replacement()
{
  global $picture, $infos, $template;
  if (empty($picture['current']['date_creation'])) return;
  $url = make_index_url(
    array(
      'chronology_field'=>'created',
      'chronology_style'=>'monthly',
      'chronology_view'=>'list',
      'chronology_date' => explode('-', $picture['current']['date_creation'])
      )
    );
  $val =  explode('-', $picture['current']['date_creation']);
  $infos['INFO_CREATION_DATE'] =
    '<a href="'.$url.'" rel="nofollow">'.$val[2].'/'.$val[1].'/'.$val[0].'</a>';
  $template->assign_vars($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

#14 2009-01-20 22:13:31

bert69
Membre
1970-01-01
45

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Ton plugin perso marche nickel !

Bravo et merci encore !

Hors ligne

#15 2009-01-20 23:09:02

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

Re: [Résolu][PWG 1.7.3] Changer date IPTC de YYYYMMDD en DD/MM/YYYY

Alors voici sa version équivalente pour Piwigo 2.0.x

add_event_handler('loc_end_picture', 'my_date_replacement' );
function my_date_replacement()
{
  global $picture, $infos, $template;
  if (empty($picture['current']['date_creation'])) return;
  $url = make_index_url(
    array(
      'chronology_field'=>'created',
      'chronology_style'=>'monthly',
      'chronology_view'=>'list',
      'chronology_date' => explode('-', $picture['current']['date_creation'])
      )
    );
  $val =  explode('-', $picture['current']['date_creation']);
  $infos['INFO_CREATION_DATE'] =
    '<a href="'.$url.'" rel="nofollow">'.$val[2].'/'.$val[1].'/'.$val[0].'</a>';
  $template->assign($infos);
}

Qui a dit que le passage de PhpWebGallery 1.7.x à Piwigo 2.0.x se révèlera délicat?


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

Pied de page des forums

Propulsé par FluxBB

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