[SPIP Zone] r4596 - in /_plugins_/_ze_laboratoire_/spiip: modeles/doc.html modeles/img.html modeles/img_dist.html plugin.xml spiip_pipelines.php

Author: fil@rezo.net
Date: Wed Aug 16 22:43:21 2006
New Revision: 4596

Log:
spiip fait les modeles

Added:
    _plugins_/_ze_laboratoire_/spiip/modeles/img.html
      - copied, changed from r4591, _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html
Removed:
    _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html
Modified:
    _plugins_/_ze_laboratoire_/spiip/modeles/doc.html
    _plugins_/_ze_laboratoire_/spiip/plugin.xml
    _plugins_/_ze_laboratoire_/spiip/spiip_pipelines.php

Modified: _plugins_/_ze_laboratoire_/spiip/modeles/doc.html

--- _plugins_/_ze_laboratoire_/spiip/modeles/doc.html (original)
+++ _plugins_/_ze_laboratoire_/spiip/modeles/doc.html Wed Aug 16 22:43:21 2006
@@ -1,3 +1,3 @@
<BOUCLE_doc (DOCUMENTS) {id_document}>
-<div class='spip_document_#ID_DOCUMENT spip_documents [spip_documents_(#ENV{align})]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#LOGO_DOCUMENT||largeur)]px;'><a href='#FICHIER' type='#MIME_TYPE'><img src='[(#LOGO_DOCUMENT||extraire_attribut{src})]' width='[(#LOGO_DOCUMENT||largeur)]' heigth='[(#LOGO_DOCUMENT||hauteur)]' alt='#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets)]' title='#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets)]' /></a>[<div class='spip_doc_titre'><strong>(#TITRE)</strong></div>][<div class='spip_doc_descriptif'>(#DESCRIPTIF)</div>]</div>
+<div class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#CLASS)]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#LOGO_DOCUMENT||largeur)]px;'><a href='#FICHIER' type='#MIME_TYPE'><img src='[(#LOGO_DOCUMENT||extraire_attribut{src})]' width='[(#LOGO_DOCUMENT||largeur)]' heigth='[(#LOGO_DOCUMENT||hauteur)]' alt='#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets)]' title='#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets)]' /></a>[<div class='spip_doc_titre'><strong>(#TITRE)</strong></div>][<div class='spip_doc_descriptif'>(#DESCRIPTIF)</div>]</div>
</BOUCLE_doc>
\ No newline at end of file

Copied: _plugins_/_ze_laboratoire_/spiip/modeles/img.html (from r4591, _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html)

--- _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html (original)
+++ _plugins_/_ze_laboratoire_/spiip/modeles/img.html Wed Aug 16 22:43:21 2006
@@ -1,12 +1,12 @@
<BOUCLE_document (DOCUMENTS) {id_document} {mode=document}>
[(#CONFIG{creer_preview}=={oui}|?{
#SET{fichier,#FICHIER|reduire_image{#CONFIG{taille_preview}}||extraire_attribut{src}},#SET{fichier,#FICHIER}})]
-<span class='spip_document_#ID_DOCUMENT spip_documents [spip_documents_(#ENV{align})]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'>[(#CONFIG{creer_preview}=={oui}|?{<a href='#FICHIER' type='#MIME_TYPE'>,''})]<img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)' title='#TITRE' />[(#CONFIG{creer_preview}|=={oui}|?{</a>,''})]</span>
+<span class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class}]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'>[(#CONFIG{creer_preview}=={oui}|?{<a href='#FICHIER' type='#MIME_TYPE'>,''})]<img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)' title='#TITRE' />[(#CONFIG{creer_preview}|=={oui}|?{</a>,''})]</span>
</BOUCLE_document>

<BOUCLE_vignette (DOCUMENTS) {id_document} {mode=vignette}>
#SET{fichier,#FICHIER}
-<span class='spip_document_#ID_DOCUMENT spip_documents [spip_documents_(#ENV{align})]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'><img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)' title='#TITRE' /></span>
+<span class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class}]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'><img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)' title='#TITRE' /></span>
</BOUCLE_vignette>

<//B_document>
\ No newline at end of file

Removed: _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html

--- _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html (original)
+++ _plugins_/_ze_laboratoire_/spiip/modeles/img_dist.html (removed)
@@ -1,12 +0,0 @@
-<BOUCLE_document (DOCUMENTS) {id_document} {mode=document}>
-[(#CONFIG{creer_preview}=={oui}|?{
-#SET{fichier,#FICHIER|reduire_image{#CONFIG{taille_preview}}||extraire_attribut{src}},#SET{fichier,#FICHIER}})]
-<span class='spip_document_#ID_DOCUMENT spip_documents [spip_documents_(#ENV{align})]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'>[(#CONFIG{creer_preview}=={oui}|?{<a href='#FICHIER' type='#MIME_TYPE'>,''})]<img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)' title='#TITRE' />[(#CONFIG{creer_preview}|=={oui}|?{</a>,''})]</span>
-</BOUCLE_document>
-
-<BOUCLE_vignette (DOCUMENTS) {id_document} {mode=vignette}>
-#SET{fichier,#FICHIER}
-<span class='spip_document_#ID_DOCUMENT spip_documents [spip_documents_(#ENV{align})]' style='[(#ENV{align}=={left}|?{float:left; })][(#ENV{align}=={right}|?{float:right; })]width: [(#GET|{fichier}|largeur)];'><img src='#GET{fichier}' width='[(#GET{fichier}|largeur)]' height='[(#GET{fichier}|hauteur)]' alt='#TITRE (#TYPE_DOCUMENT)' title='#TITRE' /></span>
-</BOUCLE_vignette>
-
-<//B_document>
\ No newline at end of file

Modified: _plugins_/_ze_laboratoire_/spiip/plugin.xml

--- _plugins_/_ze_laboratoire_/spiip/plugin.xml (original)
+++ _plugins_/_ze_laboratoire_/spiip/plugin.xml Wed Aug 16 22:43:21 2006
@@ -1 +1 @@
-<plugin>
  <nom> <!-- Nom du plugin -->
  Spiip le plugin labo
  </nom>
  <auteur> <!-- Auteur du plugin -->
  collectif surement
  </auteur>
  <version>
  0.1
  </version>
  <etat>
  dev
  </etat>
  <description>
  Le back office en squelettes
  </description>
  <options>
  spiip_options.php
  </options>
  <prefix>
  spiip
  </prefix>
  <pipeline>
    <nom>header_prive</nom>
    <inclure>spiip_pipelines.php</inclure>
  </pipeline>
  <pipeline>
    <nom>insert_head</nom>
    <inclure>spiip_pipelines.php</inclure>
  </pipeline>
  <pipeline>
    <nom>pre_propre</nom>
    <action>traiter_modeles</action>
    <inclure>spiip_pipelines.php</inclure>
  </pipeline>
</plugin>
\ No newline at end of file
+<plugin>
  <nom> <!-- Nom du plugin -->
  Spiip le plugin labo
  </nom>
  <auteur> <!-- Auteur du plugin -->
  collectif surement
  </auteur>
  <version>
  0.1
  </version>
  <etat>
  dev
  </etat>
  <description>
  Le back office en squelettes
  </description>
  <options>
  spiip_options.php
  </options>
  <prefix>
  spiip
  </prefix>
  <pipeline>
    <nom>header_prive</nom>
    <inclure>spiip_pipelines.php</inclure>
  </pipeline>
  <pipeline>
    <nom>insert_head</nom>
    <inclure>spiip_pipelines.php</inclure>
  </pipeline>
  <pipeline>
    <nom>modeles</nom>
    <action>traiter_modeles</action>
    <inclure>spiip_pipelines.php</inclure>
  </pipeline>
</plugin>
\ No newline at end of file

Modified: _plugins_/_ze_laboratoire_/spiip/spiip_pipelines.php

--- _plugins_/_ze_laboratoire_/spiip/spiip_pipelines.php (original)
+++ _plugins_/_ze_laboratoire_/spiip/spiip_pipelines.php Wed Aug 16 22:43:21 2006
@@ -32,25 +32,34 @@
  */

   // Calcule le modele et retourne la mini-page ainsi calculee
- function spiip_inclure_modele($squelette, $type, $id, $default) {
+ function spiip_inclure_modele($squelette, $type, $id) {
   static $compteur;

     if (++$compteur>4) return ''; # ne pas boucler indefiniment

+ $type = strtolower($type);
+
+ if ($squelette) {
+ $fond = 'modeles/'.$type.'_'.$squelette;
+ if (!find_in_path($fond.'.html')) {
+ $class = $squelette;
     $fond = 'modeles/'.$type;
- if ($squelette)
- $fond .= "_$squelette";
+ }
+ }

     // en cas d'echec on passe la main au suivant
     if (!find_in_path($fond.'.html'))
- return $default;
+ return false;

     include_spip('public/assembler');

+ // raccourcis specifiques img, doc, emb
     if (in_array($type, array('img', 'doc', 'emb')))
       $type = 'document';

     $contexte = array('id_'.$type => $id);
+ if ($class)
+ $contexte['class'] = $class;

     $page = recuperer_fond($fond, $contexte);

@@ -62,21 +71,24 @@
   /* static public */
   function spiip_traiter_modeles($texte) {

- $regexp = ',<([a-z_-]+)([0-9]+)([|]([a-z_0-9]+))?'.'>,';
- if (preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER))
+ if (preg_match_all(',<([a-z_-]+)([0-9]+)([|]([a-z_0-9]+))?'.'>,iS',
+ $texte, $matches, PREG_SET_ORDER)) {
       foreach ($matches as $regs) {
- $modele = spiip_inclure_modele($regs[4], $regs[1], $regs[2], $regs[0]);
-
+ $modele = spiip_inclure_modele($regs[4], $regs[1], $regs[2]);
+ if ($modele !== false) {
         $rempl = code_echappement($modele);
+ $cherche = $regs[0];

         // XHTML : remplacer par une <div onclick> le lien
         // dans le cas [<docXX>->lien] ; sachant qu'il n'existe
         // pas de bonne solution en XHTML pour produire un lien
         // sur une div (!!)...
         if (substr($rempl, 0, 5) == '<div '
- AND preg_match(',(<a [^>]+>)'.preg_quote($regs[0]).'</a>,Uims',

[... 24 lines stripped ...]