Insérer de la publicité Google Adsense dans Joomla 1.0

Bien que certains modules Joomla remplissent maintenant cette fonction, il y avait un temps où la seule option était d’insérer le code des publicités Adsense dans chacun de vos articles si vous vouliez rentabiliser votre site avec Adsense. Cette façon de procéder n’est pas idéale, parce que si vous vouliez faire un changement sur cette publicité, ou si vous vouliez la désactiver pendant un certain temps, il fallait repasser à travers tout vos articles pour faire vos modifications, ce qui peut être très long dans un site avec des centaines de pages.

Une façon initiale de procéder est d’insérer le code dans le template de l’installation joomla, mais celui-ci ne peux intégrer ces publicités à l’intérieur de l’article, un emplacement de choix, et va afficher les pubs dans toutes les pages, mêmes celles qui ne contiennent pas ou peu de contenu textuel, ou celles qui sont en mode d’édition, ce qui contrevient aux règlements (guidelines) de Google et pourrait faire bannir votre site. Il nous faut donc contrôler un peu tout ça. Voici un exemple:

if (($_GET["task"] != "edit") && ($_GET["task"] != "new") && ($_GET["task"] != "CheckIn") && ($Itemid != 4) && ($Itemid != 8) && ($option != "com_weblinks")) include("adsense.php");

Comme vous pouvez le constater, avant d’afficher Adsense, on s’assure que la page n’est pas en mode d’édition. Ensuite on exclue certains pages, comme la page contact ou la page de politique de confidentialité (les numéros d’identification actuels vont différer dans voter cas, identifiez-les à partir du URL), et enfin la section des liens externes.

Si vous n’avez toujours pas trouvé de modules convenables, j’ai développé une petite instruction rapide à insérer dans le code Joomla pour afficher une pub au début (ou à la fin) d’un article, ce qui ne peut être fait à partir du fichier template. Son avantage est que vous pouvez facilement la désactiver et que vous n’avez pas à insérer le code Adsense dans chacun de vos articles, son désavantage, par contre, est que vous modifiez un fichier important de Joomla et qu’il vous faudra réécrire cette fonction si vous mettez à jour Joomla avec la toute dernière version et que vous remplacez la page avec sa nouvelle version.

Pour ce faire, ouvrez le fichier suivant de votre logiciel Joomla:

components/com_content/content.html.php

Normalement, aux lignes 517-521, vous devriez trouver les instructions suivantes (si vous n’avez pas d’éditeur HTML qui affiche le numéro de chaque ligne, faites tout simplement une recherche d’une des lignes de code):

// displays Table of Contents
HTML_content::TOC( $row );

// displays Item Text
echo ampReplace( $row->text );

Après la ligne HTML_content::TOC( $row );, insérez l’instruction suivante:

// displays Table of Contents
HTML_content::TOC( $row );

if ( ($params->get( 'intro_only' ) == 0) && ($params->get( 'popup' ) == 0) && ((strlen($row->introtext) + strlen($row->fulltext)) > 1000) ) include ('/www/html/templates/votre_template/adsense.php');

// displays Item Text
echo ampReplace( $row->text );

Cette instruction vérifie que le contenu ne soit pas affiché à partir de la page d’accueil (frontpage) ou d’une section intro comme dans une page blogue, mais que la page est belle et bien un article complet.

On s’assure ensuite que la page complète n’est pas une page en mode pop-up pour les fonctions d’impression (print) ou de création de document PDF.

On vérifie aussi que l’article contient assez de texte pour afficher une pub Adsense, selon les règlements de Google Adsense (et ne pas paraître trop spammy). On ne voudrait pas afficher une publicité dans une page qui ne contient qu’une observation de quelques lignes, comme une nouvelle brève, par exemple. J’utilise le nombre de 1000 caractères, mais vous pouvez l’ajuster selon vos besoins.

