- déc. 16, 2010
-
-
cerdic a rédigé
-
- déc. 09, 2010
-
-
cerdic a rédigé
La constante _EXTENSION_SQUELETTE qui indique l'extension d'un sauelette avait beaucoup trop d'occurrences dans le code, ce qui ne permet pas facilement de mettre en place une strategie ou plusieurs extensions seraient possibles simultanement. Il n'y a besoin que d'une seule occurrence en fait, dans la fonction {{{trouve_modele}}} sur laquelle toutes les autres se rabattent. Pour le decompilateur, il faut se baseru sur l'extension du fichier de depart pour retrouver l'information, et n'avoir qu'un seul point d'entree poureviter de gerer une valeur par defaut. Pour le debusqueur, on donne le nom du squelette sans l'extension puisque justement il est possible qu'il y ait le choix.
-
- sept. 18, 2010
-
-
cerdic a rédigé
les filtres pour les pages de l'espace prive sont deplaces dans inc/filtres_ecrire qui est inclu au calcul, si on est bien dans l'espace prive
-
- août 20, 2010
-
-
esj a rédigé
Report en spip 2.2 des améliorations du validateur et du débusqueur: [15927], [15928], [15930] (avec [15698]), [15933], [15934], [15935] (inclut [15912]), [15941], [15943], [15944], [15949], [15951], [15952], [15955].
-
- mars 13, 2010
- fév. 17, 2010
-
-
cerdic a rédigé
-
- fév. 10, 2010
-
-
cerdic a rédigé
-
- jan. 04, 2010
-
-
cerdic a rédigé
-
- nov. 29, 2009
-
-
Fil a rédigé
normaliser_date() prend un argument indiquant si on veut forcer un jour existant (en -01; c'est la cas d'une date passee dans l'url) ou se contenter d'un nc (-00, cas d'une date passee dans {{{#DATE}}}).
-
- nov. 12, 2009
-
-
esj a rédigé
Les fichiers de caches sur les pipelines et les plugins doivent faire partie de la purge du cache, sinon c'est le dialogue de sourds assuré sur l'existence de bug. S'il reste d'autre fichiers de ce genre non pris en compte par la purge, il faudrait les rajouter.
-
- août 21, 2009
-
-
esj a rédigé
-
- août 11, 2009
-
-
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).
-
- août 09, 2009
-
-
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.
-
- août 04, 2009
-
-
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.
-
- juil. 28, 2009
-
-
esj a rédigé
Fusion des fonctions debug_dumpfile et erreur_squelette pour pouvoir, à terme, surcharger le débusqueur.
-
- juin 14, 2009
-
-
esj a rédigé
Centralisation du nom de l'extension des squelettes (y compris les modèles) dans la constante _EXTENSION_SQUELETTES, plutôt que d'avoir '.html' à tous les coins de rue.
-
- avr. 19, 2009
-
-
cerdic a rédigé
passer le contexte au lieu du seul id_rubrique qui sera calcule directement dans styliser du coup le contexte peut etre passe au pipeline, ce qui permet la stylisation des objets en fonction d'information qui lui sont propres
-
- fév. 21, 2009
-
-
renato a rédigé
introduit les valuers date_default et date_redac_default dans le contexte quand SPIP ajoute la date d'office.
-
- déc. 23, 2008
-
-
esj a rédigé
Dépot obtenu par: {{{ for i in $(grep -l '(c) 2001-' * */* */*/* 2> /dev/null) do sed 's/(c) 2001-2008/(c) 2001-2009/' $i > /tmp/x mv /tmp/x $i done }}}
-
- déc. 10, 2008
-
-
cerdic a rédigé
-
- nov. 24, 2008
-
-
cerdic a rédigé
-
- sept. 24, 2008
- sept. 07, 2008
-
-
esj a rédigé
[12552] avait éliminé une des raisons des doublons dans le cache, mais il y en avait deux autres: * les valeurs d'office pour les dates, à force d'êtré déplacées en amont impactaient à présent sur le nom du cache; on revient à la sémantique antérieure sans possibilité de critère conditionnels dessus même avec {{{INCLURE*}}} (qui ne se différence donc de {{{INCLURE}}} que pour {{{ lang }}}); seul changement: l'insertion est beaucoup plus en aval, pour qu'un jour ce soit intégré au compilateur, c'est visiblement la seule solution propre. * lier le md5 du nom du cache à la globale {{{ $fond }}} interdit de fait tout partage de cache entre deux pages de fond différent incluant un même squelette; ce choix ne doit pas être imposé par la fonction standard. Au besoin, on peut toujours concaténer cette valeur maintenant ignorée à la globale {{{ marqueur}}}. Ca ne suffit cependant pas à revenir à l'absence de doublons dans la cache comme en 1.9, car la fonction {{{balise_FORMULAIRE__dyn}}}, en prenant en charge toutes les constructions de contexte pour balises dynamiques, a rajouté dedans des valeurs qui ne servent pas toujours. Il faut remplacer {{{ array_merge }}} par une opération plus précise, fondée sur un nommage commun à tous les formulaires CVT.
-
- août 29, 2008
-
-
esj a rédigé
- public/parametrer determine le squelette, applique son code compilé et retourne la page (seul changement: il ne détermine plus le nom) - public/composer determine le nom de la fonction principale du code compilé, le charge et retourne en valeur un tableau formé de ce nom et ce code. Par ailleurs, les fonctions d'appel à SQL présentes dans le code compilé sont mises dans un nouveau fichier, public/quete. Tout ça devrait permettre aux modèles de charger ces fonctions sans charger les fonctions de détermination de squelette, et de charger les deux fichiers ci-desss par charger_fonction uniquement.
-
- août 28, 2008
-
-
amemo a rédigé
-
esj a rédigé
La fonction {{{evaluer_fond}}} avait 4 arguments dont le 3e n'était pas utilisé, et du coup plusieurs de ses appels donnaient comme 3e argument ce qui se voulait le dernier (le nom du serveur). On corrige en éliminant le paramètre superflu (attention pour ceux qui avaient bon donc). Par ailleurs, cette fonction ressemble fortement à une autre, {{{recuperer_fond}}}, qui n'est vraiment indispensable qu'au code compilé. En conséquence, {{{recuperer_fond}}} migre dans le fichier chargé uniquement en cas d'exécution de squelette et ne doit plus être utilisée afin de clarifier l'interface aux fonctions du compilateur. Ce ménage permet de réduire quelques inclusions superflues, et de commencer à retrouver un découpage plus fonctionnel du compilateur: {{{public/assembler}}} ne devrait être chargé que pour les pages initiales, Ajax ou non, qui doivent traiter les variables d'URL, les autres pages devant pouvoir ne charger que {{{public/parametrer}}}. On n'y est pas encore, mais on s'en approche.
-
esj a rédigé
Amélioration de la mise en squelette des anciennes actions ical et rss, afin de retrouver la même clé qu'auparavant, et éviter de charger inc/acces à chaque exécution de squelette. Le pb signalé dans [12404] est donc évacué.
-
esj a rédigé
La fabrication des URL publiques des entités a toujours été modulable, mais pas dans un même processus, ce qui posait deux limitations: - la production de ces URLs publiques à partir de l'espace privé oblige à passer par un script de redirection, couteux, obscur et peu extensible; - dans le cas du multi-site, impossible d'avoir autant de nommages différents que de sites, les fonctions produisant les URLs portant le même nom dans tous les système de nommage. Cette restriction est à présent levée, apparamment sans problème de compatibilité: Les fonctions {{{generer_url_{article, auteur, breve, mot, rubique, site} }}} sont déclarées obsolètes et remplacées par: {{{ function generer_url_entite($id='', $entite='', $args='', $ancre='', prive='', $type='') }}} un appel comme {{{ generer_url_article(id, arg, ancre) }}} s'écrit à présent {{{{ generer_url_entite(id, 'article', arg, ancre) }}}. Cette transformation étant prise en charge par {{{vieilles_def.php}}}, tandis que le code de SPIP a déjà évacué ces appels. Le 5e argument permet de forcer la production d'une URL de lecture alors qu'on est dans l'espace d'écriture et inversement. Le 6e argument permet de forcer l'utilisation d'un jeu d'URL différent de celui spécifié par la meta {{{type_urls}}}. Ces argument rend superflu la fonction {{{charger_generer_url}}} qui disparait complètement. La fonction {{{generer_url_entite}}} ne fait que lire le fichier X ainsi spécifier puis passe la main soit aux fonctions {{{generer_url_ecrire_article}}} etc dans le cas des URLs en écriture, soit sinon à la fonction {{{urls_}}}X{{{_dist}}}. Celle-ci a un double rôle: si son deuxième argument est numérique (ou une chaîne interprétable ainsi) elle produit l'URL de l'entité SQL ainsi désignée, à sa manière (propre, arbo, html...); si son deuxième argument est une chaîne, c'est une URL à partir de laquelle la fonction retrouve la table SQL et le numéro de l'entité (comme auparavant). Pour ceux qui ont des jeux de fonctions {{{generer_url_...}}} personnels, il est normalement pas nécessaire de le réécrire pour en disposer, mais c'est préférable pour qu'il puisse co-exister avec les autres au besoin. A noter qu'on ne peut actuellement faire co-exister Propre et Arbo car elles déclarent le même pipeline ({{{creer_chaine_url}}}), il faudrait revoir ce code. Je laisse en test un moment avant de basculer sur la branche 2, d'autant qu'il faudrait statuer sur le fichier {{{tourner}}} qui au bord du fork.
-
- août 26, 2008
-
-
esj a rédigé
Introduction dans les squelettes {{{prive/rss}}} du contrôle de sécurité, et changement des liens des boutons donnant un flux RSS privé qui appellent à présent directement un squelette ({{{prive/rss.html}}}), et non plus le script {{{action/rss.php}}}. Réécriture de celui-ci, qui accepte toujours les anciens liens et leur communique le résultat attendu malgré ces changements, au prix d'un deuxième contrôle de sécurité. Mais il faudrait évacuer complètement ce script et retourner une redirection définitive, pas triviale car le hash n'est pas le même entre les deux versions.
-
- août 24, 2008
-
-
Fil a rédigé
-
- août 07, 2008
-
-
amemo a rédigé
-
esj a rédigé
Le validateur en boucle ne pouvait pas s'appliquer sur les répertoires des squelettes de l'espace privé à cause d'une sécurité trop stricte. Du coup: - la fonction surchargeable {{{public_composer}}} retourne en valeur le code compilé du squelette, plutôt qu'un résultat mal défini (ça aurait dû être fait depuis longtemps); - au passage, elle ne teste plus l'existence d'un fichier associé au squelette de suffixe {{{fonctions.php3}}}, seulement {{{_fonctions.php}}}; - le validateur exploite directement ce résultat pour calculer la page, ce qui évite le contrôle de sécurité excessif induit par le {{{recuperer_page}}} sur soi-même antérieur (ça garantit aussi qu'on tombera bien sur ce squelette, et c'est plus rapide) Cette extension du validateur a permis d'exécuter {{{./?exec=valider_xml&var_url=../prive/formulaires&ext=html}}} et de détecter des erreurs, certaines corrigées par les dépots suivants, mais d'autres posent problème: - le formulaire {{{menu_lang}}} n'a pas de {{{div}}} après {{{form}}} comme le veut XHTML strict, mais la rajouter l'empêche son AJAX de fonctionner (pas corrigé, à revoir); - les formulaires {{{editer_mot}}} et {{{editer_site}}} annoncent un {{{id}}} par un {{{label}}} mais celui-ci ne figure pas directement dans le formulaire, c'est une inclusion ou un filtre qui le donne, et le validateur croit bien faire en signalant l'absence, et il n'a pas vraiment tort sur le plan méthodologique; il faudrait les reconcevoir. Pour le validateur lui-même, il reste encore à fournir une URL correcte pour la validation d'un unique squelette privé. Là aussi un peu de méthode ne ferait pas de mal: - ne pas utiliser le paramètre {{{action}}} dans un environnement de squelette privé, ça clashe avec le répertoire public {{{action}}}, car le validateur n'a pas cette notion d'espace; - indiquer qq part les types des arguments (id_* ==> nombre etc). Un tâche à ouvrir, car ça prendra des mois.
-
- août 01, 2008
-
-
esj a rédigé
La balise EXPOSE n'était pas opérationnelle en multi-base, c'est réparé. Incidemment, les fonctions {{{quete_*}}} qui ne prévoyaient pss le paramètre optionnel indiquant la base le prévoient à présent. La fonction {{{calculer_hierarchie}}} disparaît, n'étant utilisée que pour cette balise, et donc de manière lacunaire.
-
- juil. 08, 2008
-
-
marcimat a rédigé
Suppression (revert) des fonctions de cache sur sql_getfetsel et sql_fetsel_cache introduites par [11842] et [12002]. Synthèse de petites discussions : - Ces fonctions avaient été introduites car la compilation de squelettes peut induire de nombreuses requetes identiques. - Cependant, ce n'est pas à cette api SQL de gérer des caches, mais au compilateur qui doit pouvoir optimiser le code généré. - Il y avait trop de risques en cas d'accès concurrent à une même donnée que l'information rendue ne soit pas fraîche.
-
- juin 19, 2008
-
-
cerdic a rédigé
on introduit un sql_fetsel_cache qui cache les resultats, a utiliser sur les requetes identiques repetitives dans un meme hit on applique aux requetes de parametrer qui coutent en cas d'inclusions nombreuses sql_getfetsel passe par sql_fetsel_cache systematiquement (on presume que cette valeur unique est suceptible de servir plusieurs fois) fichier_copie_locale economise aussi une ou deux requetes par document distant deja rapatrie
-
- juin 17, 2008
-
-
Fil a rédigé
utiliser le | pour separer les filtres, ca permet plus de coherence {{{#FILTRE{compacte_head|liens_absolus} }}} et ca evite d'avoir a gerer des guillemets pour echapper a la virgule ; par defaut on passe inc-head en liens_absolus (un souci de moins pour les urls arborescentes
-
- mai 16, 2008
-
-
Fil a rédigé
-