<?php
/****************************************************************************
slider.php
Ce script permet de choisir aléatoirement des images présentes dans la base
et d'en faire un slider.
Chaque image est 'clickable' et possède un lien pour accéder à l'image de l'album.
Un code javascript fourni par Dynamic Drive at http://www.dynamicdrive.com
a été adapté pour l'insérer dans le portail Coppermine.
*****************************************************************************/
// Initialisation
define('IN_COPPERMINE', true);
//Pour TESTER le script dans coppermine, activer la ligne ci-dessous et appeler le script pas http://votre-site/slider.php
//require('include/init.inc.php');
//Pour intégrer le script dans coppermine, il est impératif de désactiver la ligne.
?>
<script type="text/javascript">
/**********************************************************************************************
* Le code initial a été coupé en 2 parties :
* 1ere partie du javascript : initialisation des variables
***********************************************************************************************
* Conveyor belt slideshow script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
**********************************************************************************************/
//Specify the slider's width (in pixels)
var sliderwidth="1000px"
//Specify the slider's height (par défaut hauteur des images thumb en paysage)
var sliderheight="75px"
//Specify the slider's slide speed (larger is faster 1-10)
var slidespeed=1
//configure background color: ne rien mettre = couleur transparente et s'adapte a la couleur du theme
slidebgcolor=""
//Specify the slider's images
var leftrightslide=new Array()
var finalslide=''
</script>
<?php
/******************************************************************************
Code PHP qui permet de :
- de lire les images de manière aléatoire dans la base de données
- d'alimenter le tableau leftrightslide initialisé dans le code javascript ci-dessus
- d'adapter la hauteur de la zone sur la hauteur maxi des images lues (75px ou 100px)
*******************************************************************************/
// Nombre maxi d'images à intégrer au scrolling
$limit=15;
// Requete à executer dans la base
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' ORDER BY RAND() LIMIT $limit";
// Réception du résultat
$result = cpg_db_query($query);
// Tableau de valeurs pour lecture des infos de chaque image
$rowset = array();
// Index du tableau
$i=0;
// Hauteur maxi des images : sera 75px ou 100px
$max_height=0;
// Pour chaque image.....
echo "<script type=\"text/javascript\">"."\n";
while($row = mysql_fetch_array($result)){
// Lecture du pid de l'image (numéro d'enregistrement dans le fichier)
$key=$row['pid'];
// Lecture de la hauteur de la vignette
$image_size = compute_img_size($row['pwidth'], $row['pheight'], $CONFIG['thumb_width']);
// Calcul de la hauteur maxi de la zone déroulante (par défaut = 75px)
if ($image_size['height'] > $max_height) {
$max_height = $image_size['height'];
}
// Chemin d'accès à l'image
$file="albums/".$row['filepath']."thumb_".$row['filename'];
// Lien pour accèder a l'image dans un clic du scrolling
$lien="<a href=\"displayimage.php?album=random&cat=0&pos=-$key\"><img src=\"".$file."\" border=0></a>";
// On construit le code Javascript
// Le tableau javascript initialisé plus haut est alimenté par la chaine : lien + chemin
echo "leftrightslide[".$i."]='".$lien."'"."\n";
$i=$i+1;
}
//Adapte la hauteur de la zone de scroll à la hauteur maxi des images (variable déja initialisée en javascript)
echo "sliderheight=\"".$max_height."px\""."\n";
echo "</script>"."\n";
// On libère la mémoire
mysql_free_result($result);
/******************************************************************************
Fin du code PHP
*******************************************************************************/
?>
<script type="text/javascript">
// *****************************************************************
// 2eme partie du code Javascript initial
// Ici rien n'a été modifié
// *****************************************************************
//Specify gap between each image (use HTML):
var imagegap=" "
//Specify pixels gap between each slideshow rotation (use integer):
var slideshowgap=5
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeed=slidespeed
leftrightslide='<nobr>'+leftrightslide.join(imagegap)+'</nobr>'
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+leftrightslide+'</span>')
var actualwidth=''
var cross_slide, ns_slide
window.onload=fillup
function fillup(){
if (iedom){
cross_slide=document.getElementById? document.getElementById("test2") : document.all.test2
cross_slide2=document.getElementById? document.getElementById("test3") : document.all.test3
cross_slide.innerHTML=cross_slide2.innerHTML=leftrightslide
actualwidth=document.all? cross_slide.offsetWidth : document.getElementById("temp").offsetWidth
cross_slide2.style.left=actualwidth+slideshowgap+"px"
}
else if (document.layers){
ns_slide=document.ns_slidemenu.document.ns_slidemenu2
ns_slide2=document.ns_slidemenu.document.ns_slidemenu3
ns_slide.document.write(leftrightslide)
ns_slide.document.close()
actualwidth=ns_slide.document.width
ns_slide2.left=actualwidth+slideshowgap
ns_slide2.document.write(leftrightslide)
ns_slide2.document.close()
}
lefttime=setInterval("slideleft()",30)
}
function slideleft(){
if (iedom){
if (parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))
cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+"px"
else
cross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+slideshowgap+"px"
if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))
cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+"px"
else
cross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+slideshowgap+"px"
}
else if (document.layers){
if (ns_slide.left>(actualwidth*(-1)+8))
ns_slide.left-=copyspeed
else
ns_slide.left=ns_slide2.left+actualwidth+slideshowgap
if (ns_slide2.left>(actualwidth*(-1)+8))
ns_slide2.left-=copyspeed
else
ns_slide2.left=ns_slide.left+actualwidth+slideshowgap
}
}
if (iedom||document.layers){
with (document){
// J'ai ajouté la propriété alignement du tableau au centre. Adapter au besoin à gauche(left) ou à droite (right)
document.write('<table border="0" cellspacing="0" cellpadding="0" align="center"><td>')
if (iedom){
write('<div style="position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+'" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">')
write('<div id="test2" style="position:absolute;left:0px;top:0px"></div>')
write('<div id="test3" style="position:absolute;left:-1000px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+sliderwidth+' height='+sliderheight+' name="ns_slidemenu" bgColor='+slidebgcolor+'>')
write('<layer name="ns_slidemenu2" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
write('<layer name="ns_slidemenu3" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
if (!defined('IN_COPPERMINE')) die('Not in Coppermine...');
starttable("100%", "Welcome");
include "slider.php";
?>
<tr><td class="tableb" >
</td></tr>
<?php
endtable();
?>
function pageheader($section, $meta = '')
{
global $CONFIG, $THEME_DIR;
global $template_header, $lang_charset, $lang_text_dir;
$custom_header = cpg_get_custom_include($CONFIG['custom_header_path']);
// Intégration du slider dans le theme. On définit une variable $bandeau qui contiendra le code final du slider
$bandeau=cpg_get_custom_include("slider.php");
$charset = ($CONFIG['charset'] == 'language file') ? $lang_charset : $CONFIG['charset'];
header('P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"');
header("Content-Type: text/html; charset=$charset");
user_save_profile();
$template_vars = array('{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => $CONFIG['gallery_name'] . ' - ' . strip_tags(bb_decode($section)),
'{CHARSET}' => $charset,
'{META}' => $meta,
'{GAL_NAME}' => $CONFIG['gallery_name'],
// Ajout du bandeau
'{BANDEAU}' => $bandeau,
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
'{SYS_MENU}' => theme_main_menu('sys_menu'),
'{SUB_MENU}' => theme_main_menu('sub_menu'),
'{ADMIN_MENU}' => theme_admin_mode_menu(),
'{CUSTOM_HEADER}' => $custom_header,
);
echo template_eval($template_header, $template_vars);
}
Les 2 lignes spécifiques au Slider sont annotées. J'utilise une variable $bandeau et {BANDEAU}.Mais je vous dis MERCI de cette distinction que j'essaierais d'honorer de mon mieux. Aujourd'hui j'étais à fond, ma prochaine contrib sera dans qques mois !!! Clin d'oeilQoui, on ne t'a pas dis que désormais c'était 24 heures sur 24 pour Coppermine ? ;D
//Pour TESTER le script sans coppermine, activer la ligne ci-dessous et appeler le script pas http://votre-site/slider.php
require('include/init.inc.php');
//Pour intégrer le script dans coppermine, il est impératif de désactiver la ligne.
?>
<iframe src="http://www.haut-les-mains.fr/media/slider.php"
width="930" scrolling="auto" height="220" frameborder="0"
name="FrameMediaRotator" allowtransparency="true"
bgcolor="#ecf07c">
</iframe>
<script language="javascript1.2"><!--
if (parent.frames.length != 0) top.location.replace(document.location.href);
// --></script>
Un petit vol en Parapente au-dessus des Alpes de Haute Provence ne vous dit pas ? Grimaçant Frantz ? GrimaçantSi tu connais un parapente spécial poids lourd, pourquoi pas ;D ;D ;D Il faut juste que je passe par la[/out of topic]
<?php
// ------------------------------------------------------------------------- //
// Coppermine Photo Gallery 1.3.2 //
// ------------------------------------------------------------------------- //
// Copyright (C) 2002-2004 Gregory DEMAR //
// http://www.chezgreg.net/coppermine/ //
// ------------------------------------------------------------------------- //
// Updated by the Coppermine Dev Team //
// (http://coppermine.sf.net/team/) //
// see /docs/credits.html for details //
// ------------------------------------------------------------------------- //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// ------------------------------------------------------------------------- //
// CVS version: $Id: anycontent.php,v 1.5 2004/07/24 15:03:52 gaugau Exp $
// ------------------------------------------------------------------------- //
starttable("100%", "Welcome");
if (!defined('IN_COPPERMINE')) die('Not in Coppermine...');
starttable("100%", "Welcome");
include "slider.php";
?>
<tr><td class="tableb" >
</td></tr>
<?php
endtable();
?>
?>
<tr><td class="tableb" >
This is for any content block - just a test - Edit the file "anycontent.php" to change what is shown here
</td></tr>
<?php
endtable();
?>
<script language="javascript1.2"><!--
if (parent.frames.length != 0) top.location.replace(document.location.href);
// --></script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="{LANG_DIR}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
<meta http-equiv="Pragma" content="no-cache" />
<title>{TITLE}</title>
{META}
<link rel="stylesheet" href="themes/water_drop/style.css" type="text/css" />
<script type="text/javascript" src="scripts.js"></script>
<!-- $Id: template.html 2688 2005-12-04 03:22:35Z donnoman $ -->
</head>
<body>
{CUSTOM_HEADER}
<table width="100%" border="0" cellpadding="20" cellspacing="20">
<tr>
<td valign="top" style="border: 1px solid #D2861A; background-color: #FDFDE9;">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<center><img src="themes/water_drop/images/jbwpics.png" border="1"></center>
<tr>
<td width="100%" align="center">
<h1>{GAL_NAME}</h1>
<h3>{GAL_DESCRIPTION}</h3><br />
{SYS_MENU}<br />{SUB_MENU}
</td>
</tr>
</table>
<img src="images/spacer.gif" width="1" height="15" alt="" />
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
{ADMIN_MENU}
{GALLERY}
<div style="text-align:center;">
<div>
{LANGUAGE_SELECT_FLAGS}<br />
{THEME_SELECT_LIST}{LANGUAGE_SELECT_LIST}
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
{CUSTOM_FOOTER}{VANITY}
</body>
</html>
<html>
<head>
<title>Menu</title>
<link href="style.css" rel="stylesheet" type="text/css"></head>
</head>
<body>
<tr>
<td>
<h1>Sur les écrans français</h1>
<h4><img style="float:left" src="next.png" border="0">
  <strong> <u>Next</u></strong><br>
 <strong>Réal:</strong>Lee Tamahori<br>
 <strong>Statut:</strong>Au Ciné<br>
 <strong>Sortie US:</strong> 27/04/2007<br>
 <strong>Sortie FR:</strong> 25/04/2007<br>
 <strong>Rôle:</strong> Liz<br>
 <strong><a href="http://www.imdb.com/title/tt0435705/" target="_blank">IMDB</a>
- <a href="http://www.tfmdistribution.fr/next" target="_blank">Site Officiel</a></strong>
<br></h4>
<h4>
<img border="0" align="left" alt="" src="7th.jpg">
<strong>7 à la maison</strong><br>
<em>Statut:</em>-Rediffusion Saison 8<br>
Du lundi au vendredi 16h30 (1 épisode)<br>
<em>Rôle:</em>Mary Camden<br>
<em>Chaine:</em>TF1<br></h4></td></tr>
</table>
<tr>
<td>
<h1>Dernières photos</h1><br>
<h4><iframe src="http://http://7thheavenvideos.free.fr/jesseforever/gallerybiel//slider.php"
width="200" scrolling="auto" height="110" frameborder="0"
name="FrameMediaRotator" allowtransparency="true"
bgcolor="#FFFFFF">
</iframe></h4>
</td></tr>
</table>
</html>
je voudrais en faite mettre une petite iframe sur mon site où l'on verrais les dernières photos du derniers album ajoutéLe MOD de PBasmo n'est pas conçu pour afficher les dernières images Uploadées. Ce MOD affiche les images de la Galerie de façon aléatoire.
il y a la page wikipedia qui s'afficheJe n'ai rien vu de tel ???
if (!defined('IN_COPPERMINE')) die('Not in Coppermine...');
starttable("100%", "Welcome to Jessica Biel Website");
include "slider.php";
?>
<tr><td class="tableb" >
</td></tr>
<?php
endtable();
?>
Je n'ai pas choisi d'utiliser ce script au sein de Coppermine, mais au contraire n'importe où ailleurs.
Aussi, il est nécessaire d'invalider (supp //) la ligne suivante dans slider.php comme signalé par Pierre :Code: [Select]//Pour TESTER le script sans coppermine, activer la ligne ci-dessous et appeler le script pas http://votre-site/slider.php
require('include/init.inc.php');
//Pour intégrer le script dans coppermine, il est impératif de désactiver la ligne.
?>
Bzzzz BIIPmoni,
En effet c'est vraiment propre !
Remercions encore Pbasmo pour cette contribution qui satisfait beaucoup de monde ;D
PYAP
<?php
/******************************************************************************
Code PHP qui permet de :
- de lire les images de manière aléatoire dans la base de données
- d'alimenter le tableau leftrightslide initialisé dans le code javascript ci-dessus
- d'adapter la hauteur de la zone sur la hauteur maxi des images lues (75px ou 100px)
*******************************************************************************/
// Nombre maxi d'images à intégrer au scrolling
$limit=15;
// Requête à executer dans la base
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' ORDER BY RAND() LIMIT $limit";
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND aid = 15 ORDER BY RAND() LIMIT $limit";
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND aid = 15 OR aid = 20 ORDER BY RAND() LIMIT $limit";
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND aid <> 15 ORDER BY RAND() LIMIT $limit";
Salut à tous ....
et...WOWWWW ! L'article a été traduit en italien !
Je n'ai qu'un mot à dire : GRAZIE BIIPMoni ! :D
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND aid <> 1 AND aid <> 12 AND aid <> 103 ORDER BY RAND() LIMIT $limit";
exclusion forcée d'une liste d'albums.$visibility = $alb_thumb['visibility'];Ça fonctionne, ça fait le tri, mais ça affiche : "erreur dans l'exécution de la requête".
if (!in_array($aid,$FORBIDDEN_SET_DATA) || $CONFIG['allow_private_albums'] == 0) {
if ($count > 0)
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' ORDER BY RAND() LIMIT $limit";
}
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND aid <> 1 AND aid <> 12 AND aid <> 103 ORDER BY RAND() LIMIT $limit";
J'ai vider le cache et même changer de machine et rien ne change.
Du coup je pense que je ferai comme pour mon site j'utiliserai highslide.
starttable("100%", "Welcome");
Vous pouvez changer la dimension 100% par ce que vous désirez obtenir. Les valeurs exprimées en px fonctionnent aussiMerciCoppermine ce sont plusieurs dizaines de personnes passionnées !
C'est OK maintenant
Très beau boulot !
Le problème c'est que je n'arrive pas à l'intègrer dans un thème sans déformé l'apparence de celui-ci.
// J'ai ajouté la propriété alignement du tableau au centre. Adapter au besoin à gauche(left) ou à droite (right)
document.write('<table border="0" cellspacing="0" cellpadding="0" align="center"><td>')
if (iedom){
write('<div style="position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+'" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">')
write('<div id="test2" style="position:absolute;left:0px;top:0px"></div>')
write('<div id="test3" style="position:absolute;left:-1000px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+sliderwidth+' height='+sliderheight+' name="ns_slidemenu" bgColor='+slidebgcolor+'>')
write('<layer name="ns_slidemenu2" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
write('<layer name="ns_slidemenu3" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
quelqu'un sait-il répondre à ma question, posée ci-dessus :
restreindre la recherche de Slider aux images contenues dans les dossiers visibles par tous seulement ?
Oups, merci, c'est évident mais... J'y avais pas penséPas grave ! C'est le métier qui entre ;D
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' ORDER BY RAND() LIMIT $limit";
$query = "SELECT {$CONFIG['TABLE_PICTURES']}.* from {$CONFIG['TABLE_PICTURES']},{$CONFIG['TABLE_ALBUMS']} WHERE approved='YES' AND {$CONFIG['TABLE_PICTURES']}.aid = {$CONFIG['TABLE_ALBUMS']}.aid AND {$CONFIG['TABLE_ALBUMS']}.visibility = 0 ORDER BY RAND() LIMIT $limit";