Je dirais même plus, le sujet initiale date de plus de 4 ans !
Tu veux faire quoi ?
Tu utilises quelle version de Phpwebgallery/Piwigo
Ce post à 2 ans je te conseils d'ouvrir un nouveau post en expliquant ce que tu veux faire et en faisans référence à celui ci.
Mais en 2 ans il y a eu beaucoup de changement c'est possible que cette solution ne fonctionne plus
Mais dans ce cas, il y en aura une autre :-)
Bonjour,
J'ai tout essayé mais ça ne marche pas chez moi.
Il semble que la fonction ne veuille pas calculer ce dont pourquoi elle est faite.
Je l'ai placée dans le fichier picture_metadata.inc.php après le include et avant le premier if.
Pour le reste, tout s'affiche bien comme je le souhaite sur le site photo.
Si quelqu'un peut m'aider ?
Cordialement,
Daniel
bon faut que je regarde car la j ai encore du loupé un plugin je me souviens plus de ce qu il fait et si je l ai testé
bon on verra demain
J'ai comme qui dirait un boulot ;-)
QU'est-ce qui ne va pas dans exif_view? Je le trouve plutot pas mal.
bon alors ton plugin tieum !!!
on l attend avec impatience ;-]
aaahh oui desole mais je ne parlais pas de la bonne chose ... moi c est toute ca mise en page que je voulais et que je trouvais genial !!!
donc avis a la population ... un plugin qui reprend la presentation de phgiraud please
Euh, je l'ai installe comme un plugin et ca marche du tonnerre.
Je suis en train de faire la trad en francais.
J;ai aussi ajouter du code comme indique ci-dessus pour calculer l'equivalent 35mm. Voici la nouvelle fonction function exif_translation pour arriver a cela.
function exif_translation($exif) { // translate all exif fields if (is_array($exif)) { loadLang(); foreach ($exif as $key => $value) { $exif[$key] = exif_key_translation($key, $value); } if ( !isset($exif['FocalLengthIn35mmFilm']) and isset($exif['FocalLength']) and isset($exif['Model']) ) { $Focal= explode('m', $exif['FocalLength']); if ($exif['Model']==='DSC-H1') $f35 = $Focal[0]*6.0 ; else if ($exif['Model']==='E885') $f35 = $Focal[0]*4.75 ; else if ($exif['Model']==='Canon EOS 350D DIGITAL') $f35 = $Focal[0]*1.6 ; else if ($exif['Model']==='Canon DIGITAL IXUS 750') $f35 = $Focal[0]*4.8 ; if (isset($f35)) $exif['FocalLengthIn35mmFilm'] = $f35." mm"; } } return $exif; }
effectivement si tu arrives a mettre ce MOD en plugin je pense que tu auras du succes !!!
j avais completement oublié cette presentation ... ca serai bien de la retrouver
tieum a écrit:
Bonjour,
Comment mettre cela en plugin? Peut-on se faire appeller pour surcharger l'affichage des EXIFs?
Merci,
Tieum
Tu as le trigger format_exif_data.
Tu peux aller voir le plugin EXIF View pour avoir un exemple.
Bonjour,
Comment mettre cela en plugin? Peut-on se faire appeller pour surcharger l'affichage des EXIFs?
Merci,
Tieum
apparemment, il faut enlever l'accolade en ligne 73
(par contre, je ne suis pas à l'origine de l'idée de présenter les EXIF, c'est une fonctionnalité déjà présente dans PWG ; j'ai seulement proposé une nouvelle manière de les afficher)
bonjour,
super cette idée d'ajouter les exifs........Des renseignements très pratique pour tout photographe amateur.
Je me suis aventure dans la modification du php mais voilà, j'ai une erreur à la ligne 76.
je vous mets le code complet. Pour info, je ne connais rien à la programmation !
Merci pour votre aide.
le code:
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2006-04-05 04:18:27 +0200 (mer, 05 avr 2006) $
// | last modifier : $Author: rvelices $
// | revision : $Revision: 1126 $
// +-----------------------------------------------------------------------+
// | This program is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation |
// | |
// | This program is distributed in the hope that it will be useful, but |
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | General Public License for more details. |
// | |
// | You should have received a copy of the GNU General Public License |
// | along with this program; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
/**
* This file is included by the picture page to manage picture metadata
*
*/
include_once(PHPWG_ROOT_PATH.'/include/functions_metadata.inc.php');
$template->assign_block_vars('metadata', array());
if ($conf['show_exif'])
{
if (!function_exists('read_exif_data'))
{
die('Exif extension not available, admin should disable exif display');
}
if ($exif = @read_exif_data($picture['current']['src_file_system']))
{
$template->assign_block_vars(
'metadata.headline',
array('TITLE' => 'EXIF Metadata')
);
foreach ($conf['show_exif_fields'] as $field)
{
if (strpos($field, ';') === false)
{
if (isset($exif[$field]))
{
// ************ PHG mouline data
$key = $field;
$champ = $field;
if (isset($lang['exif_field_'.$field])) $key = $lang['exif_field_'.$field];
$value = $exif[$field] ;
if ($champ==='Make') $value.=' '.$exif['Model'];
else if ($champ==='FocalLength') {
$value = compute_fraction($value) ;
$value.='mm';
if (isset($exif['FocalLengthIn35mmFilm'])) {
$f35 = compute_fraction($exif['FocalLengthIn35mmFilm']) ;
} else {
if ($exif['Model']==='DSC-H1') $f35 = $value*6.0 ;
else if ($exif['Model']==='E885') $f35 = $value*4.75 ;
else if ($exif['Model']==='Canon EOS 350D DIGITAL') $f35 = $value*1.6 ;
else if ($exif['Model']==='Nikon D70') $f35 = $value*1.5 ;
}
if (isset($f35)) $value.=' (equ. '.$f35.'mm)';
{
$value = compute_fraction($value) ;
$value.='mm';
} else if ($champ==="ExposureTime") {
$value = compute_fraction($value) ;
if ($value<1) {
$value=1/$value ;
$value="1/".$value ;
}
$value.="s";
} else if ($champ==='ExposureBiasValue') {
$value = compute_fraction($value) ;
if ($value>0) $value='+'.$value;
$value.=' EV';
} else if ($champ==='ExposureProgram') {
$sct = $exif['SceneCaptureType'];
$value='' ;
if ($sct>2) $value=$sct.' ';
$exp = $exif['ExposureProgram'];
switch($exp) {
case 0: if ($sct===0) $value='Bougie' ; else $value='?'; break;
case 1: $value.='M'; break;
case 2: $value.='P'; break;
case 3: $value.='A'; break;
case 4: $value.='S'; break;
case 5: $value.='Plage'; break;
case 6: $value.='Sport'; break;
case 7: $value.='Portrait'; break;
case 8: $value.='Paysage'; break;
default: $value.='Autre ('.$exp.')' ; break;
}
} else if ($champ==='LightSource') {
switch($value) {
case 0: $value="Auto"; break;
case 1: $value="Jour"; break;
case 2: $value="Fluorescent"; break;
case 3: $value="Incandescent"; break;
case 4: $value="Flash"; break;
case 9: $value="Beau temps"; break;
case 10: $value="Nuageux"; break;
case 11: $value="Ombragé"; break;
case 12: $value="Daylight fluorescent (D 5700 – 7100K)"; break;
case 13: $value="Day white fluorescent (N 4600 – 5400K)"; break;
case 14: $value="Cool white fluorescent (W 3900 – 4500K)"; break;
case 15: $value="White fluorescent (WW 3200 – 3700K)"; break;
case 17: $value="Standard light A"; break;
case 18: $value="Standard light B"; break;
case 19: $value="Standard light C"; break;
case 20: $value="D55"; break;
case 21: $value="D65"; break;
case 22: $value="D75"; break;
case 23: $value="D50"; break;
case 24: $value="ISO studio tungsten"; break;
case 255: $value="Other light source"; break;
default: $value="Reserved (".$value.")"; break;
}
} else if ($champ==='Flash') {
switch($value) {
case 0x00: $flash='non'; break;
case 0x01: $flash='oui'; break;
case 0x05: $flash='retour ko'; break;
case 0x07: $flash='retour ok'; break;
case 0x09: $flash='oui, forcé'; break;
case 0x0D: $flash='oui, forcé, retour ko'; break;
case 0x0F: $flash='oui, forcé, retour ok'; break;
case 0x10: $flash='non, forcé'; break;
case 0x10: $flash='non, forcé'; break;
case 0x18: $flash='non, auto'; break;
case 0x19: $flash='oui, auto'; break;
case 0x1D: $flash='oui, auto, retour ko'; break;
case 0x1F: $flash='oui, auto, retour ok'; break;
case 0x20: $flash='pas de flash'; break;
case 0x41: $flash='oui, anti yeux rouges'; break;
case 0x45: $flash='oui, anti yeux rouges, retour ko'; break;
case 0x47: $flash='oui, anti yeux rouges, retour ok'; break;
case 0x49: $flash='oui, forcé, anti yeux rouges'; break;
case 0x4D: $flash='oui, forcé, anti yeux rouges, retour ko'; break;
case 0x4F: $flash='oui, forcé, anti yeux rouges, retour ok'; break;
case 0x59: $flash='oui, auto, anti yeux rouges'; break;
case 0x5D: $flash='oui, auto, anti yeux rouges, retour ko'; break;
case 0x5F: $flash='oui, auto, anti yeux rouges, retour ok'; break;
default: $flash='Reserved'; break;
}
$value=$flash.' ('.dechex($value).')';
}
$template->assign_block_vars(
'metadata.line',
array(
'KEY' => $key,
'VALUE' => $value
)
);
Pour finir, quelques chaînes supplé
}
else
{
$tokens = explode(';', $field);
if (isset($exif[$tokens[0]][$tokens[1]]))
{
$key = $tokens[1];
if (isset($lang['exif_field_'.$tokens[1]]))
{
$key = $lang['exif_field_'.$tokens[1]];
}
$template->assign_block_vars(
'metadata.line',
array(
'KEY' => $key,
'VALUE' => $exif[$tokens[0]][$tokens[1]]
)
);
}
}
}
}
}
if ($conf['show_iptc'])
{
$iptc = get_iptc_data($picture['current']['src_file_system'],
$conf['show_iptc_mapping']);
if (count($iptc) > 0)
{
$template->assign_block_vars(
'metadata.headline',
array('TITLE' => 'IPTC Metadata')
);
}
foreach ($iptc as $field => $value)
{
$key = $field;
if (isset($lang[$field]))
{
$key = $lang[$field];
}
$template->assign_block_vars(
'metadata.line',
array(
'KEY' => $key,
'VALUE' => $value
)
);
}
}
?>
j'ai trouvé ... merci !
Bonne nouvelle, j'ai rajouté l'accolade,
maintenant j'ai une erreure ligne 65 !
Fatal error: Call to undefined function: compute_fraction() in /mnt/113/sdc/a/3/ftpktf/phpwebgallery/include/picture_metadata.inc.php on line 65
$value = compute_fraction($value);
?? je comprends pas , j'ai juste copié collé ton code ... !