Ainsi, je viens d’ajouter récemment le SDK Javascript de Facebook à mon site pour pouvoir activer un bouton "J'aime" sur mes pages.
Facebook recommande d’ajouter cela juste après l’ouverture <body>
tag. La seule chose que je pouvais trouver pour faire cela était de modifier le index.php
fichier de mon modèle.
Le danger ici est que mon code sera effacé si le modèle est mis à jour. Ce n'est pas une grosse affaire, mais il serait beaucoup plus facile de le faire correctement pour le futur.
Alors, quelle est la meilleure façon de faire cela?
En complément de la réponse de @ veritas399, vous pouvez également utiliser une extension tierce telle que EasyScript ou similaire pour insérer le code dans votre page Web sans vous soucier des modèles futurs ou des mises à jour écrasant votre code.
Facebook peut recommander l'ajout de ce droit après l'ouverture <body>
tag mais (ce n'est peut-être pas le meilleur conseil du point de vue de la performance) et n'est probablement pas essentiel.
Si vous ne voulez pas éditer le index.php
fichier, alors je vous conseillerais d’utiliser un plugin et d’utiliser JApplication
pour obtenir et définir le corps.
Vous pouvez ensuite utiliser les éléments suivants dans votre plugin:
public function onAfterRender()
{
$app = JFactory::getApplication();
if ($app->isSite())
{
$buffer = $app->getBody();
$insert = '<div>YOUR HTML CODE TO INSERT</div>';
$buffer = preg_replace('/<body[^>]+>\K/i', $insert, $buffer);
// Use the replaced HTML body.
$app->setBody($buffer);
}
}
L'expression régulière trouve la balise d'ouverture body
et tous les attributs que vous pouvez avoir à l'intérieur, puis "oublie la chaîne correspondante" avec le \K
métachatactère de sorte que le $insert
texte est ajouté immédiatement après la balise body d’ouverture (aucun texte ne sera supprimé).
Votre modèle est-il basé sur l'un des frameworks populaires? (Gantry 5 de RocketTheme, Warp de YooTheme, T3 de JoomlaArt, etc.) Si tel est le cas, ce fournisseur de structure devrait avoir documenté comment et où effectuer les modifications qui survivront aux mises à niveau. Par exemple, on peut ajouter code personnalisé aux modèles de Gantry 5 dans les balises head et body du panneau d'administration.
Pour ajouter à la réponse de @Neil Robertson - il y a des tonnes de plugins/extensions qui implémentent Facebook aiment/partagent et autres Intégrations de sites sociaux - ce qui pourrait constituer une meilleure alternative, dans la mesure où votre exigence actuelle consiste simplement à ajouter des boutons similaires à FB .
Jetez un coup d'œil à JED:
En outre, certains modèles offrent de telles fonctionnalités et tout ce que vous avez à faire est d’ajouter votre propre ID d’application FB. Assurez-vous donc que votre modèle contient des informations sur cette possibilité.
Ou, alternativement, au lieu d'installer un tas de choses, vous pouvez le placer où vous le souhaitez, puis cliquer avec le bouton droit de la souris et tout sélectionner, le copier et le coller dans un fichier wordpad, enregistrez-le et nommez-le SITE-index-php, puis juste copier ce fichier à tout moment il y a une mise à jour. Prend comme 1 minute et rien d’autre à installer ou déconner.
Le modèle serait généralement l'endroit pour le faire. Vous pouvez ajouter le code à un fichier facebook.php séparé dans le répertoire de votre modèle et l’ajouter au fichier index.php via un php:
<body>
<?php include('facebook.php'); ?>
...