Skip to content
Extraits de code Groupes Projets
  1. sept. 04, 2007
  2. août 30, 2007
    • esj's avatar
      Multibase: #716 ayant prémonitoirement demandé le multi-squelette suggéré dans... · 3dd6f1b6
      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.
      3dd6f1b6
  3. août 25, 2007
    • esj's avatar
      Le multi-base détecte quand un site distant est sous SPIP, et le compilateur... · 56406a05
      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).
      
      56406a05
  4. août 22, 2007
    • esj's avatar
      #209: l'élimination d'apostrophes (exigée par PG) autour d'une constante... · 1d2db8de
      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.
      1d2db8de
  5. août 20, 2007
    • esj's avatar
      Correction de #954: bien gérer le critère '''doublons''' dans une table... · 220ae1f1
      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.
      220ae1f1
  6. août 12, 2007
    • esj's avatar
      Renommage de toutes les fonctions '''spip_abstract_''' en '''sql_''', c'est... · f38734d5
      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.
      f38734d5
  7. août 05, 2007
    • esj's avatar
      #209: comme l'avait prévu [9859], autre cas de nombres à ne pas entourer... · 38c663c1
      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.
      
      38c663c1
  8. juil. 04, 2007
  9. juin 13, 2007
  10. mai 24, 2007
  11. mai 23, 2007
  12. mai 22, 2007
  13. mai 18, 2007
  14. mai 05, 2007
  15. avr. 07, 2007
  16. mars 05, 2007
  17. fév. 23, 2007
    • esj's avatar
      Correction d'un bug de conception affectant le script ecrire/prive.php... · b0e46520
      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.
      b0e46520
  18. fév. 21, 2007
  19. déc. 27, 2006
    • esj's avatar
      Extension de la fonction sous_repertoire, qui accepte un appel de forme... · a06d6ffa
      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.
      a06d6ffa
  20. déc. 17, 2006
  21. déc. 08, 2006
  22. nov. 27, 2006
  23. nov. 10, 2006
    • esj's avatar
      Le validateur xml intégré à Spip et appelable depuis le débusqueur souffrait... · 71568fb9
      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.
      71568fb9
  24. oct. 25, 2006
  25. oct. 15, 2006
  26. oct. 02, 2006
  27. sept. 18, 2006
  28. sept. 16, 2006
    • esj's avatar
      Mise en Ajax des deux dernieres actions faisables dans le portfolio et le... · 63d1e59a
      esj a rédigé
      Mise en Ajax des deux dernieres actions faisables dans le portfolio et le fonds: supprimer un document et supprimer sa vignette. On réaffiche alors tout le portfolio ou le fonds (dans quelques cas on pourrait faire encore mieux, mais c'est déjà beaucoup mieux que de recharger toute la page). 
      
      Au passage, xhtmlisation de qq séquences qui ne l'étaient pas. A noter que la construction à double balises A imbriquées de icone_horizontale conduit à provoquer parfois 2 requetes Ajax, il faudrait vraiment trouver une écriture graphiquement aussi bonne mais n'ayant pas cet inconvénient.
      63d1e59a
  29. sept. 10, 2006
  30. sept. 09, 2006
  31. août 31, 2006
  32. août 28, 2006
  33. août 22, 2006
    • Fil's avatar
      oups · 03cf293d
      Fil a rédigé
      03cf293d
Chargement en cours