Topic: LuxCal 5.3.1M bug recherches

Bonsoir,

Je viens de mettre à jour LuxCal en version 5.2.4M vers 5.3.1M ; mais depuis j'ai un problème avec les recherches.

En effet, dans les résultats de recherche, je ne peux plus cliquer sur un résultat et afficher l'événement pour le modifier / supprimer / dupliquer.

J'ai testé sur PC Windows avec Firefox et Smartphone Android avec navigateur Samsung.

Comment régler le bug SVP ?


Merci par avance.

Re: LuxCal 5.3.1M bug recherches

Bonjour,
You found a bug!
This problem can be solved by editing the file "pages/search.php" and change line 204 from . . .

$click = ($evt['mayE'] ? 'editE' : 'showE')."({$evt['eid']},'{$date}')";

to

$click = ($evt['mayE'] ? 'editE' : 'showE')."({$evt['eid']},`{$date}`)";

It's hard to see, but the single quotes around {$date} at the end of the line have been replaced by backticks ( ` ).
(Back ticks can be found on a US/UK keyboard left upper corner next to the 1 key.)

Roel

Re: LuxCal 5.3.1M bug recherches

Bonjour,

Merci, ce problème est résolu.

J'en ai trouvé un autre :
La recherche de mots (a-z) est désormais sensible à la casse, alors que ça ne l'était pas avant.

Exemple : si je mets le nom "DUPOND" en titre et description
En recherche, ça ne trouve qu'avec "DUPOND" mais pas "Dupond".

Par contre, si je cherche "dupond", ça trouve uniquement en description (pas en titre).

Merci d'avance.

Re: LuxCal 5.3.1M bug recherches

Hi there,
This is not really a bug.
• For the SQLite version of the calendar the text search is always case-insensitive. That's the way the SQLite database works.
• For the MySQL version of the calendar it depends on the database. Some databases support case-sensitive text search and others don't.

Roel

Re: LuxCal 5.3.1M bug recherches

You prefer english ?

Ok ; but, with MySQL version, why it seems to be case-sensitive for title, and case-insensitive for description ?

Thank you

Re: LuxCal 5.3.1M bug recherches

I tried in our MySQL test calendars and for all fields the text search is case-sensitive.
I also looked in the PHP code and the searches in the different database fields are all done in the same way (with the MySQL "LIKE" operator).

Roel

Re: LuxCal 5.3.1M bug recherches

That's weird... I always had case-insensitive search ; and it's very useful.

How to explain I have mixed results since 5.3.1M version ?
Some fields are case sensitive, and others not.

Also, please ; do you think there is a way to search into MySQL to force case-insensitive (the best / useful way) ?

Re: LuxCal 5.3.1M bug recherches

That's weird indeed.
If you want the search to be always case-insensitive, edit the file "pages/search.php" and . . .
change line 118 from:

$schString = str_replace('&', '%', "%{$schText}%");

to

$schString = strtoupper(str_replace('&', '%', "%{$schText}%"));

and change lines 124 - 128 from:

if (in_array(0, $eF) or in_array(1, $eF)) { $filter .= "e.`title` LIKE '{$schString}'"; } //Title
if (in_array(0, $eF) or in_array(2, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."e.`venue` LIKE '{$schString}'"; } //venue
if (in_array(0, $eF) or in_array(3, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."e.`text1` LIKE '{$schString}'"; } //text field 1
if (in_array(0, $eF) or in_array(4, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."e.`text2` LIKE '{$schString}'"; } //text field 2
if (in_array(0, $eF) or in_array(5, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."e.`text3` LIKE '{$schString}'"; } //text field 3

to

if (in_array(0, $eF) or in_array(1, $eF)) { $filter .= "UPPER(e.`title`) LIKE '{$schString}'"; } //Title
if (in_array(0, $eF) or in_array(2, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."UPPER(e.`venue`) LIKE '{$schString}'"; } //venue
if (in_array(0, $eF) or in_array(3, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."UPPER(e.`text1`) LIKE '{$schString}'"; } //text field 1
if (in_array(0, $eF) or in_array(4, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."UPPER(e.`text2`) LIKE '{$schString}'"; } //text field 2
if (in_array(0, $eF) or in_array(5, $eF)) { $filter .= ((substr($filter, -1) == '(') ? '' : ' OR ')."UPPER(e.`text3`) LIKE '{$schString}'"; } //text field 3

That's all.

Use cut and paste wink

Roel

Re: LuxCal 5.3.1M bug recherches

I upgraded to 5.3.2M and I modified "pages/search.php" file too ; it works.

Please, is it possible to keep that feature into the next LuxCal version, by default or as an option to enable ?

Thanks again.

Re: LuxCal 5.3.1M bug recherches

Yes, it will be in the future LuxCal versions smile
Roel

Re: LuxCal 5.3.1M bug recherches

Thanks a lot smile
Maxime