[SPIP] ~maj v3.0.14-->v3.0.17
[ptitvelo/web/www.git] / www / ecrire / public / balises.php
index 76b9cb6..27b8f19 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2012                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -401,9 +401,9 @@ function balise_INTRODUCTION_dist($p) {
 function balise_LANG_dist ($p) {
        $_lang = champ_sql('lang', $p);
        if (!$p->etoile)
-               $p->code = "htmlentities($_lang ? $_lang : \$GLOBALS['spip_lang'])";
+               $p->code = "spip_htmlentities($_lang ? $_lang : \$GLOBALS['spip_lang'])";
        else
-               $p->code = "htmlentities($_lang)";
+               $p->code = "spip_htmlentities($_lang)";
        $p->interdire_scripts = false;
        return $p;
 }
@@ -432,8 +432,9 @@ function balise_LESAUTEURS_dist ($p) {
                        $id_table_objet = 'id_article';
                }
                else{
-                       $connect = $p->boucles[$p->id_boucle]->sql_serveur;
-                       $type_boucle = $p->boucles[$p->id_boucle]->type_requete;
+                       $b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
+                       $connect = $p->boucles[$b]->sql_serveur;
+                       $type_boucle = $p->boucles[$b]->type_requete;
                        $objet = objet_type($type_boucle);
                        $id_table_objet = id_table_objet($type_boucle);
                }
@@ -1085,7 +1086,7 @@ function balise_INCLURE_dist($p) {
        } elseif (!isset($_contexte[1])) {
                        $msg = array('zbug_balise_sans_argument', array('balise' => ' INCLURE'));
                        erreur_squelette($msg, $p);
-       } else          $p->code = '(($c = find_in_path(' . $_contexte[1] . ')) ? spip_file_get_contents($c) : "")';
+       } else          $p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
 
        $p->interdire_scripts = false; // la securite est assuree par recuperer_fond
        return $p;
@@ -1157,7 +1158,10 @@ function balise_SET_dist($p){
        if (!$_nom OR !$_val) {
                $err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'SET'));
                erreur_squelette($err_b_s_a, $p);
-       } else  $p->code = "vide(\$Pile['vars'][(string)$_nom] = $_val)";
+       }
+       // affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
+       // cf https://bugs.php.net/bug.php?id=65845
+       else  $p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
 
        $p->interdire_scripts = false; // la balise ne renvoie rien
        return $p;