Changeset 118390 in spip-zone for _plugins_/ezREST


Ignore:
Timestamp:
Nov 3, 2019, 11:11:41 AM (8 months ago)
Author:
eric@…
Message:

Utilisation du champ champ_nom pour lecalcul des conditions SQL.
Mise à jour du guide.

Location:
_plugins_/ezREST/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/ezREST/trunk/ezrest/ezrest.php

    r118382 r118390  
    553553                        if ($conditionner = ezrest_service_chercher($module, 'conditionner', $collection, $_critere)) {
    554554                                // La condition est élaborée par une fonction spécifique du plugin utilisateur.
     555                                // Il est donc inutile de fournir autre chose que la valeur à la fonction spécifique car tout le
     556                                // contexte est déjà connu du plugin utilisateur.
    555557                                $conditions[] = $conditionner($_valeur);
    556558                        } else {
    557559                                // La condition est calculée par REST Factory à partir de la configuration du filtre.
    558                                 // -- si l'index 'table' est présent dans la configuration alors on l'utilise pour préfixer le critère
    559                                 // -- sinon on utilise le nom de la collection si elle correspond à un type
    560                                 // -- sinon on ne préfixe pas le critère
    561                                 $type_objet = !empty($criteres[$_critere]['table'])
    562                                         ? $criteres[$_critere]['table']
     560                                // -- détermination du nom du champ servant de critère
     561                                $nom_champ = $criteres[$_critere]['champ_nom']
     562                                        ? $criteres[$_critere]['champ_nom']
     563                                        : $_critere;
     564
     565                                // -- détermination du préfixe du champ :
     566                                //    - si l'index 'table' est présent dans la configuration alors on l'utilise pour préfixer le critère
     567                                //    - sinon on utilise le nom de la collection si elle correspond à un type
     568                                //    - sinon on ne préfixe pas le critère
     569                                $type_objet = !empty($criteres[$_critere]['champ_table'])
     570                                        ? $criteres[$_critere]['champ_table']
    563571                                        : $collection;
    564572                                $table = table_objet_sql($type_objet);
    565573                                $champ_sql = ($table == $type_objet)
    566                                         ? $_critere
    567                                         : "${table}.${_critere}";
     574                                        ? $nom_champ
     575                                        : "${table}.${nom_champ}";
     576
    568577                                // -- détermination de la fonction à appliquer à la valeur en fonction de son type (défaut string).
    569                                 $fonction = (empty($criteres[$_critere]['type']) or ($criteres[$_critere]['type'] == 'string'))
     578                                $fonction = (empty($criteres[$_critere]['champ_type']) or ($criteres[$_critere]['champ_type'] == 'string'))
    570579                                        ? 'sql_quote'
    571580                                        : 'intval';
     581
     582                                // Construction de la condition et ajout en queue du tableau.
    572583                                $conditions[] = "${champ_sql}=" . $fonction($_valeur);
    573584                        }
  • _plugins_/ezREST/trunk/paquet.xml

    r118383 r118390  
    22        prefix="ezrest"
    33        categorie="outil"
    4         version="0.2.1"
     4        version="0.2.2"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.