From cdf70b1090b02ee12592688710644538a0b335de Mon Sep 17 00:00:00 2001 From: Antoine Pitrou <pitrou@free.fr> Date: Tue, 16 Sep 2003 00:19:47 +0000 Subject: [PATCH] forums publics --- ecrire/inc_texte.php3 | 17 ++++++----------- forum.php3 | 5 +---- inc-cache.php3 | 3 +++ inc-calcul-squel.php3 | 20 +++++++++++++------- inc-forum.php3 | 27 +++++++++------------------ inc-public-global.php3 | 1 + spip_login.php3 | 1 - 7 files changed, 33 insertions(+), 41 deletions(-) diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3 index ea67ccf392..f5cb47cea9 100644 --- a/ecrire/inc_texte.php3 +++ b/ecrire/inc_texte.php3 @@ -135,9 +135,6 @@ function nettoyer_chapo($chapo){ function echappe_html($letexte,$source) { global $flag_pcre; - - - if ($flag_pcre) { // beaucoup plus rapide si on a pcre $regexp_echap_html = "<html>((.*?))<\/html>"; $regexp_echap_code = "<code>((.*?))<\/code>"; @@ -184,8 +181,6 @@ function echappe_html($letexte,$source) { } - - $pos = strpos($letexte, $regs[0]); $letexte = substr($letexte,0,$pos)."@@SPIP_$source$num_echap@@" .substr($letexte,$pos+strlen($regs[0])); @@ -211,12 +206,12 @@ function echappe_html($letexte,$source) { $les_echap[$num_echap] = $rempl; } - // // Echapper les <a href> // + //$regexp_echap = "<a[[:space:]][^>]+>"; - $regexp_echap = "<[^>]+>"; // Echappement tout HTML + $regexp_echap = "<[^>]+>"; // Echappement tout HTML while (eregi($regexp_echap, $letexte, $regs)) { $num_echap++; $les_echap[$num_echap] = $regs[0]; @@ -372,10 +367,10 @@ function typo($letexte) { $letexte = typo_fr($letexte); else $letexte = typo_en($letexte); - - - $letexte = ereg_replace("'", "’", $letexte); - + + + $letexte = str_replace("'", "’", $letexte); + $letexte = corriger_caracteres($letexte); $letexte = echappe_retour($letexte, $les_echap, "SOURCETYPO"); diff --git a/forum.php3 b/forum.php3 index d3080daf0f..f027e0261b 100644 --- a/forum.php3 +++ b/forum.php3 @@ -1,10 +1,7 @@ <?php $fond = "forum"; -$delais = 0; - - +$delais = 3600; include ("inc-public.php3"); - ?> diff --git a/inc-cache.php3 b/inc-cache.php3 index ef717de1a8..1215ae1e4a 100644 --- a/inc-cache.php3 +++ b/inc-cache.php3 @@ -11,6 +11,8 @@ define("_INC_CACHE", "1"); // function generer_nom_fichier_cache($fichier_requete) { + global $HTTP_POST_VARS; + $md_cache = md5($fichier_requete); $fichier_cache = ereg_replace('^/+', '', $fichier_requete); @@ -22,6 +24,7 @@ function generer_nom_fichier_cache($fichier_requete) { if (!$fichier_cache) $fichier_cache = 'INDEX-'; + if (!empty($HTTP_POST_VARS)) $fichier_cache .= '.'.@getmypid(); $fichier_cache .= '.'.substr($md_cache, 1, 6); $subdir_cache = substr($md_cache, 0, 1); diff --git a/inc-calcul-squel.php3 b/inc-calcul-squel.php3 index 90e9a6591c..95242b24d9 100644 --- a/inc-calcul-squel.php3 +++ b/inc-calcul-squel.php3 @@ -1359,27 +1359,33 @@ function calculer_champ($id_champ, $id_boucle, $nom_var) $milieu = ' switch ($pile_boucles[$id_instance]->type_requete) { case "articles": - $'.$nom_var.' = retour_forum(0, 0, $contexte["id_article"], 0, 0); + $'.$nom_var.' = "<"."?php include_local(\'inc-forum.php3\'); + echo retour_forum(0, 0, $contexte[id_article], 0, 0); ?".">"; break; case "breves": - $'.$nom_var.' = retour_forum(0, 0, 0, $contexte["id_breve"], 0); + $'.$nom_var.' = "<"."?php include_local(\'inc-forum.php3\'); + echo retour_forum(0, 0, 0, $contexte[id_breve], 0); ?".">"; break; case "forums": - $'.$nom_var.' = retour_forum($contexte["id_rubrique"], $contexte["id_forum"], $contexte["id_article"], $contexte["id_breve"], $contexte["id_syndic"]); + $'.$nom_var.' = "<"."?php include_local(\'inc-forum.php3\'); + echo retour_forum(0, $contexte[id_forum], 0, 0, 0); ?".">"; break; case "rubriques": - $'.$nom_var.' = retour_forum($contexte["id_rubrique"], 0, 0, 0, 0); + $'.$nom_var.' = "<"."?php include_local(\'inc-forum.php3\'); + echo retour_forum($contexte[id_rubrique], 0, 0, 0, 0); ?".">"; break; case "syndication": - $'.$nom_var.' = retour_forum(0, 0, 0, 0, $contexte["id_syndic"]); + $'.$nom_var.' = "<"."?php include_local(\'inc-forum.php3\'); + echo retour_forum(0, 0, 0, 0, $contexte[id_syndic]); ?".">"; break; default: - $'.$nom_var.' = retour_forum($contexte["id_rubrique"], $contexte["id_forum"], $contexte["id_article"], $contexte["id_breve"], $contexte["id_syndic"]); + $'.$nom_var.' = "<"."?php include_local(\'inc-forum.php3\'); + echo retour_forum(\'$contexte[id_rubrique]\', \'$contexte[id_forum]\', \'$contexte[id_article]\', \'$contexte[id_breve]\', \'$contexte[id_syndic]\'); ?".">"; break; } '; @@ -1517,7 +1523,7 @@ function calculer_champ($id_champ, $id_boucle, $nom_var) $code = applique_filtres ($fonctions, $code); - $milieu .= " \$$nom_var = $code;\n"; + if ($code != "\$$nom_var") $milieu .= "\t\$$nom_var = $code;\n"; return $milieu; } diff --git a/inc-forum.php3 b/inc-forum.php3 index d8bcecd82e..74f51a4f19 100644 --- a/inc-forum.php3 +++ b/inc-forum.php3 @@ -85,7 +85,7 @@ document.write("<a href=\\"javascript:window.open(\\\'spip_pass.php3\\\', \\\'sp //--></script><noscript><a href=\'spip_pass.php3\' target=\'_blank\'></noscript>'._T('forum_vous_inscrire').'<br>'; login('', false, $message_login); return false; - } + } } @@ -105,22 +105,21 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd if (!$retour) $retour = rawurlencode($lien); - if ($forums_publics == "abo") // forums abo - $ret .= '<'.'?php include("inc-forum.php3"); if (forum_abonnement($retour)) { ?'.'>'; - else - $ret .= '<'.'?php { ?'.'>'; + if ($forums_publics == 'abo') { + if (!forum_abonnement($retour)) return; + } $ret .= "\n<a name='formulaire_forum'></a>\n"; - if (!$id_message) { + if (!$id_message = intval($id_message)) { $ret .= "\n<form action='$lien' name='formulaire' method='post'>"; } - + if ($forums_publics == "pri") { $ret.= _T('forum_info_modere')."<p>"; } // recuperer le titre - if (! $titre) { + if (!$titre) { if ($id_parent) $titre_select = "SELECT titre FROM spip_forum WHERE id_forum = $id_parent"; else if ($id_rubrique) @@ -138,8 +137,6 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $titre = '> ' . ereg_replace ('^[>[:space:]]*', '', $res->titre); } - - if ($id_message){ $query_forum="SELECT * FROM spip_forum WHERE ip=\"$REMOTE_ADDR\" AND id_forum=$id_message"; $result_forum=spip_query($query_forum); @@ -161,7 +158,7 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $ret .= "<p>".propre($texte)."<p>"; } - $ret .= "<a href='$url_site'>".typo($nom_site_forum)."</a>"; + $ret .= "<a href='".entites_html($url_site)."'>".typo($nom_site_forum)."</a>"; // Verifier mots associes au message @@ -176,7 +173,6 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $presence_mots = true; $ret.= "<li> $type_mot : <b>$titre_mot</b>"; - } if (strlen($texte) < 10 AND !$presence_mots) { @@ -322,7 +318,7 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd if (!$url_site) $url_site = "http://"; $ret .= "\n"._T('forum_url'); - $ret .= "<br />\n<input type='text' class='forml' name='url_site' value=\"$url_site\" size='40' /></div>"; + $ret .= "<br />\n<input type='text' class='forml' name='url_site' value=\"".entites_html($url_site)."\" size='40' /></div>"; $ret .= "\n<br /><div class='spip_encadrer'>"._T('forum_qui_etes_vous')."<br />"; @@ -347,8 +343,6 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $ret .= "</form>"; - $ret .= '<'.'?php } ?'.'>'; // fin forums abo - return $ret; } @@ -410,7 +404,6 @@ function ajout_forum() { } } - switch($forums_publics) { case "non": $etat = "off"; @@ -423,8 +416,6 @@ function ajout_forum() { break; } - - if (!$id_auteur) $id_auteur = $GLOBALS['auteur_session']['id_auteur']; $auteur_session = $GLOBALS['auteur_session']['email']; diff --git a/inc-public-global.php3 b/inc-public-global.php3 index 50231addf1..dc325e63fa 100644 --- a/inc-public-global.php3 +++ b/inc-public-global.php3 @@ -162,6 +162,7 @@ $effacer_cache |= $ecraser_cache; // ecraser le cache de l'article x s'il n'est // Envoyer les entetes $headers_only = ($HTTP_SERVER_VARS['REQUEST_METHOD'] == 'HEAD'); +if ($HTTP_SERVER_VARS['REQUEST_METHOD'] == 'HEAD') $flag_dynamique = true; if (!$effacer_cache && !$flag_dynamique && $recalcul != 'oui') { if ($lastmodified) { $gmoddate = gmdate("D, d M Y H:i:s", $lastmodified); diff --git a/spip_login.php3 b/spip_login.php3 index 9c763744cd..b1adf4a3f9 100644 --- a/spip_login.php3 +++ b/spip_login.php3 @@ -1,7 +1,6 @@ <?php $fond = "login"; $delais = 3600; -$flag_preserver = true; $flag_dynamique = true; include ("inc-public.php3"); -- GitLab