PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 24/05/2010 16:17:08

Frédéric
Membre
Inscription : 03/06/2009
Messages : 2 533

[Pluxml 4.3.X] EasyGallery Revisité

easygalery.png

EasyGallery vous permet de créez des albums illimité depuis votre Gestionnaire de Médias, sélectionnable depuis une page statique.

Couplet au plugins Uploadify, vos publierez rapidement et simplement vos albums photos/images.

Démo

Dernière modification par Fred (24/05/2010 16:18:59)

Hors ligne

#2 13/12/2010 20:00:55

ComputingFroggy
Membre
Lieu : Marseille
Inscription : 16/09/2010
Messages : 204
Site Web

Re : [Pluxml 4.3.X] EasyGallery Revisité

Tip top, cette gallerie. J'ai ajouté une entrée dans le Wiki avec un lien vers myPluXml pour l'indiquer : c'est vraiment un plugin super intéressant et facile à implémenter, avec un très bon résultat.

Juste une petite question : est-ce qu'il serait possible d'ajouter une légende aux photos ?
Ou bien y a-t'il une autre gallerie qui permet d'afficher des légendes ... et qui serait aussi bien qu'EasyGallery !


A+,
L@u

Hors ligne

#3 14/12/2010 01:32:33

ComputingFroggy
Membre
Lieu : Marseille
Inscription : 16/09/2010
Messages : 204
Site Web

Re : [Pluxml 4.3.X] EasyGallery Revisité

Bon, j'ai trouvé la réponse à ma question Slimbox 2 gère les légendes : il suffit d'ajouter une propriété title au tag <a> .

Je vais re-travailler le script pour ajouter ceci facilement.

J'ai des petits trucs supplémentaires :
- pour ne pas surcharger toutes les pages du site inutilement, j'ai créé un template de page supplémentaire avec le header pour EasyGallery (les autres pages conservent un header sans Slimbox 2 ni jQuery).
- pour avoir plusieurs pages de galleries avec différents répertoires, il suffit de copier la page plx.easygallery.php (eg. plx.easygalleryLA2.php ) et de changer la valeur de $root_dir.
- on ajoute {    closeKeys: [27,88,70],nextKeys: [39, 83], loop:true} à la ligne 10 de plugins/EasyGallery/slimbox/js/slimbox2.js pour utiliser les touches françaises (S pour suivant, et F pour fermer), loop pour recommencer à la photo 1.
- j'ai créé une nouvelle version de plx.easygallery.php pour afficher les photos qui sont contenus dans un SEUL répertoire.

<?php
    /**
     * EasyGallery  by WingNut              www.freitagmorgen.de
     *
     * @script    plx.easygallery
     * @version   2.6
     * @pluxml    5.1
     * @author    Révision par Frédéric K. & LRO
     * @update    14/12/2010
     **/     

// CONFIGURATION EDITABLE -------------------------------------------
// Dossier Root (peut aussi être une URL, ex: http://www.monsite.com/gallery)
//$root_dir = PLX_ROOT.'data/images/RevueDePresse'; //EasyGallery
$root_dir = PLX_ROOT.'data/images/RevueDePresse'; //EasyGallery

// Taille des miniatures en pixel
$thumbwidth = 125;

// Texte pour les photos
$my_photo_text="Cliquer sur une photo pour l'agrandir";

// FIN CONFIGURATION EDITABLE ----------------------------------------
//##################################################################//
// Do not change anything by now unless you know what you are doing!
// Nombre de Colonnes pour les miniatures
$columns = 4;

// Fonction Slideshow 0=non 1=oui
$slideshow = 1; //Non Fonctionnel pour le moment
function printError($text)
{
  echo "<div class=\"error\"><strong>ERREUR:</strong> $text</div>";
  exit();
}

function createthumb($name,$file,$maxsize)
{
  $maxsize += 8;
  list($width, $height) = getimagesize("$name/$file");
  $width = min($width, $height);
  $tn = imagecreatetruecolor($maxsize, $maxsize);
  $image = imagecreatefromjpeg("$name/$file");
  imagecopyresampled($tn, $image, 0, 0, 0, 0, $maxsize, $maxsize, $width, $width);
  if(!is_dir("$name/thumbnails"))
  {
    mkdir ("$name/thumbnails", 0777);
  }
  imagejpeg($tn, "$name/thumbnails/tn_$file", 90);
  return true;
}

// --begin preprocessing
$phpself = $_SERVER['PHP_SELF'];
extract($_POST);

// filetypes
$filetypes = array("jpg", "jpeg");
$k = sizeof($filetypes);
for ($i=0; $i<$k; $i++)
{
  $filetypes[] = strtoupper($filetypes[$i]);
}

