Boutons de Partage Facebook – Ce qu’il faut savoir

Fashiontribu, le site de Grandes marques à prix déstock partage via Facebook

Afin de faire connaître le contenu de vos pages web, certains sites de réseaux sociaux permettent le partage d’informations (articles, médias, pages). Facebook,  propose aux développeurs différents boutons de partage.
Dans cet article, nous n’en étudierons qu’un et verrons ce qu’il faut savoir afin qu’il fonctionne correctement (car le bouton Share Facebook n’est pas facile à mettre en place).
Partager via Facebook

<div style="float:left;padding:5px;">
      <a expr:share_url='data:post.url' name='fb_share' rel='nofollow' type='button_count'>Partager ceci</a>
      <script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'/></script>
</div>


Ce qu’il faut savoir :
Le bouton de partage Facebook fb_share, permet le partage de la page courante. L’url partagée doit obligatoirement contenir les paramètres (méthode GET) nécessaires s’il y en a.
Dans le cas d’une page dynamique, construite à partir de paramètres passés dans les variables de session (par exemple), l’url sera de type :

http://www.fashiontribu.com/products-new-r.php

Fashiontribu est un site de destockage de grandes marques de vêtements de mode et à petits prix. Le site posséde un puissant moteur de recherche en AJAX afin de trouver des produits qui nous corresponde le mieux.

 
Donc, le bouton de partage Facebook ne tiendra pas compte des éléments recherchés par la personne ayant partagé la page.

Partage Facebook avec paramètres

La solution c’est hélàs du bidouillage, mais au moins ça fonctionne!
Il s’agit, sur la page contenant le moteur de recherche, de créer un lien/bouton appelant une popup dont l’url comporte les variables nécessaires pour le partage. Ainsi, cette url sera de type :

 

http://www.fashiontribu.com/products-new-r.php?param1=valeur&param2=valeur&...


 
On appelle donc la popup de la façon suivante :

<?php
/*
* fonction javascript 'window.open()' :
* window.open(url, nom de la fenêtre, paramêtres)
*/
$sPermalinkParam = '&param1='.$_SESSION['param1'].'&'.'param2='.$_SESSION['param2'];
$sUrl = 'http://www.fashiontribu.com/share_fb.php?permalink=true'.$sPermalinkParam;
$sPopupName = 'Partagez votre recherche via Facebook';
$sParamPopup = 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhisto
ry=no, width=600, height=400, screenX=150, screenY=150, top=150, left=150';

echo '<a onClick="javascript:window.open(\''.$sUrl.'\', \''.$sPopupName.'\', \''.$sParamPopup.'\'); $return false;"'
     .' href="http://www.fashiontribu.com/share_fb.php?permalink=true'.$sPermalinkParam.'" alt="Partagez votre recherche 
via Facebook">';

echo '<img src="/images/icons/facebook_icon.png" border="0" /> Share Facebook</a><br />';
?>


NB: Les paramètres (ex: param1 et param2) doivent être au préalable déjà saisis en Session pour pouvoir utiliser les variables de session $_SESSION[‘param1’] etc…

Voici le code de la popup :

<?php
// On appelle le fichier permettant l'utilisation des sessions
require('includes/application-top-r.php');

// la variable de session 'share' permet de savoir qu'il s'agit de la popup
$_SESSION['share'] = 'true';

// on récupère les paramètres et on les intégre dans l'url de redirection
$aPermalinkParam = '';
$i = 0;
foreach ($_GET as $key => $value) {
    if($i > 0) $aPermalinkParam .= '&';
    $aPermalinkParam .= $key.'='.$value;
    $i++;
}
// on ouvre l'url suivante, toujours dans la popup
header('Location: ./products-new-r.php?'.$aPermalinkParam);  
?>


On constate que l’url appelée est celle où se trouve le moteur de recherche. La seule différence est que maintenant nous avons les paramètres dans l’url ainsi que la variable de session $_SESSION[‘share’].
Dans le fichier products-new-r.php, on vérifie en début de code (juste après la balise BODY) si l’on se trouve où non dans la popup.

<?php
if($_SESSION['share'] != 'true') { ?>
   <!-- Contenu de la page hors popup -->
   <?php
} else { // $_SESSION['share'] == 'true' -> on se trouve dans la popup
   // on vide la variable de session 'share' pour permettre le bonne affichage de la page appelante par la suite
   unset($_SESSION['share']);
   ?>
   <!-- Bouton de partage Facebook - NE PAS MODIFIER -->
   <div style="float:left;padding:5px;">
       <a expr:share_url='data:post.url' name='fb_share' rel='nofollow' type='button_count'>Partager ceci</a>
       <script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'/></script>
   </div>
   <?php
}
?>


On a ajouté le fameux code du bouton Facebook Share présenté en début d’article, à la condition que la variable de session est $_SESSION[‘share’] == true.

On a donc le bouton Facebook Share qui bénéficie des paramètres.

J’espère que cet article vous aura été utile. N’hésitez pas à laisser des commentaires si vous avez des questions ou remarques à propos du code.
Merci de votre attention.

Publicités

PHP Pagination

Bonjour,

Voici un très bon exemple de pagination en provenance du site www.PHPeasystep.com

Exemple :

Exemple de pagination en PHP

Exemple de pagination en PHP

Il s’agit d’un script clair et commenté permettant un paramétrage facile pour que vous puissiez l’adapter au mieux à votre site internet.

Autre example de pagination.

PHP Format Date

Bonjour,

Connaître la date du jour en PHP est assez simple :

<?php
echo date('Y-m-d H:i:s');
// Affichera 2011-02-14 17:30:59
?>

NB: Dans date(‘Y-m-d H:i:s’) nous avons mis des « – » et des « : », mais ils auraient pu être remplacés par des espaces, un caractère (précédé du caractère « \ ».), etc…

<?php
echo date('H\h i\m s\s \l\e d/m/Y');
// Affichera 17h 30m 59s le 14/02/2011
?>

 

Par contre, ce qui va suivre n’est pas plus compliqué, mais il faut le savoir :

  • Connaitre la date du mois dernier en PHP :
<?php
echo date('Y-m-d H:i:s', strtotime('-1 month'));
// Affichera 2011-01-14 17:30:59
?>
  • Connaitre la date dans 3 jours en PHP :
<?php
echo date('Y-m-d H:i:s', strtotime('+3 days'));
// Affichera 2011-02-17 17:30:59
?>
  • Connaitre la date dans 1 semaine, 2 jours, 4 heures et 2 secondes :
<?php
echo date('Y-m-d H:i:s', strtotime('+1 week 2 days 4 hours 2 seconds'));
// Affichera 2011-02-26 21:31:01?>
  • Connaitre la date du prochain lundi en PHP :
<?php
echo date('Y-m-d H:i:s', strtotime('next Monday'));
// Affichera 2011-02-21 17:30:59
?>
  • Connaitre la date du vendredi précédent en PHP :
<?php
echo date('Y-m-d H:i:s', strtotime('last Friday'));
// Affichera 2011-02-11 17:30:59
?>

 

Potasser encore un peu :

Pour en savoir plus, consulter le manuel de référence sur la fonction date en PHP.