Skip to content
Extraits de code Groupes Projets
  1. déc. 31, 2007
    • renato's avatar
      Introduction de $boucle->from_type pour assigner le type du jointure (INNER,LEFT,RIGHT). · 93ffb68c
      renato a rédigé
      $boucle->from_type est un tableau du type array(alias du table => type_jointure, ...)
      C'est pas necessaire mais possible a declarer le type du jointure pour le cas INNER
      93ffb68c
    • esj's avatar
      Les 5 modèles correspondant aux 5 groupes MIME standard, introduits par... · 792fa7db
      esj a rédigé
      Les 5 modèles correspondant aux 5 groupes MIME standard, introduits par [10948] pour faciliter l'incrustation, étaient peu utilisables en l'état sans passer par leur inclusion via le modèle ''emb'', car ''inclure_modele'' ne sait pas que la boucle associée a pour clé primaire ''id_document''. En conséquence, petite réécriture pour utiliser systématiquement le paramètre ''id'' initialisé par ''inclure_modele'', il n'y a que lui de fiable.
      
      Principal avantage: si un type MIME du groupe ''application'' est en fait du texte brut (par exemple le PGN), on peut forcer l'incrustation en mode texte en insérant dans l'article {{{<textNNN>}}} bien que le type MIME ne soit pas officiellement du texte. En revanche, il faut réécrire le modèle ''application'' si l'on veut avoir cet effet dans le cas de l'incrustation automatique lorsque le corps de l'article est vide.
      
      792fa7db
    • marcimat's avatar
      Suite de [11018] sur sqlite · 56cfa88b
      marcimat a rédigé
      56cfa88b
    • stephane's avatar
      ajout de 3 criteres sur les boucles SYNDIC_ARTICLES pour remonter les articles... · ba4357b0
      stephane a rédigé
      ajout de 3 criteres sur les boucles SYNDIC_ARTICLES pour remonter les articles syndiques selon les mots cles associes au site syndique :
      - {id_mot_syndic} : en passant l'id_mot
      - {titre_mot_syndic} : en passant le titrer du mot
      - {type_mot_syndic} : en passant le type (titre du groupe) de mot
      ba4357b0
  2. déc. 30, 2007
    • esj's avatar
      Déport dans le fonction d'abstraction sql_in du traitement des cas... · 0382d7d2
      esj a rédigé
      Déport dans le fonction d'abstraction sql_in du traitement des cas particuliers de l'argument de IN, valable pour tous les portages. On en profite pour rajouter un ''array_unique'' dans le cas du tableau pour préparer [10995]. Toutefois, alors que PHP traite intuitivement bien {{{$x .= '...'}}} quand {{{$x}}} est indéfini, il déclenche une erreur fatale pour {{{$x += array(...)}}}. Autrement dit, il faut produire un code compilé ne générant pas de Warning si l'on veut éviter les répétitions dans le IN de SQL. Pour plus tard.
      0382d7d2
  3. déc. 29, 2007
  4. déc. 28, 2007
  5. déc. 27, 2007
  6. déc. 26, 2007
  7. déc. 24, 2007
  8. déc. 23, 2007
    • esj's avatar
      [10959]: parce que ce n'était pas si simple. · 3bcb9eac
      esj a rédigé
      3bcb9eac
    • Fil's avatar
    • esj's avatar
      Si une boucle a plusieurs critères doublons, les fusionner pour n'avoir qu'une... · 9d28da61
      esj a rédigé
      Si une boucle a plusieurs critères doublons, les fusionner pour n'avoir qu'une seul IN. Ce serait encore mieux d'arriver à éliminer les répétitions éventuellement induites (le summum du ridicule est atteint avec {doublons}{doublons}) car il n'est vraiment pas sûr que les serveurs SQL le fassent.
      9d28da61
    • esj's avatar
    • esj's avatar
      Le '0' rajouté d'office dans le critère doublon était inutile depuis déjà... · 9c14dd9f
      esj a rédigé
      Le '0' rajouté d'office dans le critère doublon était inutile depuis déjà longtemps (optimisation de la construction IN) et même faux si on utilise ce critère dans une table externe dont la clé primaire peut être nulle.
      Par ailleurs, la détection des {{{0=0}}} n'était pas systématique.
      
      Cela fait, ceci:
      {{{
      <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_mot=233}{doublons zone}>
      ...
      </BOUCLE_syndiczone>
      }}}
      se compile en:
      {{{
      SELECT syndic_articles.id_syndic_article, syndic_articles.id_syndic
      FROM Essai_syndic_articles AS `syndic_articles` 
          INNER JOIN Essai_mots_syndic AS L1 ON syndic_articles.id_syndic=L1.id_syndic
          INNER JOIN Essai_syndic AS L2 ON syndic_articles.id_syndic=L2.id_syndic
      WHERE (L1.id_mot = '233')
          AND (syndic_articles.statut = 'publie')
          AND (L2.statut = 'publie')
      GROUP BY syndic_articles.id_syndic_article,syndic_articles.id_syndic
      }}}
      avec des warnings supeflus en moins.
      9c14dd9f
    • esj's avatar
    • esj's avatar
      Ajout d'une déclaration de jointure pour pouvoir utiliser le critère id_mot... · dcb6f46a
      esj a rédigé
      Ajout d'une déclaration de jointure pour pouvoir utiliser le critère id_mot dans une boucle syndic_articles. En particulier, le squelette de SpipContrib contenant:
      {{{
      <BOUCLE_motsiteszone(MOTS){id_mot=233}>		
       <BOUCLE_siteszone(SITES){id_mot}>
        <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_syndic}{doublons zone}> ....
        </BOUCLE_syndiczone>
       </BOUCLE_siteszone>
      </BOUCLE_motsiteszone>
      }}}
      dont la première boucle était déjà superflue ({{{id_mot=233}}} pouvait se mettre comme critère de la 2e boucle), peut maintenant s'écrire avec une seule:
      {{{
      <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_mot=233}{doublons zone}> ...
      </BOUCLE_syndiczone>
      }}}
      et se compile en:
      {{{
      SELECT syndic_articles.id_syndic_article, syndic_articles.id_syndic
      FROM Essai_syndic_articles AS `syndic_articles` 
          INNER JOIN Essai_mots_syndic AS L1 ON syndic_articles.id_syndic=L1.id_syndic
          INNER JOIN Essai_syndic AS L2 ON syndic_articles.id_syndic=L2.id_syndic
      WHERE (L1.id_mot = '233')
          AND ((syndic_articles.id_syndic_article NOT IN (0)))
          AND (syndic_articles.statut = 'publie')
          AND (L2.statut = 'publie')
      GROUP BY syndic_articles.id_syndic_article,syndic_articles.id_syndic
      }}}
      
      Le {{{IN (0)}}} correspond au cas d'un {{{doublons zone}}} vide, ce qui est
      le cas du squelette de SpipContrib. Le gain est donc dans l'évacuation d'une boucle enchassant une boucle avec un IN qui grossissait à chaque itération de la boucle englobante.
      dcb6f46a
  9. déc. 22, 2007
    • esj's avatar
      Nouvelle numérotation pour $spip_version et introduction des types de... · 40898f8a
      esj a rédigé
      Nouvelle numérotation pour $spip_version et introduction des types de documents ''sty'' et ''cls'' lié à LaTeX.
      
      La numérotation de $spip_version sous forme d'un nombre réel déduit de $spip_version_code allant atteindre ses limites, on prend à présent comme valeur le numéro de dépot SVN introduisant un changement dans la base.
      
      A nouveau, adaptation rétrospective du code de mise à jour à partir de la 1.9.2: en multipliant par 1000 ces valeurs de $spip_versions, on obtient des valeurs entières inférieures au numéro SVN actuel, et ça devient compatible avec le nouveau schéma général de mise à jour. Ça evite un quasi doublon de code et ça permet un test en vraie grandeur.
      
      A noter que SVN ne donne pas accès automatiquement au dernier numéro de version d'un fichier, il faut toujours affecter $spip_version manuellement; du coup il y aura peut-etre parfois des dépots simultanés qui feront que le numéro affecté vaudra 1 de moins que celui qu'il faudrait. Pas dramatique.
      40898f8a
  10. déc. 21, 2007
  11. déc. 20, 2007
Chargement en cours