samedi, 24 juillet 2021 09:28

Et si nous détournions mod_feed pour en faire un mod_youtube_feed ?

Écrit par
Évaluer cet élément
(0 Votes)

Pré-requis de bienveillance

J'invite à une bienveillance de mes lecteurs quant aux modes de diffusion de ce module. En effet, j'ignore totalement comment fabriquer un package de distribution et d'installation de modules Joomla, j'utilise toujours le mode "Découverte". Mais contactez-moi si vous avez un tuto ou pour m'expliquer comment packager un module et le rendre distribuable.

C'est quoi ?

Il apparait que sur mon site, je me suis interessé (et je m'interesse toujours) aux API du web. J'ai écris plusieurs articles pour expliquer dans les grandes lignes les API que le site Youtube vous fourni. et il y en a une passez sympa, encore faut-il l'appeler une API car c'est est pas trop une (encore que), c'est le fil RSS d'une chaine Youtube. Sur mon autre site Aujourd'hui à Nancy, j'écris régulièrement des articles sur des artistes du web. Et beaucoup d'entre eux, si se n'est pas pour dire tous, ont une chaine youtube alimentée régulièrement. Le problème auquel je me heurtais était simple : mes articles étant intemporel, je peux (et je le fais) intégrer des vidéos dont le code d'intégration est fourni par Youtube. Pour une vidéo spécifique dans un article, c'est pas mal. Mais quid pour parler d'une chaine ? La vidéo va - elle rester ? sera-t-elle supprimée ou censurée sur la plateforme collaborative de vidéos ?

Autant de questions auxquelles mon module répond puisqu'il se base sur le flux RSS d'une et une seule chaine, Le résultat est un article (si le module est intégré à l'article) à jours avec les dernières vidéos de la chaine.

Tu as tout écrit ?

Alors je sais que je suis une bille complète en programmation orientée objet, mais je m'y mets (oui oui, moi qui était (et le suis encore un peu) réfractaire à la POO et y'a un truc de feignasse (il faut bien le dire) mis à la disposition des développeurs : l'héritage. Alors tout réécrire ? jamais. Je suis parti du module mod_feed fourrni dans Joomla, module de base du CMS, que j'ai dupliqué, renommé ainsi que le fichier XML de description, auquel j'ai ajouté un test sur une fonctionnalité spécifique du fil RSS de Youtube : la présenced es références des vidéos. Ce module, vous l'aurez compris, dépend totalement sde l'API, qui peut évvoluer dans le temps !

Pour faire simple, je regarde si l'URL du fil RSS contient la chaine "youtube" et si tel est le cas, je pars du principe que c'est un bon fil RSS fourni par Youtube. Alors oui je sais, le test est léger, il faudrait plutôt tester avec des regex le contenu du flux, mais les regex, je maitrise pas.

Ca fait quoi alors par rapport à mod_feed ?

Lorsqu'on donne en pâtrue un fil RSS youtube à mod_feed, aucune des vidéos n'est intégrée dans le flux, prêtes à être jouée. Et bien avec mon module, elle le sont. Je vous ai concocté ci(dessous un module d'exemple, basé sur la chaine Youtube UC4YtERl4WGwN8dFzn28FHMg (enfin France TV Arts mais je ne doute pas que vous avirez reconnus la référence :-)

france TV ART

 

Comme vous pouvez le voir sur la copie d'écran, ce module liste toutes les dernière vidéos contenues dans le flux (alors j'ai regardé très rapidement dans l'API Youtube et n'ai pas trouvé si on pouvait régler le nombre d'items du fils RSS youtube, peut être que oui), et le module les affiche les unes sous les autres. Et bien entendu, en cliquant sur le palyer, il se met en route.

Style ?

Y'a pas qu'en POO où je suis une bille, en infographie aussi. Mais je vous ai prévu un fichier CSS à personnaliser à loisir pour faire ressortir vos vidéos. Si vous faites vos propres fichier de styles, envoyez les moi et ca sera avec plaisir que je les joindrais (avec accréditation et références de votre choix) à cet article !

What else ?

Rien d'autre, juste un p'tit café pour fêter la fin de developpement ?

Petit bémol

Ayant développé le module à partir du module existant sans en faire d'héritage (oh le con),  il faut peut etre recorriger le fichier xml si vous voulez en faire un autre type de module. En revanche, si vous l''"écrasez" par héritage dans votre Joomla, ca devrait marcher.

 

Lu 594 fois Dernière modification le vendredi, 10 septembre 2021 14:38