Skip to content
Extraits de code Groupes Projets
  1. mai 24, 2008
  2. mai 03, 2008
  3. avr. 13, 2008
  4. avr. 12, 2008
    • esj's avatar
      Suite de [11441]: ne pas fermer la connexion dans la fonction... · 8aa13f97
      esj a rédigé
      Suite de [11441]: ne pas fermer la connexion dans la fonction recuperer_entetes en cas de status <> 200: la persistence peut rester utilie.
      8aa13f97
    • esj's avatar
      Ajouts d'arguments optionnels à la fonction http_init, afin de pouvoir... · f03ca578
      esj a rédigé
      Ajouts d'arguments optionnels à la fonction http_init, afin de pouvoir l'utiliser en HTTP/1.1 avec connexions persistentes (sous réserve que KeepAlive soit à On dans le httpd.conf du serveur visé). Redécoupage fonctionnels des fonctions qui l'appellent afin de pouvoir réutiliser leur boulot dans ce contexte un peu différent du HTTP/1.0 utilisé par SPIP pour récupérer une page unique (ce qui est normal).
      f03ca578
  5. avr. 11, 2008
  6. avr. 10, 2008
  7. jan. 26, 2008
  8. jan. 24, 2008
    • esj's avatar
      genere_url_document et encore un peu CSV. · 4bb1e0f9
      esj a rédigé
      Le changement de stratégie sur la protection des documents rebondit encore.
      Si un modèle a besoin d'incruster un document dont il ne connait que l'URL, le site exécutant la fonction copie_locale va échouer sur son propre appel car un serveur n'est pas son propre client. On repère donc la situation suffisamment en amont pour pouvoir faire sauter la auto-protection.
      
      Par ailleurs, le filtre d'incrustation d'un CSV admet aussi la tabulation comme séparateur de colonne, et le {{{^M}}} comme unique séparateur de ligne (j'espère que le nombre de tableurs qui réinventent le RFC de CSV est strictement inférieur à mon nombre de collègues, je commence à en douter).
      
      Précision sur [11111]: le raccourci pour Caption est {{{||}}} qu'il faut écrire entre triple accolade sur le Wiki de Trac.
      4bb1e0f9
  9. jan. 18, 2008
    • esj's avatar
      Elimination de la table principale de la boucle de [11091]: traitement... · 0014e6e9
      esj a rédigé
      Elimination de la table principale de la boucle de [11091]: traitement particulier de la boucle Document dont la "table principale" a une jointure d'office.
      Toujours le même fichier à contrôler pour SQLite.
      
      Scorie de [11089] qui empêchait contenu_document de fonctionner dans un cas.
      0014e6e9
  10. jan. 17, 2008
    • Christian Lefebvre's avatar
      autodoc · 00713862
      Christian Lefebvre a rédigé
      00713862
    • esj's avatar
      Le filtre 'contenu_document' accepte comme argument non seulement un entier... · 2be76cb1
      esj a rédigé
      Le filtre 'contenu_document' accepte comme argument non seulement un entier (produit notamment par #ID_DOCUMENT) mais aussi un chemin ou une URL (produit notamment par #URL_DOCUMENT). Dans les deux cas il ramène le contenu du document ainsi désigné. La forme {{{ [(#URL_DOCUMENT|contenu_document)] }}} est à préférer car elle garantit l'exécution du squelette sur une base externe, contrairement à ID_DOCUMENT qui ne communique pas sa base de référence. Cette forme reste toutefois nécessaire en cas d'accès protégé aux documents: il faudrait continuer le ménage autour de la fonction ''copie_locale'' pour qu'une copie de soi à soi ne soit pas bloquée dans ce cas.
      
      Et correction d'une scorie de [11088].
      2be76cb1
  11. jan. 16, 2008
    • esj's avatar
      Harmonisation de la structure de données de 'recuperer_infos_distantes' et... · 5b524cf7
      esj a rédigé
      Harmonisation de la structure de données de 'recuperer_infos_distantes' et 'inc_ajouter_document' pour éviter de faire et défaire 2 fois la même chose et gagner une requete SQL.
      5b524cf7
    • esj's avatar
      Eviter de produire des vignettes de taille nulle et redonner alors l'URL... · 1c0eaca9
      esj a rédigé
      Eviter de produire des vignettes de taille nulle et redonner alors l'URL initiale avec un width/height comme pour les images incomprises par GD etc. Le cas se produit lorsque l'image est protégée par un https sur un serveur distant auquel le serveur voulant produire la vignette n'a pas accès, tandis que sont client l'a (suis-je clair?). 
      
      Coté proxy, autoriser un proxy en Https et pour la phase de test prévenir si on teste une URL n'ayant pas besoin du proxy.
      1c0eaca9
  12. déc. 31, 2007
  13. nov. 15, 2007
  14. nov. 04, 2007
    • esj's avatar
      Le standard SQL précise qu'une chaîne avec apostrophe se code avec une double... · 17cd028f
      esj a rédigé
      Le standard SQL précise qu'une chaîne avec apostrophe se code avec une double apostrophe et non un \ ce que SQLite fait aussi, contrairement à MySQL et PG. 
      En prévision des portages utilisant cette réprésentation, l'interface s'enrichit de la fonction {{{sql_quote}}}, qui s'ajoute à celles définies dans [10707] [10667], [10433], [10131], [10146], [10154] et [10113]
      
      {{{
      quote => fonction d'abstraction de la citation d'une constante SQL
      }}}
      
      Pour MySQL et PG, cette fonction est donc équivalente à {{{_q()}}} qui reste disponible, mais doit être considérée comme obsolète. Le présent dépôt a été obtenu par le script ci-dessous, dont on peut faire usage pour ses extensions personnelles:
      
      {{{
      for i in $(grep  -l '_q(' [bigpeau]*/*p)
      do
      	sed 's/_q(/sql_quote(/g' $i > x
      	mv  x $i
      done
      }}}
      
      Un ajustement manuel a été nécessaire pour le critère "=", le compilateur testant si le code qu'il a produit contient la fonction de citation.
      17cd028f
  15. oct. 03, 2007
    • esj's avatar
      Abstraction de tous les appels {{{ spip_query("SELECT ..... WHERE ... }}} pour... · f7392a66
      esj a rédigé
      Abstraction de tous les appels {{{ spip_query("SELECT ..... WHERE ... }}} pour que les champs de type Date dans la clause WHERE soient transformé pour Postgres.
      La Regexp précédent était trop restrictive dans sa manière d'exclure les requêtes avec GROUP BY, ORDER BY et LIMIT.
      
      Dépot obtenu par: 
      
      {{{
      for i in $(grep -l 'spip_query..SELECT.*FROM.*WHERE[^YT]*;' [a-i]*/*php)
      do
      # Pour la clause DISTINCT, laisser intact pour le moment.
      sed 's/spip_query..SELECT *\([^D]*[^ ]\) *FROM *\(.*[^ ]\) *WHERE *\([^YT]*;\)$/sql_select("\1", "\2", "\3/;s/ "" *\.//;s/ch(sql_select\(.*\));/sel\1;/' $i > x
      echo $i
      mv x $i
      done
      }}}
      
      et une suppressions manuelle de lourdeurs syntaxiques résultantes, et ajout d'une Include.
      Pas d'intervention sur le fichier inc/meta: au test, include manquant. À controler.
      f7392a66
    • esj's avatar
      Abstraction de tous les appels {{{ spip_query("SELECT ..... WHERE ... }}} pour... · 01e52a0c
      esj a rédigé
      Abstraction de tous les appels {{{ spip_query("SELECT ..... WHERE ... }}} pour que les champs de type Date dans la clause WHERE soient transformé pour Postgres.
      
      Dépot obtenu par: 
      
      {{{
      for i in $(grep -l 'spip_query..SELECT.*FROM.*WHERE[^A-Z]*;$' [a-i]*/*php)
      do
      # Pour la clause DISTINCT, laisser intact pour le moment.
      sed 's/spip_query..SELECT *\([^D]*[^ ]\) *FROM *\(.*[^ ]\) *WHERE *\([^A-Z]*;\)$/sql_select("\1", "\2", "\3/;s/ "" *\.//;s/ch(sql_select\(.*\));/sel\1;/' $i > x
      echo $i
      mv x $i
      done
      #}}}
      
      et deux suppressions manuelles de lourdeurs syntaxiques résultantes.
      Pas d'intervention sur le fichier inc/meta: au test, include manquant. À controler.
      01e52a0c
  16. sept. 11, 2007
  17. août 12, 2007
    • cerdic's avatar
    • cerdic's avatar
      #1002 notamment : copie_locale renvoie un chemin referent a la racine, il faut... · ed9250c3
      cerdic a rédigé
      #1002 notamment : copie_locale renvoie un chemin referent a la racine, il faut donc prefixer son resultat de _DIR_RACINE
      ed9250c3
    • 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
  18. août 08, 2007
  19. août 04, 2007
    • esj's avatar
      #209: Afin que les plugins utilisant '''SPIP_NUM''' ou '''SPIP_ASSOC''' dans... · a8ee88ff
      esj a rédigé
      #209: Afin que les plugins utilisant '''SPIP_NUM''' ou '''SPIP_ASSOC''' dans les appels de '''spip_fetch_array''' continuent à fonctionner sans perturber le portage en PostGres, cette fonction passe en vieille_def avec une définition appellant explicitement '''mysql_fetch_array'''. Elle est remplacée dans tout le code de SPIP par '''spip_abstract_fetch''' auparavant utilisée seulement par le compilateur de squelettes. Les plugins voulant tourner en PostGres à terme sont invités à renommer cette fonction, et à ramener à un seul argument tous ses appels.
      
      Ce dépot résulte donc du retrait des deux définitions de '''spip_fetch_array''' présentes dans source:spip/ecrire/base/db_mysql.php et source:spip/ecrire/base/db_pg.php (qui peuvent donc être chargés simultanément à présent si nécessaire) et de l'application du script suivant dans le répertoire '''ecrire''':
      
      {{{
      for i in $(grep -l spip_fetch_array */*p|grep -v vieilles_def)
      do 
      sed s/spip_fetch_array/spip_abstract_fetch/g $i > x
      mv  x $i
      done    
      }}}
      a8ee88ff
  20. juin 27, 2007
  21. juin 16, 2007
    • esj's avatar
      Implémentation de #961 : il est maintenant possible de spécifier des machines... · 961a7986
      esj a rédigé
      Implémentation de #961 : il est maintenant possible de spécifier des machines ou des domaines pour lesquels le proxy ne doit pas etre utilisé. On en profite pour aller jusqu'au bout de l'usage d'Ajax dans ce cas de configuraiton, mais ça marche toujours sans Ajax (mais comment on n'a pu supporter si longtemps une lenteur pareille dans ce cas?). On en profite aussi pour revoir les libellés, d'une part pour signaler que c'est nécessaire à l'accès à la documentation (on aurait du le faire depuis longtemps) et pour que la validation en mode Ajax soit suivie d'une différence graphique (sinon, on avait l'impression que rien ne s'était passé).
      
      Attention, il y a un gros Hack pour forcer ces modifications dans les libellés, il faut une intégration propre à terme.
      961a7986
  22. juin 11, 2007
  23. avr. 19, 2007
    • esj's avatar
      [8952] avait rendu inaccessible le test du proxy. Mais il y a des bouts de... · af1f7f05
      esj a rédigé
      [8952] avait rendu inaccessible le test du proxy. Mais il y a des bouts de ficelles qui vont loin quand on tire dessus. Tant qu'à reprendre le script {{{config_fonctions}}} pour ça, autant passer en ajax  les 9 cas de Submit de cette page (retester les créateurs de vignettes quand on change une des 8 autres options, c'était pas terrible). Mais pour éviter 9 trios de fichiers (action/exec/inc), on réécrit ajax_action_post pour qu'il permette de partager le meme fichier {{{configurer.php}}}: un dans {{{action}}} (ce qui va permettre de remplacer les modifs en rafale dans {{{appliquer_modif_configs}}} par la seule modif utile; à faire), et un dans {{{exec}}}. 
      
      Et pour eviter que celui de {{{exec}}}ne soit totalement opaque en relançant n'importe quel script de {{{inc}}}, création d'un sous-répertoire {{{configuration}}} destiné à contenir tous les formulaires sur les options de configuration.
      
      Dans ce répertoire {{{configuration}}} figurent les 9 scripts dont on vient de parler, plus les 2 déjà créés par [9039] (config_lang en Ajax) et 2 autres venant de la mise en Ajax de config_multilang (qui ne relance plus calculer_langue_rubrique: sauf erreur ça n'a jamais eu d'impact immédiat sur elles), en attendant de créer tout ceux potentiellement dans exec/config_contenu.php et dans exec/configuration.php.
      
      Pour enfin rendre à nouveau accessible le test du proxy, nouvel ajout à ajax_action_post afin qu'il gère plusieurs boutons Submit dans un meme formulaire. Malheureusement AjaxSqueeze/JQuery ne traite pas ça, il a fallu rajouter dans layer.js une fonction de clone de bouton submit nommé.
      
      Et tout ça est xhtml strict, car tout avait commencé il y 24 heures par l'intention microscopique d'enlever un attribut align dans le formulaire config_fonctions!
      af1f7f05
  24. mars 23, 2007
    • esj's avatar
      Préparation à la disparition de _DIR_IMG dans le champ "fichier" de la table... · 7714d392
      esj a rédigé
      Préparation à la disparition de _DIR_IMG dans le champ "fichier" de la table des documents: 2 fonctions get_spip_doc et set_spip_doc convertissent les infos dans la table SQL en l'adresse effective du fichier sur le disque. A noter qu'il y a de toutes façons déjà une conversion en ce qu'il faut rajouter _DIR_RACINE. Dans inc/utils on trouvera en commentaire les versions à utiliser à terme. Elles semblent bien marcher sur une base vierge, mais reste à écrire la mise à jour des anciennes bases, avec un risque de Time Out à gérer.
      7714d392
  25. mars 22, 2007
  26. mars 21, 2007
  27. mars 07, 2007
  28. mars 05, 2007
  29. fév. 21, 2007
Chargement en cours