Que fait ce module?

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 gère 3 niveaux: la catégorie, l'album video et la vidéo elle-même et permet d'intégrer les vidéos une par une ou dans des listes sur une page.

Depuis la version 1.1, il est également possible de gérer des vidéos localement (formats mkv, divx, avi, mp4) en utilisant le plugin divx web player!

Comment l'utiliser?

Permissions

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ésn dans l'onglet des préférences et donnez la permission "HostedVideoAlbums: Manage name_of_level" aux utilisateurs appropriés.


Ajout de catégories, d'albums vidéos et de vidéos

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 optionellement son alias (utilisé avec le paramètre "alias" plus loin) et sa description.
Pour les albums, vous donnerez également un nom, un alias (optionel), la catégorie à laquelle l'album se rattache, une description (optionelle), 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 (optionel), 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) et optionellement, la largeur et la hauteur de la vidéo (sinon, c'est la valeur par défaut de l'album qui est utilisée)

Où puis je trouver les identifiants, les largeurs et hauteurs des vidéos?

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 est la dernière partie de l'url après le dernier "/". Par exemple, dans "http://video.yahoo.com/watch/7095687/18465878", c'est "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.

Vidéos locales

Pour insérer une vidéo hébergée sur votre site, choisissez le type "local.XXX" en fonction du type de vidéo:

L'id de vidéo est le nom complet du fichier depuis la racine du site cmsms (par exemple, si le film est dans le dossier "MesFilms" à la racine du site cmsms et s'appelle "MonFilm.avi", l'id sera "/MesFilms/MonFilm.avi".

Hauteur&Largeur

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.

Appel du module dans une page

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"}

Que faire si je n'ai pas besoin catégories ou des niveaux albums?

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"}

Séparation en pages

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.


Usage des requêtes

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!

Gabarits

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 ListLinks et ListVideos:

Ajout d'un nouveau site d'hébergement

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:

{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...

Actions

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

L'action embedvideo

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.

L'action "link"

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.

L'action sitemap

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 "detailpage" et "inline".

Comment ajouter mes albums vidéos à mon google sitemap?

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"]){
	// ICI VOUS DEVEZ METTRE L'ID OU L'ALIAS DE LA PAGE UTILSEE POUR AFFICHER LES ELEMENTS:
	$detailpage = "MAPAGE";
	$params = array("mode"=>"google", "detailpage"=>$detailpage);
	$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>.

L'action search

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.



Copyright et Licence

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/