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