Dotclear

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

Annonce

#1 2011-09-19 15:58:07

geceo
Membre
Lieu : Cesson Sévigné
Inscription : 2008-05-10
Site Web

[résolu] Ajouter une galerie Picasa?

Bonjour,

J'ai utilisé DotClear pour refaire le site web de mon club d'escrime :

http://www.escrime-cesson-rennes.fr

Existe-t-il un moyen d'avoir une page (au sens DotClear du terme, donc pas un «billet») qui affiche une galerie Picasa?

Merci!
Grégoire

Dernière modification par geceo (2012-06-20 08:11:02)

Hors ligne

#2 2011-09-20 09:41:48

geceo
Membre
Lieu : Cesson Sévigné
Inscription : 2008-05-10
Site Web

Re : [résolu] Ajouter une galerie Picasa?

Encore moi,

J'ai trouvé ce site où il y a plusieurs galeries Picasa intégrables sur des sites web «normaux» (pas un CMS comme DotClear) :

http://www.paulvanroekel.nl/picasawebalbums/lightbox/

La page web de la galerie utilise du code PHP pour récupérer les informations sur l'album chez Picasa :

    $userid = 'YOURUSERNAME';
    $album = 'ALBUMNAME';
    // build feed URL
    $feedURL = "http://picasaweb.google.com/data/feed/api/user/$userid/album/$album?imgmax=800";
    // $feedURL = "http://picasaweb.google.com/data/feed/api/user/$userid?kind=photo&imgmax=912";
    // read feed into SimpleXML object
    $sxml = simplexml_load_file($feedURL);

    // iterate over entries in album
    // print each entry's title, size, dimensions, tags, and thumbnail image
    foreach ($sxml->entry as $entry) {
	  $title = $entry->title;
          $summary = $entry->summary;
          $gphoto = $entry->children('http://schemas.google.com/photos/2007');
          $size = $gphoto->size;
          $height = $gphoto->height;
          $width = $gphoto->width;
          $media = $entry->children('http://search.yahoo.com/mrss/');
          $thumbnail = $media->group->thumbnail[1];
          $content = $media->group->content;
          $tags = $media->group->keywords;

          echo "<div class=\"thumbnail\"> <a title=\"";
          echo $summary;
          echo "\" rel=\"lightbox[999]\" href=\"";

          // url van photo
          echo $content->attributes()->{'url'};
          echo "\"> <img src=\"";
          // url van thumb
          echo $thumbnail->attributes()->{'url'};
          echo "\" border=\"0\" width=\"150\"  height=\"100\" alt=\"";
          echo $summary ;
          echo "\"  title=\"";		
          echo $summary ;
          echo "\" /></a>" ;  
          // echo $summary ;
          echo "</div>";
    }

Bon, il n'y a vraiment rien de très compliqué, à part de réussir à intégrer ça dans une page DotClear! Et là je sèche, vu que je n'ai fait qu'utiliser DotClear et que je n'ai, pour l'instant, pas mis les mains dans le moteur… Ça serait vraiment sympathique si quelqu'un pouvait me donner quelques informations sur «Comment intégrer un bout de code PHP dans DotClear?».

Merci,
Grégoire

Hors ligne

#3 2011-09-20 10:29:47

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : [résolu] Ajouter une galerie Picasa?

Salut!

Le plus simple pour faire ça est, à mon humble avis, de créer un plugin, que ce soit un widget ou une balise de template.
Tu peux t'aider de la doc pour y parvenir, ce n'est pas bien compliqué vu que tu as déjà une bonne partie du code ;)


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#4 2011-09-20 12:45:31

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : [résolu] Ajouter une galerie Picasa?

Une autre solution est d'utiliser le plugin Pages connexes, qui permet d'inclure des fichiers php ;)

En ligne

#5 2011-09-21 09:07:46

geceo
Membre
Lieu : Cesson Sévigné
Inscription : 2008-05-10
Site Web

Re : [résolu] Ajouter une galerie Picasa?

Merci de vos réponses!

J'ai réussi à intégrer le fichier PHP avec le plugin Pages Connexes, le résultat est visible ici :

