diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/JpegMeta.php | 58 | ||||
-rw-r--r-- | inc/lang/en/lang.php | 3 | ||||
-rw-r--r-- | inc/template.php | 13 |
3 files changed, 61 insertions, 13 deletions
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index b9f0908d4..408f34589 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -3,9 +3,10 @@ * JPEG metadata reader/writer * * @license PHP license 2.0 (http://www.php.net/license/2_02.txt) - * @link + * @link http://www.zonageek.com/software/php/jpeg/index.php * @author Sebastian Delmont <sdelmont@zonageek.com> * @author Andreas Gohr <andi@splitbrain.org> + * @todo Add support for Maker Notes, Extend for GIF and PNG metadata */ // This class is a modified and enhanced version of the JPEG class by @@ -164,6 +165,40 @@ class JpegMeta } /** + * Convinience function to set nearly all available Data + * through one function + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + function setField($field, $value) + { + if(strtolower(substr($field,0,5)) == 'iptc.'){ + return $this->setIPTCField(substr($field,5),$value); + }elseif(strtolower(substr($field,0,5)) == 'exif.'){ + return $this->setExifField(substr($field,5),$value); + }else{ + return $this->setExifField($field,$value); + } + } + + /** + * Convinience function to delete nearly all available Data + * through one function + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + function deleteField($field) + { + if(strtolower(substr($field,0,5)) == 'iptc.'){ + return $this->deleteIPTCField(substr($field,5)); + }elseif(strtolower(substr($field,0,5)) == 'exif.'){ + return $this->deleteExifField(substr($field,5)); + }else{ + return $this->deleteExifField($field); + } + } + + /** * Return a date field * * @author Andreas Gohr <andi@splitbrain.org> @@ -770,18 +805,19 @@ class JpegMeta * Save changed Metadata * * @author Sebastian Delmont <sdelmont@zonageek.com> + * @author Andreas Gohr <andi@splitbrain.org> */ function save($fileName = "") { - if ($fileName == "") { - $tmpName = $this->_fileName . ".tmp"; - $this->_writeJPEG($tmpName); - if (file_exists($tmpName)) { - rename($tmpName, $this->_fileName); - } - } - else { - $this->_writeJPEG($fileName); - } + if ($fileName == "") { + $tmpName = tempnam(dirname($this->_fileName),'_metatemp_'); + $this->_writeJPEG($tmpName); + if (@file_exists($tmpName)) { + return rename($tmpName, $this->_fileName); + } + } else { + return $this->_writeJPEG($fileName); + } + return false; } /*************************************************************/ diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 16fc1b738..fcc4ed696 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -144,6 +144,9 @@ $lang['spell_noerr'] = 'No Mistakes found'; $lang['spell_nosug'] = 'No Suggestions'; $lang['spell_change']= 'Change'; +$lang['metaedit'] = 'Edit Metadata'; +$lang['metasaveerr'] = 'Writing metadata failed'; +$lang['metasaveok'] = 'Metadata saved'; $lang['img_backto'] = 'Back to'; $lang['img_title'] = 'Title'; $lang['img_caption'] = 'Caption'; diff --git a/inc/template.php b/inc/template.php index 23123b452..b48a591f8 100644 --- a/inc/template.php +++ b/inc/template.php @@ -665,12 +665,21 @@ function tpl_mediafilelist(){ $t = $item['meta']->getField('IPTC.Headline'); if($t) print '<b>'.$t.'</b><br />'; - $t = $item['meta']->getField(array('IPTC.Caption','EXIF.UserComment','EXIF.TIFFImageDescription','EXIF.TIFFUserComment')); + $t = $item['meta']->getField(array('IPTC.Caption','EXIF.UserComment', + 'EXIF.TIFFImageDescription', + 'EXIF.TIFFUserComment')); if($t) print $t.'<br />'; $t = $item['meta']->getField(array('IPTC.Keywords','IPTC.Category')); if($t) print '<i>'.$t.'</i><br />'; + //add edit button + if($AUTH >= AUTH_UPLOAD && $item['meta']->getField('File.Mime') == 'image/jpeg'){ + print '<a href="'.DOKU_BASE.'lib/exe/media.php?edit='.urlencode($item['id']).'">'; + print '<img src="'.DOKU_BASE.'lib/images/edit.gif" alt="'.$lang['metaedit'].'" title="'.$lang['metaedit'].'" />'; + print '</a>'; + } + ptln('</div>',6); }else{ ptln ('('.filesize_h($item['size']).')',6); @@ -771,7 +780,7 @@ function tpl_pagetitle($id=null){ * and _iptcTagNames() in inc/jpeg.php (You need to prepend IPTC * to the names of the latter one) * - * Only allowed in: detail.php + * Only allowed in: detail.php, mediaedit.php * * @author Andreas Gohr <andi@splitbrain.org> */ |