Ik heb een website met Joomla , voor het tonen van foto's gebruik ik de standaard plugin slimbox.

De php code:

<?php

/**

* @version		$Id: slimbox.php 2008-02-01 AmyStephen $

* @package		Joomla!

* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.

* @license		GNU/GPL, see LICENSE.php

* Joomla! is free software. This version may have been modified pursuant

* to the GNU General Public License, and as distributed it includes or

* is derivative of works licensed under the GNU General Public License or

* other free or open source software licenses.

* See COPYRIGHT.php for copyright notices and details.

* 

* Usage: 

* 

* Slimbox is a visual clone of the popular Lightbox JS v2.0 by Lokesh Dhakar, 

* written using the ultra compact mootools framework. It was designed to be small, 

* efficient, more convenient and 100% compatible with the original Lightbox v2. 

* From http://www.digitalia.be/software/slimbox

* Slimbox is free software released under MIT License. 

* http://www.opensource.org/licenses/mit-license.php

*/

// no direct access

defined( '_JEXEC' ) or die( 'Restricted access' );



// Import library dependencies

jimport('joomla.event.plugin');



/**

* Plugin that loads module positions within contentz

*/

class plgContentSlimbox extends JPlugin

{

   /**

    * Constructor

    *

    * For php4 compatability we must not use the __constructor as a constructor for

    * plugins because func_get_args ( void ) returns a copy of all passed arguments

    * NOT references.  This causes problems with cross-referencing necessary for the

    * observer design pattern.

    */

    function plgContentSlimbox ( &$subject, $config )

	{

		parent::__construct( $subject, $config );

	}

    /**

    * Plugin method with the same name as the event will be called automatically.

    */

    function onPrepareContent( &$row, &$params )

