mercredi 27 avril 2011

optimiser admanager pour le referencement joomla

les sites basés sur le CMS joomla, utilisent des composants très utiles comme ce qui nous intéresse dans cet article "adsmanager".
j'ai remarqué après un certain temps que google ne référence pas mes pages web qui contiennent les détails des annonces.
le problème a mon avis est que toute les pages dans joomla ont les mêmes balises description et title et encors keywords; si vous rencontrez le même problème que moi, je vais dans cet article vous donner la solution pour optimiser votre référencement de adsmanager dans les moteurs de recherches, pas a pas.
avant de commencer vous aurez besoin de modifier le fichier suivant:
/libraries/joomla/html/renderer/header.php

vous remarque que pour modifier les balises description et title il faut aller au fichier html globale qui contient le les balses:
<head>


<title>votre titre</title>

<meta name="description" content="la description de votre page">

</head>

Or dans joomla le fichier qui contient ces information ce trouve dans:
templates/Votre template/index.php

mais vous n'allez pas les trouver, parcontre vous trouverez ça a la place, la ou réside tout le secret:


cette balise est spécifique a joomla et elle fait référence à :/libraries/joomla/html/renderer/header.php alors maintenant il faut mettre la main a la patte:

avant toutes modification vous remarquer que le code contient ces lignes:

$strHtml .= $tab.''.htmlspecialchars($document->getTitle()).''.$lnEnd;

$strHtml .= $tab.''.$lnEnd;

ça c'est dans le cas ordinaire ou joomla doit poser la description et le titre prèsconfigurés.

pour faire la modification rappeler vous que la modification des deux balises va etre effectué que sur les pages qui contiennent les détails des annonces, alors evidemment il faut poser une condition, cette condition y a pas 36 solution elle doit être sur les variables dans l'url de la page qui sont: $_GET['page'] et $_GET['adid'] parceque l'url de la page détail des annonce est sous cette forme:
index.php/component/adsmanager/?page=show_ad&adid=255&catid=1

1-la condition de la présance de ces url qui est:
if((isset ($_GET['page']))&&(isset ($_GET['adid'])))
2-que page=show_ad
if((isset ($_GET['page']))&&(isset ($_GET['adid']))&&($_GET['page']=='show_ad'))

maintenant une foi la condition posé, il faut extraire tout simplement le titre et la description ou le détail de l'annonce de la base de donnée, et les écrire dans les balise title et description respectivement.

il faut remplacer:

$strHtml .= $tab.''.htmlspecialchars($document->getTitle()).''.$lnEnd;

par:

if((isset ($_GET['page']))&&(isset ($_GET['adid']))&&($_GET['page']=='show_ad')){

$adidd=$_GET['adid'];



mysql_select_db("votre _base_de_données");

$reponse = mysql_query("SELECT ad_headline FROM jos_adsmanager_ads WHERE id='$adidd'");

$donnees = mysql_fetch_array($reponse);



$strHtml .= $tab.'<title>'.$donnees['ad_headline'].'</title>'.$lnEnd;

}else{



$strHtml .= $tab.'<title>'.htmlspecialchars($document->getTitle()).'</title>'.$lnEnd;}

et remplacer:

$strHtml .= $tab.''.$lnEnd;

par:

if((isset ($_GET['page']))&&(isset ($_GET['adid']))&&($_GET['page']=='show_ad')){

$adidd=$_GET['adid'];

mysql_select_db("votre _base_de_données");

$reponse = mysql_query("SELECT ad_text FROM jos_adsmanager_ads WHERE id='$adidd'");

$donnees = mysql_fetch_array($reponse);





$strHtml .= $tab.'<meta name="description" content="'.$donnees['ad_text'].'" />'.$lnEnd;





}else{

$strHtml .= $tab.'<meta name="description" content="'.$document->getDescription().'" />'.$lnEnd;

}

bonne chance!