Ce module permet de gérer des catalogues d'albums vidéo qui sont hébergées sur des sites tels que Youtube, Dailymotion, Google Videos, Yahoo Videos, Veoh, MSN (ou Bing) Videos, Vimeo, MySpace ou MetaCafe.
Il est également possible de gérer des vidéos localement aux formats mkv, divx, avi, mp4 en utilisant le plugin divx web player, ou aux format flv (JarisFLVPlayer), ogg (cortado applet), wmv (Silverlight VideoPlayer.xap ou Windows Media Player), ...
HVA gère 3 niveaux: la catégorie, l'album vidéo et la vidéo elle-même et permet d'intégrer les vidéos une par une, dans des galeries fancybox (mode par défaut) ou dans des listes sur une page.
Avant de débuter, assurez-vous que les utilisateurs ont les permissions appropriés.
Si vous n'utilisez pas l'option de personnalisation des
restrictions d'accès (voir les préférences), la
permission "HostedVideoAlbums: Normal user" sera suffisante
pour le module. Dans l'onglet des préférences, vous
pouvez choisir quels onglets seront montrés aux utilisateurs
normaux. Seul l'administrateur et les utilisateurs ayant la
permission "HostedVideoAlbums: Advanced" auront accès
à l'onglet des préférences.
Si vous désirez
définir des permissions spécifiques par niveau, activez
l'option de restriction d'accés dans l'onglet des préférences
et donnez la permission "HostedVideoAlbums: Manage
name_of_level" aux utilisateurs appropriés.
Pour utiliser ce module, vous allez devoir créer les 3 niveaux (c'est à dire catégorie, album et vidéo). D'abord, vous aller créer les catégories dans l'onglet "Catégories", puis créer les albums dans l'onglet "Albums Vidéos" et enfin, créer les vidéos elles-mêmes dans l'onglet "Vidéos".
Pour les catégories, il suffit de fournir le nom
d'affichage, et optionnellement son alias (utilisé avec le
paramètre "alias" plus loin) et sa description.
Pour
les albums, vous donnerez également un nom, un alias
(optionnel), la catégorie à laquelle l'album se
rattache, une description (optionnelle), une langue (sous la forme fr
ou en-US), et les largeur et hauteur par défaut des vidéos
de cet albums (utilisées lorsque la largeur ou la hauteur
d'une vidéo ne sont pas fournies).
Pour les vidéos, vous devez donner un nom, un alias (optionnel), l'album auquel la vidéo est attachée, une description (optionelle), le site sur lequel la vidéo est hébergée, l'identifiant de la vidéo (voir plus loin) puis, optionnellement, la largeur et la hauteur de la vidéo (sinon, c'est la valeur par défaut de l'album qui est utilisée) et enfin une vignette utilisée en mode fancybox (voir les détails plus loin pour ce point).
Pour Youtube, l'id de vidéo est la
dernière partie de l'url après "v=". Par
exemple, dans "http://www.youtube.com/watch?v=7SZtGvXkEIw",
c'est "7SZtGvXkEIw".
Pour Dailymotion,
l'id de vidéo est la dernière partie de l'url après
le dernier "/". Par exemple, dans
"http://www.dailymotion.com/video/xcqa0g_cornershop-who-fingered-rock-n-roll_music",
c'est "xcqa0g_cornershop-who-fingered-rock-n-roll_music".
Pour
Yahoo videos, l'id de vidéo sont les deux
derniers nombres de l'url après l'avant-dernier "/".
Par exemple, dans "http://video.yahoo.com/watch/7095687/18465878",
c'est "7095687/18465878".
Pour Google videos,
l'id de vidéo est la dernière partie de l'url après
"docid=". Par exemple, dans
"http://video.google.com/videoplay?docid=7521423388637542657#",
c'est "7521423388637542657#".
Pour Veoh,
l'id de vidéo est la dernière partie de l'url après
le dernier "/". Par exemple, dans
"http://www.veoh.com/browse/videos/category/music/watch/v555658setkP3D8",
c'est "v555658setkP3D8".
Pour MSN ou Bing
Videos, utilisez "msn video" et chercher dans le
code d'intégration la chaîne "player.v=...",
l'id de la video est la chaîne hexa après "player.v".
Par exemple, dans "player.v=fcc409a0-a8b0-4243-83b2-ff4a5eb3a86e",
l'id est "fcc409a0-a8b0-4243-83b2-ff4a5eb3a86e".
Pour
metacafe, c'est la partie numérique à
la fin de l'url. Par exemple, dans
"http://www.metacafe.com/watch/4474839/pasta_013/", c'est
4474839.
Pour MySpace, c'est la partie après
"videoid=" dans l'url. Par exemple, dans
"http://vids.myspace.com/index.cfm?fuseaction=vids.individual&videoid=104317949",
c'est 104317949.
Pour Vimeo, c'est la dernière
partie de l'url. Par exemple, dans "http://vimeo.com/10875088",
c'est 10875088.
Pour insérer une vidéo hébergée sur votre site, choisissez le type "local.XXX" en fonction du type de vidéo:
divx (avi, divx, mkv): local.divx
flash video (flv): local.flv
quicktime (mov): local.mov
windows media (wmv): local.wmv ou local.silverlight
ogg vorbis (ogg, ogv) : local.ogv
ATTENTION: La racine des vidéos locales a changé depuis la version 2.0.1. Vous devez resaisir les chemins de toutes vos vidéos locales.
L'id de vidéo est le nom complet du fichier depuis la racine du site. Vous pouvez utiliser la fenêtre de choix de fichier pour sélectionner la vidéo. Si vos paramètres d'upload sont suffisants, vous pouvez même uploader la vidéo directement depuis cette fenêtre. La fenêtre de choix s'ouvre sur le répertoire paramétré dans les préférences (cadre Préférences vidéo) (normalement /uploads/videos). Vous pouvez organiser vos vidéos par sous répertoires (par exemple un répertoire par album).
La largeur et la hauteur des vidéos peuvent généralement être trouvés dans le code d'intégration ("embed") des sites vidéo. Pour chacun de ces sites, soit directement dans la page ou en cliquant sur un lien dans la page (Youtube & Google Videos ) ou en cliquant sur le bouton Exporter dans la vidéo (Dailymotion), un bout de code HTML contenant une largeur et une hauteur vous sera fourni.
Pour
la plupart des vidéos hébergées, HVA est capable
d'extraire automatiquement l'image miniature de la vidéo.
C'est le cas pour YouTube, Dailymotion, Yahoo, Google Video, Vimeo,
Veoh, Metacafe et Myspace. Vous n'avez donc pas besoin de
fournir un aperçu de ces vidéos.
Ce
n'est pas le cas pour les vidéos MSN (si quelqu'un peut me
dire comment faire cela, il est le bienvenu) et pour toutes les
vidéos locales. Pour chacune d'elles, vous devez fournir un
aperçu (si non, une vignette par défaut sera fournie).
Pour fournir un aperçu, lors de la saisie des paramètres
vidéo, cliquez sur l'icône répertoire près
du champ de saisie de la vignette, puis soit choisir une image
existante ou soit en télécharger une à partir de
votre disque local. L'image sera automatiquement redimensionnée
aux dimensions donnés dans les préférences
(cadre Préférences Vidéos). Vous pouvez
organiser vos images par sous répertoires (par exemple un
répertoire par album). Le répertoire par défaut
où sont stockées les vignettes est également
fourni dans les préférences vidéos (d'habitude
/upload/images/HVAThumbs).
Pour appeler le module, il suffit d'utiliser la balise suivante: {cms_module module="HostedVideoAlbums" what="<level>"}
Si vous omettez ce paramètre, toute la
liste des vidéos sera affichée. Cela équivaut
à:
{cms_module module="HostedVideoAlbums"
what="video"}
{cms_module module="HostedVideoAlbums" what="category"} affichera la liste des catégories.
{cms_module module="HostedVideoAlbums" what="album"} affichera la liste des albums, quelque soit leur catégorie.
Vous pouvez aussi demander des éléments qui
appartiennent à un parent spécifique:
{cms_module
module="HostedVideoAlbums"
parent="alias_du_parent"}
L'alias peut être une
catégorie ou l'alias d'un album.
Vous pouvez finalement demander un élément
spécifique avec:
{cms_module module="HostedVideoAlbums"
alias="alias_de_l_element"}
Vous devez créer une catégorie par défaut de
toute façon. Nommez la par exemple «par défaut»
puis créez tous vos albums dans cette catégorie et
utilisez
(cms_module module="HostedVideoAlbums"what="album")
pour afficher tous les albums.
De même, si vous n'avez pas
besoin des albums vidéo, créez un album par défaut
dans la catégorie par défaut et créez toutes vos
vidéos dans cet album. Ensuite, insérez les vidéos
à l'aide
de {cms_module module="HostedVideoAlbums"
what= "video"}
Vous pouvez limiter le nombre d'éléments devant être
affichés sur une même page:
{"HostedVideoAlbums"
nbperpage="5"}
Dans le gabarit, vous pouvez construire
le menu des pages à l'aide des balises suivantes (voir les
gabarits ListLinks ou ListVideos):
{$page_showing},
{$page_totalitems}, {$page_pagenumbers}, {$page_next},
{$page_previous}
Des classes ont été assignées aux éléments du menu de page pour que vous puissez le personnaliser.
Pour obtenir une liste d'éléments rencontrant des
critères spécifiques, vous pouvez créer des
requêtes à l'aide de l'onglet Requêtes de
l'administration du module. Vous pourrez ensuite appeler cette
requête avec le paramètre "query":
{cms_module
module="HostedVideoAlbums" query="1"}
Si l'option permettant les requêtes sql manuelles est
activée (voir l'onglet "Préférences"),
vous pouvez aussi fournir la requête sql manuellement avec le
paramètre "query". Par exemple:
{cms_module
module="HostedVideoAlbums" what="video"
query="A.date_modified > '2009-03-15' AND A.active = 1"}
La
requête ne peut contenir que la clause WHERE et ne devrait pas
contenir la commande WHERE elle-même. Pour éviter les
problèmes, le préfixe "A." devrait être
utilisé devant les noms de champs ("B." permet
d'accéder aux champs du parent, lorsque
Gardez en tête
qu'activer cette fonction implique de donner un accès sql aux
utilisateurs pouvant accéder aux gabarits et soyez prudents!
Vous pouvez choisir pour chaque niveau, le gabarit qui permet d'afficher ce niveau.
Par défaut, pour le niveau catégorie, un seul
gabarit est fourni: ListLinks. Ce gabarit affiche dans une liste à
puces, pour chaque catégorie, le nom de la catégorie et
sa description. Le nom est un lien hypertexte vers la page affichant
tous les albums de la catégorie.
Au niveau de l'album, vous
utilisez également ListLinks qui affichera dans une liste à
puces, pour chaque album de la catégorie, le nom de l'album et
sa description. Le nom est un lien hypertexte vers la page affichant
toutes les vidéos de l'album.
Au niveau vidéo, vous
pouvez choisir entre FancyVideoGallery, ListLinks et ListVideos:
FancyVideoGallery (qui est le choix par défaut) affiche les vidéos sous forme de vignettes. En cliquant sur une vignette, une fancybox apparaîtra et jouera la vidéo. Sur la fancybox, des flèches gauche et droite permettent de passer à la vidéo suivante ou précédente.
ListLinks affichera, comme d'habitude, dans une liste à puces, pour chaque vidéo de l'album, le nom de la vidéo et sa description. Le nom est un lien hypertexte vers la page affichant la vidéo qui est affichée en utilisant le «gabarit de détail» qui est par défaut DisplayVideo.
ListVideos affichera directement dans la page de l'album, pour chaque vidéo de l'album, le nom de la vidéo, sa description et la vidéo elle-même.
Il est très simple d'ajouter un nouveau site d'hébergement!
Tout d'abord, vous devez jeter un oeil sur le code «d'incrustation» de ce site et essayer de repérer la forme de l'ID de vidéo et où il doit être inséré dans le paramètre "movie" (url du code d'embedding). Ensuite, il suffit d'ajouter le nom du nouveau site dans l'onglet "sites", puis de modifier le gabarit EmbedVideo pour y ajouter juste avant la ligne du {/if}, quelques lignes de la forme:
(ATTENTION: Ne pas modifier directement le gabarit EmbedVideo, faire une copie car cela pourrait être écrasé par la prochaine version du module)
{elseif $item->site_namevalue=="<le nom du nouveau site>"}
{assign var="movie"
value="<début de l'url>`$item->videoid`<fin de l'url>"}Inspirez vous des autres cas...
Si vous ne faites rien concernant les vignettes des nouveaux types de vidéos ou sites, il vous suffira de fournir les vignettes manuellement.
Il peut être considérablement plus complexe de prendre en compte automatiquement les vignettes pour les sites de vidéos hébergées. Pour cela, il faut modifier (une copie du) gabarit FancyVideoGallery et ajouter des lignes de la forme (exemple vimeo)
{elseif $item->site_namevalue=="vimeo"}
{$aswf}"http://vimeo.com/moogaloop.swf?clip_id={$item->videoid}&server=vimeo.com&show_title=true&show_byline=1&color={$item->color1}&fullscreen={$item->fullscreen_int}">
{$img}{php}
$item= $this->get_template_vars('item');
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/".$item->videoid.".php"));
$url = $hash[0]['thumbnail_small']; echo "'$url'";
{/php}>
La façon de déduire automatiquement l'url de la vignette est différent pour chaque site et vous devrez enquêter pour trouver comment faire...
Ce sont des actions spéciales, que vous pouvez utiliser dans la déclaration de module pour créer des sitemap, des breadcrumbs et ainsi de suite ...
Pour imbriquer une vidéo à l'intérieur d'un
gabarit HVA, vous pouvez utiliser l'action "embedvideo":
{cms_module
module="HostedVideoAlbums" action="embedvideo"
item=$item}
Le paramètre "item=$item" est
obligatoire.
Vous pouvez utiliser l'action "link" pour créer
un lien vers l'action par défaut, avec les mêmes
paramètres:
{cms_module module="HostedVideoAlbums"
action="link" what="video" random="1"}
créerait
un lien vers un élément aléatoire de ce niveau.
Vous pouvez utiliser l'action "sitemap" pour
créer un sitemap du module:
{cms_module
module="HostedVideoAlbums" action="sitemap"}
Vous
pouvez sélectionner les niveaux à l'aide du paramètre
"what", et pouvez choisir plus d'un niveau avec la forme
what="level1|level2".
Les autres paramètres
disponibles sont "mode" (google, urllist ou frontend),
"detailpage" et "inline".
Cela va vous aider à inclure vos albums vidéos à un google sitemap, uniquement si les éléments sont affichés sur la même page.
*** Si vous utilisez le module générateur
google sitemap ***
Ouvrez votre générateur
de sitemap (gsitemap.php), et juste avant la fermeture de l'urlset
(echo ' </urlset>'. "\\n";),
ajoutez le code suivant:
$modulename = "HostedVideoAlbums";
if( isset($gCms->modules[$modulename]) && $gCms->modules[$modulename]["active"] && $themodule = $gCms->modules[$modulename]["object"]){
$params = array("mode"=>"google");
$themodule->DoAction("sitemap", "", $params);
}Bien sur, entrez un detailpage que ce soit un id ou un alias.
Notez que vous pouvez aussi utiliser le paramètre "what" pour spécifier quel(s) niveau(x) vous voulez voir affiché(s) (vous pouvez spécifier plusieurs niveaux avec "niveau1|niveau2" etc).
*** Si vous utilisez le module SiteMap Made Simple ***
Mettez simplement le code ci dessus dans un UDT
(user-defined-tag), et appelez cet UDT à la fin de votre
gabarit de sitemap, juste avant </urlset>.
Vous pouvez utiliser l'action "search"
pour afficher un formulaire de recherche:
{cms_module
module="HostedVideoAlbums" action="search"
what="video"}
Utilisez le paramètre "searchmode"
pour choisir la recherche simple ou avancée (par défaut).
Notez que vous ne pouvez pas faire une recherche en mode avancé
dans tous les niveaux en même temps.
Les paramètres
suivants peuvent être utilisés avec l'action "search":
what, limit, nbperpage, orderby, detailpage, listtemplate,
Voir
HostedVideoAlbums/templates/search.tpl pour modifier le formulaire de
recherches.
Ce module a été d'abord créé avec
CTLModuleMaker puis modifié manuellement. Il est fourni sous
licence GPL.
Les
paramètres pour les sites Vimeo, MetaCafe et MySpace sont
inspirés du module webvideos.
Le flash player local est JARIS : Page Web: http://jaris.sourceforge.net/, Project Page: https://sourceforge.net/projects/jaris/