Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Pages : 1
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
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
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
Une autre solution est d'utiliser le plugin Pages connexes, qui permet d'inclure des fichiers php ;)
Hors ligne
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
Pages : 1
Vous n'êtes pas identifié(e).