- oct. 27, 2007
-
-
esj a rédigé
Petites modifications, normalement transparentes, dans le code produit par le compilateur pour maximiser le nombre d'occurrences de {{{$Pile[O]['}}}''nom''{{{']}}}. Cela concerne: * la balise ENV * les #PARAM non indiqués par les boucles et déplacements de fonctions et inclusions pour que le validateur puisse exécuter le compilateur hors contexte.
-
esj a rédigé
Suite de [10609], le validateur appliqué à un répertoire cherche à présent les squelettes du répertoire si l'URL contient {{{&ext=html}}} (ou s'il ne trouve pas de fichier {{{.php}}} dans le répertoire). On peut donc tester la validité XML de tous les squelettes standards en invoquant: {{{ecrire/?exec=valider_xml&url=../dist}}} Les squelettes ne contenant pas la chaîne {{{DOCTYPE}}} sont ignorés. Le contexte nécessaire au squelette est deviné en cherchant dans le code compilé toutes les occurrences de {{{$Pile[O]['}}}''nom''{{{']}}}. La valeur associé à ''nom'' est 1 si cette occurrence est argument de {{{intval}}}, une chaine quelconque sinon (très insuffisant, mais le langage de squelette de SPIP n'étant pas fortement typé, c'est difficile de faire mieux). Le tableau de résultat donne le nombre d'erreurs de validation, et un lien vers l'application du validateur sur la page concernée (qui remarche depuis [10672]) avec le contexte deviné (qu'il faudra donc parfois corriger dans la barre de navigation).
-
esj a rédigé
Pb 40 avec [9649] (eh oui il en restait un): on n'avait plus accès à la validation dans le débusqueur.
-
Fil a rédigé
lire_meta(), ecrire_metas() et spip_fetch_array() reviennent dans les fonctions de base ; on les considere depreciees, mais la gymnastique a faire pour developper des plugins compatibles 1.9.2 et 1.9.3 si on les laisse dans vieilles_defs est beaucoup trop couteuse par rapport au gain
-
Fil a rédigé
-
- oct. 26, 2007
-
-
Fil a rédigé
-
Christian Lefebvre a rédigé
-
esj a rédigé
Le traitement des hexadécimaux en PG oblige à introduire une nouvelle fonction d'abstraction encodant ces valeurs. Comme dans [10433], [10131], [10146] et [10154] on rallonge la liste des fonctions d'abstraction de [10113]: {{{ 'hex' => fonction d'abstraction de la représentation d'un hexadécimal }}} Il faut donc utiliser '''sql_hex("FFBB")''' pour envoyer ce genre de valeurs aux serveurs SQL. A noter d'ailleurs qu'il ne faut pas utiliser '''intval''' comme outil de sécurité si le nombre est un grand entier, car PHP le tronque sans prévenir alors que les serveurs SQL l'auraient accepté. Pour éviter une révision générale de SPIP et ses extensions, l'analyse des arguments SQL devient plus précise. Intuitivement il s'agit d'utiliser '''is_numeric''' mais PHP n'en est pas à une incohérence près; ceci {{{ <?php echo is_numeric('0x1234567') ? '1' : '0';; echo is_numeric('0x12345678') ? '1' : '0';; echo is_numeric('0x123456789') ? '1' : '0';; echo is_numeric('0x123456789A') ? '1' : '0';; ?> }}} répond-il ''0000' ou ''0101'' ou ''0011'' ou ''1111'' ? Attention, contraitement aux apparences, la bonne réponse n'est pas '''c'est nul'''.
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
Prendre des valeurs par défaut plutot que de provoquer des erreurs SQL dans les tests automatiques du validateur.
-
esj a rédigé
-
- oct. 25, 2007
-
-
Christian Lefebvre a rédigé
-
esj a rédigé
-
Fil a rédigé
l'affichage des articles cible des referers etait casse sur la page ecrire/?exec=statistiques_visites car on ne chargeait pas leur md5
-
Fil a rédigé
-
esj a rédigé
Envoyer un message d'erreur moins technique en cas de serveur SQL défaillant, et envoyer l'information technique dans spip_log.
-
esj a rédigé
En cas d'arguments incohérents, plutot que de retourner vide sans rien dire, les signaler dans spip_log et prendre des valeurs par défaut pour aider le validateur à générer des tests significatifs.
-
esj a rédigé
Toujours renvoyer qqch en ajax, pour que la validateur puisse opérer. Et correction de ce qu'il dénonce là-dessus.
-
- oct. 24, 2007
-
-
Christian Lefebvre a rédigé
-
Fil a rédigé
patch pas satisfaisant pour eviter une boucle infinie sur _T(), car chercher_module_lang('spip', null) ne doit pas donner spip.php
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
Un critère conditionnel sur date doit être traité complètement à part sinon il est toujours vrai car SPIP met d'office la date dans le contexte global. Bug découvert à l'occasion de la production automatique de squelettes (Mathieu).
-
esj a rédigé
-
- oct. 23, 2007
-
-
Christian Lefebvre a rédigé
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
Afin d'illustrer les nouvelles possibilités de SPIP, l'erreur de squelette indéfini n'est pas provoquée si le nom du squelette correspond à une table SQL connue dans la base interrogée. A la place, un squelette minimal est produit automatiquement, qui visualise le contenu de la table SQL sous forme de table HTML ayant autant de colonnes que la table SQL a de champs. La balise #PAGINATION permet de faire défiler ses lignes par paquet de dix. La première (resp. dernière) ligne de la table HTML permet de trier la table selon la colonne choisie en mode ascendant (resp. descendant) et tenant compte du type de la colonne (numérique/date ou textuel). Tous les champs sont traités en critère conditionnel de la boucle implicite, ce qui permet également de trouver la ou les lignes dont la colonne a pour valeur celle donnée dans l'URL sous ce nom. Enfin, pour chaque champ dont la déclaration SQL indique {{{references}}} ''table'', un lien vers le squelette dynamique de cette autre table est produit. A essayer sur sa propre base SPIP: {{{./?page=petitions}}} par exemple. Compatibilité: l'argument {{{connect}}} a dû être rajouté à la fonction surchargeable '''styliser'''. Celle-ci avait déjà un argument supplémentaire optionnel, jamais utilisé, savoir la possibilité d'avoir un autre suffixe que '''.html''' pour les squelettes. L'argument optionnel {{{connect}}}, de plus grande utilité, vient s'intercaler avant lui. Rien de changé pour SPIP ni pour les extensions qui n'utilisaient pas ça (y en a-t-il qui le font ?).
-
esj a rédigé
La fonction Rand, utilisée pour le critère ''{par hasard}'' est inconnue de PG. Le code pour les version de MySQL ne l'ayant pas non plus ne marchait en fait plus, car il supposait que les clés primaires de toutes les tables sont numériques ce qui n'est plus le cas. Remède express: hasard = l'heure qu'il est. Il y aurait mieux à trouver, mais il y a plus urgent (et qui utilise ce critère ?). On en profite pour abstraire un peu mieux les fonctions autour des dates.
-
esj a rédigé
-
- oct. 22, 2007
-
-
Christian Lefebvre a rédigé
-
esj a rédigé
Quand on relache la Regexp en amont, il faut contraindre en aval. Je regroupe dans une seule fonction, sinon on va retomber dans le piège à la prochaine modif.
-
renato a rédigé
cf. [http://dev.jquery.com/ticket/1833]
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
-