Changeset 44052 in spip-zone


Ignore:
Timestamp:
Jan 31, 2011, 11:43:22 PM (9 years ago)
Author:
joseph@…
Message:

Autant pour moi, il ne faut lever l'ambiguité que s'il s'agit d'un champ de la table principal, afin que que le critère tri soit compatible avec compteur_objet, somme, etc.

Location:
_plugins_/spip-bonux-2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-bonux-2/plugin.xml

    r44046 r44052  
    3232  <icon>img_pack/spip-bonux.png</icon>
    3333  <licence>(c) 2008-2010 GPL</licence>
    34   <version>2.2.16</version>
     34  <version>2.2.17</version>
    3535  <etat>stable</etat>
    3636  <description>Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans ! Interface douce, boucles POUR et CONDITION, tableaux, compteur, etc.</description>
  • _plugins_/spip-bonux-2/public/spip_bonux_criteres.php

    r43992 r44052  
    200200        };
    201201        ";
     202        $field = serialize(array_keys($boucle->show['field']));
    202203        $boucle->select[] = "\".tri_champ_select(\$tri).\"";
    203         $boucle->order[] = "tri_champ_order(\$tri,'$id_table').\$senstri";
     204        $boucle->order[] = "tri_champ_order(\$tri,'$id_table','$field').\$senstri";
    204205}
    205206
  • _plugins_/spip-bonux-2/spip_bonux_fonctions.php

    r44046 r44052  
    193193 * @return string
    194194 */
    195 function tri_champ_order($t,$table=NULL){
    196         if (!is_null($table))
    197                 $table = $table.'.';
     195function tri_champ_order($t,$table=NULL,$field=NULL){
    198196        if (strncmp($t,'num ',4)==0){
    199197                $t = substr($t,4);
    200198                $t = preg_replace(',\s,','',$t);
    201                 $t = "0+$table$t";
     199                // Lever une ambiguité possible si le champs fait partie de la table (pour compatibilité de la balise tri avec compteur, somme, etc.)
     200                if (!is_null($table) && !is_null($field) && in_array($t,unserialize($field)))
     201                        $t = "0+$table.$t";
     202                else
     203                        $t = "0+$t";
    202204                return $t;
    203205        }
     
    205207                return "multi";
    206208        }
    207         return $table.preg_replace(',\s,','',$t);
     209        else {
     210                $t = preg_replace(',\s,','',$t);
     211                // Lever une ambiguité possible si le champs fait partie de la table (pour compatibilité de la balise tri avec compteur, somme, etc.)
     212                if (!is_null($table) && !is_null($field) && in_array($t,unserialize($field)))
     213                        return $table.'.'.$t;
     214                else
     215                        return $t;
     216        }
    208217}
    209218
Note: See TracChangeset for help on using the changeset viewer.