// scanning directory for folders and check if they contain image files
if (!is_dir($root_dir))
{
  printError("Aucun répertoire racine. Spécifiez s'il vous plaît un répertoire d'image valide dans votre configuration.");
}
$root_handle = opendir($root_dir);
$postmp = 0;
while ($filename = readdir($root_handle)) {
	for ($i=0;$i<sizeof($filetypes);$i++) {
		$postmp = strpos($filename, $filetypes[$i]);
		if ($postmp>0) {
			$folders[] = $root_dir.'/'.$dirname;
			break 2;
		}
	}
}
closedir($root_handle);

if (!$folders)
{
  printError("Le dossiers indiqués ne contient pas d'image! Changez s'il vous plaît \$root_dir.");
} else {

$ordner = $folders[0];

// scanning directories for image files
	if (is_dir($ordner)){
		$dir_handle = opendir($ordner);
		while ($filename = readdir($dir_handle)) {
			for ($i=0; $i<sizeof($filetypes); $i++) {
				$pos = strpos($filename, $filetypes[$i]);
				$var1 = strcmp($filename,'.');
				$var2 = strcmp($filename,'..');
				$var3 = is_file($ordner.'/'.$filename);
				if (($var1 != 0) && ($var2 != 0) && ($var3 == 1) && ($pos > 0)) {
					$files[] = $filename;
				}
				if ($filename=="thumbnails") {
					$thumbs = 1;
				}
			}
		}
		sort($files);
		$size = sizeof($files);
		closedir($dir_handle);
	} else {
			printError("Aucun Dossier trouvé. Copiez s'il vous plaît vos dossiers d'image à l'emplacement indiqué dans \$root_dir de votre configuration.");
		}
}
// --end preprocessing
?>

<?php
// --begin form
echo "<div id=\"plxGalerie\">\n";
echo "<form id=\"next\" method=\"post\" action=\"#next\">\n";
echo "<h3>".$my_photo_text."</h3>\n";
// --end form

// --begin print images
echo "";
$xpos=8;
$ypos=6;
$count = 0;
$newthumbs = false;
$divheight = ceil(count($files)/$columns) * ($thumbwidth+6) + 6;
echo "<ul>\n";
for ($y=0;$y<count($files);$y++)
{
  $tn_src = $ordner."/thumbnails/tn_".$files[$count];
  if (file_exists($tn_src))
  {
    $image = GetImageSize($tn_src);
    $image[0] -= 8;
    $image[1] -= 8;
	if ($image[0]==$image[1]){}
	elseif ($image[0]<$image[1]) $xpos += intval(($image[1]-$image[0])/2);
	else $ypos += intval(($image[0]-$image[1])/2);
    echo "<li class=\"miniature\" style=\"left:".$xpos."px; top:".$ypos."px;\">";
    if($slideshow!=1){
	  echo "<a href=\"".$ordner."/".$files[$count]."\" rel=\"lightbox-".$text."\" title='ma descr'>";
	}
	else{
	  echo "<a href=\"".$ordner."/".$files[$count]."\" rel=\"lightbox-".$text."\" title='ma description'>";
	}
    echo "<img src=\"$tn_src\" class=\"fade_in\" alt=\"$files[$count]\" style=\"width:$image[0];height:$image[1]\" /></a></li>\n";
	if ($image[0]==$image[1]){}
	elseif ($image[0]<$image[1]) $xpos -= intval(($image[1]-$image[0])/2);
	else $ypos -= intval(($image[0]-$image[1])/2);
  }
  else
  {
  	$modules = get_loaded_extensions();
	if(!in_array("gd", $modules)){
	  printError("Votre serveur ne supporte pas l'utilisation de la bibliothèque GD, qui est exigée pour créer des miniatures. Créez les s'il vous plaît et ajoutez vos miniatures manuellement.");
	}
	if(createthumb($ordner,$files[$count],$thumbwidth))
	{
	  echo "tn_$files[$count] Créé.<br />";
	  $newthumbs = true;
    }
	else
	{
	  printError("La création des miniatures a échoué.");
	}
  }
  $count++;
  if($count%$columns==0)
  {
    $ypos += $thumbwidth+6;
    $xpos = 8;
  }
  else
  {
    $xpos += $thumbwidth+6;
  }
}
if($newthumbs)
{
  echo "<script>location.reload()</script>";
}
echo "</ul>\n";
echo "<div style=\"clear:both;\"></div>\n";
echo "</div>\n";
?>

Enjoy,
L@u

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2017 PluXml.org, tous droits réservés