diff --git a/.gitattributes b/.gitattributes index 68dd429a6b9e03637edf0c488e045eb32971c31b..9edc820ff5bcd7fa0c943a0983c0b9834ac3d16b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -278,22 +278,19 @@ metadata/image.php -text metadata/svg.php -text metadata/swf.php -text metadata/video.php -text -modeles/application.html -text modeles/audio.html -text -modeles/doc.html -text -modeles/doc_legende.html -text modeles/document_case.html -text modeles/document_case_fonctions.php -text modeles/document_desc.html -text modeles/document_desc_fonctions.php -text -modeles/emb.html -text -modeles/emb_fonctions.php -text -modeles/emb_mp4.html -text +modeles/file.html -text +modeles/file_emb.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/img.html -text -modeles/text.html -text -modeles/text_csv.html -text -modeles/text_html.html -text modeles/video.html -text prive/objets/contenu/portfolio_document.html -text prive/objets/editer/colonne_document.html -text diff --git a/base/medias.php b/base/medias.php index 75434779b7718fa2022d2c09303f83ee2f7ad4c5..63b31165c83dcfec7a47384ecf6cf657d37de3c5 100644 --- a/base/medias.php +++ b/base/medias.php @@ -213,7 +213,8 @@ function medias_declarer_tables_objets_sql($tables) { 'fichier', '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 diff --git a/medias_fonctions.php b/medias_fonctions.php index 17d7f85afac8369fa485ffabaed78b98db355d0b..b5b89e5343db8b8dd38b33bc5a693574b8e8c02e 100644 --- a/medias_fonctions.php +++ b/medias_fonctions.php @@ -53,6 +53,35 @@ if (isset($_SERVER['REQUEST_METHOD']) 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 * diff --git a/modeles/audio.html b/modeles/audio.html index 41b3e1a045b20ff3fe751e2e1e02e10cf30536cc..c8118b4cec2f720c84a3c2e263f16937731f1e54 100644 --- a/modeles/audio.html +++ b/modeles/audio.html @@ -1,23 +1,34 @@ -<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{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})]' - style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};][width:(#GET{largeur})px]'> +<figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_audio[ spip_documents_(#ENV{align})]'[ style='width:(#GET{largeur})px;']> [(#LOGO_DOCUMENT{vignette}|image_reduire{#GET{largeur},0}|vider_attribut{class})] -<div class="audio-wrapper"[ style='width:(#GET{largeur})px;max-width:100%;']> - <audio class="mejs mejs-#ID_DOCUMENT [ mejs-(#ENV{skin})]" - data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]" - src="#FICHIER" - type="#MIME_TYPE" - preload="none" - data-mejsoptions='{"alwaysShowControls": true[,"loop":(#ENV{loop}|?{true,false})],"audioWidth":"100%"[,"audioHeight":"(#ENV{hauteur})"][,"startVolume":"(#ENV{volume})"][,"duration":(#GET{duree})]}' - controls="controls" - [autoplay="autoplay"(#ENV{autoplay}|oui)]></audio> -</div> -[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>] -[<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>] + <div class="audio-wrapper"[ style='width:(#GET{largeur})px;max-width:100%;']> + <audio class="mejs mejs-#ID_DOCUMENT [ mejs-(#ENV{skin})]" + data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]" + src="#FICHIER" + type="#MIME_TYPE" + preload="none" + data-mejsoptions='{"alwaysShowControls": true[,"loop":(#ENV{loop}|?{true,false})],"audioWidth":"100%"[,"audioHeight":"(#ENV{hauteur})"][,"startVolume":"(#ENV{volume})"][,"duration":(#GET{duree})]}' + controls="controls" + [autoplay="autoplay"(#ENV{autoplay}|oui)]></audio> + </div> +[(#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> +] [<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>] [(#ENV{skin}|oui)[<style>(#INCLURE{#CHEMIN{css/mejs-skin-#ENV{skin}.css}|sinon{#CHEMIN{lib/mejs/mejs-skins.css}}|url_absolue_css})</style>]] -</div> -</BOUCLE_tous> \ No newline at end of file +</figure> +</BOUCLE_audio> +<INCLURE{fond=modeles/file,env} /> +<//B_audio> diff --git a/modeles/doc.html b/modeles/doc.html deleted file mode 100644 index 022adb6a36459f58cd9078560fdaf1b779bc806e..0000000000000000000000000000000000000000 --- a/modeles/doc.html +++ /dev/null @@ -1,48 +0,0 @@ -<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 --->] -[(#ENV{mode_force,#MODE}|=={image}|oui) - #SET{fichier,#URL_DOCUMENT} - #SET{width,#LARGEUR} - #SET{height,#HAUTEUR} - #SET{url,#ENV{lien}} -] -[(#ENV{mode_force,#MODE}|=={image}|non) - [(#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}} -][<!--(#REM) - - - Si largeur ou hauteur fournit en parametre, redimensionner - --->][ -(#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}} -] -[(#SET{title,[(#TYPE_DOCUMENT) - [(#TAILLE|taille_en_octets)]]})] -[(#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'[ - style='float:(#ENV{align}|match{left|right});']> -<dt>[<a href="(#GET{url})"[ - 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>[ -<dt class='#EDIT{titre} spip_doc_titre'[ style='width:(#GET{width}|min{350}|max{120})px;']><strong>(#TITRE)</strong></dt>][ -<dd class='#EDIT{descriptif} spip_doc_descriptif'[ style='width:(#GET{width}|min{350}|max{120})px;']>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</dd>] -</dl> - -</BOUCLE_doc> -#FILTRE{trim} \ No newline at end of file diff --git a/modeles/doc_legende.html b/modeles/doc_legende.html deleted file mode 100644 index beb92788be17e262078f5ad690c8c66b47b197ad..0000000000000000000000000000000000000000 --- a/modeles/doc_legende.html +++ /dev/null @@ -1,38 +0,0 @@ -<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> diff --git a/modeles/emb_mp4.html b/modeles/emb_mp4.html deleted file mode 100644 index 97af8c35b93d4193bda87ba231aa44670d4f63f7..0000000000000000000000000000000000000000 --- a/modeles/emb_mp4.html +++ /dev/null @@ -1 +0,0 @@ -<INCLURE{fond=modeles/video,env} /> \ No newline at end of file diff --git a/modeles/file.html b/modeles/file.html new file mode 100644 index 0000000000000000000000000000000000000000..89e44fb715c878d1b45a4fb92d34976120ebb68e --- /dev/null +++ b/modeles/file.html @@ -0,0 +1,40 @@ +<BOUCLE_file (DOCUMENTS) {id_document=#ENV{id,#ENV{id_document}}} {tout}> +[(#MEDIA|=={image}|oui) + #SET{fichier,#URL_DOCUMENT} + #SET{width,#LARGEUR} + #SET{height,#HAUTEUR} + #SET{url,#ENV{lien}} +][(#MEDIA|=={image}|non) + #SET{image,#LOGO_DOCUMENT} + [(#SET{fichier,[(#GET{image}|extraire_attribut{src})]})] + [(#SET{width,[(#GET{image}|extraire_attribut{width})]})] + [(#SET{height,[(#GET{image}|extraire_attribut{height})]})] + #SET{url,#ENV{lien,#URL_DOCUMENT}} +][<!--(#REM) + + + Si largeur ou hauteur fournit en parametre, redimensionner + +-->][ +(#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}} +] +[(#SET{title,[(#TYPE_DOCUMENT) - [(#TAILLE|taille_en_octets)]]})] +[(#MEDIA|=={image}|oui) #SET{title,#TITRE|sinon{#GET{title}}] +<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;']> +[<a href="(#GET{url})"[ + 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>})] +[(#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_file> +#FILTRE{trim} \ No newline at end of file diff --git a/modeles/emb.html b/modeles/file_emb.html similarity index 56% rename from modeles/emb.html rename to modeles/file_emb.html index 4fbea47072cdabbde9afac855f251a3bd36adbe3..7f9f7331a4e36a0fdf2965b86fcac897f9781ee4 100644 --- a/modeles/emb.html +++ b/modeles/file_emb.html @@ -1,3 +1,3 @@ -<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=' '}/> </BOUCLE_ext> diff --git a/modeles/application.html b/modeles/file_emb_application.html similarity index 68% rename from modeles/application.html rename to modeles/file_emb_application.html index f1d69638f9849b9941565e43d74ab1bbfe4e6515..12fd84400e7fe27f609fa8b86183f48be6e749ff 100644 --- a/modeles/application.html +++ b/modeles/file_emb_application.html @@ -1,4 +1,4 @@ -<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 - les balises #HAUTEUR et #LARGEUR - #ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...> @@ -10,10 +10,8 @@ (#ENV{controls}=={PlayButton}|?{#SET{largeur,40},''})][ (#ENV{controls}=={PositionSlider}|?{#SET{hauteur,25},''})][ (#ENV{controls}=={PositionSlider}|?{#SET{largeur,#GET{largeur}|moins{40}},''}) -][(#INCLUS|=={embed}|?{[(#ENV{controls,''}|non) -<div class='spip_document_#ID_DOCUMENT spip_document_application spip_documents[ 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]']> -]}) +][(#ENV{controls,''}|non) +<figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_application[ spip_documents_(#ENV{align})]'> ][(#EXTENSION|=={swf}|oui) <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'}' @@ -31,17 +29,21 @@ style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};] (#ENV{align,c </object> #SET{done,1} ][(#GET{done,0}|non) -[(#INCLUS|=={embed}|oui) <object width='#GET{largeur}' height='#GET{hauteur}'> <param name='movie' value='#URL_DOCUMENT' /> <param name='src' value='#URL_DOCUMENT' /> [(#ENV*|env_to_params)] <embed src='#URL_DOCUMENT' [(#ENV*|env_to_attributs)] width='#GET{largeur}' height='#GET{hauteur}'></embed></object> - -][(#INCLUS|=={image}|oui) -[(#INCLURE{fond=modeles/img}{id_document}{align=#ENV{align}}{embed=oui}{lien=#ENV{lien}}{lien_class=#ENV{lien_class}})] +][(#ENV{controls,''}|non) + [(#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> ] -][(#INCLUS|=={embed}|oui)[(#ENV{controls,''}|non) -[<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_application> +<INCLURE{fond=modeles/file,env} /> +<//B_application> diff --git a/modeles/emb_fonctions.php b/modeles/file_emb_fonctions.php similarity index 70% rename from modeles/emb_fonctions.php rename to modeles/file_emb_fonctions.php index 98385298bbf2f0bf0c1a11862c3a0d0fdbaf163f..49ab418e310a126f4e8df7038d55ae08d54ef227 100644 --- a/modeles/emb_fonctions.php +++ b/modeles/file_emb_fonctions.php @@ -18,13 +18,13 @@ if (!defined('_ECRIRE_INC_VERSION')) { * @return mixed */ 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; } - $fond = preg_replace(',\W,', '_', $mime_type); + $fond = 'file_emb_' . preg_replace(',\W,', '_', $mime_type); if (trouve_modele($fond)) { return $fond; } else { - return preg_replace(',\W.*$,', '', $mime_type); + return 'file_emb_' . preg_replace(',\W.*$,', '', $mime_type); } } diff --git a/modeles/file_emb_text.html b/modeles/file_emb_text.html new file mode 100644 index 0000000000000000000000000000000000000000..11cfc1b2f7bdcfe07c76190a00129dfdf32b3c75 --- /dev/null +++ b/modeles/file_emb_text.html @@ -0,0 +1,12 @@ +<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> diff --git a/modeles/file_emb_text_csv.html b/modeles/file_emb_text_csv.html new file mode 100644 index 0000000000000000000000000000000000000000..f5b96e31f067a26bd325b458d360f9a354da12e8 --- /dev/null +++ b/modeles/file_emb_text_csv.html @@ -0,0 +1,11 @@ +<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> diff --git a/modeles/file_emb_text_html.html b/modeles/file_emb_text_html.html new file mode 100644 index 0000000000000000000000000000000000000000..1b9d5256f214be8b67695ac8b81310aa2e07cfd4 --- /dev/null +++ b/modeles/file_emb_text_html.html @@ -0,0 +1,12 @@ +<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> diff --git a/modeles/image.html b/modeles/image.html index 5ced491d4adc9d1f0544462a27142c7601823331..438f0ca8744ff7112aca67317469c9632b5e23e4 100644 --- a/modeles/image.html +++ b/modeles/image.html @@ -1,49 +1,28 @@ -<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'[ - style='float:(#ENV{align}|match{left|right});']>[ - <a href="(#ENV{lien})"[ - class="(#ENV{lien_class})"]>]<img src='#URL_DOCUMENT'[ - width="(#LARGEUR|?{#LARGEUR})"][ - height="(#HAUTEUR|?{#HAUTEUR})"][ - title="(#TITRE|attribut_html)"] - alt="[(#TITRE|attribut_html)]" />[(#ENV{lien}|?{</a>})]</span> -][ - -(#REM) Cas <embXX> : on est appele ici avec emb=' ' : on veut la legende -equivalent a un <docXX> pour une image en mode image - -][(#INCLUS|=={image}|et{#ENV{emb,''}|oui}|oui) -#SET{fichier,#URL_DOCUMENT} -#SET{width,#LARGEUR} -#SET{height,#HAUTEUR} -#SET{url,#ENV{lien}} -<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;']> -<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>[ -<dt class='#EDIT{titre} spip_doc_titre'[ style='width:(#GET{width}|min{350}|max{120})px;']><strong>(#TITRE)</strong></dt>][ -<dd class='#EDIT{descriptif} spip_doc_descriptif'[ style='width:(#GET{width}|min{350}|max{120})px;']>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</dd>] -</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_image (DOCUMENTS) {media=image} {id_document=#ENV{id,#ENV{id_document}}} {inclus=image} {mode?} {tout}> +[(#SET{autolien,#LARGEUR|>={800}|ou{#HAUTEUR|>={800}}|oui})] +[(#SET{image,[(#ENV{largeur}|ou{#ENV{hauteur}}|?{ + [(#FICHIER|image_reduire{#ENV{largeur,10000},#ENV{hauteur,10000}})], + [<img src='(#URL_DOCUMENT)'[ width="(#LARGEUR)"][ height="(#HAUTEUR)"]/>]})]})] +[(#TITRE|oui)#SET{image,#GET{image}|inserer_attribut{alt,#TITRE}|inserer_attribut{title,#TITRE}}] +#SET{largeur,#GET{image}|largeur} +<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">] + #GET{image} +[(#ENV{lien}|ou{#GET{autolien}}|?{</a>})] +[(#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_image> +<INCLURE{fond=modeles/file,env} /> +<//B_image> diff --git a/modeles/img.html b/modeles/img.html deleted file mode 100644 index 0ef76e60d354a75a1dea3e2df92a6bc66c6e4b36..0000000000000000000000000000000000000000 --- a/modeles/img.html +++ /dev/null @@ -1,53 +0,0 @@ -<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> diff --git a/modeles/text.html b/modeles/text.html deleted file mode 100644 index d8d3ffcc9b330dd8ab3b9cf8978ccd6b24d8a429..0000000000000000000000000000000000000000 --- a/modeles/text.html +++ /dev/null @@ -1,6 +0,0 @@ -<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> diff --git a/modeles/text_csv.html b/modeles/text_csv.html deleted file mode 100644 index 8cd7d95b7a0f46e88d23232997c14246e34914df..0000000000000000000000000000000000000000 --- a/modeles/text_csv.html +++ /dev/null @@ -1,3 +0,0 @@ -<BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout} - >[(#FICHIER|contenu_document{#ENV{charset,auto}}|appliquer_filtre{#MIME_TYPE} -)]</BOUCLE_tous> diff --git a/modeles/text_html.html b/modeles/text_html.html deleted file mode 100644 index 4e877439e206815e1f3958a067a74685d7652550..0000000000000000000000000000000000000000 --- a/modeles/text_html.html +++ /dev/null @@ -1,6 +0,0 @@ -<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> diff --git a/modeles/video.html b/modeles/video.html index 3ca25e9eb4c796cc0e450b93a037625fc52de682..aac36556fb1e48f4d21d5d18d53f3f7351dbe784 100644 --- a/modeles/video.html +++ b/modeles/video.html @@ -1,4 +1,4 @@ -<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 - les balises #HAUTEUR et #LARGEUR - #ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...> @@ -8,9 +8,8 @@ #SET{largeur,#ENV{largeur, #LARGEUR|?{#LARGEUR,480}}|max{120}} #SET{hauteur,#ENV{hauteur, #HAUTEUR|?{#HAUTEUR,300}}|max{75}} #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})]' - style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};][width:(#GET{largeur})px]'> -<div class="video-intrinsic-wrapper" style='height:0;width:100%;padding-bottom:[(#GET{hauteur}|div{#GET{largeur}}|mult{100}|round{2})]%;position:relative;'> +<figure class='spip_document_#ID_DOCUMENT spip_documents spip_document_video[ spip_documents_(#ENV{align})]'[ style='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-wrapper" style="position: absolute;top:0;left:0;width:100%;height:100%;"> <video class="mejs mejs-#ID_DOCUMENT[ mejs-(#ENV{skin})]" data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]" @@ -39,10 +38,16 @@ </video> </div> </div> -[<div class='#EDIT{titre} spip_doc_titre'><strong>(#TITRE)</strong></div>] -[<div class='#EDIT{descriptif} spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>] -[<script>/*<!\[CDATA\[*/var mejspath='[(#CHEMIN{lib/mejs/mediaelement-and-player.min.js}|timestamp)]',mejscss='[(#CHEMIN{lib/mejs/mediaelementplayer.min.css}|timestamp)]'; +[(#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> +][<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>] [(#ENV{skin}|oui)[<style>(#INCLURE{#CHEMIN{css/mejs-skin-#ENV{skin}.css}|url_absolue_css})</style>]] -</div> -</BOUCLE_tous> \ No newline at end of file +</figure> +</BOUCLE_video> +<INCLURE{fond=modeles/file,env} /> +<//B_video>