Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

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

#1 21/02/2011 01:05:39

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

module slider

j'arrive à faire un module slider utilisant easyslider http://cssglobe.com/post/5780/easy-slid … ery-slider
ne connaissant rien en php j'ai pris le module news de dioka et fait ceci

<?php
/*
module:	slide pompé des Gestion des news
Copyright Pierre-Yves DUCAS 2010
Licence : CeCILL-B, http://www.cecill.info

Historique:
  Version et Date    version Zite+ mini    Description
  =================  ==================    ===========
  

Le module principal se trouve dans    zite/module/slide.php
Les données ini sont  dans            zite/module/slide.ini
Les données slide sont dans            zdata/slide.dta
Il nécessite l'image                  deco/x0.png
Il nécessite l'image                  deco/x1.png
*/
/*
Pour avoir les slide ouvertes:   < ?php echo $this->page_module('slide','o','show');? >
*/
class Tslide extends Tmodule {
	function doshow($opt=""){
		static $isfirst=0;
		if ($isfirst++==0) {
			self::$cms->content['js'].='<script language="Javascript" type="text/javascript">
				function toggle(obj) {
				  var el = document.getElementById(obj);
	  			el.style.display = (el.style.display != "none" ? "none" : "block" );
				}
				</script>';
				
		}
		$out='<div id="slider"><ul>';
		if (empty(self::$cms->slide)) self::$cms->slide = (array)unserialize(@file_get_contents(self::$cms->cpath.'/slide.dta'));
//		$fslide = & self::$cms->slide;
//		ksort($fslide);
		$xbr='';
		if ($opt=='d') $out.='<marquee behavior="scroll" direction="up" width="100%" height="100" scrollamount="1" scrolldelay="0" onmouseover="this.stop()" onmouseout="this.start()">';
		foreach (self::$cms->slide as $clef => $valeur	) {
			if  ( ((!empty($_SESSION['zite_usergroup']) && ($valeur[6])) || (empty($_SESSION['zite_usergroup']) && ($valeur[5]))) && ( ($opt!='d')||$valeur[7])) {
  			$out.= $xbr.'<li><div class="slide_line" id="S'.$clef.'"><div class="entete_slide"><div class="postdate"><div class="day d-'.substr($valeur[3],0,2).'">' .substr($valeur[3],0,2).'</div> <div class="month m-'.substr($valeur[3],3,2).'">'.substr($valeur[3],3,2).'</div>
<div class="year y-'.substr($valeur[3],6,4).'">'.substr($valeur[3],6,4).'</div>   </div> <a style="text-decoration: none" href="javascript:toggle(\'P'.$clef.'\')"><span class="slide_title">'.$valeur[1].'</span><span class="slide_read"> (lire l'article)</span></a></div>';
				$xbr=$opt!='d'?'':'<hr />';
			  $out.='<div class="slide_body" id="P'.$clef.'" '.($opt!='o'?' style="display:none;"':'').'>'.$valeur[2].'</div></div></li>';
			}
		}
		if ($opt=='d') $out.='<hr /></marquee>';
		$out.="</div></ul>";
		return $out;
	}
//==============================================================================
	function dojob($opt="") {
		parent::dojob();
		$out ="";
//
//  slide (stockée dans le fichier dta)
//
$file2 = self::$cms->cpath.'/slide.dta';
self::$cms->slide = file_exists($file2)?(array)unserialize(@file_get_contents($file2)):array();
$fslide = & self::$cms->slide;
/* Code pour conversion ancien format -> nouveau format (à lancer une fois)
foreach ($fslide as $clef => $valeur	) {
	  	$fslide[$clef][5] = ($fslide[$clef][5]=='on'?'1':'0');
	  	$fslide[$clef][6] = ($fslide[$clef][6]=='on'?'1':'0');
	  	$fslide[$clef][7] = ($fslide[$clef][7]=='on'?'1':'0');
}
self::$cms->writedata($file2, $fslide);*/


	if (isset($_POST['slide_id'])) {//valeur renvoyé par le formulaire
	  $slide_id =      $_POST['slide_id'];
		$slide_title =   stripslashes($_POST['slide_title']);
		$slide_content = stripslashes($_POST['source']);
		$slide_date =    $_POST['slide_date'];
		$slide_author =  $_POST['slide_author'];
		$slide_public=   $_POST['slide_public'];
		$slide_private=  $_POST['slide_private'];
		$slide_scroll=   $_POST['slide_scroll'];
		$slide_date=     $_POST['slide_date'];
	} elseif ((isset(self::$cms->args[2])) && (self::$cms->args[2]!="new")) {//valeur initiale du formulaire
  	$slide_id =      self::$cms->args[1];
		$slide_title =   $fslide[$slide_id][1];
		$slide_content = $fslide[$slide_id][2];
		$slide_date =    $fslide[$slide_id][3];
		$slide_author =  $fslide[$slide_id][4];
		$slide_public =  $fslide[$slide_id][5];
		$slide_private = $fslide[$slide_id][6];
		$slide_scroll=   $fslide[$slide_id][7];
	} else {// formulaire vierge
	  $slide_id=-1;
	  $slide_title = $this->get_message('slide_ini_title');
	  $slide_content = $this->get_message('slide_ini_cont');
	  $slide_date = date ("d/m/Y H:i",time());
	  $slide_author=$_SESSION['zite_user'];
	  $slide_public="0";
	  $slide_private="0";
	  $slide_scroll="0";
	}
	//
	if (isset($_POST['abort'])) {
  	self::$cms->args[2]='';
	} elseif (isset($_POST['save']) && ($_POST['save']==1)) {
		if (isset($_POST['slidedelete'])) {  // effacement de la proposition
	  	if (isset($fslide[$slide_id]))	unset($fslide[$slide_id]);
	  } else {
  	  if (isset($_POST["mod_date"])) {
			    if (isset($fslide[$slide_id]))	unset($fslide[$slide_id]);
  	    $slide_date = date ("d/m/Y H:i",time());
    	  $slide_author=$_SESSION['zite_user'];
	    }
	    $uneslide=array(1 => $slide_title,$slide_content,$slide_date,$slide_author,($slide_public?'1':'0'),($slide_private?'1':'0'),($slide_scroll?'1':'0'));
	    if ($slide_id==-1) {
				array_unshift($fslide, $uneslide);
			} else {
				$fslide[$slide_id]=$uneslide;
			}
		}
		$fslide=array_values($fslide);
		self::$cms->writedata($file2, $fslide);
	  self::$cms->args[2]='';
	}
//
// formulaire de paramétrage général
//
$action = self::$cms->args[2];
$del = self::$cms->args[2]=='delete';  // Mode suppression actif

$out .= '<form method="post" action="'.self::$cms->base.implode('|',self::$cms->args).'" enctype="multipart/form-data"><table class="ztable">';
$out .= '<tr><td><h2><center>'.$this->get_message('title');
if (self::$cms->args[2])
  $out .= '<br>'.$this->get_message( $del ? 'confirmdel' : 
                   (self::$cms->args[2]=='new' ? $this->get_message('slide_add') : 
                         (self::$cms->args[2]=='modif' ? $this->get_message('slide_mod') : 
                               $this->get_message('slide_right'))));
$out .='</center></h2><td></tr></table><table class="ztable">';
if ( ($action=='togpub') || ($action=='togpriv') || ($action=='togscrl') || ($action=='movup') || ($action=='movdn')) {
  if     ($action=='togpub')  { $fslide[$slide_id][5] = ($slide_public?'0':'1'); }
  elseif ($action=='togpriv') { $fslide[$slide_id][6] = ($slide_private?'0':'1'); }
  elseif ($action=='togscrl') { $fslide[$slide_id][7] = ($slide_scroll?'0':'1'); }
  elseif ($action=='movup') { $xslide=$fslide[$slide_id]; $fslide[$slide_id]=$fslide[$slide_id-1]; $fslide[$slide_id-1]=$xslide;  }
  elseif ($action=='movdn') { $xslide=$fslide[$slide_id]; $fslide[$slide_id]=$fslide[$slide_id+1]; $fslide[$slide_id+1]=$xslide;  }
  self::$cms->writedata($file2, $fslide);
  self::$cms->slide  = (array)unserialize(@file_get_contents($file2));
  self::$cms->args[2]='';
} elseif (self::$cms->args[2])  {
  	$out .= '<tr><td>';
  	$out .= '<input name="slide_id" type="hidden"  id="slide_id" value="'.$slide_id.'" />';
    $out .= '</td></tr>';
  	$out .= '<tr><td align="right">'.$this->get_message('slide_author').' : </td><td><input name="slide_author" type="text" readonly size=30 id="slide_author" value="'.$slide_author.'" /></td>';
  	$out .= '    <td align="right">'.$this->get_message('slide_date').' : </td><td><input name="slide_date" type="text" id="slide_date" value="'.$slide_date.'" /></td></tr>';
  	$out .= '<tr><td align="right">'.$this->get_message('slide_title').' : </td><td colspan=3><input name="slide_title" type="text" '.($del ? ' readonly':'').' id="slide_title" size="80%" value="'.$slide_title.'" /></td></tr>';
  	if (!$del) {
      $out .= '<tr><td align="left">';
      $out .= '<input name="slide_public"  type="hidden" id="slide_public"  value='.$slide_public. ' />';
  	  $out .= '<input name="slide_private" type="hidden" id="slide_private" value='.$slide_private.' />';
  	  $out .= '<input name="slide_scroll"  type="hidden" id="slide_scroll"  value='.$slide_scroll. ' />';
      $out .= '</td></tr>';
					// Chargement de l'éditeur
			$r_in = array('<?', '<?php', '?'.'>', '<?=');
			$r_out = array('<!--?', '<!--?php', '?-->', '<!--?=');
			$edfile = self::$cms->zpath. '/'.self::$cms->get_data('editor').'.php';
			$content = $slide_content;
			if (file_exists($edfile)) {
				// Editeur externe
	  	  $out .= '<tr><td colspan="4">';
				@ob_start();
				include($edfile);
				$out .= @ob_get_clean();
  	  	$out .= '</td></tr>';
		   	$out .= '<tr><td colspan="4"><input type="submit" name="submit" value="'.$this->get_message('send').'" />';
		    if (self::$cms->args[2]=="modif")	$out .= '<input type="submit" name="mod_date" value="'.$this->get_message('mod_date').'" />';
			}//Fin chargement éditeur
  	}	else {
			$out .= '<tr><td colspan="4"><div width=90% style="border:1px solid #000000">'.$slide_content.'</div><br /></td></tr>';
	   	$out .= '<tr><td colspan="4"><input type="submit" name="slidedelete" value="'.$this->get_message('delete').'" />';
		}
    $out .= '<input type="submit" name="abort" value="'.self::$cms->get_message('abort').'" />';
    $out .= '<input name="save" type="hidden" value="1" />';
    $out .= '</td></tr>';
  	$out .= '</table></form>';
}
//
// liste de tous les articles
//
$out .= '<table class="ztable">';
$out .= '<tr><td colspan=6 align="left">'.count($fslide).' '.$this->get_message('subtitle').'</td><td colspan=2 align="right"><a href="'.self::$cms->base.'slide||new"><img src="deco/a.png" />'.$this->get_message('add_slide').'</a></td></tr>';
$out .= '<tr class="headcolor">';
$out .= '<td>N°</td>';
$out .= '<td>'.$this->get_message('slide_title').'</td>';
$out .= '<td>'.$this->get_message('slide_date').'</td>';
$out .= '<td>'.$this->get_message('slide_author').'</td>';
$out .= '<td align="center">'.$this->get_message('tab_public').'</td>';
$out .= '<td align="center">'.$this->get_message('tab_private').'</td>';
$out .= '<td align="center">'.$this->get_message('tab_scroll').'</td>';
$out .= '<td align="center">'.$this->get_message('tab_actions').'</td>';
$out .= '</tr>';
//
$fc=count($fslide);
$i=0;foreach ($fslide as $clef => $valeur	) {
	$out .= '<tr class="'.(++$i%2 ? 'oddcolor' : 'evencolor').'">';
  $out .= '<td>'.$clef.'</td>';
	if (($_SESSION['zite_admin']>1) || ($_SESSION['zite_user']==$valeur[4]))
        $out .= '<td><a href="'.self::$cms->base.'slide|'.$clef.'|modif">'.$valeur[1].'</a></td>';
  else  $out .= '<td>'.$valeur[1].'</td>';
  $out .= '<td>'.$valeur[3].'</td>';
  $out .= '<td>'.$valeur[4].'</td>';
	if (($_SESSION['zite_admin']>1) || ($_SESSION['zite_user']==$valeur[4])) {
  	$out .= '<td align="center"><a href="'.self::$cms->base.'slide|'.$clef.'|togpub"><img src="deco/s'.$valeur[5].'.png" /></a></td>';
  	$out .= '<td align="center"><a href="'.self::$cms->base.'slide|'.$clef.'|togpriv"><img src="deco/s'.$valeur[6].'.png" /></a></td>';
  	$out .= '<td align="center"><a href="'.self::$cms->base.'slide|'.$clef.'|togscrl"><img src="deco/s'.$valeur[7].'.png" /></a></td>';
  	$out .= '<td align="center">'.(($clef)?       '<a href="'.self::$cms->base.'slide|'.$clef.'|movup"><img src="deco/u1.png" /></a> ':'<img src="deco/u0.png" /> ');
  	$out .=                       (($clef!=$fc-1)?'<a href="'.self::$cms->base.'slide|'.$clef.'|movdn"><img src="deco/d1.png" /></a> ':'<img src="deco/d0.png" /> ');
  	$out .=                                     '<a href="'.self::$cms->base.'slide|'.$clef.'|delete"><img src="deco/e1.png" /></a></td>';
  }
  else {
    $out .= '<td align="center"><img src="deco/x'.$valeur[5].'.png" /></td>';
    $out .= '<td align="center"><img src="deco/x'.$valeur[6].'.png" /></td>';
    $out .= '<td align="center"><img src="deco/x'.$valeur[7].'.png" /></td>';
    $out .= '<td align="center"><img src="deco/u0.png" /> <img src="deco/d0.png" /> <img src="deco/e0.png" /></td>';
  }  
  $out .= '</tr>';
}
$out .= '</table>';
return $out;
}

}

?>

j'ai plusieurs ptit souci

- je suis obliger de collé dans le template <script type="text/javascript" src="js/easySlider.packed.js"></script>
comment faire pour l'introduire dans le module mes essaie ne sont pas convaincant

- dans la page j'ai à rajouter ce code

<script type="text/javascript">// <![CDATA[
  $(document).ready(function(){  
    $("#slider").easySlider({
      prevText:'<img title="haut" src="deco/u1.png" alt="haut" width="13" height="13" />',
      nextText:'<img title="bas" src="deco/d1.png" alt="bas" width="13" height="13" />',
      orientation:'vertical'
    });
  });
// ]]></script>
<?php echo $this->page_module('slide','o','show');?>

comment introduire ce script dans le module ? et pouvons nous mettre une variante sur "l'orientation"

- dans le code des news il a plein d'option que l'on à pas besoins pour faire des slides
que pouvons nous effacer sans planter le slide ?

si quelqu'un pouvait m'aidé on réaliserai un ptit module sympa pour ziteplus

par la suite j'envisage de me servir de ce travail pour dévellopé un module accordéon qui me semble très similaire au slide

par avance merci du soutien

Dernière modification par snypi (21/02/2011 01:08:54)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#2 21/02/2011 15:27:57

Atod
Membre
Inscription : 25/01/2011
Messages : 68
Site Web

Re : module slider

Je ne saurais pas te répondre, je ne me suis pas encore penché sur la question, mais j'ai une petite question un peu similaire dont j'ai besoin pour des modules que je développe en ce moment : Comment intégrer proprement du code javascript dans un module? Quel est le module de référence pour ça? (le mieux codé dans l'esprit ziteplus).

Hors ligne

#3 21/02/2011 15:47:02

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module slider

Alors,
une petite réponse commune pour vous deux, dans l'esprit zitePLUS wink

[ ... code de votre module ...]
        static $i=0;
[ ... code de votre module ...]
        if ($i++==0) {//inclure le code une seule fois dans la page
             self::$cms->content['js'].='<script language="javascript" type="text/javascript">
[ ... votre code javascript ...]
             </script>';
        }
[ ... code de votre module ...]

En procédant ainsi, le code sera mis par zitePLUS dans le head de la page, une et une seule fois, même si le module est appelé à de multiples endroits

ps: l'exemple est pris du module photoshow.php

a+
Jean-Paul

Hors ligne

#4 21/02/2011 15:52:25

Atod
Membre
Inscription : 25/01/2011
Messages : 68
Site Web

Re : module slider

Donc pour "js*: répertoire pour le code javascript", C'est plus trop d'actualité? On intègre le code js directement dans monmodule.php?

Hors ligne

#5 21/02/2011 16:02:47

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module slider

Atod a écrit :

Donc pour "js*: répertoire pour le code javascript", C'est plus trop d'actualité? On intègre le code js directement dans monmodule.php?

Tout dépend du code wink

- Pour un code (comme celui de jscolor) qui peut être utilisé dans de nombreux endroits, on met le code javascript dans un sous-répertoire de "js". Puis on l'insère dans la page par un truc du style (tirée de generique.php)
            self::$cms->content['js'].='<script type="text/javascript" src="js/jscolor/jscolor.js"></script>';

- Pour un code javascript qui ne sert que dans un seul endroit (exemple de photoshow.php, citée plus haut) on met directement le code dans le module

Mais dans les deux cas, c'est self::$cms->content['js'] qui sert

a+
Jean-Paul

Hors ligne

#6 21/02/2011 16:04:57

Atod
Membre
Inscription : 25/01/2011
Messages : 68
Site Web

Re : module slider

Ok, dans mon cas, c'est du code pour un module en particulier, donc on va fonctionner avec l'exemple de photoshow qui est très bien expliqué ci dessus!
Merci smile

Hors ligne

#7 25/02/2011 01:43:27

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

le module slider à bien avancé mais à mon avis j'ai mis le souk dans le code smile
ni connaissant rien en php ni javascript juste bon à copier coller les ressources du web (hé oui formation autodidacte à ses limites) j'ai du commenté effacé au ptit bonheur la chance par ci par la le code de news.php de Pydou et jpg

j'essaye de vous mettre une version en ligne fonctionnel au plus vite wink

ps: pour le slider (et les tabs avenir) je vais avoir besoins d'insérer des css je fait cela avec la fonction self::$cms->content['css']
ou je rajoute un fichier css à la racine du site exemple slide.css tabs .css ????

genre le top serait d'avoir une configuration en ligne smile

Dernière modification par snypi (25/02/2011 01:45:45)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#8 25/02/2011 16:47:50

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

et nous y voila dans le meme esprit que le tabs voici le module slide
à télécharger ici

pour le faire fonctionner dans une page php

<?php echo $this->page_module('slide','o','show');?>

un fichier css est charger à la racine slider.css pour configurer la taille par contre le rythme des slides est à modifier dans slide.php

aujourd'hui le module ne vous permet que 1 slide sur votre site !!
évolution intéressante faire mettre en option slide verticale ou horizontal et pouvoir générer plusieur slide et appellé le slide dans une page

Dernière modification par snypi (26/02/2011 01:21:16)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#9 28/02/2011 12:23:49

Atod
Membre
Inscription : 25/01/2011
Messages : 68
Site Web

Re : module slider

Je n'ai pas réussi à faire fonctionner le module.
J'ai pas trop le temps de regarder ce qui ne va pas! Mais en gros, j'ai tout les slides qui s'affichent les uns en dessous des autres! Ce n'est pas le rendu voulu non?
La structure est de ce type

<div id="slider">
<ul>
	<li>
		<div class="slide_body" id="P0">
			<p>text</p>
		</div>
	</li>
	<li>
		<div class="slide_body" id="P1">
			<p>Entrez ici le contenu du slide</p>
		</div>
	</li>

	<li>
		<div class="slide_body" id="P2">
			<p>Contenu du slide</p>
		</div>
	</li>
</div>
</ul>

Donc a priori de ce point la ca va, j'inverserai juste le dernier div et /ul mais, ca ne résout pas mon probleme.

Pour les évolutions, toutes les options pourrait être mis dans un panneau de config ainsi que de choisir verticale ou horizontal !

            prevId:         'prevBtn',
            prevText:         'Previous',
            nextId:         'nextBtn',   
            nextText:         'Next',
            controlsShow:    true,
            controlsBefore:    '',
            controlsAfter:    '',   
            controlsFade:    true,
            firstId:         'firstBtn',
            firstText:         'First',
            firstShow:        false,
            lastId:         'lastBtn',   
            lastText:         'Last',
            lastShow:        false,               
            vertical:        false,
            speed:             800,
            auto:            false,
            pause:            2000,
            continuous:        false,
            numeric:         false,
            numericId:         'controls'

Pour la possibilité de générer plusieurs slides, plusieurs solution sont envisageables (dupliquer le module, ajouter une catégorie à chaque page de slide...) faut voir laquelle est la mieux.
Je vais essayer de corriger ce qui ne va pas lorsque j'aurai un peu de temps.

Hors ligne

#10 28/02/2011 15:13:29

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

effectivement le souci vient du fait que tu à (a mon avis) charger le module tab et slide sur la meme page
les javascripts ce chevauche et rentre en conflit !!!
j'ai pas encore trouver de solution pour cela wink

Donc a priori de ce point la ca va, j'inverserai juste le dernier div et /ul mais, ca ne résout pas mon probleme.

effectivement il faut juste les virer les div car elle ne servent pas trop (elles viennent du module d'origine qui est news !!)
essaye dans une page php seul et dit moi !!

Dernière modification par snypi (28/02/2011 15:17:55)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#11 28/02/2011 16:12:16

Atod
Membre
Inscription : 25/01/2011
Messages : 68
Site Web

Re : module slider

La réponse a ma question était simple! C'était en effet chargé sur la même page.  Donc le module est fonctionnel. Il reste à virer les lignes qui ne servent à rien et à rendre la configuration un peu plus simple. Et voir si y'a moyen de mettre plusieurs modules sans conflits javascripts!

Hors ligne

#12 28/02/2011 22:24:07

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

a mon avis oui mais mon niveau de php et java est trop faible
si tu peut me faire un exemple dans mon module pour lancer un fichier de configuration avec lequel on applique une variable du style "activer désactiver" le javascript
c'est un truc du type 1 et 0 pour activer tel ligne de code moi je pourais faire une bidouillé sur mon module


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#13 01/03/2011 00:55:52

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module slider

Bonsoir,
j'ai suivi le même cheminement pour le slide wink

/*appel:   < ?php echo $this->page_module('slide','nom_de_la_page');? >*/
class Tslide extends Tmodule {
	function dojob($opt="") {
		parent::dojob();
		static $isfirst=0;
		if ($isfirst++==0) {
			self::$cms->content['js'].='
				<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
				<script type="text/javascript" src="js/easySlider1.7.js"></script>
				<script type="text/javascript">
			    $(document).ready(function(){
		      $("#slider").easySlider({
		        auto: true,
		        continuous: true,
			      numeric: true,
			      pause:4000,
		        speed:1000,
 	      });
		    });
			  </script>';
			self::$cms->content['css'].='<link href="slider.css" rel="stylesheet" type="text/css" />';
		}
		$out='<div id="slider"><ul>';
		$xbr='';
		$pgbase=self::$cms->page_from_ident($opt);
		if ($pgbase) {
		  for ($i=$pgbase+1;self::$cms->struct[$i][cPageRang]>self::$cms->struct[$pgbase][cPageRang];$i++) {
		    if (self::$cms->isPageAuth($i)) {
	  			$out.= $xbr.'<li>';
				  $out.='<div class="slide_body" id="P'.$i.'">'.self::$cms->get_content(self::$cms->struct[$i][cPageIdent], (self::$cms->struct[$i][cPageType]%2)==0 , true).'</div></li>';
				}
			}
		$out.="</div></ul>";
		return $out;
  }
	}
}
?>

du coup:
- on peut mettre plusieurs slides différents sur un site
- on pourrait facilement faire une config avec un fichier d'option

a+
Jean-Paul

Hors ligne

#14 01/03/2011 02:00:50

Atod
Membre
Inscription : 25/01/2011
Messages : 68
Site Web

Re : module slider

Pour les config avec fichier d'option tu peux regarder photoshow, contact, rss ou selectdoc comme module! Ça donne un bon aperçu de ce qui est faisable!
Tu commences par regarder les fichier opt (pour la détermination des types), puis les fichier ini (pour les description/options...), puis l'utilisation dans les classes php (pour l'utilisation de ces options : $this->getOption())
Si tu a besoin d'un tuto un peu plus clair, j'essaye de te faire ça (ça servira toujours wink !

Hors ligne

#15 02/03/2011 00:45:57

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module slider

Atod a écrit :

Si tu a besoin d'un tuto un peu plus clair, j'essaye de te faire ça (ça servira toujours wink !

Et comment ... il pourrait même être publié wink

Hors ligne

#16 07/03/2011 17:19:04

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

salut j'avais pas suivi le fil de ce topic !! y'a du changement smile
(
juste jpg pour le slide je pensais à une fonction plus simple que de rajouté des pages qui était celle de rajouté la fonction rubrique au slide
<?php echo $this->page_module('slide','nom_de_la_rubrique');?>

et pour résoudre le problème jquery faire un module jquery que l'on active simplement
par contre il faut pour des modules qui en on besoins avoir une notification:
slide nécessite l'activation du module jquery
puis on peut rajouter d'autres modules sans avoir à implémenter jquery

ps désolé pour mon abs du forum beaucoup de boulot entre les enfants de l'asso et mes cordages;
j'essaye cette bidouille quand j'ai des dispo

Dernière modification par snypi (07/03/2011 17:25:11)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#17 07/03/2011 19:02:31

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module slider

snypi a écrit :

juste jpg pour le slide je pensais à une fonction plus simple que de rajouté des pages qui était celle de rajouté la fonction rubrique au slide
<?php echo $this->page_module('slide','nom_de_la_rubrique');?>

Tu peux détailler ta vision du contenu d'un slide ?
Car si on utilise les rubriques, on va perdre en richesse de contenu: une page c'est très puissant en contenu potentiel.

snypi a écrit :

et pour résoudre le problème jquery faire un module jquery que l'on active simplement
par contre il faut pour des modules qui en on besoins avoir une notification:
slide nécessite l'activation du module jquery
puis on peut rajouter d'autres modules sans avoir à implémenter jquery

Jquery n'est pas le problème. je sais comment résoudre (élégamment ? ) la problématique pour la 0.9.2
Je le ferais s'il y a une demande (cf petit sondage dans l'autre message)

a+
Jean-Paul

ps: si tu as deux minutes, jette un petit coup d'oeil à la dernière version du module tabs sans jquery

Hors ligne

#18 08/03/2011 01:13:30

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

jpg a écrit :

Tu peux détailler ta vision du contenu d'un slide ?
Car si on utilise les rubriques, on va perdre en richesse de contenu: une page c'est très puissant en contenu potentiel.

oui effectivement je limite mon slide à la fonction d'image alors qu'avec les pages on peut gérer image et texte !
je pensais en même temps à la création d'un module fading d'image et je ne savais pas comment appeler les rubriques smile

Dernière modification par snypi (08/03/2011 01:14:00)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#19 08/03/2011 20:31:14

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module slider

snypi a écrit :

oui effectivement je limite mon slide à la fonction d'image alors qu'avec les pages on peut gérer image et texte !

Bon, là j'ai pas trop le temps roll
mais je retiens ton idée d'utiliser les rubriques pour les slides d'images smile
En fait, ce serait bien de proposer les deux fonctionnements Images et Pages wink

Hors ligne

#20 16/03/2011 12:58:09

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module slider

salutation je relance le sujet car ne connaissant rien en php j'apprends pas mal en bidouillant les modules smile

jpg a écrit :

du coup:
- on pourrait facilement faire une config avec un fichier d'option

le problème que j'ai avec la config d'option c'est que l'on configure d'une façons globale pour le site la largeur et la hauteur du slide
donc on ne peut pas avoir sur le site un slide1 dans un panneau sous le menu de 250px et le slide2 dans une page au 3/4

le nouveau module d'atod à le même problème
de plus dans chaque "animation" on devrait pouvoir spécifier des info spécifique du genre un index-z ou un float

je me creuse les méninges mais je ne vois pas comment on peut faire

function dojob($opt.$nom_de_l'animation="")

un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

Pied de page des forums