Hello, Le 05/12/2012 22:45, lpelecq-org@xxxxxxxxxxx a écrit :
Salut Johann, Merci pour la correction. Ça marche. Il y a un autre problème dans Repository/Membres.php. En version 8.4 la fonction concat n'existe pas. Elle est apparue en 9.1. Est-ce qu'il y a une version minimale de postgres supportée ?
Arf... Ben, normalement, c'est censé fonctionner avec postgres 8 ; mais il semble bien que ce ne soit plus le cas depuis la version 0.7. À y regarder de plus près, il semble que j'utilise CONCAT mais aussi le "||" ; du coup, ce n'est pas très utile ; et ça ne devrait pas être trop compliqué à corriger (j'aurai ainsi la joie de sortir la troisième release de la semaine :D). Pourrais-tu essayer avec le patch joint ? N'hésites pas à ouvrir directement un bug dans ce genre de cas ;) À priori, c'est le seul endroit dans le code qui utilise CONCAT ; mais comme je travaille toujours avec une version assez récente de postgres (Fedora oblige :p), il est fort possible que d'autres incompatibilités aient été introduites. ++ -- Johan
diff --git a/galette/lib/Galette/Repository/Members.php b/galette/lib/Galette/Repository/Members.php index cd188e2..0886045 100644 --- a/galette/lib/Galette/Repository/Members.php +++ b/galette/lib/Galette/Repository/Members.php @@ -680,18 +680,27 @@ class Members $token = '%' . $filters->filter_str . '%'; switch( $filters->field_filter ) { case self::FILTER_NAME: - $sep = ( TYPE_DB === 'pgsql' ) ? " || ' ' || " : ', " ", '; + if ( TYPE_DB === 'pgsql' ) { + $sep = " || ' ' || "; + $pre = ''; + $post = ''; + } else { + $sep = ', " ", '; + $pre = 'CONCAT('; + $post=')'; + } + //$sep = ( TYPE_DB === 'pgsql' ) ? " || ' ' || " : ', " ", '; $select->where( '(' . $zdb->db->quoteInto( - 'CONCAT(LOWER(nom_adh)' . $sep . + $pre . 'LOWER(nom_adh)' . $sep . 'LOWER(prenom_adh)' . $sep . - 'LOWER(pseudo_adh)) LIKE ?', + 'LOWER(pseudo_adh)' . $post . ' LIKE ?', strtolower($token) ) . ' OR ' . $zdb->db->quoteInto( - 'CONCAT(LOWER(prenom_adh)' . $sep . + $pre . 'LOWER(prenom_adh)' . $sep . 'LOWER(nom_adh)' . $sep . - 'LOWER(pseudo_adh)) LIKE ?', + 'LOWER(pseudo_adh)' . $post . ' LIKE ?', strtolower($token) ) . ')' );
Attachment:
signature.asc
Description: OpenPGP digital signature