source: spip-zone/_plugins_/mediaspip_player/trunk/modeles/video.html @ 84470

Last change on this file since 84470 was 84470, checked in by kent1@…, 7 years ago

Pouvoir demander explicitement de ne pas utiliser de logo

File size: 9.4 KB
Line 
1[(#REM)
2       
3        Modele html video
4       
5        Les paramètres possibles :
6        -* logo string :
7                le chemin vers un logo spécifique
8        -* controls string "non" :
9                n'affichera pas les controles si la valeur est "non", "none" ou "false"
10        -* autoplay string "tout sauf non ou false" :
11                la video se lira dès qu'elle le pourra si la valeur est autre que non ou false
12        -* autobuffer|preload string non|auto|metadata : La méthode de preload : auto chargera l'ensemble de la video, metadata s'arrêtera aux metadatas, non ne chargera rien
13        -* loop string "tout sauf non ou false" : La video se lira en boucle
14        -* largeur|width int|% : La largeur par défaut (défaut 320), si valeur en %, % doit être indiqué (ex: 100%), sinon seul l'entier pour les px
15        -* hauteur|height int : La hauteur par défaut (défaut 240)
16        -* moviesize string :
17        -** adapt, adaptera la la vidéo à la plus grande largeur possible de l'élément parent
18        -** null, respectera les tailles passées en paramètres ou la taille de la video dans la bdd ou la taille par défaut (320x240)
19        -* align string left|right|center : L'alignement par défaut
20        -* volume int : Un nombre de 0 à 100 correspondant le pourcentage
21        -* volume_bloque string oui :
22                si oui le niveau de volume restera bloqué
23        -* volume_slider_orientation string vertical|horizontal :
24                l'orientation du slider de volume
25        -* muted string oui :
26                si "oui" le lecteur sera sur mute à l'initialisation
27        -* muted_bloque string  oui :
28                si "oui" l'utilisateur ne peut switcher entre mute et unmute
29        -* boutons_caches string : liste de boutons séparés par des virgule (ex: fullscreen,loop,volume)
30        -* telecharger string "oui" : si oui affiche un lien de téléchargement
31]
32<BOUCLE_tous(DOCUMENTS types_documents){id_document=#ID}{tout}>[
33(#REM) on trouvera plusieurs variable de hauteur/largeur
34- les balises HAUTEUR et LARGEUR
35- ENV{hauteur} et {largeur} correspondant <emb|hauteur=xx...>
36- GET{hauteur} et GET{largeur} correspondent prioritairement a ENV,
37  puis les balises LARGEUR/HAUTEUR sauf si il y a un controleur
38]
39[(#HAUTEUR|>{0}|et{#LARGEUR|>{0}}|oui)[(#SET{ratio,[(#ROTATION|=={90}|?{[(#HAUTEUR|div{#LARGEUR})],[(#LARGEUR|div{#HAUTEUR})]})]})]]
40[
41(#SET{hauteur,#ENV{hauteur,#ENV{height,#HAUTEUR}}})][
42(#SET{largeur,#ENV{largeur,#ENV{width,#LARGEUR}}})][(#REM)
43       
44        Une largeur est passée en paramètre
45        Pas de hauteur en paramètre
46        Si on a largeur et hauteur en base, on calcule un ratio pour la hauteur
47       
48][(#ENV{largeur,#ENV{width}}
49        |et{#ENV{hauteur,#ENV{height,''}}|=={''}|oui}
50        |et{#ENV{largeur,#ENV{width}}|match{%}|non}
51        |et{#HAUTEUR}
52        |et{#LARGEUR}
53        |et{[(#LARGEUR|>{#ENV{largeur,#ENV{width,0}}})]}|oui)
54        [(#GET{ratio}|non)
55        [(#SET{ratio,[(#LARGEUR|div{#HAUTEUR})]})]]
56        #SET{hauteur,#ENV{largeur,#ENV{width}}|div{#GET{ratio}}|floor}
57][(#REM)
58       
59        Une hauteur est passée en paramètre
60        Pas de largeur en paramètre
61        Si on a largeur et hauteur en base, on calcule un ratio pour la largeur
62       
63][(#ENV{hauteur,#ENV{height}}
64        |et{#ENV{largeur,#ENV{width,''}}|=={''}}
65        |et{#ENV{hauteur,#ENV{height}}|match{%}|non}
66        |et{#HAUTEUR}
67        |et{#LARGEUR}
68        |et{#GET{ratio}|=={''}}
69        |et{[(#HAUTEUR|>{#ENV{hauteur,#ENV{height}}})]}|oui)
70        [(#GET{ratio}|non)
71        [(#SET{ratio,[(#LARGEUR|div{#HAUTEUR})]})]]
72        #SET{largeur,#ENV{hauteur,#ENV{height}}|mult{#GET{ratio}}|floor}
73][(#REM)
74
75        On a une rotation dans la base, on retourne le bazar
76
77][(#ROTATION|=={90}|oui)
78        #SET{largeur2,#GET{hauteur}}
79        #SET{hauteur,#GET{largeur}}
80        #SET{largeur,#GET{largeur2}}
81][(#REM)
82
83        Si la taille est zero, mettre une valeur par defaut 320x240
84
85][(#GET{hauteur}|et{#GET{largeur}}|?{'',
86        [(#SET{largeur,320})][(#SET{hauteur,240})]
87})][(#REM)
88       
89        Pour quicktime il faut ajouter 16 pixels en hauteur
90        cf. http://article.gmane.org/gmane.comp.web.spip.zone/9231/match=quicktime
91
92]
93[(#GET{largeur}|match{%}|non)
94[(#ENV{logo}|in_array{#LISTE{non,false,none}}|non)
95        [(#LOGO_DOCUMENT{vignette}|extraire_attribut{width}|>{#GET{largeur}}|oui)
96                [(#SET{logo,[(#ENV{logo,#LOGO_DOCUMENT{vignette}|extraire_attribut{src}}|image_passe_partout{#GET{largeur},#GET{hauteur}}|image_recadre{#GET{largeur},#GET{hauteur}}|extraire_attribut{src}|url_absolue)]})]]
97        [(#LOGO_DOCUMENT{vignette}|extraire_attribut{width}|>{#GET{largeur}}|non)
98                [(#SET{logo,[(#ENV{logo,[(#LOGO_DOCUMENT{vignette}|extraire_attribut{src}|url_absolue)]})]})]]
99        ]
100        [(#GET{largeur}|match{%}|oui)
101                [(#SET{logo,[(#ENV{logo,#LOGO_DOCUMENT{vignette}|extraire_attribut{src}}|url_absolue)]})]
102        ]
103]
104[(#SET{id_document_voir, [(#ID_DOCUMENT)_][(#VAL{0}|rand{100000})]})]
105[(#SET{titre,#TITRE})]
106[(#SET{descriptif,[(#DESCRIPTIF|PtoBR)]})]
107[(#SET{notes,[(#NOTES|PtoBR)]})]
108</BOUCLE_tous>
109</B_tous>
110[(#ENV{fichier}|et{#ENV{fichier}|file_exists}|oui)
111        [(#ENV{fichier}|substr{-3}|=={flv}|oui)#SET{type,video/x-flv}]
112        [(#ENV{fichier}|substr{-3}|=={mp4}|oui)#SET{type,video/mp4}]
113        [(#GET{type}|oui)[(#SET{id_document_voir,[(#VAL{0}|rand{1000000000000})]})]]
114]
115<//B_tous>
116
117<BOUCLE_si_id(CONDITION){si #GET{id_document_voir}|oui}>[(#SET{variantes,#ARRAY})]
118<div class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})] media video'[
119        style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};] (#ENV{align,center}|=={center}|?{'',[(#ENV{largeur,#ENV{width}}|match{%}|oui)width:#ENV{largeur,#ENV{width}}]})']
120        id='media_#GET{id_document_voir}'>
121        <video id="video_#GET{id_document_voir}"[
122                (#ENV{controls,true}|in_array{#LISTE{false,non,none}}|non)controls ][
123                (#ENV{autoplay,#ENV{autostart,non}}|in_array{#LISTE{false,non,none}}|non)autoplay ][(#ENV{autobuffer,#ENV{preload,none}}|in_array{#LISTE{false,non,none}}|?{preload="none",[
124                (#ENV{autobuffer,#ENV{preload,none}}|in_array{#LISTE{auto,metadata}}|?{[preload="(#ENV{autobuffer,#ENV{preload,none}})"],preload="metadata"})]})][(#ENV{loop,non}|in_array{#LISTE{false,non,none}}|non)
125                loop][(#ENV{noresize}?{' class="noresize" ',''})][
126                width="(#GET{largeur}|match{%}|?{'',#GET{largeur}})"][
127                height="(#GET{hauteur})"][
128                poster="(#GET{logo})"][(#ENV{muted,non}|=={oui}|oui)
129                muted][
130                style="width:(#GET{largeur}|match{%}|?{#GET{largeur}})"]>
131                <BOUCLE_variantes(DOCUMENTS){mode=conversion}{objet=document}{id_objet=#ENV{id_document,#ENV{id}}}{statut==.*}>#SET{variantes,#GET{variantes}|push{#EXTENSION}}</BOUCLE_variantes>[
132                (#EXTENSION|=={mp4}|et{#EXTENSION|in_array{#GET{variantes}}|non}|oui)
133                        <source[ type='(#EXTENSION|in_array{#LISTE{mp4,m4v}}|?{'video/mp4',#MIME_TYPE}|trim)[; codecs="(#VIDEOCODECID)[,(#AUDIOCODECID)]"]'] src="[(#FICHIER|timestamp|url_absolue)]" />
134                ]<BOUCLE_ssdoc_mp4(DOCUMENTS){mode=conversion}{objet=document}{id_objet=#ENV{id_document,#ENV{id}}}{extension IN m4v,mp4,mov}{par extension}{tout}>
135                        <source[ type='(#EXTENSION|in_array{#LISTE{mp4,m4v}}|?{'video/mp4',#MIME_TYPE}|trim)[; codecs="(#VIDEOCODECID)[,(#AUDIOCODECID)]"]'] src="[(#FICHIER|timestamp|url_absolue)]" />
136                </BOUCLE_ssdoc_mp4>
137                <BOUCLE_ssdoc(DOCUMENTS){mode=conversion}{objet=document}{id_objet=#ENV{id_document,#ENV{id}}}{extension IN flv,ogv,ogg,webm}{par extension}{tout}>
138                        <source[ type='(#EXTENSION|in_array{#LISTE{mp4,m4v}}|?{'video/mp4',#MIME_TYPE}|trim)[; codecs="(#VIDEOCODECID)[,(#AUDIOCODECID)]"]'] src="[(#FICHIER|timestamp|url_absolue)]" />
139                </BOUCLE_ssdoc>[(#ENV{fichier}|oui)
140                <source type="#GET{type}" src="[(#ENV{fichier}|timestamp|url_absolue)]" />]
141                <BOUCLE_doc_orig(DOCUMENTS){id_document=#ID}{tout}>
142                        <source[ type='(#EXTENSION|in_array{#LISTE{mp4,m4v}}|?{"video/mp4",#MIME_TYPE}|trim)[; codecs="(#VIDEOCODECID)[,(#AUDIOCODECID)]"]'] src="[(#FICHIER|timestamp|url_absolue)]" />
143                </BOUCLE_doc_orig>
144        </video>[(#ENV{infos}|=={non}|non)
145        [<div class='spip_doc_titre'><strong>(#GET{titre})</strong></div>]
146        [<div class='spip_doc_descriptif'>(#GET{descriptif})[(#GET{notes}|PtoBR)]</div>]]
147        [(#ENV{telecharger,non}|=={oui}|oui)
148                <div class='spip_download'><a href="[(#URL_DOCUMENT|url_absolue)]" rel="enclosure"><:bouton_download:></a></div>]
149</div>
150<script type="text/javascript">
151(function($) {
152        var ms_player_init_[(#GET{id_document_voir})] = function(){
153                if($('#video_[(#GET{id_document_voir})]').parent('.media_wrapper').size() == 0){
154                        $('#video_[(#GET{id_document_voir})]').ms_player_init({
155                                flowurl:'[(#CHEMIN{flash/flowplayer.swf}|url_absolue)]',[
156                                (#ENV{min_width}|oui)[minwidth : '(#ENV{min_width}|match{%}|?{null,#ENV{min_width}})',]][
157                                movieSize:'(#ENV{moviesize})',][(#ENV{cookie_volume,#CONFIG{mediaspip_player/cookie_volume,non}}|=={oui}|oui)
158                                cookie_volume:true,][
159                                (#ENV{autoplay,#ENV{autostart,non}}|in_array{#LISTE{false,non,none}}|non)autoplay:true,][
160                                (#ENV{messages,oui}|in_array{#LISTE{false,non,none}}|oui)messages:false,][
161                                (#ENV{volume}|is_numeric|oui)volume : #ENV{volume},][
162                                (#ENV{volume_bloque}|=={oui}|oui)volume_bloque : true,][
163                                (#ENV{volume_mousewheel,oui}|in_array{#LISTE{false,non,none}}|oui)volume_mousewheel:false,][
164                                (#GET{ratio}|oui)ratio : #GET{ratio},][
165                                (#ENV{muted_bloque}|=={oui}|oui)muted_bloque : true,][
166                                (#ENV{boutons_caches}|oui)boutons_caches : [(#ENV{boutons_caches}|explode{','}|json_encode)],][(#GET{largeur}|oui)[
167                                width:'(#ENV{align}|match{^(left|right)$}|et{#ENV{largeur,#ENV{width}}|match{%}}|?{100%,[(#ENV{largeur,#ENV{width}}|replace{px,''})]})',]
168                                ][height:'(#ENV{hauteur,#ENV{height}})',
169                                ]volume_slider_orientation:'#ENV{volume_slider_orientation,#CONFIG{mediaspip_player/slider_volume_orientation,horizontal}}'
170                        });
171                }
172        }
173        $(function(){
174                ms_player_init_[(#GET{id_document_voir})]();
175                //onAjaxLoad(function(){setTimeout(function(){ms_player_init_[(#GET{id_document_voir})]();},500)});
176        });
177})(jQuery);
178</script>
179</BOUCLE_si_id>
180#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.