Skip to content
Extraits de code Groupes Projets
  1. jan. 16, 2012
  2. août 29, 2011
  3. juil. 17, 2011
  4. juin 27, 2011
    • cerdic's avatar
      rejoue_session n'a aucune raison d'etre une globale puisqu'on l'affecte une unique fois. · ad30c37b
      cerdic a rédigé
      Autant utiliser une constante, c'est plus clair.
      
      Par ailleurs, on peut se demander pourquoi le hit pour rejouer une session est en <img> statique + js pour inserer l'attribut src, et non directement en statique.
      Historiquement, ça vient de r424 qui l'inserait sous forme de <script> puis de r427 qui l'a compliqué avec le montage img+js. Pourquoi ne pas simplifier par une simple img ?
      ad30c37b
  5. mai 23, 2011
    • cerdic's avatar
      Reorganisation complete des feuilles de style de l'espace privé : · ab4e0e5a
      cerdic a rédigé
      - toutes déplacées dans le repertoire du thème
      - découpage par grandes fonctions
      - tous les paramètres calculés historiques, auxquels sont ajoutés des paramètres liés à la typo, sont calculés une fois dans style_prive.css.html du theme, et passees a toutes les inclusions, ce qui evite redondance de calcul
      - chaque feuille est surchargeable par un thème indépendamment des autres
      - la typo est reprise du travail de tetue sur le plugin petronille/basecss
      - la grille et les boites sont reprises de ooCSS
      
      Gros travail de nettoyage des styles qui ne servent plus, d'homogeneisation des styles entre les différentes feuilles ...
      spip_styles qui n'amène que des soucis pour l'annuler n'est plus utilisée et sa substantifique moelle est ajoutee a typo.css.html : elle est grandement allégée par rapport à la version statique précédente, et certaines propriétés sont calculées et non plus fixes.
      ab4e0e5a
  6. mai 03, 2011
  7. mars 31, 2011
    • cerdic's avatar
      Intégration d'une gestion de files de taches (initialement le plugin... · 8583e134
      cerdic a rédigé
      Intégration d'une gestion de files de taches (initialement le plugin job_queue) en remplacement du système de cron periodique
      La declaration de taches periodiques reste identique a auparavant (pipeline taches_generales_cron)
      
      La balise #SPIP_CRON disparait, remplacee par un declenchement en fin de hit uniquement quand une tache
      est en attente. Pour le declenchement, on utilise preferentiellement un socket, et a defaut une image background comme avant.
      
      Lors d'un appel, le sequenceur execute autant de taches en attente que possible, dans la limite d'un temps donné. Des appels concurents peuvent se jouer, mais chaque tache est executee une unique fois par une seule instance. L'unicité de l'execution est garantie par un sql_delete.
      
      SI jamais le nombre de taches en attente depasse un seuil (10000 par defaut) la file est purgee par un appel en fin de hit, synchrone.
      Une page d'aministration est accesible aux administrateurs depuis le menu maintenance.
      
      L'API est 
      /**
       * Ajout d'une tache dans la file d'attente
       *
       * @param $function
       *   The function name to call.
       * @param $description
       *   A human-readable description of the queued job.
       * @param $arguments
       *   Optional array of arguments to pass to the function.
       * @param $file
       *   Optional file path which needs to be included for $fucntion.
       * @param $no_duplicate
       *   If TRUE, do not add the job to the queue if one with the same function and
       *   arguments already exists.
       * @param $time
       *		time for starting the job. If 0, job will start as soon as possible
       * @param $priority
       *		-10 (low priority) to +10 (high priority), 0 is the default
       * @return int
       *	id of job
       */
      function job_queue_add($function, $description, $arguments = array(), $file = '', $no_duplicate = FALSE, $time=0, $priority=0)
      
      /**
       * Supprimer une tache de la file d'attente
       * @param int $id_job
       *  id of jonb to delete
       * @return bool
       */
      function job_queue_remove($id_job)
      
      /**
       * Associer une tache a un/des objets de SPIP
       * @param int $id_job
       *	id of job to link
       * @param array $objets
       *  can be a simple array('objet'=>'article','id_objet'=>23)
       *  or an array of simple array to link multiples objet in one time
       */
      function job_queue_link($id_job,$objets)
      8583e134
  8. mars 28, 2011
  9. mars 27, 2011
  10. mars 25, 2011
  11. fév. 18, 2011
    • cerdic's avatar
      Drapeaux d'edition generalises : · 8a1e81c0
      cerdic a rédigé
      - integration du patch de sylvain sur inc/drapeau_edition
      - branchement automatique sur tous les objets :
      * qui ont un bloc extra
      * qui sont declares via declarer_tables_objets_sql (pour connaitre leur page d'edition)
      
      Fonctionne en l'etat sur breve, article, rubrique, sites, documents. Les mots et groupes n'ayant pas de bloc extra propres a la page d'edition,
      ils ne sont pas signales. A voir si on fait evoluer ce pre-requis ou si on laisse en l'etat
      
      La boite qui signale l'edition est brute, et necessitera une passe d'habillage, comme tout le reste de l'espace prive quand on aura fini le recodage. On laisse donc telle quelle pour le moment
      8a1e81c0
    • cerdic's avatar
  12. fév. 14, 2011
    • cerdic's avatar
      evacuer definitivement la fonction voir_en_ligne qui oblige a centraliser et... · 75490368
      cerdic a rédigé
      evacuer definitivement la fonction voir_en_ligne qui oblige a centraliser et doublonner la definition de ce qu'est un objet publie. On s'appuie a la place sur une boucle de test et un appel a autoriser(previsualiser,type,id,'',array(statut=>$statut)) qui permet a chaque extension de definir ses conditions de publication pour ses objets
      75490368
  13. fév. 12, 2011
  14. fév. 05, 2011
  15. jan. 30, 2011
    • cerdic's avatar
      nettoyage de la production du head : on evacue toutes les fonctions php... · 1180c99f
      cerdic a rédigé
      nettoyage de la production du head : on evacue toutes les fonctions php utilisees pour cela au profit du squelette prive/squelettes/head/dist.html qui produit le meme resultat a bien moins de frais.
      _SPIP_AJAX peut egalement etre evacue a plusieurs endroits car il suffit de prefixer .blocreplie par .js pour gerer le cas sans js (et garder les blocs deplies dans ce cas)
      Les deux feuilles de style spip_style_invisible et spip_style_visible peuvent aussi etre remplacees par l'utilisation des classes .js et .no-js
      1180c99f
    • cerdic's avatar
      nettoyage du head de l'espace prive : · 1c04963f
      cerdic a rédigé
      ordonner les composants js-inline puis css puis js externe (chargement sans blocage)
      corrolairement, eviter les appels a jquery dans le js-inline
      
      poser les classes no-js, langue et direction sur <html>, un javascript en debut de head remplace no-js par js
      (nhoizey, selon http://paulirish.com/2009/avoiding-the-fouc-v3/ & modernizr & htmlboilerplate)
      
      definir les jeu de classes (tetue) :
      none, none-js, none-nojs : masque un element (respectivement toujours, en presence de js,en absence de js)
      hidden, hidden-js, hidden-nojs : passe un element en visibility hidden (respectivement toujours, en presence de js, en absence de js)
      over, over-js, over-nojs : envoie hors champ un element (respectivement toujours, en presence de js, en absence de js)
      1c04963f
  16. jan. 08, 2011
  17. déc. 18, 2010
    • esj's avatar
      Bonne année, donc modification du copyright. · 1c4a8a50
      esj a rédigé
      Je profite de cette écriture massive pour normaliser quelque chose de trompeur lorsqu'on compare deux versions, savoir l'usage de " ou ' dans le premier argument de define et defined. Comme les chaînes entre apostrophes sont plus rapidement analysées que celles entre guillemets, je choisis l'apostrophe.
      
      Dépot obtenu avec le script Shell:
      {{{
      a=$(find . -name "*.php" |grep -v extensions/ | grep -v /config/ | grep -v index.php | grep -v public.php | grep -v prive.php )
      echo -n "Fichiers: "
      echo $a|wc -w
      for i in $a
      do
      sed -f ~/Sites/spip/spip.sed $i > /tmp/f.php
      if diff -q $i /tmp/f.php
      then 
          :
      else
             diff $i /tmp/f.php
      #     echo $i;   php /tmp/f.php
      #    mv /tmp/f.php $i
      fi
      done
      }}}
      et le script Sed:
      {{{
      s/Copyright (c) 2001-20../Copyright (c) 2001-2011/
      s,\(if [(]!*\)*\(defined* *[(]\)"\([^"]*\)"\(.*\);[[:space:]]*[#/]*.*$,\1\2'\3'\4;,
      }}}
      1c4a8a50
  18. nov. 26, 2010
  19. oct. 06, 2010
    • cerdic's avatar
      Unification de la table des liens auteurs en spip_auteurs_liens qui remplace... · 94130e47
      cerdic a rédigé
      Unification de la table des liens auteurs en spip_auteurs_liens qui remplace ainsi les 3 spip_auteurs_articles, spip_auteurs_rubriques et spip_auteurs_messages
      et permettra aussi de gerer les liens auteur sur n'importe quel objet. On a en plus un champ vu sur la table de liaison, qui est utilise dans la messagerie.
      On pourra avoir plus tard un champ role permettant de distinguer les roles des auteurs.
      
      Ce premier commit met a jour toutes les requetes SQL, et prend en charge l'upgrade de la base.
      Mais il n'est pas encore totalement fonctionnel. 
      debug a suivre.
      94130e47
  20. sept. 20, 2010
    • cerdic's avatar
      initialiser a chaque hit la globale $spip_pipelines, qui grossit au fil du... · 95333c95
      cerdic a rédigé
      initialiser a chaque hit la globale $spip_pipelines, qui grossit au fil du temps, a peu d'interet puisque elle n'est vraiment utile que dans inc/plugin lors de la construction des pipelines compiles.
      On remplace donc cette declaration globale par la declaration xml dans core.xml. Celu-ci migre depuis prive/ vers ecrire/ puisque c'est le repertoire source d'ou partent les inclusions.
      Toutes les fonctions appelees par des pipelines qui etaient dispersees sont regroupees dans deux fichiers inc/pipelines.php et inc/pipelines_ecrire.php
      
      La seule autre utilisation de spip_pipelines concernait la compilation des balises dynamiques lorsqu'un pipeline y etait passe en contexte (CVT). On remplace le test d'existence a cet endroit par un flag dans la fonction pipeline() qui demande d'ignorer silencieucement l'absence du dit pipeline en cas de non existence.
      
      Il reste le cas des declarations || sur le pipeline styliser pour forcer l'appel en queue de pipeline, qui n'est pas couvert par la syntaxe actuelle des plugin.xml. Un point a ajouter dans la DTD en cours de realisation.
      
      Le seul cas que l'on ne couvre plus est la possibilite pour les plugins de surcharger la globale spip_pipeline pour enlever/modifier un appel du core ou d'un autre plugin. Il faudra peut etre ajouter pour cela un pipeline sur la construction des pipelines. On y reviendra si les cas sont vraiment indispensables.
      95333c95
  21. sept. 11, 2010
  22. juil. 30, 2010
  23. avr. 29, 2010
  24. avr. 25, 2010
  25. avr. 24, 2010
  26. mars 13, 2010
  27. jan. 30, 2010
    • esj's avatar
      Deux problèmes dans le débusqueur. · 1533cbe9
      esj a rédigé
      D'une part, [14571] avait trouvé une meilleure solution pour les utiliateurs non connectés que [14468], mais sans revenir sur le code de celui-ci qui du coup empêchait l'affichage des erreurs (pour ses deux OR mal parenthèsés, ça a été corrigé entre temps).
      
      D'autre part, être en mode debug n'est plus décidable en début de script car depuis {{{tableau_des_erreurs}}} est passé en statique on peut le forcer tardivement par le {{{set_request}}} dans le débusqueur; faute de le savoir, {{{ecrire_fichier}}} mettait en cache le résultat d'une compilation mal passée.
      
      Et retrait d'une scorie de [15040] qui n'a rien à voir.
      1533cbe9
    • cerdic's avatar
      #1849 : plus de fix pour msie qui a deja trop abuse des substances interdites... · 0996cefd
      cerdic a rédigé
      #1849 : plus de fix pour msie qui a deja trop abuse des substances interdites (plus de wrapper.php non plus d'ailleurs)
      0996cefd
  28. jan. 27, 2010
  29. jan. 26, 2010
  30. jan. 04, 2010
  31. sept. 03, 2009
    • cerdic's avatar
      renommons skins en themes, skin en theme · df363897
      cerdic a rédigé
      sortir les css bling dans un fichier specifique, en attendant que cela constitue un theme a part entiere
      
      Corrolairement, le mode d'emploi change comme suit :
      
      un systeme de themes prives :
      - chaque theme prive est un sous repertoire de prive/themes/
      - le theme par defaut s'appelle spip/ et contien(t|dra) un jeu complet d'icones utilisees par l'interface prive
      - un plugin peut etendre un theme. Par exemple, en ayant un repertoire themes/spip/ il etendra le theme par defaut nommee spip
      - d'autres themes peuvent etre definis (dans le core, dans un plugin, ...), il suffit de creer un repertoire prive/themes/nomdutheme/
      - si un theme est incomplet, les elements manquants sont pioches dans le theme principal, qui par defaut est aussi 'spip'
      - le theme principal (qui sert de rechange aux themes supplementaires) peut etre redefinie par tout plugin avec define('_SPIP_THEME_PRIVE','nomdemonthemeimpose');
      - le theme par defaut des utilisateurs est le skin principal sauf si il est definie par $GLOBALS['theme_prive_defaut'] = 'monthemepardefaut';
      - les utilisateurs pourront choisir leur theme dans les preferences, mais plus tard...
      df363897
  32. août 20, 2009
    • esj's avatar
      La globale $tableau_des_erreurs devient une statique du débusqueur afin... · bcf37c5f
      esj a rédigé
      La globale $tableau_des_erreurs devient une statique du débusqueur afin d'assurer à celui-ci la complète maîtrise de son contenu. Ce tableau est composé de sous-tableaux de longueur 2, comportant le message d'erreur et le lieu de l'erreur , ces deux valeurs étant les deux arguments de la fonction {{{erreur_squelette}}} qu'il faut exclusivement appeler pour signaler une erreur. Le lieu de l'erreur est idéalement un objet de class Contexte (ou toute classe ayant au minimum les mêmes champs). Le message d'erreur est à fournir sous la forme d'un tableau dont le premier élément est une chaîne de langue, le deuxième élément éventuel étant les arguments de cette chaîne.
      bcf37c5f
  33. août 19, 2009
    • esj's avatar
      Retour du validateur XML en boucle sur les squelettes et les scripts. Pour... · 59678ce4
      esj a rédigé
      Retour du validateur XML en boucle sur les squelettes et les scripts. Pour qu'il puisse mener son travail à terme, je rappelle qu'il ne faut pas réintroduire {{{exit}}} dans les scripts: utiliser {{{else}}} sur tout le code qui suit. Ne pas définir non plus de fonctions existant dans un autre script.
      
      59678ce4
    • esj's avatar
      Fusion du debusqueur et du chronometreur, la fonction affiche_erreurs_page... · 67fa7120
      esj a rédigé
      Fusion du debusqueur et du chronometreur, la fonction affiche_erreurs_page (mal nommee puisqu'elle servait aussi a afficher les temps de calculs) n'est plus appelee directement mais a travers {{{erreur_squelette}}} (et se nomme a present {{{debusquer_navigation}}} mais ca n'a pas d'importance). Au passage, pb 43 et 44 avec [9649], la disparition du FEED_GLOBALS sur la trace des erreurs dans un AJAX.
      67fa7120
  34. août 06, 2009
Chargement en cours