Changeset 118848 in spip-zone


Ignore:
Timestamp:
Dec 2, 2019, 12:30:19 PM (7 days ago)
Author:
Charles Razack
Message:

Rétablir le fonctionnement avec crayons v1 + ajouter compat avec crayons v2 qui utilise produire_fond_statique() pour charger son js. Du coup on fait une fonction mutualisée pour le js multilang/crayons, je la mets dans le dossier javascript/ pour avoir tout le js au même endroit. Pour le coup, pas de séparation html/php pour celui là, ça économise un récupérer_fond.

Location:
_plugins_/multilang/trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/multilang/trunk

    • Property subgit:lock:cc75fc97f354634d231c89d8d48516164edcc2b5 deleted
    • Property subgit:lock:756e204a77fd3e92e50783273b12c4a9251e7cce set to 2019-12-02T16:54:45.817
  • _plugins_/multilang/trunk/multilang_pipelines.php

    r106747 r118848  
    112112
    113113/**
     114 * Modifie le résultat de la compilation des squelettes
     115 *
     116 * Sur la page crayons.js, on insère également notre javascript pour être utilisable
     117 * dans les crayons
     118 *
     119 * @note
     120 * Pour crayons v2+
     121 * Pour les versions précédentes, voir dans affichage_final
     122 * On fait l'économie du test de version, car ce sont 2 pipelines différents selon les versions.
     123 *
     124 * @param string $flux Le contenu de la page
     125 * @return string $flux Le contenu de la page modifiée
     126 */
     127function multilang_recuperer_fond($flux) {
     128        if (
     129                $flux['args']['fond'] === 'crayons.js'
     130                and (count(explode(',', $GLOBALS['meta']['langues_multilingue'])) > 1)
     131                and include_spip('inc/config')
     132                and $config = lire_config('multilang', array())
     133                and ($config['multilang_public'] == 'on')
     134                and ($config['multilang_crayons'] == 'on')
     135        ) {
     136                include_spip('javascript/multilang_crayons');
     137                $flux['data']['texte'] .= multilang_javascript_crayons($config);
     138        }
     139
     140        return $flux;
     141}
     142
     143/**
    114144 * Insertion dans le pipeline affichage_final (SPIP)
    115145 *
     
    117147 * dans les crayons
    118148 *
     149 * @note
     150 * Pour crayons < v2
     151 * Pour les versions ultérieures, voir dans recuperer_fond
     152 * On fait l'économie du test de version, car ce sont 2 pipelines différents selon les versions.
     153 *
    119154 * @param string $flux Le contenu de la page
    120155 * @return string $flux Le contenu de la page modifiée
    121156 */
    122157function multilang_affichage_final($flux) {
    123         if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'crayons.js'
    124                 and (count(explode(',', $GLOBALS['meta']['langues_multilingue'])) > 1)) {
    125                 if (!function_exists('lire_config')) {
    126                         include_spip('inc/config');
    127                 }
    128                 $config = lire_config('multilang', array());
    129 
    130                 /**
    131                  * On n'utilise multilang que si l'espace public est activé ainsi que les crayons
    132                  */
    133                 if (($config['multilang_public'] == 'on') && ($config['multilang_crayons'] == 'on')) {
    134                         unset($config['multilang_public']);
    135                         unset($config['multilang_crayons']);
    136                         $root = array();
    137 
    138                         if (isset($config['siteconfig']) && $config['siteconfig']) {
    139                                 $root[] = 'input[type=hidden][name*=name_][value|=meta-valeur]';
    140                                 unset($config['siteconfig']);
    141                         }
    142                         foreach ($config as $conf => $val) {
    143                                 if ($conf == 'gis') {
    144                                         // Les points gis sont traités bizarrement dans les crayons qui enlèvent
    145                                         // purement et simplement leur 's'
    146                                         $conf = 'gi';
    147                                 }
    148                                 if ($val == 'on') {
    149                                         $root[] = 'input[type=hidden][name*=name_][value|='.$conf.']:not(input[value|='.$conf.'-logo]):not(input[value|='.$conf.'-vignette]):not(input[value|='.$conf.'-fichier])';
    150                                         unset($config[$conf]);
    151                                 }
    152                         }
    153                         $texte = '
    154                                 var crayons_multilang_init = function(){
    155                                         if(typeof(multilang_init_lang) == "function"){
    156                                                 var crayons_root = ".formulaire_spip:has('.implode(',', $root).')",
    157                                                         fields_selector = "textarea,input:text:not(input.date,input.heure,*.nomulti)",
    158                                                         forms_selector = "form[class!=\'form_upload\'][class!=\'form_upload_icon\']",
    159                                                         root_opt = "form:has(.multilang)",
    160                                                         fields_selector_opt = ".multilang";
    161                                                 multilang_init_lang({fields:fields_selector,fields_opt:fields_selector_opt,root:crayons_root,root_opt:root_opt,forms:forms_selector,init_done:false});
    162                                         }
    163                                 }
    164 
    165                                 cQuery(document).ready(function(){
    166                                         if(typeof onAjaxLoad == "function") onAjaxLoad(crayons_multilang_init);
    167                                         crayons_multilang_init();
    168                                 });';
    169                         $flux .= $texte;
    170                 }
     158        if (
     159                isset($_REQUEST['page'])
     160                and $_REQUEST['page'] == 'crayons.js'
     161                and (count(explode(',', $GLOBALS['meta']['langues_multilingue'])) > 1)
     162                and include_spip('inc/config')
     163                and $config = lire_config('multilang', array())
     164                and ($config['multilang_public'] == 'on')
     165                and ($config['multilang_crayons'] == 'on')
     166        ) {
     167                include_spip('javascript/multilang_crayons');
     168                $flux .= multilang_javascript_crayons($config);
    171169        }
    172170        return $flux;
  • _plugins_/multilang/trunk/paquet.xml

    r118632 r118848  
    22        prefix="multilang"
    33        categorie="edition"
    4         version="1.4.3"
     4        version="1.4.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
     
    2323        <pipeline nom="insert_head" inclure="multilang_pipelines.php" />
    2424        <pipeline nom="affichage_final" inclure="multilang_pipelines.php" />
     25        <pipeline nom="recuperer_fond" inclure="multilang_pipelines.php" />
    2526        <pipeline nom="formulaire_traiter" inclure="multilang_pipelines.php" />
    2627        <pipeline nom="mutilang_parametres" action="" />
Note: See TracChangeset for help on using the changeset viewer.