Skip to content
Extraits de code Groupes Projets
  1. jan. 25, 2008
    • esj's avatar
      Le clonage de la présentation des statistiques en celui des signatures ayant... · d258723e
      esj a rédigé
      Le clonage de la présentation des statistiques en celui des signatures ayant inclus le lien CSV par erreur, autant aller justqu'au bout.
      
      Les productions de fichiers CSV sont à présent assurées par des squelettes accessibles seulement depuis l'espace privé, et rangé dans {{{prive/transmettre}}}.
      
      Il y en a un pour les statistiques générales des visites, un pour celles pour d'un article précis (résultats identiques à ce qu'il y avait avant), mais aussi un pour les signatures d'une petition.
      Pour ce dernier squelette, utilisation de la jointure explicite pour obtenir les signatures sur toutes les traduction de l'article.
      d258723e
  2. jan. 24, 2008
  3. jan. 23, 2008
    • esj's avatar
      Caption, CSV & signatures. Trois choses dans ce dépot · 1cc9bbb8
      esj a rédigé
      	* le format CSV utilisé par OpenOffice est très différent de celui d'un autre tableur dont j'ai oublié le nom, mais respecte, lui, le RFC officiel (http://www.rfc-editor.org/rfc/rfc4180.txt) où s'est bien une virgule qui sépare les valeurs (Coma Separated Value on a dit), et l'usage des sauts lignes ou du dit séparateur est possible en utilisant des guillemets (à doubler quand on en veut un). La fonction '''filtre_text_csv''' accepte à présent aussi toutes ces spécifications. Elle analyse plus finement le début de fichier, et produit une balise Caption lorsqu'il commence par une ligne où seule la première colonne n'est pas vide.
      
      	* le raccourci || en début de tableau pour produire une balise Caption n'était plus reconnu depuis une éternité;
      
      	* petit blindage du script des signatures au cas où un article à pétition aurait disparu mais pas elle.
      1cc9bbb8
  4. jan. 22, 2008
  5. jan. 20, 2008
  6. jan. 19, 2008
  7. jan. 18, 2008
  8. jan. 17, 2008
    • Christian Lefebvre's avatar
      autodoc · 970f86e8
      Christian Lefebvre a rédigé
      970f86e8
    • esj's avatar
    • Christian Lefebvre's avatar
      autodoc · 00713862
      Christian Lefebvre a rédigé
      00713862
    • esj's avatar
      Compilation d'une boucle sans que sa table n'aparaisse dans la requête SQL.... · 35d36891
      esj a rédigé
      Compilation d'une boucle sans que sa table n'aparaisse dans la requête SQL. Trop beau pour être vrai ?
      
      Soit la boucle donnée dans [11087]:
      {{{
      <BOUCLE3(MOTS){id_article}{id_mot}> class='on'</BOUCLE3>
      }}}
      dont la compilation montre que finalement c'est seulement le contenu de la table de jointure spip_mots_articles. Il suffit de regarder si la table principale a des occurrences dans les clauses de la requête, compte non tenu des champs dont la fabrication de la jointure dit justement qu'ils sont égaux à celle de l'autre table. Si oui, on remplace les synonymes et on élimine complètement le début de la clause FROM. Ainsi, la boucle ci-dessus ne se compile plus en
      {{{
      SELECT 1
      FROM spipnet_mots AS `mots` 
          INNER JOIN spipnet_mots_articles AS L1 ON mots.id_mot=L1.id_mot
      WHERE (L1.id_article = 898)
          AND (mots.id_mot = 409)
      }}}
      mais en
      {{{
      SELECT 1
      FROM  spipnet_mots_articles AS L1 
      WHERE (L1.id_article = 898)
          AND (L1.id_mot = 409)
      }}}
      
      L'optmisation se retrouve aussi dans par exemple:
      {{{
      <BOUCLE2(MOTS){id_article} />#TOTAL_BOUCLE<//B2>
      <BOUCLE1(ARTICLES){id_mot} />#TOTAL_BOUCLE<//B1>
      <BOUCLE4(ARTICLES){id_mot}{id_article} />#TOTAL_BOUCLE<//B4>
      }}}
      
      Il manquait qqch pour traiter ce cas dans la version MySQL, mais pour PG c'était prévu prémonitoirement. Il faut vérifier pour SQLite.
      35d36891
    • esj's avatar
      Utilisation du filtre ''contenu_document'' revu dans le modele Text (aurait du... · ce286b85
      esj a rédigé
      Utilisation du filtre ''contenu_document'' revu dans le modele Text (aurait du faire partie de [11089].
      
      Ajout de Camille: révision de ''filtre text_csv'' qui considère qu'un fichier CSV commence toujours par une ligne nommant les colonnes, et donc la typographie différement (mais c'est plutôt des TH qu'il faudrait faire produire au raccourci de tableau là).
      ce286b85
    • 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
    • esj's avatar
      Accès au documents. [11072] avait réintroduit maladroitement l'appel à... · aaa022de
      esj a rédigé
      Accès au documents. [11072] avait réintroduit maladroitement l'appel à autoriser_voir disparu avec [10998]: il est inutilement couteux de produire une clé s'il n'y a pas de .htaccess, on améliore.
      
      Mais [10998] pose un autre problème: le code compilé des balises #URL_* sur base externe ne permet plus d'accéder à un document du site distant puisque ce script refuse à présent toute demande non émise par son espace privé. 
      
      Du coup, on introduit _DIR_IMG comme nouvelle meta, permettant de demander à un site distant le répertoire de ses documents. Le code compilé des balises #URL_* l'utilise pour produire la bonne URL. Evidemment si un .htaccess est présent, cette URL conduira à un 403.
      
      A moyen terme, cette meta devrait permettre de résoudre le problème de l'accès aux vignettes et logos du site distant.
      aaa022de
    • esj's avatar
      Amélioration de la détection des boucles dont le corps est constant, afin de... · 5c15fe9e
      esj a rédigé
      Amélioration de la détection des boucles dont le corps est constant, afin de transformer le While-Fetch en For sans requête (le Numrows initial suffit).
      Le manque se situait dans la non prise en compte des {{{\'}}} dans l'analyse du texte.
      
      Application au plugin Nuage qui veut mettre en exergue les mots clés d'un article:
      
      {{{
      <BOUCLE2(MOTS)><br />
      <span<BOUCLE3(MOTS){id_article}{id_mot}> class='on'</BOUCLE3>>#TITRE</span>
      </BOUCLE2>
      }}}
      qui fournit:
      {{{
       $result = calculer_select(
              array("1"), # SELECT
              array('mots' => 'spip_mots','L1' => 'spip_mots_articles'), # FROM
              array(), # FROM    type jointure    
              
                  array(
                  array('=', 'L1.id_article', intval(@$Pile[0]['id_article'])), 
                  array('=', 'mots.id_mot', intval($Pile[$SP]['id_mot']))), # WHERE
              array(1 => array('mots', 'id_mot')), # WHERE pour jointure
              array(), # GROUP
              array(), # ORDER
              '', # LIMIT
              
                  array(), # HAVING
              'mots', # table
              '3', # boucle
              ''); # serveur
          $Numrows['3']['total'] = @sql_count($result,'');
          $t0 = "";
          for($x=$Numrows["3"]["total"];$x>0;$x--)
                  $t0 .= 
      // 15 signes
      ' class=\'arial1\'';
          @sql_free($result,'');
          return $t0;
      }}}
      5c15fe9e
  9. jan. 16, 2008
  10. jan. 15, 2008
Chargement en cours