Skip to content
Extraits de code Groupes Projets
Valider fa13018a rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

Refonte des modeles document :

* on declare le routeur de modele medias_modeles_styliser qui redirige les raccourcis img, doc et emb selon la regle suivante
   - le nouveal modele correspond au champ media du document : image, audio, video, file
   - si une declinaison correspondant au raccourci initial (_img, _doc ou _emb) existe on la prend
     -> un modele file_emb.html reprend le mecanisme d'embed generique selon extension+mime-type de l'ancien modele emb.html
* les 4 modeles de base image, audio, video, file et les declinaisons file_emb sont toutes en <figure></figure>
* les styles en dur float sont supprimes, on ne garde qu'un width:{largeur}px sur l'element <figure> qui permet d'avoir un conteneur ajuste
  - il se contourne facilement par un min-width:100%; ou un width:auto !important;
* spip_doc_titre, spip_doc_descriptif et spip_doc_credits sont regroupes dans le figcaption.spip_doc_legende
* les modeles historiques doc, img et emb disparaissent. Les eventuels modeles surcharges dans squelettes/ sont ignores
* les 3 modeles image, audio et video ajoutent des conditions sur leur boucle, pour etre sur qu'on a bien a faire avec le bon type de media, et sinon renvoient vers le modele file
* le mode du document n'est plus considere dans aucun modele dans le format de l'affichage qui n'en depend donc plus du tout

