Skip to content
Extraits de code Groupes Projets
  1. 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
    • ARNO*'s avatar
      $_SERVER["HTTP_REFERER"] ne fonctionne pas partout · b229d707
      ARNO* a rédigé
      b229d707
  2. 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
  3. jan. 22, 2008
  4. jan. 20, 2008
  5. jan. 19, 2008
  6. jan. 18, 2008
  7. 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
  8. jan. 16, 2008
  9. jan. 15, 2008
  10. jan. 14, 2008
    • esj's avatar
      Présenter les boucles par ordre de temps de calcul. · 10b3c7eb
      esj a rédigé
      10b3c7eb
    • esj's avatar
      Sommer les temps de calculs SQL (utiles pour les boucles imbriquées) et... · 34edd400
      esj a rédigé
      Sommer les temps de calculs SQL (utiles pour les boucles imbriquées) et afficher les liens vers les Explain devant chaque nom de boucle, plutot que sous la forme de la suite des entiers.
      34edd400
    • esj's avatar
      Trois détails dans le squelette article: · 4f8589f2
      esj a rédigé
      	* [11072] faisant retourner '' à generer_url_document en cas d'accès interdit, ne pas produire alors la balise A qui l'employait (le Span introduit après "(" ici est indispensable: le {{{(#TYPE_DOCUMENT...)}}} précédent était équivoque et produit une erreur avec cette modif);
      
      	* [10955] testait s'il n'y avait qu'un seul document en faisant un tri inutile (merci var_profile);
      
      	* [10878] avait permis un flux supplémentaire sur les mots et un autre sur les auteurs mais produisait la balise Link même quand il n'y avait pas de telles informations.
      4f8589f2
    • esj's avatar
      D'accord avec [10998] pour que l'accès aux documents soit donnée par une clé... · bb6b022d
      esj a rédigé
      D'accord avec [10998] pour que l'accès aux documents soit donnée par une clé en amont (d'autant que ça évite de produire des icones menant systématiquement à un accès interdit) mais du coup le autoriser_document_voir devait y migrer aussi plutot que de disparaitre complètement.
      bb6b022d
  11. jan. 13, 2008
Chargement en cours