- août 11, 2009
-
-
Fil a rédigé
-
esj a rédigé
Bon, il y avait tout ce qu'il faut pour gérer les notes proprement, mais un bout seulement dans plein d'endroits différents, jamais le même. Donc, on enrichit 'l'interface de la fonction surchargeable inc_notes_dist, qui sait empiler et dépiler les contextes à la demande, sans en oublier. Le test unitaire donne la mêmeche qu'en 2.0 (mais n'est pas à jour lui-même).
-
esj a rédigé
Retrait du dernier cas où le fond était passé dans le contexte. Ce paramètre d'URL est donc maintenant comme les autres.
-
esj a rédigé
Eviter d'appeler recuperer_fond avec un fond vide en premier argument. Mais contrairement aux apparences, il y a un autre endroit de #INCLURE où on se permet un tel appel. J'enquête.
-
- août 10, 2009
-
-
esj a rédigé
Quelques messages d'erreurs plus informatifs. A noter qu'à présent, tous les déclencnhemens d'erreur donnent au débusqueur un tablleau dont le premier est une chaîne de langue, plus jamais une traduction de cette chaîne, ce qui permet de surcharger facilement le débusqueur pour certaines erreurs seulement.
-
esj a rédigé
Autre suite annoncée de [14366]: en cas d'inclusion par {{{<INCLURE ...>}}}, le débuqueur donne le squelette incluant et la ligne de cette instruction si l'inclunant est inexistant. Cette améloration a été obtenue en produisant non plus {{{include 'public.php'}}} mais {{{<?php echo recuperer_fond....}}}'contexte_de_compil{{{... ?>}}}. A noter du coup qu'on peut faire sauter le test initial dans {{{public.php}}}, et la globale {{{_INC_PUBLIC}}}. Etant donné l'âge vénérable de cette dame, je demande un permis d'inhumer. Tests: {{{ <INCLURE{fond=inc-pied, id_article}> <INCLURE{fond=inc-pied}{id_article}> <INCLURE(inc-pied){id_article}> <INCLURE(inc-pied.php){id_article}> <INCLURE(index.php){id_article}> <INCLURE{fond=(#X|trim), id_article}> #INCLURE{inc-pied, id_article} #INCLURE{#X, id_article} }}}
-
esj a rédigé
Déport des messages 'Il n'y a pas de ''entité'' à cette adresse' dans les squelettes canoniques, le compilateur n'est plus en mesure de les produire à bon escient.
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
Suite de [14371]: ne pas arrêter la compilation au premier critère incorrect, mais introduction de la valeur False comme type de requête dans l'arbre de syntaxe pour être capable de provoquer un 503 au final. Il faudrait abandonner l'usage d'une globale (tableau_des_erreurs) pour mémoriser toutes les erreurs, car elle ne dit pas si les erreurs viennent du squelette en cours de compilation ou d'autres précédemment inclus.
-
esj a rédigé
Effet imprévu de la réorg de [14366]: SPIP distingue maintenant une page vide rendue par un squelette correct ou absent (404) d'un squelette présent mais incompilable (503). En fait, il y a des erreurs où ça donne quand même 404, suite aux besoins du déb usqueur, c'est encore à améliorer.
-
esj a rédigé
Pb 42 (eh oui il en restait un après [11490]) avec [9649] (la disparition du FEED_GLOBALS): en cas d'erreur 404, on ne donnait plus la précision: aucun_article / aucune_rubrique etc quand elle était disponible.
-
- août 09, 2009
-
-
esj a rédigé
Suite annoncée de [14366]: la balise #MODELE et consorts indiquent le nsquelette et le numéro de ligne en cas d'utilisation fautive.
-
esj a rédigé
Lors d'une inclusion par {{{#INCLURE}}}, le débusqueur donne à présent le squelette incluant et le numéro de ligne où cette balise utilise le fond fautif. Particulièrement utile lorsque plusieurs {{{#INCLURE}}} sont susceptibles d'être responsable de l'erreur. Pour parvenir à ça, il a fallu retarder la dénonciation de squelette inconnu, qui n'est plus assurée par public_styliser mais par récuperer_fond. Il s'ensuit que les fonctions public_parametrer et evaluer_fond (sur le trajet entre les deux fonctions susnommées) voient la spécification de leur résultat légèrement changer. Elles retournent: * False si le squellette existe mais a provoqué des erreurs de compilation (déjà signalées au moment de retourner le résultat); * la chaîne vide si le squelette est inconnu (et aucune erreur n'est encore signalée); * la page attendue si tout s'est bien passé (rien de changé ici). Dans le deuxième cas, la fonction recuperer_fond regarde si son troisième argument (les options) contient un index nommé 'compil', qui lui sert alors à localiser l'erreur. Pour l'instant seul {{{#INCLURE}}} fournit cette information. Affaire à suivre.
-
esj a rédigé
Suite de [14363]: structuration du code produit à travers un sprintf. Au passage, le code produit utilise maintenant str_repeat au lieu de le réinventer. Les tests unitaires sur les boucles donnent la même chose qu'auparavant.
-
- août 08, 2009
-
-
esj a rédigé
Renommage de {{{denoncer_inclure_dynamique}}} (car [14363] avait en fait renommé {{{fliquer_inclure_dynamique}}} en {{{memoriser_contexte_compil}}}) en {{{reconstruire_contexte_compil}}} avec un petit chgt de fonctionnalité, et petites améliorations pour avoir des appels au débusqueur plus uniformes.
-
- août 07, 2009
-
-
esj a rédigé
La mal nommée (cf [14341]) {{{denoncer_inclure_dynamique}}} se nomme à présent {{{memoriser_contexte_compil}}} et retourne une chaîne plutôt qu'un tableau. Elle est systématiquement utilisée comme argument de {{{sprintf}}} pour pouvoir être neutralisée facilement en cas de besoin de diff entre code compilés. Les formats utilisés par {{{sprintf}}} permettent de mieux voir la structure du code produit, en particulier il est apparu que le cas du Select vide en toute fin de compilation ne pouvait jamais se produire car déjà traité en amont.
-
esj a rédigé
Ce perdant de PHP étant incapable de donner la ligne d'une faute de syntaxe sans provoquer une erreur fatale, on fait désormais retourner à {{{public_compiler}}} non plus la concaténation des fonctions compilées, mais le tableau des boucles, contenant leur code compilé et leur contexte de compilation (plus le code de a fonction pincipale, vu comme une fausse boucle). Cela permet à {{{public_composer}}}: * d'executer {{{if (@eval("return true; $code")) }}} sur le code de chaque fonction isolément, pour ne pas perdre la main en cas d'erreur de syntaxe et dire dans quelle boucle l'erreur se produit; * de donner le contexte de compilation de la fonction fautive au débusqueur, qui peut ainsi construire ses liens de navigation, en particulier le lien "code" de la boucle fautive, ce qui permet enfin au débusqueur d'afficher du code PHP fautif, qu'on pourra éventuellement copier dans un fichier pour relecture par l'interpréte PHP pour refaire apparaître, mais hors site, le numéro de ligne. J'aurais bien aimé dispenser de cette dernière manipulation, mais ça semble définitivement impossible en PHP. Au moins, on n'a plus à trafiquer composer.php et/ou lire le cache des squelettes compilés pour localiser l'erreur, surtout quand on n'a pas les [http://videos.spip.org/spip.php?article115 outils de Cédric]. La spécification du résultat de la fonction {{{public_compiler}}} est donc changée, mais ça ne concerne que ceux qui manipulent le code compilé explicitement.
-
- août 06, 2009
-
-
Fil a rédigé
report ecran de secu 0.7 + affichage de la version de l'ecran de secu en signature sous la version de SPIP (emplacement pas genial, il doit y avoir mieux
-
- août 05, 2009
-
-
esj a rédigé
[14332] avait mal géré la différence entre #INCLURE et <INCLURE quant au premier argument (Bruno). Et un log excessif. {{{ <INCLURE{fond=inc-pied, id_article}> <INCLURE{fond=inc-pied}{id_article}> #INCLURE{fond=inc-pied, id_article}> #INCLURE{fond=inc-pied}{id_article}> }}}
-
esj a rédigé
-
Fil a rédigé
mise a jour de l'ecran de securite dans la branche dev/ en reportant http://zone.spip.org/trac/spip-zone/changeset/30587 ; suppression de l'ecran de securite dans la branche spip-2.0 : comme on craint que ca casse des plugins, et en attendant 2.1, les volontaires doivent l'installer a la main
-
esj a rédigé
La sauvegarde n'était plus permise pour les admins restreints à partir de la page d'admin, en revanche le script de sauvegarde pouvait être appelé directement sans précaution, d'où un résultat de dump placé n'importe où. On rééquilibre les conrôles.
-
esj a rédigé
Bug SQL qui empechait les simples rédacteurs d'avoir l'icone donnant la page de tous leurs articles.
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
-
esj a rédigé
Sécurité: un simple rédacteur avait le droit d'appliquer chmod et tenter de déclarer une autre base. Je n'ai pas encore approfondi le degré de gravité de la chose, mais c'est de toutes façons anormal de pouvoir arriver là.
-
- août 04, 2009
-
-
cerdic a rédigé
-
esj a rédigé
Le rare 3e argument de erreur_squelette vaut toujours var_mode_objet, on l'évacue de l'appel, ça permet de réduire les pré-supposés sur le débusqueur.
-
esj a rédigé
Le débusqueur donne à présent aussi pour les requêtes fabriquées par le compilateur la ligne où l'erreur intervient dans le squelette (cas assez rares où l'utilisateur écrit mal des opérandes de fonctions SQL comme REGEXP). Occasion de voir que les portages SQL n'étaient pas toujours cohérents> de l'un à l'autre mais aussi en interne: * sql_countsel ne contrôlait pas bien une éventuelle erreur de sql_select, * sql_errno ne retournait pas toujours un code numérique. On rajoute dans le code compilé l'envoi du contexte de compil (toujours la même fonction {{{denoncer_inclure_dynamique}}} qui n'est donc toujours pas bien nommée), et un test de requête fautive pour éviter une cascade d'erreur ensuite. La fonction {{{sql_select}}} voit son dernier argument légèrement modifié: il peut être le contexte de compil, et s'interprète alors comme True (ça devrait être transparent). Les instances dans les différents portage ne retourne plus un tableau en cas d'erreur, mais seulement le texte brut de la requête, ça permet de ne plus dupliquer du code dans les portages. Il faudrait revoir trace_query, il y a des redondance quant au contexte de compil à présent.
-
salvatore a rédigé
-
salvatore a rédigé
-
salvatore a rédigé
-
Fil a rédigé
-
esj a rédigé
-
- août 03, 2009
-
-
esj a rédigé
Deplacement de {{{denoncer_inclure_dynamique}}} pour qu'un visiteur non admin ne se prenne pas une erreur fatale dans la figure.
-
esj a rédigé
Un peu de rigueur dans les specs du débusqueur: il ne rend pas de résultat, c'est aux appelants de retourner ce qu'il faut selon les situations.
-
esj a rédigé
Donner la ligne fautive pour un mauvais paramètre d'inclusion. Et éviter que PHP émette un Parse Error dans la foulée.
-