Finalement, après avoir passé tous ces tests, on inclut le fichier qui contient le code Adsense. Dans cette instruction, je vais la chercher dans le dossier de mon template du site, mais vous pouvez le mettre ou vous voulez. Prenez soin de changer le chemin (path) du répertoire local pour celui de votre compte web. Cette pub sera affichée après le titre et avant l’article. Pour en ajouter une après l’article, il suffit d’ajouter le même code après la ligne echo ampReplace( $row->text );.

Envoyez le fichier content.html.php sur votre site pour le mettre à jour, ainsi que le nouveau fichier qui contient votre code Adsense et le tour est joué! Pour désactiver l’affichage de la pub, il suffit de commenter la ligne de code et de mettre à jour le fichier sur votre site, comme suit:

// displays Table of Contents
HTML_content::TOC( $row );

//if ( ($params->get( 'intro_only' ) == 0) && ($params->get( 'popup' ) == 0) && ((strlen($row->introtext) + strlen($row->fulltext)) > 1000) ) include ('/home/www/html/templates/votre_template/adsense.php');


// displays Item Text
echo ampReplace( $row->text );

Ce n’est pas une solution particulièrement élégante pour les débutants et un module pourrait être plus facile à gérer pour ceux-ci, mais pour les webmasters plus avancés et expérimentés, le processus est simple et le résultat efficace.

Note: si plusieurs auteurs contribuent au site, on peut utiliser des fichiers différents contenant les pubs adsense pour chacun avec la variable $row->created_by. Créez les fichiers dont le nom incluent le numéro d’identification de l’utilisateur (par exemple: adsense14.php pour l’usager 14) et changez la ligne comme suit:

include ('/home/www/html/templates/votre_template/adsense' . $row->created_by . '.php');

Qui fera donc appel au fichier: /home/www/html/templates/votre_template/adsense14.php

Ajout à l’article

Je me suis retrouvé dans une situation où on voulait mettre la pub Adsense après le texte (en plus de celle située entre le titre et le début de l’article), mais Joomla contenait aussi un module de commentaires pour les usagers et la publicité finissait par se trouver après les commentaires, et non directement après l’article, si on ajoutait une commande php include après la ligne suivante:

// displays Item Text
echo ampReplace( $row->text );

On peut donc utiliser la majorité du code décrit ci-haut, mais avec quelques modifications. Cette fois, au lieu de simplement afficher la publicité Adsense avec un include alors que Joomla génère le contenu, il nous faudra en fait l’ajouter dans la variable $row->text qui contient l’article avant que Joomla n’y ajoute les commentaires des usagers (ou tout autre ajout provenant de modules divers). Dans cet exemple, on insérera donc une publicité Adsense avant l’article et une autre à la fin de celle-ci. À la ligne 430, nous trouvons le début de la fonction show().

function show( &$row, &$params, &$access, $page=0 ) {
	global $mainframe, $hide_js;
	global $mosConfig_live_site;
	global $_MAMBOTS;
	
	if ( ($params->get( 'intro_only' ) == 0) && ($params->get( 'popup' ) == 0) && ((strlen($row->introtext) + strlen($row->fulltext)) > 1000) ) $row->text = file_get_contents('/home/www/html/templates/votre_template/adsense_haut.php') . $row->text . file_get_contents('/home/www/html/templates/votre_template/adsense_bas.php');

Après l’énumération des variable globales, ajoutons le morceau de code suivant à la ligne 435 afin d’insérer le code Adsense dans la variable qui contient l’article, mais cette fois, au lieu d’utiliser include, nous devons utiliser la commande PHP file_get_contents(), parce que include affiche directement le contenu du fichier externe à l’écran, alors que nous voulons en fait juste l’insérer dans la variable sans un affichage instantanée.

2 thoughts on “Insérer de la publicité Google Adsense dans Joomla 1.0

  1. J’ai essayé de suivre votre démo mais ça ne marche pas ! j’ai dû oublier un truc ou ma version est trop vieille.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *