Skip to content
Extraits de code Groupes Projets
Valider 8e9ebda2 rédigé par esj's avatar esj
Parcourir les fichiers

C'était la foire a tout le squelette de forum: code mort, fonctionnalité en berne,

obligation de coder en PHP pour changer la mise en page et j'en passe (deviner quoi).

Donc, introduction d'un nouveau squelette, choix_mots.html, permettant de 
sélectionner les mots à associer à un message. Mise en page un peu moins bien 
qu'avant mais ca va etre plus facile à améliorer maintenant.
parent 750cbec9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
* text=auto !eol * text=auto !eol
IMG/logo_spip.jpg -text IMG/logo_spip.jpg -text
dist/choix_mots.html -text
dist/style.html -text dist/style.html -text
ecrire/charsets/cp1251.php -text ecrire/charsets/cp1251.php -text
ecrire/charsets/cp1256.php -text ecrire/charsets/cp1256.php -text
......
<B_M>
<table cellpadding='0' cellspacing='0' border='0' width='100%'>
<tr><td width='47%' valign='top'>
<BOUCLE_M(MOTS){id_groupe}>
<input type='[(#ENV{unseul}|choixsiegal{oui,radio,checkbox})]'
name='ajouter_mot[]'
value='#ID_MOT'
id='mot#ID_MOT'
[(#ID_MOT|in_any{#ENV*{ajouter_mot}, ''}|?
{'checked="checked"',''})] />
#LOGO_MOT
<b><label for='mot#ID_MOT'>#TITRE</label></b><br />
</BOUCLE_M>
</td></tr></table>
</B_M>
<a id="formulaire"></a> <a id="formulaire"></a>
<form action="[(#ENV{url})][(#ENV*{previsu}|?{'#formulaire',''})]" method="post">[ <form action="[(#ENV{url})][(#ENV**{previsu}|?{'#formulaire',''})]" method="post">[
(#ENV*{parametres_forum}) <input type='hidden' name='id_article' value='(#ENV{id_article})' />][
][<p>(#ENV*{modere})</p> <input type='hidden' name='id_breve' value='(#ENV{id_breve})' />][
][(#ENV*{afficher_texte_hidden}) <input type='hidden' name='id_forum' value='(#ENV{id_forum})' />][
][(#ENV*{afficher_texte_input}) <input type='hidden' name='id_rubrique' value='(#ENV{id_rubrique})' />][
[(#ENV*{previsu}) <input type='hidden' name='id_syndic' value='(#ENV{id_syndic})' />][
<input type='hidden' name='alea' value='(#ENV{alea})' />][
<input type='hidden' name='hash' value='(#ENV{hash})' />][
<input type='hidden' name='afficher_texte' value='(#ENV{afficher_texte})' />][
<input type='hidden' name='retour_forum' value='(#ENV{retour_forum}|urlencode)' />][
<p>(#ENV{modere})<:forum_info_modere:></p>
][(#ENV*{previsu})]
<p>
<BOUCLE_G(GROUPES_MOTS){forum=oui}
{articles==(#ENV{table}|choixsiegal{articles,'oui','.*'})}
{breves==(#ENV{table}|choixsiegal{breves,'oui','.*'})}
{rubriques==(#ENV{table}|choixsiegal{rubriques,'oui','.*'})}
{syndic==(#ENV{table}|choixsiegal{syndic,'oui','.*'})}
>[(#ID_GROUPE|in_any{#ENV**{ajouter_groupe},' '})
<div class='spip_encadrer' style='font-size: 80%;'>
<b>#TITRE</b>
<INCLURE(page.php3){fond=choix_mots}
{id_groupe}
{ajouter_mot}
{unseul}>
</div>
]</BOUCLE_G>[
(#ENV**{afficher_texte}|choixsiegal{'non', ' ',''})
<br /><div align='right'>[
<input type='hidden' name='titre' value='(#ENV{titre})' />]
<input type='submit' class='spip_bouton' value="<:forum_valider:>" />
</div>][
(#ENV**{afficher_texte}|choixsiegal{'non', '',' '})
<fieldset class="spip_encadrer"> <fieldset class="spip_encadrer">
<legend><b><:forum_titre:></b></legend> <legend><b><:forum_titre:></b></legend>
<label><input type="text" name="titre" <label><input type="text" name="titre"
...@@ -18,7 +45,6 @@ ...@@ -18,7 +45,6 @@
[(#ENV{texte}|barre_forum)] [(#ENV{texte}|barre_forum)]
</fieldset> </fieldset>
<br /> <br />
[<p>(#ENV*{table})</p>]
<fieldset class="spip_encadrer"> <fieldset class="spip_encadrer">
<legend><:forum_lien_hyper:></legend> <legend><:forum_lien_hyper:></legend>
<p><:forum_page_url:></p> <p><:forum_page_url:></p>
...@@ -36,17 +62,18 @@ ...@@ -36,17 +62,18 @@
<legend><:forum_qui_etes_vous:></legend> <legend><:forum_qui_etes_vous:></legend>
<p><label><:forum_votre_nom:> <p><label><:forum_votre_nom:>
<input type="text" name="auteur" value="[(#ENV{auteur})]" <input type="text" name="auteur" value="[(#ENV{auteur})]"
class="forml" size="40" [(#ENV{disabled})] /> class="forml" size="40"[
disabled='(#ENV{disabled})'] />
</label></p> </label></p>
<p><label><:forum_votre_email:> <p><label><:forum_votre_email:>
<input type="text" name="email_auteur" <input type="text" name="email_auteur"
value="[(#ENV{email_auteur})]" value="[(#ENV{email_auteur})]"
class="forml" size="40" [(#ENV{disabled})] /> class="forml" size="40" [
disabled='(#ENV{disabled})'] />
</label></p> </label></p>
</fieldset> </fieldset>
<br />
<div align="#LANG_RIGHT"> <div align="#LANG_RIGHT">
<input type="submit" value="<:forum_voir_avant:>" <input type="submit" value="<:forum_voir_avant:>"
class="spip_bouton" /></div> class="spip_bouton" /></div>
]
]</form> ]</form>
...@@ -29,8 +29,13 @@ charger_generer_url(); ...@@ -29,8 +29,13 @@ charger_generer_url();
/*******************************/ /*******************************/
// Contexte du formulaire // Contexte du formulaire
// Mots-cles dans les forums :
// Si la variable de personnalisation $afficher_groupe[] est definie
// dans le fichier d'appel, et si la table de reference est OK, proposer
// la liste des mots-cles
global $balise_FORMULAIRE_FORUM_collecte; global $balise_FORMULAIRE_FORUM_collecte;
$balise_FORMULAIRE_FORUM_collecte = array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic'); $balise_FORMULAIRE_FORUM_collecte = array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte');
// verification des droits a faire du forum // verification des droits a faire du forum
...@@ -40,11 +45,11 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) { ...@@ -40,11 +45,11 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) {
// $filtres[0] peut contenir l'url sur lequel faire tourner le formulaire // $filtres[0] peut contenir l'url sur lequel faire tourner le formulaire
// exemple dans un squelette article.html : [(#FORMULAIRE_FORUM|forum.php)] // exemple dans un squelette article.html : [(#FORMULAIRE_FORUM|forum.php)]
// $args[5] peut contenir l'url sur lequel faire le retour // le denier arg peut contenir l'url sur lequel faire le retour
// exemple dans un squelette article.html : [(#FORMULAIRE_FORUM{#SELF})] // exemple dans un squelette article.html : [(#FORMULAIRE_FORUM{#SELF})]
// recuperer les donnees du forum auquel on repond, false = forum interdit // recuperer les donnees du forum auquel on repond, false = forum interdit
list ($idr, $idf, $ida, $idb, $ids) = $args; list ($idr, $idf, $ida, $idb, $ids, $am, $ag, $af, $url) = $args;
$idr = intval($idr); $idr = intval($idr);
$idf = intval($idf); $idf = intval($idf);
$ida = intval($ida); $ida = intval($ida);
...@@ -59,21 +64,35 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) { ...@@ -59,21 +64,35 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) {
if ($idr > 0 AND ($ida OR $idb OR $ids)) if ($idr > 0 AND ($ida OR $idb OR $ids))
$idr = 0; $idr = 0;
if (($GLOBALS['meta']["mots_cles_forums"] != "oui"))
$table = '';
return return
array($titre, $table, $forums_publics, $idr, $idf, $ida, $idb, $ids, array($titre, $table, $forums_publics, $filtres[0],
$filtres[0], $args[5]); $idr, $idf, $ida, $idb, $ids, $am, $ag, $af, $url);
} }
function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic, $url, $url_param_retour) { function balise_FORMULAIRE_FORUM_dyn(
global $REMOTE_ADDR, $afficher_texte, $_COOKIE, $_POST; $titre, $table, $type, $url,
$id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic,
$ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
{
// verifier l'identite des posteurs pour les forums sur abo
if (($type == "abo") && (!$GLOBALS["auteur_session"])) {
return array('formulaire_login_forum', 0,
array('inscription' => generer_url_public('spip_inscription'),
'oubli' => generer_url_public('spip_pass')));
}
// exclure des id_* postees du formulaire tout ce qui n'est pas nombre > 0.
// y aura plein de input hidden value=0 dans le squelette mais il faut
// que le calcul du hachage soit le meme ici et dans inc-messforum
// Recuperer les donnees postees du formulaire ou, a defaut, du contexte $ids = array('id_article' => intval($id_article),
foreach (array('id_article', 'id_breve', 'id_syndic', 'id_breve'=> intval($id_breve),
'id_rubrique', 'id_forum') as $id) 'id_forum'=> intval($id_forum),
if (isset($_POST['forum_'.$id])) 'id_rubrique'=> intval($id_rubrique),
$$id = intval($_POST['forum_'.$id]); 'id_syndic'=> intval($id_syndic));
else
$$id = intval($$id);
// url de reference // url de reference
if (!$url) { if (!$url) {
...@@ -81,27 +100,17 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq ...@@ -81,27 +100,17 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
$url = $url->getUrl(); $url = $url->getUrl();
} else { } else {
// identifiants des parents // identifiants des parents
$args = array(); $args = "";
if ($id_rubrique) $args[] = "id_rubrique=$id_rubrique"; foreach ($ids as $id => $v) $args .= "&$id=$v";
if ($id_forum) $args[] = "id_forum=$id_forum"; if (strpos($url,'?'))
if ($id_article) $args[] = "id_article=$id_article"; $url .= $args;
if ($id_breve) $args[] = "id_breve=$id_breve"; else $url .= '?' . substr($args,1);
if ($id_syndic) $args[] = "id_syndic=$id_syndic";
if (count($args))
$url .= (strpos($url,'?') ? '&' : '?'). join('&',$args);
} }
$url = ereg_replace("[?&]var_erreur=[^&]*", '', $url); $url = ereg_replace("[?&]var_erreur=[^&]*", '', $url);
$url = ereg_replace("[?&]var_login=[^&]*", '', $url); $url = ereg_replace("[?&]var_login=[^&]*", '', $url);
$url = ereg_replace("[?&]url=[^&]*", '', $url); $url = ereg_replace("[?&]url=[^&]*", '', $url);
// verifier l'identite des posteurs pour les forums sur abo
if (($forums_publics == "abo") && (!$GLOBALS["auteur_session"])) {
return array('formulaire_login_forum', 0,
array('inscription' => generer_url_public('spip_inscription'),
'oubli' => generer_url_public('spip_pass')));
}
// ne pas mettre '', sinon le squelette n'affichera rien. // ne pas mettre '', sinon le squelette n'affichera rien.
$previsu = ' '; $previsu = ' ';
...@@ -131,7 +140,7 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq ...@@ -131,7 +140,7 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
$email_auteur = $GLOBALS['auteur_session']['email']; $email_auteur = $GLOBALS['auteur_session']['email'];
} }
} else { } else { // appels ulterieurs
// Recuperer le message a previsualiser // Recuperer le message a previsualiser
$titre = _request('titre'); $titre = _request('titre');
...@@ -140,142 +149,125 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq ...@@ -140,142 +149,125 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
$email_auteur = _request('email_auteur'); $email_auteur = _request('email_auteur');
$nom_site_forum = _request('nom_site_forum'); $nom_site_forum = _request('nom_site_forum');
$url_site = _request('url_site'); $url_site = _request('url_site');
$ajouter_mot = _request('ajouter_mot'); // array
// Verifier mots associes au message
if (is_array($ajouter_mot))
$mots = preg_replace('/[^0-9,]/', '', join(',',$ajouter_mot));
else $mots = '0';
// affichage {par num type, type, num titre,titre}
$result_mots = spip_query("SELECT id_mot, titre, type
FROM spip_mots
WHERE id_mot IN ($mots)
ORDER BY 0+type,type,0+titre,titre");
if (spip_num_rows($result_mots)>0) {
$mots_forums = "<p>"._T('forum_avez_selectionne')."</p><ul>";
while ($row = spip_fetch_array($result_mots)) {
$les_mots[$row['id_mot']] = "checked='checked'";
$presence_mots = true;
$mots_forums .= "<li style='font-size: 80%;'> "
. typo($row['type']) . "&nbsp;: <b>"
. typo($row['titre']) ."</b></li>";
}
$mots_forums .= '</ul>';
}
//
// Preparer la previsualisation
//
if ($afficher_texte != 'non') {
if (strlen($texte) < 10 AND !$presence_mots)
$erreur = _T('forum_attention_dix_caracteres');
else if (strlen($titre) < 3 AND $afficher_texte <> "non")
$erreur = _T('forum_attention_trois_caracteres');
else
$bouton = _T('forum_message_definitif');
$previsu = inclure_balise_dynamique(
array(
'formulaire_forum_previsu',
0,
array(
'titre' => safehtml(typo($titre)),
'email_auteur' => safehtml($email_auteur),
'auteur' => safehtml(typo($auteur)),
'texte' => safehtml(propre($texte)),
'url_site' => safehtml($url_site),
'nom_site_forum' =>
safehtml(typo($nom_site_forum)),
'mots_forum' => $mots_forum,
'erreur' => $erreur,
'bouton' => $bouton
)
), false);
// supprimer les <form> de la previsualisation
// (sinon on ne peut pas faire <cadre>...</cadre> dans les forums)
$previsu = preg_replace("@<(/?)f(orm[>[:space:]])@ism",
"<\\1no-f\\2", $previsu);
}
// Une securite qui nous protege contre : if ($afficher_texte != 'non')
// - les doubles validations de forums (derapages humains ou des brouteurs) $previsu = inclure_previsu($texte, $titre, $email_auteur, $auteur, $url_site, $nom_site_forum, $ajouter_mot);
// - les abus visant a mettre des forums malgre nous sur un article (??)
// On installe un fichier temporaire dans _DIR_SESSIONS (et pas _DIR_CACHE
// afin de ne pas bugguer quand on vide le cache)
// Le lock est leve au moment de l'insertion en base (inc-messforum)
// Ce systeme n'est pas fonctionnel pour les forums sans previsu (notamment
// si $afficher_texte = 'non')
$alea = preg_replace('/[^0-9]/', '', $alea);
if(!$alea OR !@file_exists(_DIR_SESSIONS."forum_$alea.lck")) {
while (
# astuce : mt_rand pour autoriser les hits simultanes
$alea = time() + @mt_rand()
AND @file_exists($f = _DIR_SESSIONS."forum_$alea.lck")) {};
spip_touch ($f);
}
# et maintenant on purge les locks de forums ouverts depuis > 4 h $alea = forum_fichier_tmp();
if ($dh = @opendir(_DIR_SESSIONS)) $hash = calculer_action_auteur("ajout_forum " .
while (($file = @readdir($dh)) !== false) $ids['id_rubrique'] ." " .
if (preg_match('/^forum_([0-9]+)\.lck$/', $file) $ids['id_forum'] ." " .
AND (time()-@filemtime(_DIR_SESSIONS.$file) > 4*3600)) $ids['id_article'] ." " .
@unlink(_DIR_SESSIONS.$file); $ids['id_breve'] ." " .
$ids['id_syndic'] ." " .
$hash = calculer_action_auteur("ajout_forum $id_rubrique $id_forum $id_article $id_breve $id_syndic $alea"); $alea);
} }
// Faut-il ajouter des propositions de mots-cles
if ($table AND ($GLOBALS['meta']["mots_cles_forums"] == "oui"))
$table = table_des_mots($table, $les_mots);
else
$table = '';
// preparer les parametres du forum en input hidden
$parametres_forum = '';
foreach (array('alea', 'hash', 'retour_forum') as $var)
if ($val = entites_html($$var))
$parametres_forum .=
"<input type='hidden' name='$var' value=\"$val\" />\n";
foreach (array(
'id_article', 'id_breve', 'id_syndic', 'id_rubrique', 'id_forum')
as $var)
if ($val = $$var)
$parametres_forum .=
"<input type='hidden' name='forum_$var' value='$val' />\n";
return array('formulaire_forum', 0, return array('formulaire_forum', 0,
array( array(
'auteur' => $auteur, 'auteur' => $auteur,
'disabled' => ($forums_publics == "abo")? " disabled='disabled'" : '', 'disabled' => ($type == "abo")? "disabled" : '',
'email_auteur' => $email_auteur, 'email_auteur' => $email_auteur,
'modere' => (($forums_publics != 'pri') ? '' : _T('forum_info_modere')), 'modere' => (($type != 'pri') ? '' : ' '),
'nom_site_forum' => $nom_site_forum, 'nom_site_forum' => $nom_site_forum,
'retour_forum' => $retour_forum,
'afficher_texte' => $afficher_texte,
'previsu' => $previsu, 'previsu' => $previsu,
'table' => $table, 'table' => $table,
'texte' => $texte, 'texte' => $texte,
'titre' => extraire_multi($titre), 'titre' => extraire_multi($titre),
'url' => $url, 'url' => $url,
'url_site' => ($url_site ? $url_site : "http://"), 'url_site' => ($url_site ? $url_site : "http://"),
'parametres_forum' => $parametres_forum, 'id_article' => $ids['id_article'],
'id_breve' => $ids['id_breve'],
## gestion des la variable de personnalisation $afficher_texte 'id_forum' => $ids['id_forum'],
# mode normal : afficher le texte en < input text >, cf. squelette 'id_rubrique' => $ids['id_rubrique'],
'afficher_texte_input' => (($afficher_texte <> 'non') ? '&nbsp;' : ''), 'id_syndic' => $ids['id_syndic'],
# mode 'non' : afficher les elements en < input hidden > 'alea' => $alea,
'afficher_texte_hidden' => (($afficher_texte <> 'non') ? '' : 'hash' => $hash,
(boutonne('hidden', 'titre', htmlspecialchars($titre)) . 'ajouter_groupe' => $ajouter_groupe,
$table . 'ajouter_mot' => (is_array($ajouter_mot) ? $ajouter_mot : array()),
"\n<br /><div align='right'>" .
boutonne('submit', '', _T('forum_valider'),
"class='spip_bouton'") .
"</div>"))
)); ));
} }
function inclure_previsu($texte,$titre, $email_auteur, $auteur, $url_site, $nom_site_forum, $ajouter_mot)
{
$mots_forum = $erreur = $bouton = '';
if (is_array($ajouter_mot)) {
$result_mots = spip_query("SELECT id_mot, titre, type
FROM spip_mots
WHERE id_mot IN (" #securite XSS
. preg_replace('/[^0-9,]/', '', join(',',$ajouter_mot))
. ") ORDER BY 0+type,type,0+titre,titre");
if (spip_num_rows($result_mots)>0) {
$mots_forum = "<p>"._T('forum_avez_selectionne')."</p><ul>";
while ($row = spip_fetch_array($result_mots)) {
$mots_forum .= "<li style='font-size: 80%;'> "
. typo($row['type']) . "&nbsp;: <b>"
. typo($row['titre']) ."</b></li>";
}
$mots_forum .= '</ul>';
}
}
if (strlen($texte) < 10 AND !$mots_forum)
$erreur = _T('forum_attention_dix_caracteres');
else if (strlen($titre) < 3)
$erreur = _T('forum_attention_trois_caracteres');
else
$bouton = _T('forum_message_definitif');
// supprimer les <form> de la previsualisation
// (sinon on ne peut pas faire <cadre>...</cadre> dans les forums)
return preg_replace("@<(/?)f(orm[>[:space:]])@ism",
"<\\1no-f\\2",
inclure_balise_dynamique(array('formulaire_forum_previsu',
0,
array(
'titre' => safehtml(typo($titre)),
'email_auteur' => safehtml($email_auteur),
'auteur' => safehtml(typo($auteur)),
'texte' => safehtml(propre($texte)),
'url_site' => safehtml($url_site),
'nom_site_forum' => safehtml(typo($nom_site_forum)),
'mots_forum' => $mots_forum,
'erreur' => $erreur,
'bouton' => $bouton
)
),
false));
}
// Une securite qui nous protege contre :
// - les doubles validations de forums (derapages humains ou des brouteurs)
// - les abus visant a mettre des forums malgre nous sur un article (??)
// On installe un fichier temporaire dans _DIR_SESSIONS (et pas _DIR_CACHE
// afin de ne pas bugguer quand on vide le cache)
// Le lock est leve au moment de l'insertion en base (inc-messforum)
// Ce systeme n'est pas fonctionnel pour les forums sans previsu (notamment
// si $afficher_texte = 'non')
function forum_fichier_tmp()
{
# astuce : mt_rand pour autoriser les hits simultanes
while (($alea = time() + @mt_rand())
AND @file_exists($f = _DIR_SESSIONS."forum_$alea.lck"))
{};
spip_touch ($f);
# et maintenant on purge les locks de forums ouverts depuis > 4 h
if ($dh = @opendir(_DIR_SESSIONS))
while (($file = @readdir($dh)) !== false)
if (preg_match('/^forum_([0-9]+)\.lck$/', $file)
AND (time()-@filemtime(_DIR_SESSIONS.$file) > 4*3600))
@unlink(_DIR_SESSIONS.$file);
return $alea;
}
// filtres pour le squelette
function barre_forum($texte) { function barre_forum($texte) {
include_ecrire('inc_layer'); include_ecrire('inc_layer');
...@@ -295,84 +287,10 @@ onkeyup='storeCaret(this);' ...@@ -295,84 +287,10 @@ onkeyup='storeCaret(this);'
ondbclick='storeCaret(this);'>$texte</textarea>"; ondbclick='storeCaret(this);'>$texte</textarea>";
} }
// Mots-cles dans les forums : function in_any($val, $vals, $def) {
// Si la variable de personnalisation $afficher_groupe[] est definie return (!is_array($vals) ? $def : (in_array($val, $vals) ? ' ' : ''));
// dans le fichier d'appel, et si la table de reference est OK, proposer
// la liste des mots-cles
function table_des_mots($table, $les_mots) {
global $afficher_groupe;
if (is_array($afficher_groupe))
$in_group = " AND id_groupe IN (" . join($afficher_groupe, ", ") .")";
else
$in_group = '';
$result_groupe = spip_query("SELECT * FROM spip_groupes_mots
WHERE forum = 'oui' AND $table = 'oui'". $in_group);
$ret = '';
while ($row_groupe = spip_fetch_array($result_groupe)) {
$id_groupe = $row_groupe['id_groupe'];
$titre_groupe = propre($row_groupe['titre']);
$unseul = ($row_groupe['unseul']== 'oui') ? 'radio' : 'checkbox';
$result =spip_query("SELECT * FROM spip_mots
WHERE id_groupe='$id_groupe'");
$total_rows = spip_num_rows($result);
if ($total_rows > 0) {
$ret .= "\n<p />"
. "<div class='spip_encadrer' style='font-size: 80%;'>"
. "<b>$titre_groupe&nbsp;:</b>"
. "<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n"
."<tr><td width='47%' valign='top'>";
$i = 0;
while ($row = spip_fetch_array($result)) {
$id_mot = $row['id_mot'];
$titre_mot = propre($row['titre']);
$descriptif_mot = propre($row['descriptif']);
if ($i >= ($total_rows/2) AND $i < $total_rows) {
$i = $total_rows + 1;
$ret .= "</td><td width='6%'>&nbsp;</td>
<td width='47%' valign='top'>";
}
$ret .= boutonne($unseul, "ajouter_mot[]", $id_mot, "id='mot$id_mot' " . $les_mots[$id_mot]) .
afficher_petits_logos_mots($id_mot)
. "<b><label for='mot$id_mot'>$titre_mot</label></b><br />";
if ($descriptif_mot)
$ret .= "$descriptif_mot<br />";
$i++;
}
$ret .= "</td></tr></table>";
$ret .= "</div>";
}
}
return $ret;
}
function afficher_petits_logos_mots($id_mot) {
include_ecrire('inc_logos');
$on = cherche_image_nommee("moton$id_mot");
if ($on) {
$image = ("$on[0]$on[1].$on[2]");
$taille = @getimagesize($image);
$largeur = $taille[0];
$hauteur = $taille[1];
if ($largeur < 100 AND $hauteur < 100)
return "<img src='$image' align='middle' width='$largeur'
height='$hauteur' hspace='1' vspace='1' alt=' ' border='0'
class='spip_image' /> ";
}
} }
/*******************************************************/ /*******************************************************/
/* FONCTIONS DE CALCUL DES DONNEES DU FORMULAIRE FORUM */ /* FONCTIONS DE CALCUL DES DONNEES DU FORMULAIRE FORUM */
/*******************************************************/ /*******************************************************/
......
...@@ -642,7 +642,6 @@ function balise_EXTRA_dist ($p) { ...@@ -642,7 +642,6 @@ function balise_EXTRA_dist ($p) {
// //
function balise_PARAMETRES_FORUM_dist($p) { function balise_PARAMETRES_FORUM_dist($p) {
include_local(find_in_path('inc-formulaire_forum' . _EXTENSION_PHP));
$_id_article = champ_sql('id_article', $p); $_id_article = champ_sql('id_article', $p);
$p->code = ' $p->code = '
// refus des forums ? // refus des forums ?
......
...@@ -122,7 +122,8 @@ function enregistre_forum() { ...@@ -122,7 +122,8 @@ function enregistre_forum() {
global $REMOTE_ADDR, $auteur_session, global $REMOTE_ADDR, $auteur_session,
$afficher_texte, $ajouter_mot, $alea, $hash, $afficher_texte, $ajouter_mot, $alea, $hash,
$auteur, $confirmer_forum, $email_auteur, $id_auteur, $auteur, $confirmer_forum, $email_auteur, $id_auteur,
$nom_site_forum, $retour_forum, $texte, $titre, $url_site; $nom_site_forum, $retour_forum, $texte, $titre, $url_site,
$id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic;
$retour_forum = rawurldecode($retour_forum); $retour_forum = rawurldecode($retour_forum);
...@@ -133,14 +134,6 @@ function enregistre_forum() { ...@@ -133,14 +134,6 @@ function enregistre_forum() {
$calculer_retour = true; $calculer_retour = true;
} }
// Recuperer les donnees postees du formulaire ou stocker '0'
foreach (array('id_article', 'id_breve', 'id_syndic',
'id_rubrique', 'id_forum') as $id)
if (isset($_POST['forum_'.$id]))
$$id = intval($_POST['forum_'.$id]);
else
$$id = 0;
// initialisation de l'eventuel visiteur connecte // initialisation de l'eventuel visiteur connecte
if (!$id_auteur) if (!$id_auteur)
$id_auteur = intval($auteur_session['id_auteur']); $id_auteur = intval($auteur_session['id_auteur']);
......
...@@ -14,8 +14,8 @@ else ...@@ -14,8 +14,8 @@ else
$fond = '404'; $fond = '404';
// Securite // Securite
if (strstr($fond, '/') if (strstr($fond, '/') ){
OR preg_match(',^formulaire_,i', $fond)) { #OR preg_match(',^formulaire_,i', $fond)) {
die ("Faut pas se gener"); die ("Faut pas se gener");
} }
if (!find_in_path("$fond.html")) { if (!find_in_path("$fond.html")) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter