test yacs 7.3 alpha 19
This brand new version is provided for tests only. Do not use this on production server, except if explicitly recommended.
Files
Comments
| Tof from Grenoble-Chambery Member 472 posts registered on Apr. 28 2006 | I found a bug in this release and the previous ones that try to implement the section_at_home_id feature. The index.php file doesnt take care of this parameter. To correct this, you've got to add the following lines after line #545 :
elseif ((int)$context['sections_at_home'] > 0)
$anchor = 'section:'.$context['sections_at_home'];
I will join the corrected index.php with this post. ----- Tof |
| Bernard from nearby-an-airport Associate 6571 posts registered on Sep. 12 2003 | Tof, es-tu sûr qu'il y a un bug ? Ce que tu as ajouté, ce ne serait pas déjà lignes 512 et suivantes ? |
| Tof from Grenoble-Chambery Member 472 posts registered on Apr. 28 2006 | Effectivement, les lignes 512 et compagnie font cela... J'ai donc creusé un peu plus et me rend compte que le bug provient de la fonction Sections::get Bad news... toutes les instructions sql utilisant like sont (à mon avis) erronées dans cette classe section et peut-être ailleurs ! Normalement (sauf erreur de ma part) la syntaxe est LIKE 'toto%' ou LIKE '%toto' ou LIKE '%toto%' et non LIKE 'toto'. J'ai fait le test en modifiant l'instruction sql du Sections::get et le bug sur la prise en compte de cette feature provient bien de là. En attendant, le fichier index.php que j'ai posté précédemment permet de contourner le problème. Autre chose, est-ce bien raisonnable de faire des LIKE sur des numériques (sections.id) ? Tof |
| Bernard from nearby-an-airport Associate 6571 posts registered on Sep. 12 2003 | Bon, en fait, le problème c'est que j'ai rajouté de l'encodage Unicode dans Sections::get(), pour cause des petits noms qu'on peut donner aux sections. Si l'on passe du texte tout va bien. Mais si l'on passe un entier en tant qu'entier, YACS tente d'en faire une chaîne de caractère Unicode, ce qui pourrit la requête SQL, et la recherche n'aboutit pas. La solution, c'est tout simplement, dans index.php, de retirer le cast '(int)' à la ligne 514. Je t'ai rajouté comme testeur de la page d'index, merci du retour d'info. Dispo dans la 7.3 finale, bien sûr...
|
| Tof from Grenoble-Chambery Member 472 posts registered on Apr. 28 2006 | Merci Bernard, je confirme que cette correction fonctionne. PS : pour les % sur le LIKE, j'ai faux ? ----- Tof |
| Bernard from nearby-an-airport Associate 6571 posts registered on Sep. 12 2003 |
Tof: Le % sur le LIKE, c'est pour les recherches approchées. En réalité, le seul moyen d'être sûr de pointer vers un enregistrement à partir de son identifiant est d'utiliser field LIKE 'value'##
et ceci, même pour les valeurs numériques. J'ai observé des choses étranges avec
##field = 'value'##
comme avec
##field = valueC'est pas dans le manuel, je te l'accorde, mais au moins le LIKE a passé tous mes tests... Peut-être devrais-je revoir ma copie à l'occasion d'une prochaine version de MySQL, qui sait ? |
| Tof from Grenoble-Chambery Member 472 posts registered on Apr. 28 2006 | Si tu le dis... je ferai des fouilles là-dessus une de ces jours si je trouve le temps. En attendant, je te fais confiance, et en plus ça fonctionne. ----- Tof |
| Tof from Grenoble-Chambery Member 472 posts registered on Apr. 28 2006 | J'ai trouvé un autre bug dans le sections/view.php à la ligne 747 (version 7.3beta19), il faut remplacer :
$items = Sections::list_by_title_for_anchor('section:'.$item['id'], $offset, $items_per_page, $layout, $capability);
par :
$items = Sections::list_by_title_for_anchor('section:'.$item['id'], $offset, $items_per_page, $item['sections_layout'], $capability);
|
| Bernard from nearby-an-airport Associate 6571 posts registered on Sep. 12 2003 |
Tof: pas sûr, vu que $layout est positionné quelques lignes plus haut en fonction du contenu de ##$context['sections_layout']##... J'ai raté quelque chose là ?
|
| Tof from Grenoble-Chambery Member 472 posts registered on Apr. 28 2006 |
Bernard : le $layout est une instance de la classe Layout alors que le $item['sections_layout'] est une chaine de caractères. Sauf si c'est moi qui est raté something. |
| Bernard from nearby-an-airport Associate 6571 posts registered on Sep. 12 2003 |
Tof: ben justement, c'est ce qu'on cherche à faire, de transmettre une instance de Layout... La chaîne de caractères, c'est juste pour quand on n'a pas encore de Layout, et qu'il faut en trouver un... |
Rate this page
Posted by Bernard on Mar. 20 2007, commented by Bernard on Mar. 31 2007, (popular)