    {

        global $mainframe;

		$document =& JFactory::getDocument();

		JHTML::_( 'behavior.mootools' );

 		

		//	Add CSS		

		$document->addStyleSheet( JURI::base() . 'plugins/content/slimbox/slimbox.css' );



		//	Add Javascript

		$document->addScript( JURI::base() .'plugins/content/slimbox/slimbox.js');



 		//	Find all plugin occurrences 

 		$firsttime = true;

 		$working = "";

 		$replacethis = "";

 		$withthis = "";

	 	$regex = '/{slimbox\s*.*?}/i';

		preg_match_all( $regex, $row->text, $matches );		

	 	$count = count( $matches[0] );

	 	

	 	// 	Perform once for each plugin occurrence

	 	for ( $i=0; $i < $count; $i++ ) {

 		

 			$firsttime = true;

 			

			$replacethis = $matches[0][$i];

			$working = $replacethis;

			$working = str_replace( '{slimbox', '', $working );

			$working = str_replace( '}', '', $working );

 			$working = trim($working);

 			

 			//	Display Single image or Gallery of images 

 			if (substr($working,0,6) == "single") {

 				$singleorGallery = "single";

				$working = substr($working,6,(strlen($working) - 6));

 				$working = trim($working);

 			} else {

 				$singleorGallery = "gallery";

 			}

 			

	 		if ($singleorGallery == "single") {

				$js = "";

				$js = "						

				function openGallery" . ($i + 1) . "() {

    				return Lightbox.open([";

			}

			

			$withthis = '';

			$withthis .= '<div id="slimbox'. ($i + 1) . '">';			

			$countimagesets = 0;	

			$imagesets = explode(";",$working);

			$countimagesets = count( $imagesets );



	 		for ( $j=0; $j < $countimagesets; $j++ ) {

				$thumbnail = '';

				$imagefile = '';

				$countpartsofimageset = 0;

				$singleimage = explode(",",$imagesets[$j]);

				$countpartsofimageset = count( $singleimage );

				$imagefile = trim($singleimage[0]);

				$thumbnail = trim($singleimage[1]);

				$caption = "";

				if ($countpartsofimageset == 3) {

					$caption = trim($singleimage[2]);					

				}

				if ($singleorGallery == "single") {

					if ($firsttime == true) {

						$withthis .= '<a href="#" onclick="return openGallery' . ($i + 1) . '()">' . '<img src="'. $thumbnail . '" border="0" /></a>';

					} else {

						$js .= ", ";

					}

					$js .= "['" . JURI::base() . $imagefile . "', '" . $caption . "']";	

				} else {

					$withthis .= '<a href="' . JURI::base() . $imagefile . '" class="slimbox" rel="lightbox[slimbox'. $i . ']" title="' . $caption .  '">';

					$withthis .= '<img src="'. $thumbnail . '" border="0" /></a>';			

				}

				$firsttime = false;	

			}

			

			if ($singleorGallery == "single") {

				$js .= "], 0);

				}";

				$document->addScriptDeclaration( $js ); 

	 		}

	 		$withthis .= '</div>';

	 		$row->text = str_replace( $replacethis, $withthis, $row->text );			

 		}

		return true;

	}

}



Ik zou graag dat mensen als ze op de foto klikken dat ze onderaan een link krijgen waar ze de exif kunnen bekijken. Ik heb al informatie gevonden over de exif:


<link rel="stylesheet" type="text/css" href="http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/style.css" title="Style">

<h2><a name="CameraSettings">Sony CameraSettings Tags</a></h2>

<p>Camera settings for the A200, A230, A300, A350, A700, A850 and A900.  Some
tags are only valid for certain models.</p>
<blockquote>
<table class="frame"><tbody><tr><td>
<table class="inner" cellspacing="1">
<tbody><tr class="h"><th>Index</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class="n">Notes</span></th></tr>
<tr>
<td class="r" title="4 = 0x4">4</td>
<td>DriveMode</td>

<td class="c">int16u</td>
<td><span class="s"><span class="n">(A700 only)</span>
  <br>1 = Single Frame
  <br>2 = Continuous High
  <br>4 = Self-timer 10 sec
  <br>5 = Self-timer 2 sec
  <br>7 = Continuous Bracketing
  <br>12 = Continuous Low
  <br>18 = White Balance Bracketing Low
  <br>19 = D-Range Optimizer Bracketing Low</span></td></tr>
<tr class="b">
<td class="r" title="6 = 0x6">6</td>

<td>WhiteBalanceFineTune</td>
<td class="c">int16s</td>
<td><span class="s"><span class="n">(A700 only)</span></span></td></tr>
<tr>
<td class="r" title="16 = 0x10">16</td>
<td>FocusMode</td>
<td class="c">int16u</td>
<td><span class="s">0 = Manual
  <br>1 = AF-S
  <br>2 = AF-C
  <br>3 = AF-A</span></td></tr>

<tr class="b">
<td class="r" title="17 = 0x11">17</td>
<td>AFAreaMode</td>
<td class="c">int16u</td>
<td><span class="s">0 = Wide
  <br>1 = Local
  <br>2 = Spot</span></td></tr>
<tr>
<td class="r" title="18 = 0x12">18</td>
<td>LocalAFAreaPoint</td>
<td class="c">int16u</td>

<td><span class="s">1 = Center
  <br>2 = Top
  <br>3 = Top-Right
  <br>4 = Right
  <br>5 = Bottom-Right
  <br>6 = Bottom
  <br>7 = Bottom-Left
  <br>8 = Left
  <br>9 = Top-Left
  <br>10 = Far Right
  <br>11 = Far Left</span></td></tr>
<tr class="b">
<td class="r" title="21 = 0x15">21</td>
<td>MeteringMode</td>

<td class="c">int16u</td>
<td><span class="s">1 = Multi-segment
  <br>2 = Center-weighted Average
  <br>4 = Spot</span></td></tr>
<tr>
<td class="r" title="22 = 0x16">22</td>
<td>ISOSetting</td>
<td class="c">int16u</td>
<td>&nbsp;</td></tr>
<tr class="b">
<td class="r" title="24 = 0x18">24</td>

<td>DynamicRangeOptimizerMode</td>
<td class="c">int16u</td>
<td><span class="s">0 = Off
  <br>1 = Standard
  <br>2 = Advanced Auto
  <br>3 = Advanced Level
  <br>4097 = Auto</span></td></tr>
<tr>
<td class="r" title="25 = 0x19">25</td>
<td>DynamicRangeOptimizerLevel</td>
<td class="c">int16u</td>

<td>&nbsp;</td></tr>
<tr class="b">
<td class="r" title="26 = 0x1a">26</td>
<td>CreativeStyle</td>
<td class="c">int16u</td>
<td><span class="s">1 = Standard
  <br>2 = Vivid
  <br>3 = Portrait
  <br>4 = Landscape
  <br>5 = Sunset
  <br>6 = Night View/Portrait
  <br>8 = B&amp;W
  <br>9 = Adobe RGB
  <br>11 = Neutral
  <br>12 = Clear
  <br>13 = Deep
  <br>14 = Light
  <br>15 = Autumn
  <br>16 = Sepia</span></td></tr>

<tr>
<td class="r" title="28 = 0x1c">28</td>
<td>Sharpness</td>
<td class="c">int16u</td>
<td>&nbsp;</td></tr>
<tr class="b">
<td class="r" title="29 = 0x1d">29</td>
<td>Contrast</td>
<td class="c">int16u</td>
<td>&nbsp;</td></tr>
<tr>

<td class="r" title="30 = 0x1e">30</td>
<td>Saturation</td>
<td class="c">int16u</td>
<td>&nbsp;</td></tr>
<tr class="b">
<td class="r" title="31 = 0x1f">31</td>
<td>ZoneMatchingValue</td>
<td class="c">int16u</td>
<td>&nbsp;</td></tr>
<tr>
<td class="r" title="34 = 0x22">34</td>

<td>Brightness</td>
<td class="c">int16u</td>
<td>&nbsp;</td></tr>
<tr class="b">
<td class="r" title="35 = 0x23">35</td>
<td>FlashMode</td>
<td class="c">int16u</td>
<td><span class="s">0 = ADI
  <br>1 = TTL</span></td></tr>
<tr>
<td class="r" title="40 = 0x28">40</td>

<td>PrioritySetupShutterRelease</td>
<td class="c">int16u</td>
<td><span class="s"><span class="n">(A700 only)</span>
  <br>0 = AF
  <br>1 = Release</span></td></tr>
<tr class="b">
<td class="r" title="41 = 0x29">41</td>
<td>AFIlluminator</td>
<td class="c">int16u</td>

<td><span class="s"><span class="n">(A700 only)</span>
  <br>0 = Auto
  <br>1 = Off</span></td></tr>
<tr>
<td class="r" title="42 = 0x2a">42</td>
<td>AFWithShutter</td>
<td class="c">int16u</td>
<td><span class="s"><span class="n">(A700 only)</span>
  <br>0 = On
  <br>1 = Off</span></td></tr>

<tr class="b">
<td class="r" title="43 = 0x2b">43</td>
<td>LongExposureNoiseReduction</td>
<td class="c">int16u</td>
<td><span class="s"><span class="n">(A700 only)</span>
  <br>0 = Off
  <br>1 = On</span></td></tr>
<tr>
<td class="r" title="44 = 0x2c">44</td>
<td>HighISONoiseReduction</td>

<td class="c">int16u</td>
<td><span class="s"><span class="n">(A700 only)</span></span></td></tr>
<tr class="b">
<td class="r" title="45 = 0x2d">45</td>
<td>ImageStyle</td>
<td class="c">int16u</td>
<td><span class="s"><span class="n">(A700 only)</span>
  <br>1 = Standard
  <br>2 = Vivid
  <br>9 = Adobe RGB
  <br>11 = Neutral
  <br>129 = StyleBox1
  <br>130 = StyleBox2
  <br>131 = StyleBox3</span></td></tr>

<tr>
<td class="r" title="60 = 0x3c">60</td>
<td>ExposureProgram</td>
<td class="c">int16u</td>
<td><span class="s">0 = Auto
  <br>1 = Manual
  <br>2 = Program AE
  <br>3 = Aperture-priority AE
  <br>4 = Shutter speed priority AE
  <br>8 = Program Shift A
  <br>9 = Program Shift S
  <br>16 = Portrait</span></td></tr>
<tr class="b">

<td class="r" title="61 = 0x3d">61</td>
<td>ImageStabilization</td>
<td class="c">int16u</td>
<td><span class="s">0 = Off
  <br>1 = On</span></td></tr>
<tr>
<td class="r" title="63 = 0x3f">63</td>
<td>Rotation</td>
<td class="c">int16u</td>
<td><span class="s">0 = Horizontal (normal)
  <br>1 = Rotate 90 CW
  <br>2 = Rotate 270 CW</span></td></tr>

<tr class="b">
<td class="r" title="84 = 0x54">84</td>
<td>SonyImageSize</td>
<td class="c">int16u</td>
<td><span class="s">1 = Large
  <br>2 = Medium
  <br>3 = Small</span></td></tr>
<tr>
<td class="r" title="85 = 0x55">85</td>
<td>AspectRatio</td>
<td class="c">int16u</td>

<td><span class="s">1 = 3:2
  <br>2 = 16:9</span></td></tr>
<tr class="b">
<td class="r" title="86 = 0x56">86</td>
<td>Quality</td>
<td class="c">int16u</td>
<td><span class="s">0 = RAW
  <br>2 = CRAW
  <br>16 = Extra Fine
  <br>32 = Fine
  <br>34 = RAW + JPEG
  <br>35 = CRAW + JPEG
  <br>48 = Standard</span></td></tr>

<tr>
<td class="r" title="88 = 0x58">88</td>
<td>ExposureLevelIncrements</td>
<td class="c">int16u</td>
<td><span class="s">33 = 1/3 EV
  <br>50 = 1/2 EV</span></td></tr>
</tbody></table></td></tr></tbody></table></blockquote>


Zouden jullie misschien een simpel voorbeeld script kunnen maken (ik heb een Sony a200)?

Alvast bedankt.

Reageren