Browse Source

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
tags/v2.27.0
Cerdic 5 months ago
parent
commit
5df7ada711
7 changed files with 45 additions and 33 deletions
  1. +34
    -1
      medias_fonctions.php
  2. +3
    -0
      modeles/audio_emb.html
  3. +1
    -1
      modeles/file_emb.html
  4. +0
    -30
      modeles/file_emb_fonctions.php
  5. +3
    -0
      modeles/image_emb.html
  6. +3
    -0
      modeles/video_emb.html
  7. +1
    -1
      paquet.xml

+ 34
- 1
medias_fonctions.php View File

@@ -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;
}

+ 3
- 0
modeles/audio_emb.html View File

@@ -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
- 1
modeles/file_emb.html View File

@@ -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>

+ 0
- 30
modeles/file_emb_fonctions.php View File

@@ -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);
}
}

+ 3
- 0
modeles/image_emb.html View File

@@ -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>

+ 3
- 0
modeles/video_emb.html View File

@@ -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
- 1
paquet.xml View File

@@ -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