Skip to content
Extraits de code Groupes Projets
  1. avr. 17, 2008
  2. avr. 16, 2008
  3. avr. 15, 2008
  4. avr. 14, 2008
  5. avr. 13, 2008
  6. 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
    • Fil's avatar
      ameliorer l'affichage des champs a copier-coller · 94140521
      Fil a rédigé
      94140521
    • Fil's avatar
      gerer les NULL et les extra dans le controle md5 ; et, quand on peut vider le... · 5746af92
      Fil a rédigé
      gerer les NULL et les extra dans le controle md5 ; et, quand on peut vider le champ extra, on le fait
      5746af92
    • Fil's avatar
      gestion d'un controle md5() des champs modifies via l'espace prive sur les... · d67758fb
      Fil a rédigé
      gestion d'un controle md5() des champs modifies via l'espace prive sur les articles, rubriques, breves, mots-cles, auteurs et sites.
      
      Le scenario est le suivant : supposons que Alice et Bob ouvrent en meme temps le meme article en edition ; ensuite chacun renvoie ses modifs. Les situations sont diverses :
      - Alice a modifie le titre, Bob le texte : on accepte les deux modifs, le titre de Bob (inchange) n'ecrase pas le titre d'Alice
      - Alice modifie le titre, Bob aussi :
      -- ils ont mis le meme titre => pas de probleme
      -- le titre differe => on previent Bob, on lui montre son titre, celui qui est stocke' dans la base, la difference entre les deux, et un formulaire pour copier/coller ses modifs
      
      Ces choses sont traitees champ par champ independamment : ainsi s'il y a conflit sur le titre mais pas sur le chapo, le chapo est enregistre, et le message d'erreur ne porte que sur le titre
      
      C'est, evidemment, compatible avec les crayons
      d67758fb
    • 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
    • marcimat's avatar
      Création et Suppression de Vues SQL pour les 3 serveurs PG, SQLite et MySQL · 4036970b
      marcimat a rédigé
      (et correction d'un petit bup pg sur sql_showtable)
      
      - Introduction de 3 fonctions :
      * sql_get_select() : qui reprend les mêmes arguments que sql_select() mais retourne la syntaxe de la requete sans l'executer
      * sql_create_view($nom, $requete_select) : crée une vue nommée $nom avec la selection $requete_select
      * sql_drop_view($nom) : supprime une vue
      
      - Attention, comme déjà signalé, si dans une selection il y a un champ préfixé d'un nom de table ou d'un alias : a.titre, il faut absolument lui donner un nom, sinon SQLite ne peut pas relire le champ (stocké 'a.titre' et non 'titre' dans sa vue). Dans ce cas faire : a.titre AS titre .
      
      - exemple inutile :
      
      $sel = sql_get_select(array('id_article'=>'id_article', 'titre'=>'titre'),'spip_articles');
      echo "requete select : $sel<br />";
      sql_create_view('vue_nom', $sel);
      
      if ($res = sql_select(array('id_article', 'titre'),'vue_nom','','','','10')){
      	while ($r = sql_fetch($res)){
      		echo "*" . $r['id_article'] . " - " . $r['titre'] . "<br />";
      	}	
      }
      
      sql_drop_view('vue_nom');
      4036970b
    • marcimat's avatar
    • marcimat's avatar
      - pouvoir lire les vues aussi avec SQLite (2 et 3) · 80529f32
      marcimat a rédigé
      Attention, il faut que les vues soient créées avec des champs nommés explicitement, sinon SQlite ne peut pas les relire avec : SELECT titre FROM vue
      
      Il faut donc, pour l'exemple de Fil, utiliser cette requete pour fonctionner avec sqlite :
      
      CREATE VIEW vue AS SELECT a.titre AS titre,a.id_article AS id_article,b.id_rubrique AS id_rubrique, b.titre AS titre_rub FROM spip_articles AS a LEFT JOIN spip_rubriques AS b ON (a.id_rubrique=b.id_rubrique)
      
      <BOUCLE_v(vue)>#TITRE </BOUCLE_v>
      
      ----
      Par ailleurs, un plantage est présent en sqlite3 si l'on fait un sql_query() de la requete précédente de creation de la vue; elle est bien executée, mais à cause d'un hack pour retrouver les bons comptes (sql_count) des requetes selects, il y a un clash juste derrière. A corriger donc une nouvelle fois : cette requete n'est pas un select !
      80529f32
  7. avr. 11, 2008
  8. avr. 10, 2008
Chargement en cours