diff --git a/ecrire/exec/demande_mise_a_jour.php b/ecrire/exec/demande_mise_a_jour.php index 22f0c04566f5416a70c3f38145b6577b32392d52..8813bc94760003b9c9c128dad56a7115ced48bc6 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 425f7e2518bed4c3348f87a5e3a803e54af0afbd..277b86e775b514c35581238affec23a04495c409 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 805bfc07fc79d2ad10c5b9fa22b5f81e2609089e..1893204f5f475d8b26b8a70711625b180ae32988 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 a64b38831bd8c703edbd03565a84768a8c77e044..1b921e419b760fd558397171e233a0d96292a357 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 3938ba9c9f586dfa07db15e21131dea511944fc1..99517aadda9969ba5b2dab75db0025f9fcb77959 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 78a3d990708f67330d734bcc417b39b27a39618b..4673232096b050ade42cf79580c97226ef7d20c2 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 1fbd688567e8df3c94c042b47dc4bb67b5ef7664..1cacbec74b7ed107169b6d03624d7c2b4cc1fe93 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 363773a80d0faa68df5047c4bf21056640275303..611fe920fb2b0ad0146a1c010ea1ee25fd0bf8b2 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 8d0e091889df3d7aacfa5d42b41ac9db92af6a07..2f67320cc455d229992814789209c3f895894f60 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'):