Pages: 1
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
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?
Hors ligne
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
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é.
Hors ligne
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
Bien sûr que c'est très simple, je vais t'expliquer tout ça si possible dans la journée.
Hors ligne
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...
Hors ligne
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
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)
Hors ligne
Cf. mes commentaires de révision.
Hors ligne
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);
}
Hors ligne
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?
Hors ligne
Pages: 1