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 ...]