bonjour
j'utilise Charlies content pour partager des vidéos en ogg avec la balise vidéo. malheureusement les iphone/ipod ne gèrent pas ce format.
j'aimerais changer le fichier lu en fonction du user agent :
si iphone alors afficher vidéo en mp4
sinon afficher vidéo en ogg
j'ai essayer de faire ça en php dans le fichier tpl, mais ça ne marche pas
c'est possible à faire ?
j'ai la dernière version de piwigo et de Charlies content
Marie-Lyse
Oui possible.
Explications du (et de) principe en 2 secondes:
- Un seul et même template.
- Voir la doc de Smarty et plus précisément assign et {php}.
- En suite dans le {php} on saura faire l'assign en fonction de la valeur de $_SERVER['HTTP_USER_AGENT']
- Sorti du {/php} un simple {if ... basé sur la variable assignée saura générer le bon code du lecteur à utiliser.
Hors ligne
merci beaucoup, je regarde ça.
Est-ce que on pourrait (on = les autres) bénéficier d'une tel fonctionnalité ? Je veux dire, comment avez-vous fait pour faire une telle chose ???
Merci d'avance.
Hors ligne
nouveau fichier tpl :
{php}
$nom = $this->get_template_vars('SRC_IMG');
$nb=strlen($nom);
$nom= substr_replace ($nom , "mp4" , $nb-3);
$nom=explode("/",$nom);
$nb=count($nom);
$nom[$nb-1]="iphone/".$nom[$nb-1];
$nom=implode("/",$nom);
if (stristr($_SERVER['HTTP_USER_AGENT'], "iPhone") || strpos($_SERVER['HTTP_USER_AGENT'], "iPod"))
{
$this->assign('name','iphone');
$this->assign('SRC_IMG',$nom);
}
else
{
$this->assign('name','autre');
}
{/php}
{if $name eq 'iphone'}
<object width="{$FW_VIDEO}" height="{$FH_VIDEO}">
<param name="movie" value="{$SRC_IMG}"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="never"></param>
<embed src="{$SRC_IMG}" type="application/x-shockwave-flash" allowscriptaccess="never" allowfullscreen="true" width="{$FW_VIDEO}" height="{$FH_VIDEO}"></embed>
</object>
{else}
<video src="{$SRC_IMG}" autobuffer controls="true" style="height:{$FH_VIDEO}px; width:{$FW_VIDEO}px; padding-top: {$C_VIDEO}px;margin:auto;">
Vous devez utiliser firefox 3.5 ou un autre navigateur qui gère la balise video pour visualiser correctement cette vidéo
</video> ';
{/if}
mettre la vidéo ogg dans un répertoire et celle en mp4 dans un sous-répertoire iphone
(changez cette ligne :
$nom[$nb-1]="iphone/".$nom[$nb-1];
pour un autre nom)
seule la vidéo ogg apparait dans la galerie (le répertoire iphone doit être privé pour ne pas être visible)
je sais pas si c'est très propre, mais ça marche
Marie-Lyse
Dernière modification par llwynrt (2009-11-10 12:04:47)
Hors ligne
Merci pour le code.
Un conseil, édites ton message au dessus pour ne pas laisser un "vieux" code ;-)
Hors ligne