Changeset 107153 in spip-zone


Ignore:
Timestamp:
Oct 25, 2017, 5:13:44 AM (3 years ago)
Author:
patfr@…
Message:

Elements de compatibilité pour Spip 3.1

Location:
_plugins_/couteau_suisse
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/config_outils.php

    r104338 r107153  
    251251));
    252252
     253/*
     254## valeurs modifiables dans mes_options
     255## attention il est tres mal vu de prendre une periode < 20 minutes
     256if (!defined('_PERIODE_SYNDICATION'))
     257        define('_PERIODE_SYNDICATION', 2*60);
     258if (!defined('_PERIODE_SYNDICATION_SUSPENDUE'))
     259        define('_PERIODE_SYNDICATION_SUSPENDUE', 24*60);
     260*/     
    253261
    254262add_variables( array(
  • _plugins_/couteau_suisse/cout_lancement.php

    r103864 r107153  
    295295
    296296// renvoie _T('couteauprive:'.$texte) puis detruit la chaine du module concerne
    297 function couteauprive_T($texte, $args=array()) {
    298         $res = _T('couteauprive:'.$texte, $args);
    299         if(defined('_SPIP19300') && isset($GLOBALS[$tmp='i18n_couteauprive_'.$GLOBALS['spip_lang']][$texte]))
    300                         unset($GLOBALS[$tmp][$texte]);
    301         return $res;
     297if(defined('_SPIP30100')) {
     298        function couteauprive_T($texte, $args = array()) {
     299                $res = _T('couteauprive:'.$texte, $args, array('sanitize' => FALSE));
     300                if(isset($GLOBALS[$tmp='i18n_couteauprive_'.$GLOBALS['spip_lang']][$texte]))
     301                                unset($GLOBALS[$tmp][$texte]);
     302                return $res;
     303        }
     304} else {
     305        function couteauprive_T($texte, $args = array()) {
     306                $res = _T('couteauprive:'.$texte, $args);
     307                if(defined('_SPIP19300') && isset($GLOBALS[$tmp='i18n_couteauprive_'.$GLOBALS['spip_lang']][$texte]))
     308                                unset($GLOBALS[$tmp][$texte]);
     309                return $res;
     310        }
    302311}
    303312
  • _plugins_/couteau_suisse/cout_utils.php

    r103864 r107153  
    477477        $temp_jq = count($temp_jq)?"\njQuery(document).ready(function(){\n\t".join("\n\t", $temp_jq)."\n});":'';
    478478        $temp_js[] = "if(window.jQuery) {\nvar cs_sel_jQuery=typeof jQuery(document).selector=='undefined'?'@':'';\nvar cs_CookiePlugin=\"<cs_html>#CHEMIN{javascript/jquery.cookie.js}</cs_html>\";$temp_jq\n}";
     479        // la fonction prop() remplace attr() sous jQuery 1.6
     480        if(!defined('_SPIP30000')) $temp_js[] = "if(typeof jQuery.fn.prop !== 'function') jQuery.fn.prop=function(name, value){
     481        if (typeof value === 'undefined') return this.attr(name); else return this.attr(name, value); };";
    479482        unset($temp_jq);
    480483        if(count($temp_js)) {
  • _plugins_/couteau_suisse/couteau_suisse_fonctions.php

    r64979 r107153  
    3636function cs_javascript($chaine) { return unicode_to_javascript(addslashes(html2unicode($chaine))); }
    3737
     38// Fonction propre() sans echapper_html_suspect() (SPIP >= 3.1)
     39function cs_propre_sain($texte) {
     40        if (!$texte or !defined('_SPIP30100')
     41                or strpos($texte, '<') === false or strpos($texte, '=') === false) {
     42                return propre($texte);
     43        }
     44        $texte = propre(str_replace('=', '#CSEGAL#', $texte));
     45        return str_replace('#CSEGAL#', '=', $texte);
     46}
     47
    3848?>
  • _plugins_/couteau_suisse/couteau_suisse_options.php

    r72136 r107153  
    2828$GLOBALS['spip_version_code'] = str_replace(',','.',$GLOBALS['spip_version_code']);
    2929// constantes de compatibilite
    30 // (pour info : SPIP 2.0 => 12691, SPIP 2.1 => 15133, SPIP 2.2 => ??, , SPIP 3.0 => 17743)
    31 if ($GLOBALS['spip_version_code']>=17743)
     30// (pour info : SPIP 2.0 => 12691, SPIP 2.1 => 15133, SPIP 2.2 => ??, , SPIP 3.0 => 17743, SPIP 3.1 => 22159)
     31if ($GLOBALS['spip_version_code']>=22159)
     32        { @define('_SPIP30100', 1); @define('_SPIP30000', 1); @define('_SPIP20200', 1); @define('_SPIP20100', 1); @define('_SPIP19300', 1); @define('_SPIP19200', 1); }
     33elseif ($GLOBALS['spip_version_code']>=17743)
    3234        { @define('_SPIP30000', 1); @define('_SPIP20200', 1); @define('_SPIP20100', 1); @define('_SPIP19300', 1); @define('_SPIP19200', 1); }
    3335elseif (!strncmp($GLOBALS['spip_version_affichee'],'2.2',3))
  • _plugins_/couteau_suisse/exec/admin_couteau_suisse.php

    r104343 r107153  
    206206        $t = '';
    207207        if(isset($GLOBALS['cs_installer'])) foreach(array_keys($GLOBALS['cs_installer']) as $pack)
    208                 $t .= '<br/>&bull;&nbsp;' . couteauprive_T('pack_du', array('pack'=>"{[{$pack}|".couteauprive_T('pack_installe').'->' . generer_url_ecrire($exec,'cmd=install&pack='.urlencode($pack)) . ']}'));
     208                $t .= "\n_ &bull;&nbsp;" . couteauprive_T('pack_du', array('pack'=>"{[{$pack}|".couteauprive_T('pack_installe').'->' . generer_url_ecrire($exec,'cmd=install&pack='.urlencode($pack)) . ']}'));
    209209        $tr = defined('_SPIP30000')?_T('info_traductions'):ucfirst(_T('afficher_trad'));
    210210        $erreur_base = (isset($GLOBALS['meta']['couteau_suisse_base_version']) && version_compare($GLOBALS['meta']['couteau_suisse_base_version'],$cs_version_base,'<'))
    211211                ?"<span style='color:red'>DB v$cs_version_base => v".$GLOBALS['meta']['couteau_suisse_base_version'].' ??</span><br/>':'';
    212         $t = propre('<div>' . $erreur_base . couteauprive_T('help2', array(
    213                         'version' => $cs_version.$cs_revision.'<br/>'.
     212        $t = cs_propre_sain('<div>' . $erreur_base . couteauprive_T('help2', array(
     213                        'version' => $cs_version.$cs_revision."\n_ ".
    214214                                (defined('_CS_PAS_DE_DISTANT')?'('.couteauprive_T('version_distante_off').')':'<span class="cs_version">'.couteauprive_T('version_distante').'</span>')
    215215                                ))
    216216                . chargement_automatique($dir)
    217217                . '</div><div>&bull;&nbsp;[' . couteauprive_T('pack_titre') . '|' . couteauprive_T('pack_alt') . '->' . generer_url_ecrire($exec,'cmd=pack#cs_infos')
    218                 . ']<br/>&bull;&nbsp;[' . $tr . '|' . $tr . '->' . generer_url_ecrire($exec,'cmd=trad#cs_infos')
     218                . "]\n_ &bull;&nbsp;[" . $tr . '|' . $tr . '->' . generer_url_ecrire($exec,'cmd=trad#cs_infos')
    219219                . "]</div><div style=\"white-space: nowrap;\">"
    220220                . couteauprive_T('help3', array(
  • _plugins_/couteau_suisse/inc/actions_compat.php

    r59861 r107153  
    66function cs_ajax_outil_greffe($idom, $corps)    {
    77        // en fait, ajax uniquement si une modif est demandee...
    8         return _request('modif')=='oui'
     8        return _request('modif') == 'oui'
    99                ?'<div class="cs_modif_ok">&gt;&nbsp;'._T('couteauprive:vars_modifiees')."&nbsp;&lt;</div>$corps"
    1010                :"\n<div id='$idom'>$corps\n</div>\n";
     
    1919        // d'attribut  id = $action-$id (cf. AjaxSqueeze dans layer.js)
    2020        function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args_ajax='', $fct_ajax='') {
    21                 if (strpos($args,"#")===FALSE)
    22                         $ancre = "$action-" . intval($id);
     21                if (strpos($args, '#') === FALSE)
     22                        $ancre = $action . '-' . intval($id);
    2323                else
    24                         list($args, $ancre) = explode("#",$args);
     24                        list($args, $ancre) = explode('#', $args);
    2525                // Formulaire (POST)
    2626                // methodes traditionnelle et ajax a unifier...
     
    2828                        // Methode traditionnelle
    2929                        if (_SPIP_AJAX !== 1)
    30                                 return redirige_action_post($action, $id, $script, "$args#$ancre", $corps);
     30                                return redirige_action_post($action, $id, $script, $args.'#'.$ancre, $corps);
    3131                        // Methode Ajax
    3232                        else {
    33                                 if ($args AND !$args_ajax) $args_ajax = "&$args";
     33                                if ($args AND !$args_ajax) $args_ajax = '&'.$args;
    3434                                if (isset($_GET['var_profile'])) $args_ajax .= '&var_profile=1';
    3535                                return redirige_action_post($action, $id, $action, "script=$script$args_ajax",
  • _plugins_/couteau_suisse/inc/cs_outils.php

    r103864 r107153  
    149149        if(strlen($temp = cs_action_fichiers_distants($outil) . cs_action_rapide($outil_id, $actif)))
    150150                $s .= "<div class='cs_action_rapide' id='cs_action_rapide'>$temp</div>";
    151         $s .= cs_nettoie(propre($descrip));
     151        $s .= cs_nettoie(cs_propre_sain($descrip));
    152152        $p = '';
    153153        if($b = cs_balises_traitees($outil_id, '*, #'))
     
    163163                $p .= '<p>' . couteauprive_T('contrib', array('url'=>'[->'._URL_CONTRIB.$outil['contrib'].']')) . '</p>';
    164164
    165         $p = $s . propre($p) . detail_outil($outil_id) . '</div>';
     165        $p = $s . cs_propre_sain($p) . detail_outil($outil_id) . '</div>';
    166166        // Grrr les retours simples de SPIP 3 ...
    167167        return (defined('_AUTOBR') && strlen(_AUTOBR))?str_replace(_AUTOBR, ' ', $p):$p;
     
    371371        $a = '<ul style="margin:0.6em 0 0.6em 4em;"><li>' . join("</li><li style='margin-top:0.4em;'>", $a) . '</li></ul>';
    372372        $b = ($actif || !$erreur)?'rss_actualiser':($erreur?'distant_charger':false);
     373
    373374        $b = $b?"\n<p class='cs_sobre'><input class='cs_sobre' type='submit' value=\" ["
    374375                        . attribut_html(couteauprive_T(''.$b)).']" />' . $reload . '</p>':'';
  • _plugins_/couteau_suisse/inc/description_outil.php

    r103864 r107153  
    121121}
    122122
     123function description_outil_langues_callback($matches) { return _T($matches[1]); }
     124       
    123125function description_outil_liens_callback($matches) {
    124126        global $outils;
    125127        $nom = isset($outils[$matches[1]]['nom'])?$outils[$matches[1]]['nom']:couteauprive_T($matches[1].':nom');
    126         if(strpos($nom, '<:')!==false) $nom = preg_replace(',<:([:a-z0-9_-]+):>,ie', '_T("$1")', $nom);
     128        if(strpos($nom, '<:')!==false)
     129                $nom = preg_replace_callback(',<:([:a-z0-9_-]+):>,i', 'description_outil_langues_callback', $nom);
    127130        return '<a href="'.generer_url_ecrire('admin_couteau_suisse', 'cmd=descrip&outil='.$matches[1])
    128131                ."\" id=\"href_$matches[1]\" onclick=\"javascript:return cs_href_click(this);\">$nom</a>";
     
    173176                }
    174177        }
    175         if (strpos($descrip, '<:')!==false) {
     178        if(strpos($descrip, '<:') !== false) {
    176179                if(!isset($outil['perso']))
    177180                        // lames natives : reconstitution d'une description eventuellement morcelee
     
    219222
    220223        // information sur les raccourcis disponibles
    221         if($a=cs_aide_raccourci($outil_)) $res .= '<p>@puce@ '.couteauprive_T('detail_raccourcis').'<br /><html>'.$a.'.</html></p>';
     224        if($a = cs_aide_raccourci($outil_))
     225                $res .= '<p>@puce@ '.couteauprive_T('detail_raccourcis').'<br /><html>'.$a.'.</html></p>';
    222226        // envoi de la description courante en pipeline
    223227        include_spip("cout_define");
     
    264268                ), $res);
    265269        // remplacement des constantes qui restent de forme @_CS_XXXX@
    266         if(strpos($res,'@_CS')!==false)
     270        if(strpos($res, '@_CS')!==false)
    267271                $res = preg_replace_callback(',@(_CS_[a-zA-Z0-9_]+)@,',
    268272                        create_function('$matches','return defined($matches[1])?constant($matches[1]):(\' (\'.couteauprive_T(\'outil_inactif\').\')\');'), $res);
     
    272276        // envoi de la description finale en pipeline
    273277#       list(,$res) = pipeline('post_description_outil', array($outil_, $res));
    274         return cs_ajax_outil_greffe("description_outil-$index", $res);
     278        return cs_ajax_outil_greffe('description_outil-'.$index, $res);
    275279}
    276280?>
  • _plugins_/couteau_suisse/lang/couteau_fr.php

    r103864 r107153  
    9292N’hésitez pas à consulter les articles de documentation du plugin publiés sur : [contrib.spip.net->https://contrib.spip.net/Le-Couteau-Suisse].
    9393
    94 Compatibilité : SPIP v1.92x, v2.x.x et v3.0.x',
     94Compatibilité : SPIP v1.92x, v2.x.x et v3.x.x',
    9595        'pp_autobr' => 'Insérer un bloc où les retours à la ligne sont automatiques',
    9696        'pp_blocs_bloc' => 'Insérer un bloc replié',
  • _plugins_/couteau_suisse/outils/boites_privees.php

    r103864 r107153  
    108108                if($w[0][0]=="'='" && $w[1][0]=="'='")
    109109                        // SPIP v3 : 2 liens (sur objet et id_objet)
    110                         $flux->order[] = 'tri_auteurs_sqlfield('.$w[0][2].','.$w[1][2].','._q($L1[0]).','._q($flux->serveur).')';
     110                        $flux->order[] = 'tri_auteurs_sqlfield('.$w[0][2].','.$w[1][2].','._q($L1[0]).','._q(@$flux->serveur).')';
    111111        } elseif($w[0][0]=="'='")
    112112                // SPIP v2.1 : 1 lien (sur id_article)
    113                 $flux->order[] = 'tri_auteurs_sqlfield('.$w[0][2].',\'article\','._q($L1[0]).','._q($flux->serveur).')';
     113                $flux->order[] = 'tri_auteurs_sqlfield('.$w[0][2].',\'article\','._q($L1[0]).','._q(@$flux->serveur).')';
    114114        return $flux;
    115115}
  • _plugins_/couteau_suisse/paquet.xml

    r106393 r107153  
    22        prefix="couteau_suisse"
    33        categorie="maintenance"
    4         version="1.9.13"
     4        version="1.10.0"
    55        etat="stable"
    66        compatibilite="[1.9.2;3.1.*]"
     
    1515[ro]Cu&#355;itul Elve&#355;ian -->
    1616
    17         <auteur>Patrice Vanneufville~&#169;~2007-2015</auteur>
    18         <copyright>2007-2015</copyright>
     17        <auteur>Patrice Vanneufville~&#169;~2007-2017</auteur>
     18        <copyright>2007-2017</copyright>
    1919        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
    2020        <credit>Collectif SPIP, Vincent Ramos, Ma&#239;eul Rouquette, Fil, Arnaud Ventre, Joseph Larmarange, Cerdic, Pierre Andrews (Mortimer), IZO, Phil, J&#233;r&#244;me Combaz, Bertrand Marne, T&#234;tue, Aur&#233;lien Pierard, FredoMkb, Sylvain, BoOz, Alexis Roussel, Paolo, PatV, Yohann(potter64), Nicolas Hoizey, Piero Wbmstr, etc.</credit>
  • _plugins_/couteau_suisse/plugin.xml

    r106398 r107153  
    33        <slogan>... ou plus de fonctionnalit&#233;s pour SPIP !</slogan>
    44        <icon>img/couteau-50.gif</icon>
    5         <version>1.9.13</version>
     5        <version>1.10.0</version>
    66        <version_base>1.11</version_base>
    77        <auteur>Patrice Vanneufville
    8 _ &#169; 2007-2015 - Distribu&#233; sous licence GPL
     8_ &#169; 2007-2017 - Distribu&#233; sous licence GPL
    99        </auteur>
    1010        <etat> <!-- Etat du plugin, au choix : dev (developpement), test, stable, experimental -->
Note: See TracChangeset for help on using the changeset viewer.