http://www.escrime-cesson-rennes.fr/pages/Photos

Le seul petit défaut (mais je chipote) c'est qu'apparemment on ne peut pas mélanger les «pages» et les «pages connexes» au niveau du menu à droite (si c'est possible je veux bien savoir comment, sinon c'est pas bien grave!).

Pour ceux qui seraient intéressés par le code que j'ai utilisé, voici le fichier PHP final :

  <?php
    $userid = 'escrime.oce';
    $album = 'DropBox';

    // build feed URL
    $feedURL = "http://picasaweb.google.com/data/feed/api/user/$userid/album/$album?imgmax=800";

    // read feed
    $sxml = netHttp::quickGet($feedURL);
    if ($sxml) {
        $sxml = simplexml_load_string($sxml);
    }
  ?>
  <div id="container">
    <div id="gallerycontainer">
      <?php
      // iterate over entries in album
      // print each entry's title, size, dimensions, tags, and thumbnail image
      foreach ($sxml->entry as $entry) {
        $title = $entry->title;
        $summary = $entry->summary;

        $gphoto = $entry->children('http://schemas.google.com/photos/2007');
        $size = $gphoto->size;
        $height = $gphoto->height;
        $width = $gphoto->width;

        $media = $entry->children('http://search.yahoo.com/mrss/');
        $thumbnail = $media->group->thumbnail[1];
        $content = $media->group->content;
        $tags = $media->group->keywords;

        echo "<div class=\"thumbnail";
        if ($thumbnail->attributes()->{'width'} > $thumbnail->attributes()->{'height'}) {
          echo " photo_horizontale";
        }
        else {
          echo " photo_verticale";
        }
        echo "\">";
        echo " <a title=\"".$summary."\" rel=\"lightbox[999]\" href=\"".$content->attributes()->{'url'}."\">";
        echo " <img src=\"".$thumbnail->attributes()->{'url'}."\" border=\"0\" ";
        echo "  width=\"".$thumbnail->attributes()->{'width'}."\" height=\"".$thumbnail->attributes()->{'height'}."\" "; 
        echo "  alt=\"".$summary."\"  title=\"".$summary."\" />";
        echo " </a>";
        echo "</div>";
      }
    ?>
    </div>
  </div>

La seule difficulté a été de comprendre qu'il ne faut pas utiliser simplexml_load_file car DotClear l'interdit pour des raisons de sécurité. J'ai donc utilisé netHttp::quickGet (une classe interne de DotClear).

Pour être exhaustif voici la CSS :

#container {
	color:#FFFFFF;
	line-height: 18px;
	padding: 5px 0px 10px 0px;
	margin-left:auto;
	margin-right:auto;
	max-width:680px;
}

.imageborderlarge {
	padding: 7px;
	margin: 5px 0px;
	border: 1px solid #CCCCCC;
	background: #FFFFFF;
}

.unvisible { 
	display: none;
 }

.thumbnail {
	float: left;
	margin: 6px;
	padding: 0px;
	text-align: center;
	color: #CCCCCC;
	width: 158px;
	height: 158px;
}
.thumbnail img{
	background: #000;
	padding: 3px;
	margin: auto;
	display:block;
}
.photo_horizontale img{
	margin-top: 18px;
}

.thumbnail a {
	color:#999999;
	text-decoration: none;
	outline:0;
}

/* non IE  hover */
div.thumbnail:hover img{
	background: #000;
	box-shadow: 1px 1px 12px #333;
	color: #76B41C;
	font-weight: bold;
}

a img {
	border:none;
}

#gallerycontainer{
	padding: 0px;
	text-align:center;
}

.page-info {
	display:none;
}

Bon je n'ai pas cherché du tout à rendre la CSS optimale, il y a peut-être des classes inutiles et la possibilité de faire plus propre.

Merci encore pour l'idée d'utiliser «Pages Connexes». Je vais peut-être améliorer le script PHP pour permettre de choisir l'album, on verra.

Cordialement,
Grégoire

Dernière modification par geceo (2012-06-20 08:12:34)

Hors ligne

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

Pied de page des forums

Sites map