Vous n'êtes pas identifié(e).
Pour ceux qui l'auraient déjà essayé, je suis sur qu'ils ont vu qu'il manquait un "}" donc : remplacer
if (!$show_rdar) {
if ($clas_rdar!='') $out.='<span class='.$clas_rdar.'>'.$this->get_message('read_art').'</span>';
else $out.='<font size='.$size_rdar.'> ('.$this->get_message('read_art').')</font>';
if (!$show_open) $out.= '</a>';
par
if (!$show_rdar) {
if ($clas_rdar!='') $out.='<span class='.$clas_rdar.'>'.$this->get_message('read_art').'</span>';
else $out.='<font size='.$size_rdar.'> ('.$this->get_message('read_art').')</font>';
}
if (!$show_open) $out.= '</a>';
c'est pas mieux de mettre "none" : "block" au lieu de "none" : "" ?
n'étant pas expert en javascript, j'ai copié bêtement un code trouvé sur le net et qui marche. Je vais essayer et si c'est mieux, je conserve ! :)
PYDou
Consultant en sécurité informatique (ISO 27001 Lead Auditor, ISO 27005 Risk Manager)
Amateur de JAZZ, Voile, Bridge
Hors ligne
Bonsoir,
je voyais un truc plus léger pour le css.
Si l'utilisateur ne défini pas son css, c'est celui par défaut qui est utilisé.
Par contre, il peut toujours redéfinir celui-ci.
Par exemple, s'il veut des news sur font vert avec des titre en rouges (même si c'est pas beau ), il mettra dans son fichier de style:
.news{background-color:#00ff00}
.news_title {color:#ff0000}
Sinon, voici le code de la fonction do_show() correspondant:
Exemple:
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" : "" );
}
</script>';
self::$cms->content['localcss'].=
"\n.news {}".
"\n.news_date {font-size:xx-small;}".
"\n.news_title {font-size:small; color:#FF6600;}".
"\n.news_read {font-size:xx-small;}".
"\n.news_body {}".
"\n"
;
}
$out='<div class="news">';
if (empty(self::$cms->news)) self::$cms->news = (array)unserialize(@file_get_contents(self::$cms->cpath.'/news.dta'));
$fnews = & self::$cms->news;
ksort($fnews);
$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 ($fnews as $clef => $valeur ) {
if ((($_SESSION['zite_user']!='') and ($valeur[6])) or (($_SESSION['zite_user']=='') and ($valeur[5]))) {
$out.= $xbr.'<span class="news_date">'.substr($valeur[3],0,10).' : </span><a style="text-decoration: none" href="javascript:toggle(\'P'.$clef.'\')"><span class="news_title"><strong>'.$valeur[1].'</strong></span><span class="news_read"> (lire l'article)</span></a>';
$xbr=$opt!='d'?'<br />':'<hr />';
$out.='<div class="news_body" id="P'.$clef.'" '.($opt!='t'?' style="display:none;"':'').'><br />'.$valeur[2].'<br /><hr /></div>';
}
}
if ($opt=='d') $out.='<hr /></marquee>';
$out.="</div>";
return $out;
}
Cela me semble plus simple comme code et si j'ai pas oublié de span ou de div, cela devrait faire la même chose.
A une exception près: le nom des classes est fixé par défaut par le développeur (mais, ça je ne trouve pas que ce soit un inconvénient )
a+
Jean-Paul
ps: la syntaxe d'appel totalement expérimentale
Pour avoir les news fermées: <?php echo $this->page_module('news','','show');?>
Pour avoir les news ouvertes: <?php echo $this->page_module('news','t','show');?>
Pour avoir des news défilantes: <?php echo $this->page_module('news','d','show');?>
Hors ligne
salut
je trouve cela pas mal du tout !!
j'y rajouterai pour la news une <div id="dnews" class="news">
cela permet un attribut suplémentaire !!
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
Une petite évolution pour les dates,
avec un petit exemple intégré pour illustrer la puissance du css (juste pour le plaisir )
La démo permet d'afficher la date sous forme de pavé (année dessus et jour mois dessous)
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>';
self::$cms->content['localcss'].=
"\n.news {}".// les styles vides peuvent être supprimés: c'est juste pour démo
"\n.news_line {}".
"\n.news_date {font-size:xx-small;}".
"\n.news_datejj {}".
"\n.news_datemm {}".
"\n.news_dateaa {}".
"\n.news_datesep1 {}".
"\n.news_datesep2 {}".
"\n.news_title {font-size:small; color:#FF6600;font-weight: bold}".
"\n.news_read {font-size:xx-small;}".
"\n.news_body {}".
"\n"
// démo démo démo !!!!!!!!!! à supprimer dans la version de prod: pas beau, mais pour démo: création d'un bloc avec année dessus et jj/mm dessous
."\n.news_line {clear:both}".
"\n.news_date {display:inline-block; float:left;height:40px;width:60px;background-color:#9ecfff;text-align:center;font-weight:bold;margin-bottom:10px}".
"\n.news_datejj{font-size:medium;position:relative;top:20px}.news_datemm{font-size:medium;position:relative;top:20px}".
"\n.news_dateaa{position:relative;top:-20px;float:left;width:100%;height:50%;background-color:#ffcc00;font-size:small;}".
"\n.news_datesep1 {font-size:medium;position:relative;top:20px}".
"\n.news_datesep2 {display:none} .news_body{clear:both}"
//fin démo - fin démo
;
}
$out='<div class="news">';
if (empty(self::$cms->news)) self::$cms->news = (array)unserialize(@file_get_contents(self::$cms->cpath.'/news.dta'));
$fnews = & self::$cms->news;
ksort($fnews);
$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 ($fnews as $clef => $valeur ) {
if ((($_SESSION['zite_user']!='') and ($valeur[6])) or (($_SESSION['zite_user']=='') and ($valeur[5]))) {
$out.= $xbr.'<div class="news_line"><span class="news_date"><span class="news_datejj">'.substr($valeur[3],0,2).'</span><span class="news_datesep1">/</span><span class="news_datemm">'.substr($valeur[3],3,2).'</span><span class="news_datesep2">/</span><span class="news_dateaa">'.substr($valeur[3],6,4).'</span>'.'</span> <a style="text-decoration: none" href="javascript:toggle(\'P'.$clef.'\')"><span class="news_title">'.$valeur[1].'</span><span class="news_read"> (lire l'article)</span></a>';
$xbr=$opt!='d'?'<br />':'<hr />';
$out.='<div class="news_body" id="P'.$clef.'" '.($opt!='t'?' style="display:none;"':'').'><br />'.$valeur[2].'<br /><hr /></div></div>';
}
}
if ($opt=='d') $out.='<hr /></marquee>';
$out.="</div>";
return $out;
}
a+
Jean-Paul
Hors ligne
heu on le met ou le code
j'ai essayé dans une page php marche po
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
heu on le met ou le code
j'ai essayé dans une page php marche po
Dans le module de news à la place de la fonction doshow() actuelle
Sinon, plus simple, le code complet du module (de news.php) ci-dessous.
Et dans une page php, tu mets:
Pour avoir les news fermées: <?php echo $this->page_module('news','','show');?>
Pour avoir les news ouvertes: <?php echo $this->page_module('news','o','show');?>
Pour avoir des news défilantes: <?php echo $this->page_module('news','d','show');?>
<?php
/*
module: Gestion des news
Copyright Pierre-Yves DUCAS 2010
Licence : CeCILL-B, http://www.cecill.info
Historique:
Version et Date version Zite+ mini Description
================= ================== ===========
1.0 du 08/10/2010 0.9.1 A 26 Création du module
1.1 du 14/10/2010 0.9.1 A 26 JPG: intégration tinymce.php de ZitePLUS
intégration code affichage news (doshow)
optimisation diverses du code
changement valeur on,off => 1,0
1.2 du 20/10/2010 JPG: intégration class CSS
Le module principal se trouve dans zite/module/news.php
Les données ini sont dans zite/module/news.ini
Les données news sont dans zdata/news.dta
Il nécessite l'image deco/x0.png
Il nécessite l'image deco/x1.png
*/
/*Pour avoir les news fermées: < ?php echo $this->page_module('news','','show');? >
Pour avoir les news ouvertes: < ?php echo $this->page_module('news','o','show');? >
Pour avoir des news défilantes: < ?php echo $this->page_module('news','d','show');? >
*/
class Tnews 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>';
self::$cms->content['localcss'].=
"\n.news {}".// les styles vides peuvent être supprimés: c'est juste pour démo
"\n.news_line {}".
"\n.news_date {font-size:xx-small;}".
"\n.news_datejj {}".
"\n.news_datemm {}".
"\n.news_dateaa {}".
"\n.news_datesep1 {}".
"\n.news_datesep2 {}".
"\n.news_title {font-size:small; color:#FF6600;font-weight: bold}".
"\n.news_read {font-size:xx-small;}".
"\n.news_author {}".
"\n.news_body {}".
"\n"
// démo démo démo !!!!!!!!!! à supprimer dans la version de prod: pas beau, mais pour démo: création d'un bloc avec année dessus et jj/mm dessous
."\n.news_line {clear:both}".
"\n.news_date {display:inline-block; float:left;height:40px;width:60px;background-color:#9ecfff;text-align:center;font-weight:bold;margin-bottom:10px}".
"\n.news_datejj{font-size:medium;position:relative;top:20px}.news_datemm{font-size:medium;position:relative;top:20px}".
"\n.news_dateaa{position:relative;top:-20px;float:left;width:100%;height:50%;background-color:#ffcc00;font-size:small;}".
"\n.news_datesep1 {font-size:medium;position:relative;top:20px}".
"\n.news_datesep2 {display:none} .news_body{clear:both}"
//fin démo - fin démo
;
}
$out='<div class="news">';
if (empty(self::$cms->news)) self::$cms->news = (array)unserialize(@file_get_contents(self::$cms->cpath.'/news.dta'));
$fnews = & self::$cms->news;
ksort($fnews);
$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 ($fnews as $clef => $valeur ) {
if ((($_SESSION['zite_user']!='') and ($valeur[6])) or (($_SESSION['zite_user']=='') and ($valeur[5]))) {
$out.= $xbr.'<div class="news_line"><span class="news_date"><span class="news_datejj">'.substr($valeur[3],0,2).'</span><span class="news_datesep1">/</span><span class="news_datemm">'.substr($valeur[3],3,2).'</span><span class="news_datesep2">/</span><span class="news_dateaa">'.substr($valeur[3],6,4).'</span>'.'</span> <a style="text-decoration: none" href="javascript:toggle(\'P'.$clef.'\')"><span class="news_title">'.$valeur[1].'</span><span class="news_read"> (lire l\'article)</span></a>';
$xbr=$opt!='d'?'<br />':'<hr />';
$out.='<div class="news_body" id="P'.$clef.'" '.($opt!='o'?' style="display:none;"':'').'><br />'.$valeur[2].'<br /><hr /></div></div>';
}
}
if ($opt=='d') $out.='<hr /></marquee>';
$out.="</div>";
return $out;
}
function dojob($opt="") {
parent::dojob();
//==============================================================================
$out ="";
//
// Actualité (stockée dans le fichier dta)
//
$file2 = self::$cms->cpath.'/news.dta';
self::$cms->news = (array)unserialize(@file_get_contents($file2));
$fnews = & self::$cms->news;
/* Code pour conversion ancien format -> nouveau format (à lancer une fois)
foreach ($fnews as $clef => $valeur ) {
$fnews[$clef][5] = ($fnews[$clef][5]=='on'?'1':'0');
$fnews[$clef][6] = ($fnews[$clef][6]=='on'?'1':'0');
$fnews[$clef][7] = ($fnews[$clef][7]=='on'?'1':'0');
}
self::$cms->writedata($file2, $fnews);*/
if (isset($_POST['news_id'])) {//valeur renvoyé par le formulaire
$news_id = $_POST['news_id'];
$news_title = stripslashes($_POST['news_title']);
$news_content = stripslashes($_POST['source']);
$news_date = $_POST['news_date'];
$news_author = $_POST['news_author'];
$news_public= $_POST['news_public'];
$news_private= $_POST['news_private'];
$news_scroll= $_POST['news_scroll'];
$news_date= $_POST['news_date'];
} elseif ((isset(self::$cms->args[2])) and (self::$cms->args[2]!="new")) {//valeur initiale du formulaire
$news_id = self::$cms->args[1];
$news_title = $fnews[$news_id][1];
$news_content = str_replace('\\"','\"',$fnews[$news_id][2]);
$news_date = $fnews[$news_id][3];
$news_author = $fnews[$news_id][4];
$news_public = $fnews[$news_id][5];
$news_private = $fnews[$news_id][6];
$news_scroll= $fnews[$news_id][7];
} else {// formulaire vierge
$news_id=0;
$news_title = $this->get_message('news_ini_title');
$news_content = $this->get_message('news_ini_cont');
$news_date = date ("d/m/Y H:i",time());
$news_author=$_SESSION['zite_user'];
$news_public="0";
$news_private="0";
$news_scroll="0";
}
//
//if (!in_array('logon',$group)) $group[]='logon'; // Tous les utilisateurs font partie de ce groupe
if (isset($_POST['abort'])) {
self::$cms->args[2]='';
} elseif (isset($_POST['save']) && ($_POST['save']==1)) {
if (isset($_POST['newsdelete'])) { // effacement de la proposition
if (isset($fnews[$news_id])) unset($fnews[$news_id]);
} else {
if (isset($_POST["mod_date"])) {
if (isset($fnews[$news_id])) unset($fnews[$news_id]);
$news_date = date ("d/m/Y H:i",time());
$news_author=$_SESSION['zite_user'];
}
$unenews=array(1 => $news_title,$news_content,$news_date,$news_author,($news_public?'1':'0'),($news_private?'1':'0'),($news_scroll?'0':'1'));
if ($news_id==0) {
array_unshift($fnews, $unenews);
} else {
$fnews[$news_id]=$unenews;
}
}
$fnews=array_values($fnews);
self::$cms->writedata($file2, $fnews);
self::$cms->args[2]='';
}
/* $fnews[$news_id][1] = $news_title;
$fnews[$news_id][2] = str_replace('\\"','"',$news_content);
$fnews[$news_id][3] = $news_date;
$fnews[$news_id][4] = $news_author;
$fnews[$news_id][5] = ($news_public=='on'?'on':'off');
$fnews[$news_id][6] = ($news_private=='on'?'on':'off');
$fnews[$news_id][7] = ($news_scroll=='on'?'on':'off');
*/
//
// 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('news_add') :
(self::$cms->args[2]=='modif' ? $this->get_message('news_mod') :
$this->get_message('news_right'))));
$out .='</center></h2><td></tr></table><table class="ztable">';
if ( ($action=='togpub') or ($action=='togpriv') or ($action=='togscrl') or ($action=='mupnews') or ($action=='mdwnews')) {
if ($action=='togpub') { $fnews[$news_id][5] = ($news_public?'0':'1'); }
elseif ($action=='togpriv') { $fnews[$news_id][6] = ($news_private?'0':'1'); }
elseif ($action=='togscrl') { $fnews[$news_id][7] = ($news_scroll?'0':'1'); }
elseif ($action=='mupnews') { $fnews[99999]=$fnews[$news_id]; $fnews[$news_id]=$fnews[$news_id-1]; $fnews[$news_id-1]=$fnews[99999]; unset($fnews[99999]); }
elseif ($action=='mdwnews') { $fnews[99999]=$fnews[$news_id]; $fnews[$news_id]=$fnews[$news_id+1]; $fnews[$news_id+1]=$fnews[99999]; unset($fnews[99999]); }
self::$cms->writedata($file2, $fnews);
self::$cms->news = (array)unserialize(@file_get_contents($file2));
self::$cms->args[2]='';
} elseif (self::$cms->args[2]) {
$out .= '<tr><td>';
$out .= '<input name="news_id" type="hidden" id="news_id" value="'.$news_id.'" />';
$out .= '</td></tr>';
$out .= '<tr><td align="right">'.$this->get_message('news_author').' : </td><td><input name="news_author" type="text" readonly size=30 id="news_author" value="'.$news_author.'" /></td>';
$out .= ' <td align="right">'.$this->get_message('news_date').' : </td><td><input name="news_date" type="text" readonly id="news_date" value="'.$news_date.'" /></td></tr>';
$out .= '<tr><td align="right">'.$this->get_message('news_title').' : </td><td colspan=3><input name="news_title" type="text" '.($del ? ' readonly':'').' id="news_title" size="80%" value="'.$news_title.'" /></td></tr>';
if (!$del) {
$out .= '<tr><td align="left">';
$out .= '<input name="news_public" type="hidden" id="news_public" value='.$news_public. ' />';
$out .= '<input name="news_private" type="hidden" id="news_private" value='.$news_private.' />';
$out .= '<input name="news_scroll" type="hidden" id="news_scroll" value='.$news_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 = $news_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">'.$news_content.'</div><br /></td></tr>';
$out .= '<tr><td colspan="4"><input type="submit" name="newsdelete" 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($fnews).' '.$this->get_message('subtitle').'</td><td colspan=2 align="right"><a href="'.self::$cms->base.'news||new"><img src="deco/a.png" />'.$this->get_message('add_news').'</a></td></tr>';
$out .= '<tr class="headcolor">';
$out .= '<td>N°</td>';
$out .= '<td>'.$this->get_message('news_title').'</td>';
$out .= '<td>'.$this->get_message('news_date').'</td>';
$out .= '<td>'.$this->get_message('news_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>';
//ksort($f2);
$fc=count($fnews);
$i=0;foreach ($fnews as $clef => $valeur ) {
$out .= '<tr class="'.(++$i%2 ? 'oddcolor' : 'evencolor').'">';
$out .= '<td>'.$clef.'</td>';
if (($_SESSION['zite_admin']>1) or ($_SESSION['zite_user']==$valeur[4]))
$out .= '<td><a href="'.self::$cms->base.'news|'.$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) or ($_SESSION['zite_user']==$valeur[4])) {
$out .= '<td align="center"><a href="'.self::$cms->base.'news|'.$clef.'|togpub"><img src="deco/s'.$valeur[5].'.png" /></a></td>';
$out .= '<td align="center"><a href="'.self::$cms->base.'news|'.$clef.'|togpriv"><img src="deco/s'.$valeur[6].'.png" /></a></td>';
$out .= '<td align="center"><a href="'.self::$cms->base.'news|'.$clef.'|togscrl"><img src="deco/s'.$valeur[7].'.png" /></a></td>';
$out .= '<td align="center">'.(($clef)? '<a href="'.self::$cms->base.'news|'.$clef.'|mupnews"><img src="deco/u1.png" /></a> ':'<img src="deco/u0.png" /> ');
$out .= (($clef!=$fc-1)?'<a href="'.self::$cms->base.'news|'.$clef.'|mdwnews"><img src="deco/d1.png" /></a> ':'<img src="deco/d0.png" /> ');
$out .= '<a href="'.self::$cms->base.'news|'.$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;
}
}
?>
a+
Jean-Paul
ps: j'ai laissé, le code de démo css: normalement il faut le virer
Dernière modification par jpg (20/10/2010 23:22:40)
Hors ligne
je revient sur l'option de pouvoir modifier la date !!
cela me semble important car lorsque l'on créer un site on peut utiliser la date de la news comme une date de rendez vous ou d'événement !!
edit : j'ai modifier le tous le code de news.php ci dessus et mon site est tous blanc
Dernière modification par snypi (20/10/2010 21:15:28)
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
edit : j'ai modifier le tous le code de news.php ci dessus et mon site est tous blanc
Je viens de vérifier avec une b3: ça marche.
Tu as fait une manip particulière ?
Hors ligne
nouvelle installe sous wamp
j'active news poll codemiror xmenu via le menu module
j'insère une news avec le menu actualité
je créer la page php en panneau haut (position 7) avec le code <?php echo $this->page_module('news','','show');?>
puis copy colle le code donnée à la place de news.php rien d'autre (j'ai pas décommenté)
j'actualise ma page sous wamp et oups c'est blanc
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
oui, c'est la manip que j'ai fait moi aussi pour tester.
Par contre, tu vas rire, j'ai eu aussi une page blanche car j'avais oublié de mettre public et login
Tu n'aurais pas fait la même chose ?
Hors ligne
non j'avais bien les 3 d'activé !!!
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
Est-ce que tu as des messages d'erreurs en passant site_debug à dev. ?
Hors ligne
excuse j'ai pas le réflex mais c'est noté à la prochaine page blanche j'y passe !!
alors pour celle ci j'ai ceci
Parse error: parse error in C:\wamp\www\ziteplus\zite\module\news.php on line 69
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
Ok, j'ai vu le problème: c'est lors du couper/coller.
j'ai modifié le message précédent.
Soit tu refait une copie complète, soit tu change la ligne
href="javascript:toggle(\'P'.$clef.'\')"><span class="news_title">'.$valeur[1].'</span><span class="news_read"> (lire l'article)</span></a>';
par
href="javascript:toggle(\'P'.$clef.'\')"><span class="news_title">'.$valeur[1].'</span><span class="news_read"> (lire l\'article)</span></a>';
D'ailleurs, c'est un bon bug: cela a permis de voir qu'il reste du texte non paramétré dans le code
a+
jp
Dernière modification par jpg (20/10/2010 23:25:14)
Hors ligne
nickel !!! c'était mon idée de départ pour designé les dates mais quand j'ai découvert l'autre script je me suis acharné dessus!!
celui ci vas répondre à 99% des utilisateur
sinon quand pensez vous de laissé la date modifiable ??
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
nickel !!! c'était mon idée de départ pour designé les dates mais quand j'ai découvert l'autre script je me suis acharné dessus!!
celui ci vas répondre à 99% des utilisateur
sinon quand pensez vous de laissé la date modifiable ??
à priori que du bien
mais on va voir avec PYDou s'il y a une raison pour mettre une date non modifiable directement.
a+
Jean-Paul
Finalement, j'en vois peut-être une: trouver un bon gestionnaire de date (un peu comme celui qui permet de choisir une couleur dans le module photoshow)
Hors ligne
2 jours d'absence et çà discute ferme ... :):)
1)date modifiable : pas d'état d'âme... je n'ai pas de raison d'interdire la modification, mais il me semble important de conserver les 2 boutons existants pour plus de simplicité pour ceux qui le désirent. j'ai un très bon gestionnaire de date en JS qui 'appelle tigra-calendar pour mon site, avec code js, CSS et exemples html, paramétrable us/eu, ....
2) sur le CSS par défaut incorporé au code, pas d'état d'âme non plus mais dans mon cas (regardez mon site par exemple) j'ai plusieurs modes d'affichage avec des différences importantes
- affichage ou non de la date
- défilant ou non
- fermé ou ouvert par défaut (si ouvert, pas de javascript sur le div, reste ouvert)
- taille des polices différentes
- affichage différent si on est logué ou pas et entre défilant ou pas
il me faut donc plus de paramètres que le simple 'd' ou 'o' ...
Dans tous les cas, l'idée d'intégrer du CSS lors de l'ajout d'un module me semble nécessaire, mais ou et comment ??? Toutes les idées sont bonnes et la meilleure sera celle que le concepteur juge la mieux adaptée à l'existant.
Je vais fabriquer un fichier news.css qui sera livré avec le module, la façon de l'intégrer restera entre les mains de JPG
A plusieurs, on y arrivera, car je sens arriver mes limites en php dans vos posts (ou à défaut une connaissance insuffisante de ZITE+ pour bien intégrer ces concepts)
PYDou
Dernière modification par pydou (21/10/2010 13:58:35)
Consultant en sécurité informatique (ISO 27001 Lead Auditor, ISO 27005 Risk Manager)
Amateur de JAZZ, Voile, Bridge
Hors ligne
heu tu parle de limite en php mais tu est un dieu à mes yeux !! j'arrive à peine à le lire
il me faut donc plus de paramètres que le simple 'd' ou 'o' ...
peut être la possibilité d'ajouté une classe à la div (P0 , P1 , P2)
exemple un champ par défault remplis avec la classe .news (ce qui fait que l'utilisateur à déjà un design de base configurer)
avec la possibilité de le modifier .news2 et avec un css approprier comme en css on peut cumuler les classes cela peut faire pas mal de possibilité
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
non, il faut 2 choses
1) choisir les champs que l'on affiche (le CSS ne le peut pas à mon sens)
2) formater (le CSS est là pour çà)
Je retravaille le sujet qui devrait donner ceci pour le paramétrage
// valeur par défaut des paramètres
$show_open=$show_scrl=$show_rdar=$show_date=$show_auth=false;
$size_scrl=100;
$css_base="news";
// lecture des paramètres d'appel
while (strlen($opt)>0) {
$p=(strpos($opt,";")?substr($opt,0,strpos($opt,";")):$opt);
$opt=(strpos($opt,";")?substr($opt,strpos($opt,";")+1,255):'');
$po=(strpos($p,":")?substr($p,0,strpos($p,":")):$p);
$pa=(strpos($p,":")?substr($p,strpos($p,":")+1,255):'');
switch ($po) {
case "SCROLL" : $show_open=true; break; // SCROLL TOGGLE
case "SCSIZE" : $show_scrl=true; if($pa=='') $size_scrl=$pa; break; // SCROLL SIZE
case "SHREAD" : $show_rdar=true; break; // "A LIRE" TOGGLE
case "SHDATE" : $show_date=true; break; // DATE TOGGLE
case "SHAUTH" : $show_auth=true; break; // AUTHOR TOGGLE
case "CSS" : $css_base=$pa; break; // Base des éléments du CSS
}
ceci pour la syntaxe du paramètre d'appel : "CSS:news_perso;SCROLL;SCSIZE:100;SHDATE;SHAUTH" (chacun est optionnel)
et un exemple (pour voir si çà marche) de css associé
/* CSS Document */
/* Css des news par défaut */
.news {}
.news_line {}
.news_date {font-size:xx-small;}
.news_datejj {}
.news_datemm {}
.news_dateaa {}
.news_datesep1 {}
.news_datesep2 {}
.news_title {font-size:small; color:#66FF00;font-weight: bold}
.news_read {font-size:xx-small;}
.news_author {}
.news_body {}
/* CSS des news si appelé avec le paramètre css:newsd; */
.news_d {background-color:#234567}
.news_d_line { color : #ff00ff}
.news_d_date { font-size:xx-small;}
.news_d_datejj { font-size : 1}
.news_d_datemm { font-size : 2 }
.news_d_dateaa { font-size : 3 }
.news_d_datesep1 {color : #ff0000}
.news_d_datesep2 {color : #00ff00}
.news_d_title {font-size:small; color:#FF6600;font-weight: bold}
.news_d_read {font-size:xx-small;}
.news_d_author { color : #00ffff}
.news_d_body { color : #ffff00 }
çà permet d'avoir tout plein de possibilités d'appel en ne précisant que la base du CSS ("news" ou "news_d" dans mon cas), et par défaut : "news"
PYDou
Dernière modification par pydou (21/10/2010 15:13:06)
Consultant en sécurité informatique (ISO 27001 Lead Auditor, ISO 27005 Risk Manager)
Amateur de JAZZ, Voile, Bridge
Hors ligne
oui mais la tu limitte les possibilités (quoique c'est déja énorme ce que tu propose)
mais imaginons que je veut un code couleur par rapport à une news (exemple : culturelle, cinéma, sportif , etc )
je ne peut pas alors qu'avec une balise à remplir on fait les codes qu'on veut !!!
mais bon je donne un avis et il n'est pas à prendre à la lettre
c'est déja un très gros boulot que vous faite et je suis conscient des limittes au dévellopement d'un module dans un forum !!
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
C'est encore une nouvelle demande, çà de pouvoir changer le css en fonction de la catégorie d'article ... A ce jour, il n'y a pas de catégories.
Je pense que le module est suffisamment paramétrable comme çà, la seule chose que j'y ajouterai volontiers est la gestion des utilisateurs pouvant lire un article (idée de JPG).
En attendant, essaye le code suivant pour la fonction doshow
(fichier news.css et syntaxe d'appel vus dans le précédent post à placer dans le répertoire zite/module/ )
l'inconvénient d'utiliser self::$cms->content['localcss'] est que çà charge le CSS dans html à chaque clic ... JPG y aurait-il moyen de faire autrement ?
function doshow($opt=""){
static $isfirstnewsjs=0;
if ($isfirstnewsjs++==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" : "" );
}
</script>';
}
// valeur par défaut des paramètres
$show_open=$show_scrl=$show_rdar=$show_date=$show_auth=false;
$size_scrl=100;
$css_base="news";
// chargement du CSS spécifique au module
static $isfirstnewscss=0;
if ($isfirstnewscss++==0) {
$cssfile="zite/module/news.css";
$css=file($cssfile);
self::$cms->content['localcss'].=chr(10).chr(13);
for( $i = 1 ; $i < count($css) ; $i++ ) self::$cms->content['localcss'].=$css[$i];
}
// lecture des paramètres d'appel
while (strlen($opt)>0) {
$p=(strpos($opt,";")?substr($opt,0,strpos($opt,";")):$opt);
$opt=(strpos($opt,";")?substr($opt,strpos($opt,";")+1,255):'');
$po=(strpos($p,":")?substr($p,0,strpos($p,":")):$p);
$pa=(strpos($p,":")?substr($p,strpos($p,":")+1,255):'');
switch ($po) {
case "SCROLL" : $show_open=true; break; // SCROLL TOGGLE
case "SCSIZE" : $show_scrl=true; if($pa=='') $size_scrl=$pa; break; // SCROLL SIZE
case "SHREAD" : $show_rdar=true; break; // "A LIRE" TOGGLE
case "SHDATE" : $show_date=true; break; // DATE TOGGLE
case "SHAUTH" : $show_auth=true; break; // AUTHOR TOGGLE
case "CSS" : $css_base=$pa; break; // Base des éléments du CSS
}
/* */
}
if ($show_scrl) $show_open=true; // forcer ouvert si scrolling !!!
$out='<div class="'.$css_base.'">';
if (empty(self::$cms->news)) self::$cms->news = (array)unserialize(@file_get_contents(self::$cms->cpath.'/news.dta'));
$fnews = & self::$cms->news;
ksort($fnews);
$xbr='';
if ($show_scrl) $out.='<marquee behavior="scroll" direction="up" width="100%" height="'.$size_scrl.'" scrollamount="1" scrolldelay="0" onmouseover="this.stop()" onmouseout="this.start()">';
foreach ($fnews as $clef => $valeur ) {
if( ((!$show_open) or ($valeur[7]))
and( (($_SESSION['zite_user']!='') and ($valeur[6]))
or(($_SESSION['zite_user']=='') and ($valeur[5])))) {
$out.= $xbr.'<div class="'.$css_base.'line">';
if (!$show_date) {
$out.= '<span class="'.$css_base.'_date">';
$out.= '<span class="'.$css_base.'_datejj">'.substr($valeur[3],0,2).'</span>';
$out.= '<span class="'.$css_base.'_datesep1">/</span>';
$out.= '<span class="'.$css_base.'_datemm">'.substr($valeur[3],3,2).'</span>';
$out.= '<span class="'.$css_base.'_datesep2">/</span>';
$out.= '<span class="'.$css_base.'_dateaa">'.substr($valeur[3],6,4).'</span>';
$out.= '</span>';
}
if (!$show_open) $out.= '<a style="text-decoration: none" href="javascript:toggle(\'P'.$clef.'\')">';
$out.= '<span class="'.$css_base.'_title">'.$valeur[1].'</span>';
if (!$show_rdar) $out.= '<span class="'.$css_base.'_read"> (lire l\'article)</span>';
if (!$show_open) $out.= '</a>';
$out.='<div class="'.$css_base.'_body" id="P'.$clef.'" '.($opt!='o'?' style="display:none;"':'').'><br />'.$valeur[2].'<br /><hr />';
$out.= '</div></div>';
}
}
if ($show_scrl) $out.='</marquee>';
$out.="</div>";
return $out;
}
Pour dépasser les standards, le mieux est souvent de prendre le code de base et de se faire soi même son code.
Consultant en sécurité informatique (ISO 27001 Lead Auditor, ISO 27005 Risk Manager)
Amateur de JAZZ, Voile, Bridge
Hors ligne
2 jours d'absence et çà discute ferme ... :):)
1)date modifiable : pas d'état d'âme... je n'ai pas de raison d'interdire la modification, mais il me semble important de conserver les 2 boutons existants pour plus de simplicité pour ceux qui le désirent. j'ai un très bon gestionnaire de date en JS qui 'appelle tigra-calendar pour mon site, avec code js, CSS et exemples html, paramétrable us/eu, ....
Il est visible en démo ?
D'ailleurs, si quelqu'un en connait d'autres, cela m'intéresse au plus haut point pour une future intégration dans ZitePLUS 092
2) sur le CSS par défaut incorporé au code, pas d'état d'âme non plus mais dans mon cas (regardez mon site par exemple) j'ai plusieurs modes d'affichage avec des différences importantes
- affichage ou non de la date
- défilant ou non
- fermé ou ouvert par défaut (si ouvert, pas de javascript sur le div, reste ouvert)
- taille des polices différentes
- affichage différent si on est logué ou pas et entre défilant ou pasil me faut donc plus de paramètres que le simple 'd' ou 'o' ...
Dans tous les cas, l'idée d'intégrer du CSS lors de l'ajout d'un module me semble nécessaire, mais ou et comment ??? Toutes les idées sont bonnes et la meilleure sera celle que le concepteur juge la mieux adaptée à l'existant.
Je vais fabriquer un fichier news.css qui sera livré avec le module, la façon de l'intégrer restera entre les mains de JPG
A plusieurs, on y arrivera, car je sens arriver mes limites en php dans vos posts (ou à défaut une connaissance insuffisante de ZITE+ pour bien intégrer ces concepts)
PYDou
Il y a un peu des deux ... non je blague
Pour ma part je pense que transmettre le css en paramètre n'est pas la bonne solution.
On peut (ou très exactement ou va pouvoir) tout faire ou presque avec peu de paramètre et du css bien fait
car on peut tout à fait afficher ou non des champs via css.
Le point qui te manque ... c'est les évolutions prochaines de zitePLUS et celles déjà faite en 091
Je crois que c'est Stefpei (pardon si je me trompe ) qui avait suggéré une évolution qui va être faite prochainement: un css possible pour une page (ou un panneau) donnée.
Cela me semble une façon "élégante" et efficace de résoudre cette problématique tout en gardant une structure de module simple à comprendre (en particulier au niveau des paramètre d'appel)
Mais même en 091, il est tout à fait possible de le faire via css.
Dans ta page ou tu appelles la fonction doshow(), tu mets aussi la référence à ton css particulier
par exemple avec le code:
$this->content['css'].='<link href="news.css" rel="stylesheet" type="text/css" />';
C'est pas simple ça ?
Et si tu as trois pages avec trois affichage différents, tu peux avoir trois css différents et un seul sera chargé.
Cela fait partie des grosses évolutions de la 091, mais qui ne sont pas encore documentés...
... mais qui sont faites pour simplifié la vie du développeur
a+
Jean-Paul
Hors ligne
ha bah oui mais on nous dit pas tout !!!!
je trouve cette évolution fort sympathique et qui vas réglé pas mal de détail en design
A ce jour, il n'y a pas de catégories.
pas besoin d'en créer la liberté du css te le permet ! mais faut pouvoir lui assigné une classe css!
néanmoins on trouve toujours le moyen de faire ce que l'on veut et il y a déja en vue du code fournie une panoplie très très large et fortement exploitable
jpg : avec ta dernière version de code fournie les news n'apparaisse pas à la personne non logué j'ai un message Désolé...
Vous n'avez pas accès à cette section.
Dernière modification par snypi (21/10/2010 18:24:02)
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
jpg : avec ta dernière version de code fournie les news n'apparaisse pas à la personne non logué j'ai un message Désolé...
Vous n'avez pas accès à cette section.
Bon, je présume que "public" est coché
Est-ce que tes visiteurs ont le droit d'utiliser le module ?
a+
jp
ps: @PYDou: D'ailleurs, cela ne serait pas plutôt "publique" ?
Hors ligne
salut
public coché et la page est accessible à tous le monde mais message "désolé"
pourquoi ton code marche chez toi ????
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