- sept. 24, 2007
-
-
esj a rédigé
Rationnalisation des appels à '''trouver_table''': étant à présent parfois appelée hors d'une boucle à compiler, son deuxième argument, toujours optionnel, ne peut être un objet de la classe boucle, mais directement le nom du serveur. L'erreur de table inconnue est indiquée dans spip_log, et à l'écran une fois pour toutes lors de la compilation de {{{<BOUCLEn(inconnue)...}}}. Dans le cas d'une table de jointure inconnue, seul spip.log l'indiquera: il n'est pas sûr que ce soit une erreur tellement fatale en l'état des jointures automatiques calculées par SPIP.
-
- sept. 21, 2007
-
-
Fil a rédigé
supprimer spip_var_export, du coup c'est php 4.2.0 minimum (mais cette fonction est dans spip.log et personne n'a rale
-
- sept. 19, 2007
-
-
esj a rédigé
-
- sept. 18, 2007
-
-
esj a rédigé
Limitation des occurrences de la globale {{{ table_des_tables }}}, qui doit être considérée comme une facilité d'abréviation du nom des tables SQL et rien d'autre.
-
- sept. 14, 2007
-
-
esj a rédigé
Multi-base: les boucles référençant des connexions externes {{{<BOUCLE1(A:...}}} ou les pages appelées ainsi (paramètre d'URL {{{&connect=...}}} calculent à présent correctement les modèles contenus dans les champs SQL soumis aux filtre '''typo()''' et '''propre()'''. C'est un pas en avant dans la résolution complète de #716. Différences avec les versions précédentes: * (bug de PCRE) les notes nommées {{{ [[<*> ...}}} ne peuvent plus contenir d'espaces entre les deux crochets et le chevron; * les fonctions redéfinissables {{{avant_propre}}} et {{{apres_propre}}} sont évacuées, faisant double emploi avec les pipelines {{{pre_propre}}} et {{{post_propre}}}. * surtout: le pipeline {{{pre_propre}}} recevra un texte où les raccourcis de liens ({{{ [->art1] }}} etc) seront déjà expansés. Test: {{{ Doc 2239 centré <doc2239|center> Je mets 2 fois un raccourci de glossaire [?SPIP] [?SPIP] puis un [raccourci->art1] et un autre, automatique, [->art3634]. Suivre la note [[elle est terminée par un [raccourci->art1]]]. Un moment de poésie. <poesie> un haiku sur 2 lignes </poesie> Elle préfère parler d'un {accroissement de la dispersionsalariale} [[ [{Perspectives économiques}->http://www.oecd.org/document/4/0,3343,fr_2649_201185_20347588_1_1_1_1,00.html] - Vol. 2007-1, n¡~81, mai 2007, p. ~184. ]] Elle aussi préfère parler d'un {accroissement de la dispersion salariale} mais sur une seule ligne [[ [{Perspectives économiques}->http://www.oecd.org/document/4/0,3343,fr_2649_201185_20347588_1_1_1_1,00.html] - Vol. 2007-1, n¡~81, mai 2007, p. ~184. ]]. Une Juliette [[<*> sans numéro.]]. }}}
-
- sept. 08, 2007
-
-
esj a rédigé
Multi-base: la fonction '''table_from_primary''' est à présent équivalente à '''trouver_table(table_objet($x))''', ce qui achève de centraliser dans '''trouver_table''' toutes les recherche sur les tables. Réécriture de la balise '''#EXPOSE''', seule utilisatrice de '''table_from_primary''', cette dernière fonction effectuant un calcul supplémentaire, reporté donc dans le calcul de cette balise.
-
- sept. 07, 2007
-
-
esj a rédigé
#209: nouvelle rationnalisation de la fonction '''trouver_table''' introduite par [10133], qui affecte tous son résultat à la globale '''$connexions''' plutot que d'en recalculer une partie à chaque appel. Le tableau construit a toujours les index '''field''', '''index''', '''table''' (nom SQL) et à présent '''id_table''' qui donne le nom du suivant le '''AS''' dans la requête SQL (il était nommé "type" auparavant, ce qui était trompeur maintenant qu'il existe le type du serveur dans cette structure de données). Par ailleurs, les jointures dans une base externe ne marchaient plus. Quant aux balises #URL_ utilisées dans une base externe non SPIP, elles provoquaient une récursion infinie débouchant sur un {{{Illegal Instruction}}} par PHP.
-
- sept. 06, 2007
-
-
esj a rédigé
Multibase et #877: les globales '''$tables_des_serveurs_sql''' et '''$type_des_serveurs''' disparaissent. Les informations quelles contenaient se retrouvent dans la globale '''connexion''', avec les sous-index respectifs '''tables''' et '''spip_connect_version'''. Une valeur nulle pour '''spip_connect_version''' indique que la base externe n'est pas sous SPIP (donc pas de gestion de préfixe). Ces disparitions permettent de centraliser dans la fonction '''trouver_table''' toutes les recherches de table afin d'améliorer facilement ce genre de recherche à l'avenir. Cette fonction quitte le fichier "criteres.php" car elle n'est plus spécifique à la compilation des criteres. Elle dispense le compilateur d'initialiser à chaque appel le tableau des tables SQL prédéfinies, ce qui est aussi un gain.
-
- sept. 04, 2007
-
-
esj a rédigé
-
- août 30, 2007
-
-
esj a rédigé
Multibase: #716 ayant prémonitoirement demandé le multi-squelette suggéré dans [10113], le présent dépot (aidé de [10133] et [10138]) le réalise en deux coups de cuillère à Post. A présent, si on appelle une page avec un variable d'URL nommé '''connect''', SPIP considèrera qu'il doit utiliser non pas la base principale, mais celle indiquée par par l'entrée du tableau '''connexions''' indexée par la valeur du paramètre '''connect'''. Rappelons que tout fichier '''config/connect'''X'''.php''' garni l'entrée X du tableau '''connexions'''. Dans cette situation, les boucles des squelettes utilisés pour produire la page seront implicitement préfixées par la connexion demandée: {{{<BOUCLE(T) ...}}} sera vue comme {{{<BOUCLE(X:T) ...}}} quand l'URL comporte {{{&connect=X}}}. Aspects techniques La compilation d'un squelette produira autant de fichier dans tmp/cache/skel que d'application à des bases différentes. Il y aurait moyen de faire un plus compact, mais avec une petite chute de performances. On sacrifie donc l'espace au temps, ça ne semble pas un problème vu la taille usuelle d'un squelette compilé. Les différences entre les compilations d'un même squelettes proviennent des balises #URL_* et assimilées. Il y aura peut-etre une petite réorganisation des fonctions sur les balises et les critères à opérer pour gérer ça plus astucieusement.
-
- août 25, 2007
-
-
esj a rédigé
Le multi-base détecte quand un site distant est sous SPIP, et le compilateur de squelette applique alors les mêmes abréviations pour {{{<BOUCLE(A:T ...}}} que pour une boucle T locale, en prenant en compte le préfixe de table spécifique au site distant, ce qui réalise le souhait de [10113]. Quelques remarques: * la détection repose sur l'affectation de la variable '''spip_connect_version''' dans le fichier de connexion, et elle doit avoir la valeur 0.6. Détruire ce fichier et réinstaller le site distant si ce n'est pas le cas. * une manière d'obtenir un squelette pour site distant nommé SITE_DISTANT à partir d'un squelettes standard est {{{sed 's/(\([ABDFRS]\)/(SITE_DISTANT:\1/'}}} * la fonction '''trouver_def_table''' était appelée de manière incohérente (parfois avec le préfixe de table, parfois non) et était en partie redondante avec la fonction '''description_type_requete'''. Pour y remédier et atteindre le but ici décrit, ces deux fonctions ont été réunies en une seule, '''trouver_table''', dont les spécifications sont celles qu'avait '''description_type_requete''' (autrement dit cette fonction a été renommée). Etant très internes au compilateur, ces fonctions ne figurent pas dans vieilles_def (mais on peut les mettre si c'est vraiment nécessaire).
-
- août 22, 2007
-
-
esj a rédigé
#209: l'élimination d'apostrophes (exigée par PG) autour d'une constante numérque dans un critère ''col=valeur'' était mal calculé par [9859] car cette colonne n'est pas forcément dans la table de la boucle, elle peut-etre dans une table de jointure. Le code est donc reporté dans la fonction détectant le besoin de jointure pour récupérer la description de la bonne table.
-
- août 20, 2007
-
-
esj a rédigé
Correction de #954: bien gérer le critère '''doublons''' dans une table externe. La fonction '''trouver_def_table''' n'était pas utilisée à l'initialisation du compilateur c'était incohérent avec la suite. Mais il reste une dizaine d'occurrences du préfixe de table "'spip_'" qu'il faudrait revoir, il y a peut-être le même bug derrière.
-
- août 12, 2007
-
-
esj a rédigé
Renommage de toutes les fonctions '''spip_abstract_''' en '''sql_''', c'est plus court et plus parlant puisqu'il s'agit des fonctions d'interfaces avec un serveur SQL. De nouveau attention il faut vider le cache (en fait seulement celui des squelettes: tmp/cache/skel) car ce sont des fonctions que le compilateur place dans le code compilé. En conséquence, l'annonce de [9852] est modifiée: '''spip_fetch_array''' est remplacée par '''sql_fetch'''. Rien de modifié en revanche en ce qui concerne le fait que spip_fetch_array avec un deuxième argument égal à SPIP_NUM n'a pas d'équivalent et doit être réécrit si on éviter le recours à vieilles_def.php. Dépot obtenu par le script suivant: {{{ grep -v '// http://doc.spip.org/@spip_abstract_' base/abstract_sql.php > b mv b base/abstract_sql.php for i in $(grep -l "spip_abstract_" */*p|grep -v vieilles_def) do sed "s/spip_abstract_/sql_/g" $i > x; mv x $i done }}} et intervention manuelle sur vieilles_def.php.
-
- août 05, 2007
-
-
esj a rédigé
#209: comme l'avait prévu [9859], autre cas de nombres à ne pas entourer d'apostrophies, les clés de jointure. Il a fallu réfléchir longtemps, mais le changement est minimal, preuve que le compilateur a les bons utilitaires c'est rassurant. Aussi dans ce dépot, quelques corrections dans l'inteface PG: ° [9861] était vraiment à l'arraché, il ne fallait pas oublier de supprimer les AS ingjctés dans le GROUPBY; * traitement du HAVING par la fonction pour PG pas pour MySQL; * inclusion inopérante du débusqueur.
-
- juil. 04, 2007
-
-
Fil a rédigé
-
- juin 13, 2007
-
-
esj a rédigé
Les fichiers de public/ n'auraient pas du partir avec [9542]; je remets la version précédente de celui qui est encore inachevé (les autres ne posent pas pb).
-
esj a rédigé
Suite de [9492][9521]: la surcharge des puces ne suivait pas en Ajax. Unification du code qui permet au bloc des traductions de bénéficier des petits boutons. Quant au mode expérimental MEME_RUBRIQUE (chgt de statut de tous les articles), il ne marchait déjà plus, son code est évacué en attendant de refaire cette fonctionnalité autrement.
-
- mai 24, 2007
-
-
esj a rédigé
-
- mai 23, 2007
-
-
Fil a rédigé
[9355] avait annihile le default_order des boucles, du coup la HIERARCHIE devenait ANARCHIE ; restaurons l'ordre
-
- mai 22, 2007
-
-
Christian Lefebvre a rédigé
-
cerdic a rédigé
il doit etre place avant un eventuel inverse"
-
cerdic a rédigé
"un critere {collecte xx} qui est pris en compte au moment du calcul de la boucle dans la clause order Attention : la collecte doit etre coherente avec le charset du champ, en particulier il ne doit pas etre binaire "
-
- mai 18, 2007
-
-
Fil a rédigé
savoir recuperer la ->primary sur une boucle portant sur une table auxiliaire, exemple <BOUCLE_x(SPIP_AUTEURS_ARTICLES)...>
-
- mai 05, 2007
-
-
esj a rédigé
Evacuation de qq indéfinis de l'espace public, en particulier celui mentionné en [9142] qui empechait l'optimisation d'une jointure.
-
- avr. 07, 2007
-
-
esj a rédigé
Le débusqueur sur des boucles qui avait du texte en langue de droite à gauche partait à l'ouest, depuis toujours. Maintenant c'est bon.
-
- mars 05, 2007
-
-
Fil a rédigé
'tu me sauves la vie', a.k.a. compatibilite ascendante de la #PAGINATION dans les inclure de inclure de inclure avec {self=#SELF}
-
Fil a rédigé
introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout l'environnement de la page incluante a la page incluse ; au passage j'ai nettoye plusieurs facilites dans le debugueur, la pagination etc, qui devenaient des bugs si on creusait un peu (notamment : avec #INCLURE le contexte affiche par le debugueur etait celui de la page incluante)
-
- fév. 23, 2007
-
-
esj a rédigé
Correction d'un bug de conception affectant le script ecrire/prive.php permettant d'exécuter un squelette à partir de l'espace privé. Cette exécution marchait pour le squelette lui-meme mais: - provoquait des erreurs en cas d'inclusion par ce squelette - produisait des URL incorrectes vers les feuilles de styles et connexes A présent, la compilation d'un squelette ne calcule plus au moment de la compilation les valeurs des constantes _DIR_RESTREINT et _DIR_RACINE, mais au contraire écrit le nom de ces constantes dans le code produit (ceci concerne la balise INCLUDE, les balises dynamiques et la balise DOSSIER_SQUELETTE). Lorsque sera exécuté, il tiendra donc compte de l'espace dans lequel il est appelé, et produira donc des pages différentes selon qu'il est appelé par public.php ou par prive.php. Afin de ne pas multiplier par 2 la taille du cache ou d'y mettre des pages inappropriées à l'appel effectué, l'utilisation du script prive.php (assez rare) est repérée par le système de cache qui alors n'utilisera pas les pages disponibles en cache, et ne placera pas en cache les pages calculées pour cet appel spécifique.
-
- fév. 21, 2007
- déc. 27, 2006
-
-
esj a rédigé
Extension de la fonction sous_repertoire, qui accepte un appel de forme {{{sous_repertoire("d/f")}}} comme équivalent à {{{sous_repertoire("d", "f")}}}. Du coup, disparition d'une incohérence: la non utilisation de la constante _DIR_SKELS lors de la compilation d'un squelette. Cet appel est aussi utilisé pour la création du répertoire de cache des DTD, celui-ci s'annonçant comme bien rempli à l'avenir.
-
- déc. 17, 2006
-
-
Fil a rédigé
-
- déc. 08, 2006
-
-
Fil a rédigé
-
- nov. 27, 2006
-
-
Fil a rédigé
-
- nov. 10, 2006
-
-
esj a rédigé
Le validateur xml intégré à Spip et appelable depuis le débusqueur souffrait de quelques incohérences (depuis l'introduction du plugin "affichage_final" peut-etre). Il est à nouveau accessible, en mettant '$xhtml = "sax";' dans mes_options. La déduction de la ligne fautive dans le squelette à partir de la ligne fautive dans le résultat ne remarche en revanche pas encore, mais le problème a l'air plus général car les arguments de debug_sequence déclenche un Warning sur le modele "pagination". Tout ça est neutralisé par un @ ligne 450 de compiler.php, et un test préventif ligne 235 de debug.php mais il faudra y revenir.
-
- oct. 25, 2006
-
-
Fil a rédigé
-
- oct. 15, 2006
-
-
Christian Lefebvre a rédigé
-
- oct. 02, 2006
-
-
cerdic a rédigé
introduction d'un array $modificateur dans la structure des boucles permettant aux plugins d'ajouter des flags issus de criteres Passage de $tout,$plat,$lien et $fragments dans cet array (ces booleens sont conservés et affectés provisoirement pour compatibilité avec les plugins eventuels)
-