From 6e4059d86c8268e6870de1d15b41c49604987269 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Thu, 18 Feb 2010 10:01:23 +0000 Subject: [PATCH] Report de [15240] [15241] [15245] [15257] [15248] [15249] [15250] [15251] [15252] --- ecrire/exec/demande_mise_a_jour.php | 10 ++++++++++ ecrire/inc/autoriser.php | 7 +++++-- ecrire/inc/filtres.php | 2 +- ecrire/inc/notes.php | 2 +- ecrire/inc/plugin.php | 4 ++++ ecrire/inc/syndic.php | 10 ++++++++++ ecrire/inc/texte.php | 3 +-- ecrire/public/criteres.php | 2 +- ecrire/public/references.php | 2 +- 9 files changed, 34 insertions(+), 8 deletions(-) diff --git a/ecrire/exec/demande_mise_a_jour.php b/ecrire/exec/demande_mise_a_jour.php index 22f0c04566..8813bc9476 100644 --- a/ecrire/exec/demande_mise_a_jour.php +++ b/ecrire/exec/demande_mise_a_jour.php @@ -15,6 +15,16 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // http://doc.spip.org/@exec_demande_mise_a_jour_dist function exec_demande_mise_a_jour_dist() { + // on fait la verif du path avant tout, + // et l'installation des qu'on est dans la colonne principale + // si jamais la liste des plugins actifs change, il faut faire un refresh du hit + // pour etre sur que les bons fichiers seront charges lors de l'install + include_spip('inc/plugin'); + if (actualise_plugins_actifs()==-1){ + include_spip('inc/headers'); + redirige_par_entete(self()); + } + include_spip('inc/presentation'); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page('','','','',true,false,false); diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php index 425f7e2518..277b86e775 100644 --- a/ecrire/inc/autoriser.php +++ b/ecrire/inc/autoriser.php @@ -400,7 +400,9 @@ function autoriser_modererpetition_dist($faire, $type, $id, $qui, $opt) { // http://doc.spip.org/@autoriser_webmestre_dist function autoriser_webmestre_dist($faire, $type, $id, $qui, $opt) { return - $qui['webmestre']=='oui' + (defined('_ID_WEBMESTRES')? + in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES)) + :$qui['webmestre']=='oui') AND $qui['statut'] == '0minirezo' AND !$qui['restreint'] ; @@ -500,7 +502,8 @@ function autoriser_auteur_modifier_dist($faire, $type, $id, $qui, $opt) { if ($id == $qui['id_auteur'] && $opt['statut']) return false; // et toucher au statut webmestre si il ne l'est pas lui meme - elseif ($opt['webmestre'] AND !autoriser('webmestre')) + // ou si les webmestres sont fixes par constante (securite) + elseif ($opt['webmestre'] AND (defined('_ID_WEBMESTRES') OR !autoriser('webmestre'))) return false; // et toucher au statut d'un webmestre si il ne l'est pas lui meme elseif ($opt['statut'] AND autoriser('webmestre','',0,$id) AND !autoriser('webmestre')) diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index 805bfc07fc..1893204f5f 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -670,7 +670,7 @@ function securiser_acces($id_auteur, $cle, $dir, $op='', $args='') // attention c'est compile directement dans inc/references // http://doc.spip.org/@sinon function sinon ($texte, $sinon='') { - if (strlen($texte)) + if ($texte OR (is_string($texte) AND strlen($texte))) return $texte; else return $sinon; diff --git a/ecrire/inc/notes.php b/ecrire/inc/notes.php index a64b38831b..1b921e419b 100644 --- a/ecrire/inc/notes.php +++ b/ecrire/inc/notes.php @@ -28,7 +28,7 @@ function inc_notes_dist($arg) { static $pile = array(); global $les_notes, $compt_note, $notes_vues; - if (is_string($arg)) return traiter_raccourci_notes($arg, count($pile)); + if (is_string($arg)) return traiter_raccourci_notes($arg, count($pile)>1?count($pile):''); elseif (is_array($arg)) return traiter_les_notes($arg); elseif ($arg === true) { array_push($pile, array(@$les_notes, @$compt_note, $notes_vues)); diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php index 3938ba9c9f..99517aadda 100644 --- a/ecrire/inc/plugin.php +++ b/ecrire/inc/plugin.php @@ -285,6 +285,10 @@ function liste_plugin_actifs(){ function liste_chemin_plugin_actifs($dir_plugins=_DIR_PLUGINS){ $liste = liste_plugin_actifs(); foreach ($liste as $prefix=>$infos) { + // compat au moment d'une migration depuis version anterieure + // si pas de dir_type, alors c'est _DIR_PLUGINS + if (!isset($infos['dir_type'])) + $infos['dir_type'] = "_DIR_PLUGINS"; if (defined($infos['dir_type']) AND constant($infos['dir_type'])==$dir_plugins) $liste[$prefix] = $infos['dir']; diff --git a/ecrire/inc/syndic.php b/ecrire/inc/syndic.php index 78a3d99070..4673232096 100644 --- a/ecrire/inc/syndic.php +++ b/ecrire/inc/syndic.php @@ -66,10 +66,14 @@ function analyser_backend($rss, $url_syndic='') { OR ($l = extraire_attribut(extraire_balise($header, 'feed'), 'xml:lang')) ) $langue_du_site = $l; + // atom + elseif (preg_match(',<feed\s[^>]*xml:lang=[\'"]([^<>\'"]+)[\'"],i', $header, $match)) + $langue_du_site = $match[1]; // Recuperer les blocs item et entry $items = array_merge(extraire_balises($rss, 'item'), extraire_balises($rss, 'entry')); + // // Analyser chaque <item>...</item> du backend et le transformer en tableau // @@ -372,8 +376,14 @@ function ajouter_tags($matches, $item) { // cas atom1, a faire apres flickr $term = extraire_attribut($match[0], 'term') ) { +<<<<<<< .working $scheme = extraire_attribut($match[0], 'scheme'); +======= + if ($scheme = extraire_attribut($match[0], 'scheme')) +>>>>>>> .merge-right.r15241 $url = suivre_lien($scheme,$term); + else + $url = $term; } else { # type delicious.com diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 1fbd688567..1cacbec74b 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -413,12 +413,11 @@ function protege_js_modeles($t) { // aussi les balises des squelettes qui ne passent pas forcement par propre ou typo apres // http://doc.spip.org/@interdire_scripts function interdire_scripts($arg) { - // on memorise le resultat sur les arguments non triviaux static $dejavu = array(); // Attention, si ce n'est pas une chaine, laisser intact - if (!is_string($arg) OR !strstr($arg, '<')) return $arg; + if (!$arg OR !is_string($arg) OR !strstr($arg, '<')) return $arg; if (isset($dejavu[$arg])) return $dejavu[$arg]; diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 363773a80d..611fe920fb 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -632,7 +632,7 @@ function calculer_parties(&$boucles, $id_boucle, $debut, $mode) { // cas {x,n-1} if ($op2 == '-') { - $fin = '$debut_boucle + $nombre_boucle - ' + $fin = '$debut_boucle + '.$nombre_boucle.' - ' . (is_numeric($total_parties) ? ($total_parties+1) : ($total_parties . ' - 1')); } else { diff --git a/ecrire/public/references.php b/ecrire/public/references.php index 8d0e091889..2f67320cc4 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -464,7 +464,7 @@ function filtre_logique($fonc, $code, $arg) case ($fonc == 'xor') OR ($fonc == 'xou'): return "((($code) XOR ($arg)) ?' ' :'')"; case ($fonc == 'sinon'): - return "(strlen(\$a = $code) ? \$a : $arg)"; + return "((\$a OR (is_string(\$a) AND strlen(\$a = $code))) ? \$a : $arg)"; case ($fonc == 'not') OR ($fonc == 'non'): return "(($code) ?'' :' ')"; case ($fonc == 'yes') OR ($fonc == 'oui'): -- GitLab