Retour sur la gestion des <emb> pour ameliorer le support et la migration : ce n'est pas seulement les media=file qui peuvent etre emb mais aussi les autres

on generalise le mecanisme en renommant le filtre en medias_trouver_modele_emb qui prend en 3eme argument la racine du modele cherche, et si aucun modele specifique n'utilise pour l'extention ou le mime type on revient sur le modele racine initial
De cette façon les plugins peuvent proposer des modeles emb specifiques pour tout type de media (cf oembed). Par defaut seule le modele file propose des declinaisons historiques pour text/html et text/csv
issue_4494
Cerdic 3 years ago
parent 1ef0cf9bf9
commit 5df7ada711

@ -380,4 +380,37 @@ function duree_en_secondes($duree, $precis = false) {
$out .= intval($duree).'s';
}
return $out;
}
}
/**
* Trouver le fond pour embarquer un document
* - avec une extension
* - avec un mime_type donne
*
* => modeles/{modele_base}_emb_html.html si il existe
* => modeles/{modele_base}_text_html.html si il existe,
* => modeles/{modele_base}_text.html si il existe,
* => modeles/{modele_base}.html sinon
*
* @param $extension
* @param $mime_type
* @return mixed
*/
function medias_trouver_modele_emb($extension, $mime_type, $modele_base='file') {
if ($extension and trouve_modele($fond = $modele_base . '_emb_' . $extension)) {
return $fond;
}
$fond = $modele_base . '_emb_' . preg_replace(',\W,', '_', $mime_type);
if (trouve_modele($fond)) {
return $fond;
}
$fond = $modele_base . '_emb_' . preg_replace(',\W.*$,', '', $mime_type);
if (trouve_modele($fond)) {
return $fond;
}
return $modele_base;
}

@ -0,0 +1,3 @@
<BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {tout}>
<INCLURE{fond=modeles/#EXTENSION|medias_trouver_modele_emb{#MIME_TYPE,audio}}{id=#ID_DOCUMENT}{env}{emb=' '}/>
</BOUCLE_ext>

@ -1,3 +1,3 @@
<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|medias_trouver_modele_emb{#MIME_TYPE,file}}{id=#ID_DOCUMENT}{env}{emb=' '}/>
</BOUCLE_ext>

@ -1,30 +0,0 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Trouver le fond pour embarquer un document
* - avec une extension
* - avec un mime_type donne
*
* => modeles/emb_html.html si il existe
* => modeles/text_html.html si il existe,
* => modeles/text.html sinon
*
* @param $extension
* @param $mime_type
* @return mixed
*/
function trouver_modele_emb($extension, $mime_type) {
if ($extension and trouve_modele($fond = 'file_emb_' . $extension)) {
return $fond;
}
$fond = 'file_emb_' . preg_replace(',\W,', '_', $mime_type);
if (trouve_modele($fond)) {
return $fond;
} else {
return 'file_emb_' . preg_replace(',\W.*$,', '', $mime_type);
}
}

@ -0,0 +1,3 @@
<BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {tout}>
<INCLURE{fond=modeles/#EXTENSION|medias_trouver_modele_emb{#MIME_TYPE,image}}{id=#ID_DOCUMENT}{env}{emb=' '}/>
</BOUCLE_ext>

@ -0,0 +1,3 @@
<BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {tout}>
<INCLURE{fond=modeles/#EXTENSION|medias_trouver_modele_emb{#MIME_TYPE,video}}{id=#ID_DOCUMENT}{env}{emb=' '}/>
</BOUCLE_ext>

@ -1,7 +1,7 @@
<paquet
prefix="medias"
categorie="multimedia"
version="2.26.1"
version="2.27.0"
etat="stable"
compatibilite="[3.3.0-dev;3.3.*]"
logo="prive/themes/spip/images/portfolio-32.png"

Loading…
Cancel
Save