Changeset 93512 in spip-zone


Ignore:
Timestamp:
Dec 10, 2015, 11:58:29 AM (5 years ago)
Author:
rastapopoulos@…
Message:

On ajoute une nouvelle option data-select-php="oui" qui permet de dire qu'on veut chercher une fonction PHP au lieu d'un squelette. Dans ce cas ça va chercher charger_fonction(truc, 'selecteurs') au lieu de selecteurs/truc.html ! Il faut alors selecteurs/truc.php avec dedans function selecteurs_truc(). On passe en 1.0.0 parce que ça fait longtemps et que la base marche bien.

Location:
_plugins_/selecteur_generique/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selecteur_generique/trunk/action/api_selecteur.php

    r66198 r93512  
    2121       
    2222        // On cherche le JSON en passant les params de l'URL
    23         if ($json = recuperer_fond("selecteurs/$selecteur", $_GET)){
     23        if (
     24                (_request('php') and $fonction = charger_fonction($selecteur, 'selecteurs', true) and $json = $fonction())
     25                or $json = recuperer_fond("selecteurs/$selecteur", $_GET)
     26        ) {
    2427                // On renvoie une ressource JSON
    2528                header('Status: 200 OK');
     
    3437        }
    3538}
    36 
    37 ?>
  • _plugins_/selecteur_generique/trunk/javascript/selecteur_generique_functions.js

    r66521 r93512  
    5555                // Si le champ est déclaré comme "multiple" on ne remplace que la fin
    5656                if ($(this).attr('multiple')){
     57                        // On définit le séparateur
     58                        var separateur = $(this).data('select-sep');
     59                        if (typeof(separateur) != 'string') {
     60                                separateur = ',';
     61                        }
    5762                        // On récupère la liste des termes séparés par une VIRGULE (cas le plus courant)
    58                         var terms = split_multiple(this.value, ',');
     63                        var terms = split_multiple(this.value, separateur);
    5964                        // On supprime le terme qui était en train d'être tapé
    6065                        terms.pop();
    6166                        // On ajoute à la fin ce qui a été sélectionné, éventuellement entouré de guillemets
    6267                        var guillemets = false;
    63                         if (ui.item.value.indexOf(',') != -1){ guillemets = true; }
     68                        if (ui.item.value.indexOf(separateur) != -1){ guillemets = true; }
    6469                        terms.push((guillemets ? '"' : '') + ui.item.value + (guillemets ? '"' : ''));
    6570                        // On ajoute une entrée vide pour avoir le séparateur lors de la jointure
    6671                        terms.push("");
    6772                        // On joint tout les termes
    68                         this.value = terms.join(", ");
     73                        this.value = terms.join(separateur);
    6974                }
    7075                // Sinon on remplace tout
     
    8085                var inputs = $('input[data-selecteur][autocomplete!=off]');
    8186                var api = 'selecteur.api/';
    82                 if (typeof(selecteurgenerique_test_espace_prive) != 'undefined'){
     87                if (typeof(selecteurgenerique_test_espace_prive) != 'undefined' && selecteurgenerique_test_espace_prive){
    8388                        api = '../' + api;
    8489                }
     
    9196                        var select_callback = me.data('select-callback');
    9297                        if (typeof(select_callback) != 'function' && typeof(select_callback) != 'string'){ select_callback = selecteurgenerique_select_callback_dist; }
     98                        // On définit le séparateur
     99                        var separateur = me.data('select-sep');
     100                        if (typeof(separateur) != 'string') {
     101                                separateur = ',';
     102                        }
     103                        // On regarde si on demande un sélecteur PHP ou le classique squelette
     104                        var php = me.data('select-php');
    93105                       
    94106                        me
     
    96108                                .autocomplete({
    97109                                        source: function(request, response) {
    98                                                 if (me.attr('multiple')){ var term = extractLast(request.term, ','); }
     110                                                if (me.attr('multiple')){ var term = extractLast(request.term, separateur); }
    99111                                                else { var term = request.term; }
    100112                                                //console.log('"'+term+'"');
    101                                                 $.getJSON(api+quoi, {q:term}, response);
     113                                                $.getJSON(api+quoi, {'q':term, 'php':php}, response);
    102114                                        },
    103115                                        delay: 300,
  • _plugins_/selecteur_generique/trunk/paquet.xml

    r93510 r93512  
    22        prefix="selecteurgenerique"
    33        categorie="outil"
    4         version="0.9.0"
     4        version="1.0.0"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.