En pratique donc <emb>, <img> et <doc> sont equivalents pour les medias audio, video, image (et consistent a afficher/embed le media par defaut)
Pour les autres types de media <doc> affiche le lien vers le document avec une vignette + legende, et <emb> affiche un traitement differencie en fonction du mime type
On peut utiliser le raccourci <fileXX> pour n'importe quel media
Si on utilise <imageXX> ou <audioXX> ou <videoXX> sur un media inaproprie ca affichera le contenu de <fileXX>
parent 0e26332f
Aucune requête de fusion associée trouvée
Affichage de
avec 200 ajouts et 208 suppressions
...@@ -278,22 +278,19 @@ metadata/image.php -text ...@@ -278,22 +278,19 @@ metadata/image.php -text
metadata/svg.php -text metadata/svg.php -text
metadata/swf.php -text metadata/swf.php -text
metadata/video.php -text metadata/video.php -text
modeles/application.html -text
modeles/audio.html -text modeles/audio.html -text
modeles/doc.html -text
modeles/doc_legende.html -text
modeles/document_case.html -text modeles/document_case.html -text
modeles/document_case_fonctions.php -text modeles/document_case_fonctions.php -text
modeles/document_desc.html -text modeles/document_desc.html -text
modeles/document_desc_fonctions.php -text modeles/document_desc_fonctions.php -text
modeles/emb.html -text modeles/file.html -text
modeles/emb_fonctions.php -text modeles/file_emb.html -text
modeles/emb_mp4.html -text modeles/file_emb_application.html -text
modeles/file_emb_fonctions.php -text
modeles/file_emb_text.html -text
modeles/file_emb_text_csv.html -text
modeles/file_emb_text_html.html -text
modeles/image.html -text modeles/image.html -text
modeles/img.html -text
modeles/text.html -text
modeles/text_csv.html -text
modeles/text_html.html -text
modeles/video.html -text modeles/video.html -text
prive/objets/contenu/portfolio_document.html -text prive/objets/contenu/portfolio_document.html -text
prive/objets/editer/colonne_document.html -text prive/objets/editer/colonne_document.html -text
......
...@@ -213,7 +213,8 @@ function medias_declarer_tables_objets_sql($tables) { ...@@ -213,7 +213,8 @@ function medias_declarer_tables_objets_sql($tables) {
'fichier', 'fichier',
'distant' 'distant'
), ),
'modeles' => array('document', 'doc', 'img', 'emb', 'image', 'video', 'text', 'audio', 'application'), 'modeles' => array('document', 'doc', 'img', 'emb', 'image', 'video', 'audio', 'file'),
'modeles_styliser' => 'medias_modeles_styliser',
); );
// jointures sur les forum pour tous les objets // jointures sur les forum pour tous les objets
......
...@@ -53,6 +53,35 @@ if (isset($_SERVER['REQUEST_METHOD']) ...@@ -53,6 +53,35 @@ if (isset($_SERVER['REQUEST_METHOD'])
exit; exit;
} }
/**
* Styliser le modele media : reroute les <img> <doc> <emb> vers <image>, <audio>, <video>, <file> selon le media du document
* si le document n'est pas trouve c'est <file> qui s'applique
* @param $modele
* @param $id
* @return string
*/
function medias_modeles_styliser($modele, $id) {
switch($modele) {
case 'img':
case 'doc':
case 'emb':
$m = 'file';
if ($doc = sql_fetsel('id_document,media', 'spip_documents', 'id_document='.intval($id))) {
$m = $doc['media']; // image, audio, video, file
}
if (trouve_modele("{$m}_{$modele}")) {
// on peut decliner file_emb qui sera utilisable soit par <docXX|emb> soit par <embXX>
// permet d'embed explicitement des fichiers exotiques qui sinon seraient de simples liens a telecharger
// tels que text/csv, text/html, text
$m = "{$m}_{$modele}";
}
$modele = $m;
break;
}
return $modele;
}
/** /**
* Retourne la taille en octet d'une valeur de configuration php * Retourne la taille en octet d'une valeur de configuration php
* *
......
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}> [(#REM)
Modele pour les sons
Filtrer en acceptant uniquement les extensions jouables par le player ?
]<BOUCLE_audio(DOCUMENTS types_documents) {media=audio} {id_document=#ENV{id,#ENV{id_document}}} {inclus=embed} {tout}>
#SET{largeur,#ENV{largeur, #LARGEUR|?{#LARGEUR,400}}|max{120}} #SET{largeur,#ENV{largeur, #LARGEUR|?{#LARGEUR,400}}|max{120}}
#SET{duree,#ENV{duree,#DUREE}}[(#SET{duree,[(#GET{duree}|intval|?{[(#GET{duree}|intval)],''})]})] #SET{duree,#ENV{duree,#DUREE}}[(#SET{duree,[(#GET{duree}|intval|?{[(#GET{duree}|intval)],''})]})]
<div class='spip_document_#ID_DOCUMENT spip_document_audio spip_documents[ spip_documents_(#ENV{align})]' <figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_audio[ spip_documents_(#ENV{align})]'[ style='width:(#GET{largeur})px;']>
style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};][width:(#GET{largeur})px]'>
[(#LOGO_DOCUMENT{vignette}|image_reduire{#GET{largeur},0}|vider_attribut{class})] [(#LOGO_DOCUMENT{vignette}|image_reduire{#GET{largeur},0}|vider_attribut{class})]
<div class="audio-wrapper"[ style='width:(#GET{largeur})px;max-width:100%;']> <div class="audio-wrapper"[ style='width:(#GET{largeur})px;max-width:100%;']>
<audio class="mejs mejs-#ID_DOCUMENT [ mejs-(#ENV{skin})]" <audio class="mejs mejs-#ID_DOCUMENT [ mejs-(#ENV{skin})]"
data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]" data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]"
src="#FICHIER" src="#FICHIER"
type="#MIME_TYPE" type="#MIME_TYPE"
preload="none" preload="none"
data-mejsoptions='{"alwaysShowControls": true[,"loop":(#ENV{loop}|?{true,false})],"audioWidth":"100%"[,"audioHeight":"(#ENV{hauteur})"][,"startVolume":"(#ENV{volume})"][,"duration":(#GET{duree})]}' data-mejsoptions='{"alwaysShowControls": true[,"loop":(#ENV{loop}|?{true,false})],"audioWidth":"100%"[,"audioHeight":"(#ENV{hauteur})"][,"startVolume":"(#ENV{volume})"][,"duration":(#GET{duree})]}'
controls="controls" controls="controls"
[autoplay="autoplay"(#ENV{autoplay}|oui)]></audio> [autoplay="autoplay"(#ENV{autoplay}|oui)]></audio>
</div> </div>
[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>] [(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
[<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>] <figcaption class='spip_doc_legende'>
[<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
[<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
]
[<script>/*<!\[CDATA\[*/var mejspath='[(#CHEMIN{lib/mejs/mediaelement-and-player.min.js}|timestamp)]',mejscss='[(#CHEMIN{lib/mejs/mediaelementplayer.min.css}|timestamp)]'; [<script>/*<!\[CDATA\[*/var mejspath='[(#CHEMIN{lib/mejs/mediaelement-and-player.min.js}|timestamp)]',mejscss='[(#CHEMIN{lib/mejs/mediaelementplayer.min.css}|timestamp)]';
(#INCLURE{javascript/mejs-init.min.js})/*\]\]>*/</script>] (#INCLURE{javascript/mejs-init.min.js})/*\]\]>*/</script>]
[(#ENV{skin}|oui)[<style>(#INCLURE{#CHEMIN{css/mejs-skin-#ENV{skin}.css}|sinon{#CHEMIN{lib/mejs/mejs-skins.css}}|url_absolue_css})</style>]] [(#ENV{skin}|oui)[<style>(#INCLURE{#CHEMIN{css/mejs-skin-#ENV{skin}.css}|sinon{#CHEMIN{lib/mejs/mejs-skins.css}}|url_absolue_css})</style>]]
</div> </figure>
</BOUCLE_tous> </BOUCLE_audio>
\ No newline at end of file <INCLURE{fond=modeles/file,env} />
<//B_audio>
<BOUCLE_doc (DOCUMENTS) {id_document} {tout}>
[(#REM)
Modele pour <doc> en dl/dt/dd
cf. http://pompage.net/pompe/listesdefinitions/
La largeur de la legende est egale a la largeur de l'image
avec un minimum de 120px, et un maximum de 350px.
Dans le cas d'une simple image (mode=image), on affiche
le document lui-meme, sans lien de telechargement
]
[(#MODE|=={image}|oui)
#SET{fichier,#URL_DOCUMENT}
#SET{width,#LARGEUR}
#SET{height,#HAUTEUR}
#SET{url,#ENV{lien}}
]
[(#MODE|=={image}|oui)
[(#SET{fichier,[(#LOGO_DOCUMENT|extraire_attribut{src})]})]
[(#SET{width,[(#LOGO_DOCUMENT|extraire_attribut{width})]})]
[(#SET{height,[(#LOGO_DOCUMENT|extraire_attribut{height})]})]
#SET{url,#ENV{lien,#URL_DOCUMENT}}
][(#ENV{largeur,0}|ou{#ENV{hauteur,0}})
#SET{fichier,#GET{fichier}|image_reduire{#ENV{largeur,0},#ENV{hauteur,0}}}
#SET{width,#GET{fichier}|largeur}
#SET{height,#GET{fichier}|hauteur}
#SET{fichier,#GET{fichier}|extraire_attribut{src}}
]
<dl class='spip_document_#ID_DOCUMENT spip_documents_legende[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok'[ style='float:(#ENV{align}|match{left|right});']>
[<dt class='#EDIT{titre} titre'>(#TITRE|sinon{#FICHIER})</dt>]
<dd class='vignette'>[<a href="(#GET{url})"[ class="(#ENV{lien_class})"] title='#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets|texte_backend)]'[ (#ENV{lien}|?{'',type="#MIME_TYPE"})]>]<img src='#GET{fichier}' width='#GET{width}' height='#GET{height}' alt='' />[(#GET{url}|?{</a>})]</dd>
<dd class='type'>#TYPE_DOCUMENT</dd>
<dd class='taille'>[(#LARGEUR|ou{#HAUTEUR}|oui)[
(#VAL{info_largeur_vignette}|_T{#ARRAY{largeur_vignette,#LARGEUR,hauteur_vignette,#HAUTEUR}})
] - ][(#TAILLE|taille_en_octets|texte_backend)]</dd>
</dl>
</BOUCLE_doc>
<INCLURE{fond=modeles/video,env} />
\ No newline at end of file
<BOUCLE_doc (DOCUMENTS) {id_document} {tout}> <BOUCLE_file (DOCUMENTS) {id_document=#ENV{id,#ENV{id_document}}} {tout}>
[<!--(#REM) [(#MEDIA|=={image}|oui)
Modele pour <doc> en dl/dt/dd
cf. http://pompage.net/pompe/listesdefinitions/
La largeur de la legende est egale a la largeur de l'image
avec un minimum de 120px, et un maximum de 350px.
Dans le cas d'une simple image (mode=image), on affiche
le document lui-meme, sans lien de telechargement
-->]
[(#ENV{mode_force,#MODE}|=={image}|oui)
#SET{fichier,#URL_DOCUMENT} #SET{fichier,#URL_DOCUMENT}
#SET{width,#LARGEUR} #SET{width,#LARGEUR}
#SET{height,#HAUTEUR} #SET{height,#HAUTEUR}
#SET{url,#ENV{lien}} #SET{url,#ENV{lien}}
] ][(#MEDIA|=={image}|non)
[(#ENV{mode_force,#MODE}|=={image}|non) #SET{image,#LOGO_DOCUMENT}
[(#SET{fichier,[(#LOGO_DOCUMENT|extraire_attribut{src})]})] [(#SET{fichier,[(#GET{image}|extraire_attribut{src})]})]
[(#SET{width,[(#LOGO_DOCUMENT|extraire_attribut{width})]})] [(#SET{width,[(#GET{image}|extraire_attribut{width})]})]
[(#SET{height,[(#LOGO_DOCUMENT|extraire_attribut{height})]})] [(#SET{height,[(#GET{image}|extraire_attribut{height})]})]
#SET{url,#ENV{lien,#URL_DOCUMENT}} #SET{url,#ENV{lien,#URL_DOCUMENT}}
][<!--(#REM) ][<!--(#REM)
...@@ -35,14 +24,17 @@ ...@@ -35,14 +24,17 @@
] ]
[(#SET{title,[(#TYPE_DOCUMENT) - [(#TAILLE|taille_en_octets)]]})] [(#SET{title,[(#TYPE_DOCUMENT) - [(#TAILLE|taille_en_octets)]]})]
[(#MEDIA|=={image}|oui) #SET{title,#TITRE|sinon{#GET{title}}] [(#MEDIA|=={image}|oui) #SET{title,#TITRE|sinon{#GET{title}}]
<dl class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok'[ <figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_file[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok' [ style='width:(#GET{width}|max{120})px;']>
style='float:(#ENV{align}|match{left|right});']> [<a href="(#GET{url})"[
<dt>[<a href="(#GET{url})"[
class="(#ENV{lien_class})"] title='[(#GET{title}|attribut_html)]'[ class="(#ENV{lien_class})"] title='[(#GET{title}|attribut_html)]'[
(#ENV{lien}|?{'',type="#MIME_TYPE"})]>]<img src='#GET{fichier}' width='#GET{width}' height='#GET{height}' alt='' />[(#GET{url}|?{</a>})]</dt>[ (#ENV{lien}|?{'',type="#MIME_TYPE"})]>]<img src='#GET{fichier}' width='#GET{width}' height='#GET{height}' alt='' />[(#GET{url}|?{</a>})]
<dt class='#EDIT{titre} spip_doc_titre'[ style='width:(#GET{width}|min{350}|max{120})px;']><strong>(#TITRE)</strong></dt>][ [(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
<dd class='#EDIT{descriptif} spip_doc_descriptif'[ style='width:(#GET{width}|min{350}|max{120})px;']>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</dd>] <figcaption class='spip_doc_legende'>
</dl> [<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
</BOUCLE_doc> [<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
]
</figure>
</BOUCLE_file>
#FILTRE{trim} #FILTRE{trim}
\ No newline at end of file
<BOUCLE_ext(DOCUMENTS types_documents) {id_document} {tout}> <BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {tout}>
<INCLURE{fond=modeles/#EXTENSION|trouver_modele_emb{#MIME_TYPE}}{id=#ID_DOCUMENT}{env}{emb=' '}/> <INCLURE{fond=modeles/#EXTENSION|trouver_modele_emb{#MIME_TYPE}}{id=#ID_DOCUMENT}{env}{emb=' '}/>
</BOUCLE_ext> </BOUCLE_ext>
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}>[ <BOUCLE_application(DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {inclus=embed} {mode?} {tout}>[
(#REM) on trouvera plusieurs variable de hauteur/largeur (#REM) on trouvera plusieurs variable de hauteur/largeur
- les balises #HAUTEUR et #LARGEUR - les balises #HAUTEUR et #LARGEUR
- #ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...> - #ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...>
...@@ -10,10 +10,8 @@ ...@@ -10,10 +10,8 @@
(#ENV{controls}=={PlayButton}|?{#SET{largeur,40},''})][ (#ENV{controls}=={PlayButton}|?{#SET{largeur,40},''})][
(#ENV{controls}=={PositionSlider}|?{#SET{hauteur,25},''})][ (#ENV{controls}=={PositionSlider}|?{#SET{hauteur,25},''})][
(#ENV{controls}=={PositionSlider}|?{#SET{largeur,#GET{largeur}|moins{40}},''}) (#ENV{controls}=={PositionSlider}|?{#SET{largeur,#GET{largeur}|moins{40}},''})
][(#INCLUS|=={embed}|?{[(#ENV{controls,''}|non) ][(#ENV{controls,''}|non)
<div class='spip_document_#ID_DOCUMENT spip_document_application spip_documents[ spip_documents_(#ENV{align})]'[ <figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_application[ spip_documents_(#ENV{align})]'>
style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};] (#ENV{align,center}|=={center}|non)[width:(#GET{largeur}|max{120})px]']>
]})
][(#EXTENSION|=={swf}|oui) ][(#EXTENSION|=={swf}|oui)
<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' <object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'
codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=#ENV{version,'6,0,0,0'}' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=#ENV{version,'6,0,0,0'}'
...@@ -31,17 +29,21 @@ style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};] (#ENV{align,c ...@@ -31,17 +29,21 @@ style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};] (#ENV{align,c
</object> </object>
#SET{done,1} #SET{done,1}
][(#GET{done,0}|non) ][(#GET{done,0}|non)
[(#INCLUS|=={embed}|oui)
<object width='#GET{largeur}' height='#GET{hauteur}'> <object width='#GET{largeur}' height='#GET{hauteur}'>
<param name='movie' value='#URL_DOCUMENT' /> <param name='movie' value='#URL_DOCUMENT' />
<param name='src' value='#URL_DOCUMENT' /> <param name='src' value='#URL_DOCUMENT' />
[(#ENV*|env_to_params)] [(#ENV*|env_to_params)]
<embed src='#URL_DOCUMENT' [(#ENV*|env_to_attributs)] width='#GET{largeur}' height='#GET{hauteur}'></embed></object> <embed src='#URL_DOCUMENT' [(#ENV*|env_to_attributs)] width='#GET{largeur}' height='#GET{hauteur}'></embed></object>
][(#ENV{controls,''}|non)
][(#INCLUS|=={image}|oui) [(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
[(#INCLURE{fond=modeles/img}{id_document}{align=#ENV{align}}{embed=oui}{lien=#ENV{lien}}{lien_class=#ENV{lien_class}})] <figcaption class='spip_doc_legende'>
[<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
[<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
]
</figure>
] ]
][(#INCLUS|=={embed}|oui)[(#ENV{controls,''}|non) </BOUCLE_application>
[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>][<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>]</div> <INCLURE{fond=modeles/file,env} />
]] <//B_application>
</BOUCLE_tous>
...@@ -18,13 +18,13 @@ if (!defined('_ECRIRE_INC_VERSION')) { ...@@ -18,13 +18,13 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @return mixed * @return mixed
*/ */
function trouver_modele_emb($extension, $mime_type) { function trouver_modele_emb($extension, $mime_type) {
if ($extension and trouve_modele($fond = 'emb_' . $extension)) { if ($extension and trouve_modele($fond = 'file_emb_' . $extension)) {
return $fond; return $fond;
} }
$fond = preg_replace(',\W,', '_', $mime_type); $fond = 'file_emb_' . preg_replace(',\W,', '_', $mime_type);
if (trouve_modele($fond)) { if (trouve_modele($fond)) {
return $fond; return $fond;
} else { } else {
return preg_replace(',\W.*$,', '', $mime_type); return 'file_emb_' . preg_replace(',\W.*$,', '', $mime_type);
} }
} }
<BOUCLE_text (DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {tout}
>[<figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_text[ spip_documents_(#ENV{align})]'
><pre>(#FICHIER|contenu_document{#ENV{charset,auto}}|echapper_tags)</pre>
[(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
<figcaption class='spip_doc_legende'>
[<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
[<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
]
</figure>
]</BOUCLE_text>
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}
><figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_text[ spip_documents_(#ENV{align})]'>
[(#FICHIER|contenu_document{#ENV{charset,auto}}|appliquer_filtre{#MIME_TYPE})]
[(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
<figcaption class='spip_doc_legende'>
[<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
[<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
]</figure>
</BOUCLE_tous>
<BOUCLE_texthtml (DOCUMENTS types_documents) {id_document=#ID} {tout}
>[<figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_text_html[ spip_documents_(#ENV{align})]'
><object data="(#URL_DOCUMENT)" width="100%" height="400"><a href="#URL_DOCUMENT">#FICHIER</a></object>
[(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
<figcaption class='spip_doc_legende'>
[<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
[<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
]
</figure>
]</BOUCLE_texthtml>
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}>[ [(#REM)
(#REM) Cas <imageXX> : equivalent a <imgXX> pour une image en mode image Modele pour les images
][(#INCLUS|=={image}|et{#ENV{emb,''}|non}|oui) ]
<span class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok'[ <BOUCLE_image (DOCUMENTS) {media=image} {id_document=#ENV{id,#ENV{id_document}}} {inclus=image} {mode?} {tout}>
style='float:(#ENV{align}|match{left|right});']>[ [(#SET{autolien,#LARGEUR|>={800}|ou{#HAUTEUR|>={800}}|oui})]
<a href="(#ENV{lien})"[ [(#SET{image,[(#ENV{largeur}|ou{#ENV{hauteur}}|?{
class="(#ENV{lien_class})"]>]<img src='#URL_DOCUMENT'[ [(#FICHIER|image_reduire{#ENV{largeur,10000},#ENV{hauteur,10000}})],
width="(#LARGEUR|?{#LARGEUR})"][ [<img src='(#URL_DOCUMENT)'[ width="(#LARGEUR)"][ height="(#HAUTEUR)"]/>]})]})]
height="(#HAUTEUR|?{#HAUTEUR})"][ [(#TITRE|oui)#SET{image,#GET{image}|inserer_attribut{alt,#TITRE}|inserer_attribut{title,#TITRE}}]
title="(#TITRE|attribut_html)"] #SET{largeur,#GET{image}|largeur}
alt="[(#TITRE|attribut_html)]" />[(#ENV{lien}|?{</a>})]</span> <figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_image[ spip_documents_(#ENV{align}|sinon{center})][ (#ENV{class})] spip_lien_ok' [ style='width:(#GET{largeur})px;']>
][ [<a href="(#ENV{lien})"[ class="(#ENV{lien_class})"]>]
[(#ENV{lien}|non|et{#GET{autolien}})<a href="#URL_DOCUMENT" class="mediabox" type="#MIME_TYPE">]
(#REM) Cas <embXX> : on est appele ici avec emb=' ' : on veut la legende #GET{image}
equivalent a un <docXX> pour une image en mode image [(#ENV{lien}|ou{#GET{autolien}}|?{</a>})]
[(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
][(#INCLUS|=={image}|et{#ENV{emb,''}|oui}|oui) <figcaption class='spip_doc_legende'>
#SET{fichier,#URL_DOCUMENT} [<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
#SET{width,#LARGEUR} [<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
#SET{height,#HAUTEUR} [<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
#SET{url,#ENV{lien}} </figcaption>
<dl class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok'[ ]
style='float:(#ENV{align}|match{left|right});[width:(#GET{width}|max{120})]px;']> </figure>
<dt>[<a href="(#GET{url})"[ class="(#ENV{lien_class})"] title='#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets|texte_backend)]'[ type="(#ENV{lien}|?{#ENV{lien_mime},#MIME_TYPE})"]>]<img src='#GET{fichier}' width='#GET{width}' height='#GET{height}' alt='' />[(#GET{url}|?{</a>})]</dt>[ </BOUCLE_image>
<dt class='#EDIT{titre} spip_doc_titre'[ style='width:(#GET{width}|min{350}|max{120})px;']><strong>(#TITRE)</strong></dt>][ <INCLURE{fond=modeles/file,env} />
<dd class='#EDIT{descriptif} spip_doc_descriptif'[ style='width:(#GET{width}|min{350}|max{120})px;']>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</dd>] <//B_image>
</dl>
][
(#REM) Cas des images qu'il faut embed (svg)
][
(#INCLUS|=={embed}|oui)
<div class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})]'[
style='[(#ENV{align}|match{^(left|right)$}|?{' '})float:#ENV{align};] (#ENV{align,center}|=={center}|?{'',' '})']>
<object data='#URL_DOCUMENT'
type='#MIME_TYPE'[
width='(#ENV{largeur}?{'', #LARGEUR})'][
height='(#ENV{hauteur}?{'', #HAUTEUR})']
[(#ENV*|env_to_attributs)] >
<param name='src' value='#URL_DOCUMENT' />
[(#ID_DOCUMENT|appliquer_filtre{#MIME_TYPE})]
</object>[
<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>
][
<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>
]</div>]
</BOUCLE_tous>
<BOUCLE_document (DOCUMENTS) {id_document} {mode?} {tout}>
[(#REM)
Modele pour <img>
Si on est en mode "image" ou "vignette", ou appele avec embed=oui,
on affiche l'image complete ; sinon le logo
Si un lien est passe #ENV{lien} on ajoute le a href
ou on truque le #URL_DOCUMENT
Si une code de langue est passe #ENV{langue} ex: <img12|langue=en>
on ajoute l'attribut lang la balise img et eventuellement sur la balise a
Dans le cas mode "image ou vignette", le contenu de l'attribut
alt et title se construit selon le schema suivant :
- prend la valeur de alt passe en environnement par le biais
d'un parametre sur la balise ex: <img12|alt=xxx>
- sinon on prend le titre
- sinon si #ENV{lien} est passe on prend #ENV{lien} ou Document si lien vers #URL_DOCUMENT
- sinon alt vide
Dans le cas mode "document", le contenu de l'attribut
alt et title se construit selon le meme schema a ceci pres
qu'on ajoute #TYPE_DOCUMENT - #TAILLE
sauf si #ENV{lien} est passe
]
[(#SET{
image,
#ENV{mode_force,#MODE}|match{'image|vignette'}
|sinon{#ENV{embed}}
|oui
})][
(#REM) image complete ?
][(#GET{image})
<span class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok'[
style='float:(#ENV{align}|match{left|right});']>
[<a href="(#ENV{lien})"[ class="(#ENV{lien_class})"]>]<img src='#URL_DOCUMENT'[ width="(#LARGEUR)"][ height="(#HAUTEUR)"] alt="[(#TITRE|texte_backend)]"[ title="(#TITRE|texte_backend)"] />[(#ENV{lien}|?{</a>})]</span>
][
(#REM) sinon logo document + lien + alt + title etc
][(#GET{image}|non)
[(#SET{fichier,[(#LOGO_DOCUMENT|extraire_attribut{src})]})]
[(#SET{width,[(#LOGO_DOCUMENT|extraire_attribut{width})]})]
[(#SET{height,[(#LOGO_DOCUMENT|extraire_attribut{height})]})]
<span class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})][ (#ENV{class})] spip_lien_ok'[
style='float:(#ENV{align}|match{left|right});[ width:(#GET{width})px;]']><a href="[(#ENV{lien}|sinon{#URL_DOCUMENT})]"[
(#ENV{lien}|?{'',type="#MIME_TYPE"})][ title="(#TITRE|texte_backend)"]><img src='#GET{fichier}' width='#GET{width}' height='#GET{height}' alt='[(#TITRE|strlen|?{#TITRE {#TYPE_DOCUMENT},#TYPE_DOCUMENT}|attribut_html)]' /></a></span>
]</BOUCLE_document>
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}
>[<div class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})]'
><pre>(#FICHIER|contenu_document{#ENV{charset,auto}}|echapper_tags)</pre>
[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>][<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>]
</div>
]</BOUCLE_tous>
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}
>[(#FICHIER|contenu_document{#ENV{charset,auto}}|appliquer_filtre{#MIME_TYPE}
)]</BOUCLE_tous>
<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}
>[<div class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})]'
><object data="(#URL_DOCUMENT)" width="100%" height="400"><a href="#URL_DOCUMENT">#FICHIER</a></object>
[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>][<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>]
</div>
]</BOUCLE_tous>
<BOUCLE_tous(DOCUMENTS types_documents) {id_document=#ID} {tout}>[ <BOUCLE_video(DOCUMENTS types_documents) {media=video} {id_document=#ENV{id,#ENV{id_document}}} {inclus=embed} {tout}>[
(#REM) on trouvera plusieurs variable de hauteur/largeur (#REM) on trouvera plusieurs variable de hauteur/largeur
- les balises #HAUTEUR et #LARGEUR - les balises #HAUTEUR et #LARGEUR
- #ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...> - #ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...>
...@@ -8,9 +8,8 @@ ...@@ -8,9 +8,8 @@
#SET{largeur,#ENV{largeur, #LARGEUR|?{#LARGEUR,480}}|max{120}} #SET{largeur,#ENV{largeur, #LARGEUR|?{#LARGEUR,480}}|max{120}}
#SET{hauteur,#ENV{hauteur, #HAUTEUR|?{#HAUTEUR,300}}|max{75}} #SET{hauteur,#ENV{hauteur, #HAUTEUR|?{#HAUTEUR,300}}|max{75}}
#SET{duree,#ENV{duree,#DUREE}}[(#SET{duree,[(#GET{duree}|intval|?{[(#GET{duree}|intval)],''})]})] #SET{duree,#ENV{duree,#DUREE}}[(#SET{duree,[(#GET{duree}|intval|?{[(#GET{duree}|intval)],''})]})]
<div class='spip_document_#ID_DOCUMENT spip_document_video spip_documents[ spip_documents_(#ENV{align})]' <figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_video[ spip_documents_(#ENV{align})]'[ style='width:(#GET{largeur})px;']>
style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};][width:(#GET{largeur})px]'> <div class="video-intrinsic-wrapper" style='height:0;width:#GET{largeur}px;max-width:100%;padding-bottom:[(#GET{hauteur}|div{#GET{largeur}}|mult{100}|round{2})]%;position:relative;'>
<div class="video-intrinsic-wrapper" style='height:0;width:100%;padding-bottom:[(#GET{hauteur}|div{#GET{largeur}}|mult{100}|round{2})]%;position:relative;'>
<div class="video-wrapper" style="position: absolute;top:0;left:0;width:100%;height:100%;"> <div class="video-wrapper" style="position: absolute;top:0;left:0;width:100%;height:100%;">
<video class="mejs mejs-#ID_DOCUMENT[ mejs-(#ENV{skin})]" <video class="mejs mejs-#ID_DOCUMENT[ mejs-(#ENV{skin})]"
data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]" data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]"
...@@ -39,10 +38,16 @@ ...@@ -39,10 +38,16 @@
</video> </video>
</div> </div>
</div> </div>
[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>] [(#TITRE|trim|sinon{#DESCRIPTIF|trim}|sinon{#CREDITS|trim}|oui)
[<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>] <figcaption class='spip_doc_legende'>
[<script>/*<!\[CDATA\[*/var mejspath='[(#CHEMIN{lib/mejs/mediaelement-and-player.min.js}|timestamp)]',mejscss='[(#CHEMIN{lib/mejs/mediaelementplayer.min.css}|timestamp)]'; [<div class='spip_doc_titre #EDIT{titre}'><strong>(#TITRE|propre|ptobr)</strong></div>]
[<div class='spip_doc_descriptif #EDIT{descriptif}'>(#DESCRIPTIF|propre|PtoBR)[(#NOTES|PtoBR)]</div>]
[<div class='spip_doc_credits #EDIT{credits}'>(#CREDITS|propre|PtoBR)</div>]
</figcaption>
][<script>/*<!\[CDATA\[*/var mejspath='[(#CHEMIN{lib/mejs/mediaelement-and-player.min.js}|timestamp)]',mejscss='[(#CHEMIN{lib/mejs/mediaelementplayer.min.css}|timestamp)]';
(#INCLURE{javascript/mejs-init.min.js})/*\]\]>*/</script>] (#INCLURE{javascript/mejs-init.min.js})/*\]\]>*/</script>]
[(#ENV{skin}|oui)[<style>(#INCLURE{#CHEMIN{css/mejs-skin-#ENV{skin}.css}|url_absolue_css})</style>]] [(#ENV{skin}|oui)[<style>(#INCLURE{#CHEMIN{css/mejs-skin-#ENV{skin}.css}|url_absolue_css})</style>]]
</div> </figure>
</BOUCLE_tous> </BOUCLE_video>
\ No newline at end of file <INCLURE{fond=modeles/file,env} />
<//B_video>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter