- Ajout d'un fichier de désinstallation ;

- Compatibilité SPIP 3.1 ;
- Up de z.
svn/attic/mejs/trunk/103720
teddy.spip@gmail.com 8 years ago
parent 764db33d98
commit fe88ff740e

1
.gitattributes vendored

@ -24,6 +24,7 @@ mejs/mediaelementplayer.min.css -text
mejs/mediaelementplayer.min.js -text
mejs/mejs-skins.css -text
mejs/silverlightmediaelement.xap -text
/mejs_administrations.php -text
/mejs_pipelines.php -text
modeles/audio.html -text
modeles/doc_player.html -text

@ -1,28 +1,31 @@
<!-- presentation=non -->
<!-- nom=mejs -->
<div class="formulaire_spip formulaire_cfg formulaire_configurer formulaire_#FORM">
<h3 class='titrem'><img src="#CHEMIN_IMAGE{mejs-32.png}" class="cadre-icone" /><:mejs:titre_configurer_mejs:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method='post' action='#ENV{action}'><div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
#SET{fl,mejs}
#SET{name,maxwidth}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},600}" id="#GET{name}"/>
</li>
#SET{name,maxheight}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},400}" id="#GET{name}"/>
</li>
</ul>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'><span class='image_loading'>&nbsp;</span><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
</div></form>
<h3 class='titrem'><img src="#CHEMIN_IMAGE{mejs-32.png}" class="cadre-icone" /><:mejs:titre_configurer_mejs:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method='post' action='#ENV{action}'><div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul class="editer-groupe">
#SET{fl,mejs}
#SET{name,maxwidth}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},600}" id="#GET{name}"/>
</li>
#SET{name,maxheight}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},400}" id="#GET{name}"/>
</li>
</ul>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'>
<span class='image_loading'>&nbsp;</span>
<input type='submit' class='submit' value='<:bouton_enregistrer:>' />
</p>
</div></form>
</div>

@ -0,0 +1,43 @@
<?php
/**
* Fichier gérant l'installation et désinstallation du plugin MediaElementPlayer
*
* @plugin MediaElementPlayer
* @copyright 2014-2015
* @author John Dyer
* @licence MIT
* @package SPIP\Mejs\Installation
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'installation et de mise à jour du plugin MediaElementPlayer.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @param string $version_cible
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
* @return void
**/
function mejs_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
/**
* Fonction de désinstallation du plugin MediaElementPlayer.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void
**/
function mejs_vider_tables($nom_meta_base_version) {
effacer_meta('mejs');
effacer_meta($nom_meta_base_version);
}
?>

@ -1,80 +1,88 @@
<?php
/**
* Utilisations de pipelines par MediaElementPlayer
* Utilisations de pipelines par MediaElementPlayer.
*
* @plugin MediaElementPlayer
* @copyright 2014
* @copyright 2014-2015
* @author John Dyer
* @licence MIT
* @package SPIP\Mejs\Pipelines
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* inserer systematiquement le CSS dans la page
* inserer systematiquement le CSS dans la page.
*
* @param string $flux
*
* @return string
*/
function mejs_insert_head_css($flux){
$css = find_in_path('mejs/mediaelementplayer.css');
$flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
$css = find_in_path('mejs/mejs-skins.css');
$flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
return $flux;
function mejs_insert_head_css($flux) {
$css = find_in_path('mejs/mediaelementplayer.css');
$flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
$css = find_in_path('mejs/mejs-skins.css');
$flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
return $flux;
}
/**
* inserer systematiquement le JS dans la page
* on utilise uniquement la fonction pour l'affichage prive
* pour l'affichage publique on utilise plutot le pipeline affichage_final comme sur video accessible
*
* pour l'affichage publique on utilise plutot le pipeline affichage_final comme sur video accessible.
*
* @param string $flux
*
* @return string
*/
function mejs_insert_head($flux){
$js = find_in_path('mejs/mediaelement-and-player.min.js');
$flux .= "<script type='text/javascript' src='$js'></script>\n";
// $flux .= "<script>$('video,audio').mediaelementplayer();</script>\n"; // l'appel se fait à la volee
return $flux;
*/
function mejs_insert_head($flux) {
$js = find_in_path('mejs/mediaelement-and-player.min.js');
$flux .= "<script type='text/javascript' src='$js'></script>\n";
// $flux .= "<script>$('video,audio').mediaelementplayer();</script>\n"; // l'appel se fait à la volee
return $flux;
}
/**
* Insertion dynamique du js en pied de page,
* uniquement en presence de video sur la page
* et sur les pages html ! (pas dans les flux rss ou autre)
*
*(pas l'instant pas utilise)
*
* et sur les pages html ! (pas dans les flux rss ou autre).
*
*(pas l'instant pas utilise)
*
* @param string $flux
*
* @return string
*/
function mejs_affichage_final($flux){
function mejs_affichage_final($flux) {
if ($GLOBALS['html']
AND stripos($flux,'mejs-')){
and stripos($flux, 'mejs-')) {
$script = find_in_path('mejs/mediaelement-and-player.min.js');
lire_fichier($script, $js);
$js = '<script type="text/javascript">/*<![CDATA[*/'.$js.'/*]]>*/</script>';
if ($p=stripos($flux,'</body>'))
$flux = substr_replace($flux,$js,$p,0);
else
$flux .= $js;
lire_fichier($script, $js);
$js = '<script type="text/javascript">/*<![CDATA[*/'.$js.'/*]]>*/</script>';
if ($p = stripos($flux, '</body>')) {
$flux = substr_replace($flux, $js, $p, 0);
} else {
$flux .= $js;
}
}
return $flux;
}
/**
* inserer systematiquement le JS dans la page
* inserer systematiquement le JS dans la page.
*
* @param string $flux
*
* @return string
*/
function mejs_header_prive($flux){
$flux = mejs_insert_head($flux);
$flux .= "<script type='text/javascript'>jQuery(function(){ $('video,audio').mediaelementplayer();});</script>\n"; // dans le prive, on a appel le script via le head
$flux = mejs_insert_head_css($flux);
return $flux;
}
function mejs_header_prive($flux) {
$flux = mejs_insert_head($flux);
$flux .= "<script type='text/javascript'>jQuery(function(){ $('video,audio').mediaelementplayer();});</script>\n"; // dans le prive, on a appel le script via le head
$flux = mejs_insert_head_css($flux);
?>
return $flux;
}

@ -1,28 +1,28 @@
[(#REM)
Modele html audio
Parametre:
- id: id_document
- skin: habillage (facultatif) valeurs possibles: ted,wmp
- largeur
- hauteur
- loop
- autoplay
- id: id_document
- skin: habillage (facultatif) valeurs possibles: ted,wmp
- largeur
- hauteur
- loop
- autoplay
]
<BOUCLE_tous(DOCUMENTS types_documents){id_document=#ID}{tout}{extension IN mp3}>
<audio id="mejs-#ID_DOCUMENT" src="#FICHIER" type="audio/mp3" controls="controls" class="mejs[ mejs-(#ENV{skin})]"></audio>
<audio id="mejs-#ID_DOCUMENT" src="#FICHIER" type="audio/mp3" controls="controls" class="mejs[ mejs-(#ENV{skin})]"></audio>
[(#REM|test_espace_prive|non)<script>
(function($) {
var player#ID_DOCUMENT = new MediaElementPlayer('#mejs-#ID_DOCUMENT',
{
[(#ENV{largeur}|oui) [audioWidth:(#ENV{largeur}|intval),]]
[(#ENV{hauteur}|oui) [audioHeight:(#ENV{hauteur}|intval),]]
[(#ENV{volume}|oui) [volume:(#ENV{volume}|floatval),]]
[(#ENV{loop}|oui) loop:true,]
}
);
[(#ENV{autoplay}|oui) player#ID_DOCUMENT.play();]
var player#ID_DOCUMENT = new MediaElementPlayer('#mejs-#ID_DOCUMENT',
{
[(#ENV{largeur}|oui) [audioWidth:(#ENV{largeur}|intval),]]
[(#ENV{hauteur}|oui) [audioHeight:(#ENV{hauteur}|intval),]]
[(#ENV{volume}|oui) [volume:(#ENV{volume}|floatval),]]
[(#ENV{loop}|oui) loop:true,]
}
);
[(#ENV{autoplay}|oui) player#ID_DOCUMENT.play();]
})(jQuery);
</script>]
</BOUCLE_tous>

@ -1,30 +1,30 @@
[(#REM)
[(#REM)
Modele html video
Parametre:
- id: id_document
- skin: habillage (facultatif) valeurs possibles: ted,wmp
- volume
- autoplay buggué sur chrome ... pas documenté officiellement
][(#SET{largeur,500})] [(#CONFIG{mejs/maxwidth}|oui) [(#SET{largeur,#CONFIG{mejs/maxwidth}})]]
[(#SET{hauteur,300})] [(#CONFIG{mejs/maxheight}|oui) [(#SET{hauteur,#CONFIG{mejs/maxheight}})]]
<BOUCLE_tous(DOCUMENTS types_documents){id_document=#ID}{tout}>
[(#LARGEUR|oui) [(#SET{largeur,#LARGEUR})]]
Parametre:
- id: id_document
- skin: habillage (facultatif) valeurs possibles: ted,wmp
- volume
- autoplay buggué sur chrome ... pas documenté officiellement
][(#SET{largeur,500})] [(#CONFIG{mejs/maxwidth}|oui) [(#SET{largeur,#CONFIG{mejs/maxwidth}})]]
[(#SET{hauteur,300})] [(#CONFIG{mejs/maxheight}|oui) [(#SET{hauteur,#CONFIG{mejs/maxheight}})]]
<BOUCLE_tous(DOCUMENTS types_documents){id_document=#ID}{tout}>
[(#LARGEUR|oui) [(#SET{largeur,#LARGEUR})]]
[(#HAUTEUR|oui) [(#SET{hauteur,#HAUTEUR})]]
<video id="mejs-#ID_DOCUMENT" src="#FICHIER"[ width="(#GET{largeur})"][ height="(#GET{hauteur})"]
[(#MIME_TYPE|=={application/mp4}|oui) type="video/mp4"]
preload="none" controls="controls"
[(#LOGO_DOCUMENT|extraire_attribut{src}|couper{23,''}|=={plugins-dist/medias}|non) [poster="(#LOGO_DOCUMENT|extraire_attribut{src})"]]
class="mejs[ mejs-(#ENV{skin})]"
></video>
[(#MIME_TYPE|=={application/mp4}|oui) type="video/mp4"]
preload="none" controls="controls"
[(#LOGO_DOCUMENT|extraire_attribut{src}|couper{23,''}|=={plugins-dist/medias}|non) [poster="(#LOGO_DOCUMENT|extraire_attribut{src})"]]
class="mejs[ mejs-(#ENV{skin})]"
></video>
[(#REM|test_espace_prive|non)<script>
(function($) {
var player#ID_DOCUMENT = new MediaElementPlayer('#mejs-#ID_DOCUMENT',{
[(#ENV{volume}|oui) [startVolume:(#ENV{volume}|floatval),]]
});
[(#ENV{autoplay}|oui) player#ID_DOCUMENT.play();]
})(jQuery);
(function($) {
var player#ID_DOCUMENT = new MediaElementPlayer('#mejs-#ID_DOCUMENT',{
[(#ENV{volume}|oui) [startVolume:(#ENV{volume}|floatval),]]
});
[(#ENV{autoplay}|oui) player#ID_DOCUMENT.play();]
})(jQuery);
</script>]
</BOUCLE_tous>
#FILTRE{trim}

@ -1,22 +1,23 @@
<paquet
prefix="mejs"
categorie="multimedia"
version="0.2.1"
version="0.2.2"
etat="dev"
compatibilite="[3.0.10;3.0.*]"
compatibilite="[3.0.10;3.1.*]"
logo="prive/themes/spip/images/mejs-64.png"
documentation="http://contrib.spip.net/4403"
schema="0.1.0"
>
<nom>MediaElementPlayer</nom>
<auteur lien='http://mediaelementjs.com/'>John Dyer</auteur>
<auteur lien='http://www.erational.org'>erational (mise en plugin)</auteur>
<auteur lien='http://www.erational.org'>erational (mise en plugin)</auteur>
<licence>MIT</licence>
<pipeline nom="insert_head_css" inclure="mejs_pipelines.php"/>
<pipeline nom="insert_head" inclure="mejs_pipelines.php" />
<!-- <pipeline nom="affichage_final" inclure="mejs_pipelines.php" /> -->
<pipeline nom="header_prive" inclure="mejs_pipelines.php" />
<utilise nom="medias" compatibilite="[2.7.27;[" />
<pipeline nom="insert_head_css" inclure="mejs_pipelines.php"/>
<pipeline nom="insert_head" inclure="mejs_pipelines.php" />
<!-- <pipeline nom="affichage_final" inclure="mejs_pipelines.php" /> -->
<pipeline nom="header_prive" inclure="mejs_pipelines.php" />
<utilise nom="medias" compatibilite="[2.7.27;[" />
</paquet>

@ -1,4 +1,4 @@
<h1><:mejs:titre_page_configurer_mejs:></h1>
<h1 class="grostitre"><:mejs:titre_page_configurer_mejs:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_MEJS

Loading…
Cancel
Save