1
7

Partage sur les réseaux sociaux

Vous pouvez choisir quelles pages sont partagées, sur quels réseaux sociaux et comment les boutons de partage sont affichés et où. L'implémentation ajoute précisément ce qui est nécessaire à une page comme les balises dans la section <head> du document qui sont lues par les moteur de recherche et le code JavaScript indispensable pour interfacer le serveur.

Configuration

Le type de boutons et le positionnement de la barre de partage d'une page sur les réseaux sociaux sont configurés par les paramètres $socializing et $socializingmode du fichier config.inc.

global $socializing, $socializingmode;

$socializing='either';  // false, 'inline', 'bar', 'either', 'both'
$socializingmode='standard';       // 'standard', 'lite', 'awesome'

Si $socializing vaut inline, la barre est affichée à la fin du contenu de la page.

Si $socializing vaut bar, la barre flotte à gauche de la page du site. Si la taille de l'affichage est trop petite, la barre est cachée.

Si $socializing vaut either, la barre flotte à gauche de la page du site. Elle est cachée dès que la taille de l'affichage est trop petite et remplacée par la barre à la fin du contenu de la page.

Si $socializing vaut both, la barre est toujours affichée dans la page du site mais elle flotte aussi à gauche de la page du site si l'affichage est assez large.

Si $socializing vaut false, la barre n'est pas affichée.

Si $socializingmode vaut standard, la barre affiche les boutons complets générés par les services correpondants. IMPORTANT : Dans ce mode, le code JavaScript des différents fournisseurs est chargé à la demande par le navigateur et les boutons apparaissent progressivement. Le temps d'affichage est plus long. Certains modules de protection des navigateurs peuvent bloquer le JavaScript et masquer les boutons.

Avec $socializing à bar ou à either ou both si l'affichage est assez large :

Avec $socializing à inline ou à either ou both si l'affichage est assez large :

Les boutons passent automatiquement à la ligne si nécessaire :

NOTE : iZend Bootstrap montre toujours les boutons de partage dans la page, i.e. inline, et $socializing ne peut avoir que les valeurs true ou false.

Si $socializingmode vaut lite ou awesome, la barre affiche des boutons qui appellent l'interface du service correspondant via une URL. Dans ce mode, aucun code JavaScript n'est téléchargé et exécuté par le navigateur. L'affichage est donc plus rapide mais aucun compteur n'est disponible. Si $socializingmode vaut lite, le code affiche des icônes dans les boutons. Si $socializingmode vaut awesome, le code utilise une police de caractères pour dessiner les logos des services.

Pour utiliser un autre jeu d'iĉones, remplacez le fichier social.png dans le dossier images/theme et éditez le CSS des balises #socialbar et #sharebar dans theme.css.

IMPORTANT : Quand $socializingmode vaut awesome, assurez-vous que le fichier CSS de Font Awesome est chargé par le navigateur en éditant la vue head.phtml :

<?php if (false): ?>
<?php require_once 'ishttps.php'; ?>
<link rel="stylesheet" type="text/css" href="http<?php if (is_https()): ?>s<?php endif; ?>://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" media="screen" >
<?php endif; ?>

Vous pouvez copier le CSS de Font Awesome dans un dossier font-awesome dans le dossier css à la racine du site et modifier l'URL de la balise <link> dans head.phtml.

Édition
Options

Cochez les cases facebook twitter google+ linkedin pinit pour partager le nœud sur Facebook, Twitter, Google+, LinkedIn ou Pinterest.

Une option pour nœud est activée uniquement si la même option est cochée par le fil.

Options

NOTE : Les options sont les mêmes pour toutes les langues.

BD

La base de données enregistre les options pour les nœuds dans la table node.

CREATE TABLE `node` (
  `node_id` INT(10) UNSIGNED NOT NULL,
  `user_id` INT(10) UNSIGNED NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `visits` tinyint(1) NOT NULL DEFAULT '1',
  `nocomment` tinyint(1) NOT NULL DEFAULT '0',
  `nomorecomment` tinyint(1) NOT NULL DEFAULT '0',
  `novote` tinyint(1) NOT NULL DEFAULT '0',
  `nomorevote` tinyint(1) NOT NULL DEFAULT '0',
  `ilike` tinyint(1) NOT NULL DEFAULT '1',
  `tweet` tinyint(1) NOT NULL DEFAULT '1',
  `plusone` tinyint(1) NOT NULL DEFAULT '1',
  `linkedin` tinyint(1) NOT NULL DEFAULT '1',
  `pinit` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `node` ADD PRIMARY KEY (`node_id`);
ALTER TABLE `node` MODIFY `node_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;

Les options pour les fils sont dans la table thread.

CREATE TABLE `thread` (
  `thread_id` INT(10) UNSIGNED NOT NULL,
  `user_id` INT(10) UNSIGNED NOT NULL DEFAULT '1',
  `thread_type` enum('thread','folder','story','book','rss','newsletter') NOT NULL DEFAULT 'thread',
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `number` INT(4) UNSIGNED NOT NULL,
  `visits` tinyint(1) NOT NULL DEFAULT '1',
  `nosearch` tinyint(1) NOT NULL DEFAULT '0',
  `nocloud` tinyint(1) NOT NULL DEFAULT '0',
  `nocomment` tinyint(1) NOT NULL DEFAULT '0',
  `nomorecomment` tinyint(1) NOT NULL DEFAULT '0',
  `novote` tinyint(1) NOT NULL DEFAULT '0',
  `nomorevote` tinyint(1) NOT NULL DEFAULT '0',
  `ilike` tinyint(1) NOT NULL DEFAULT '1',
  `tweet` tinyint(1) NOT NULL DEFAULT '1',
  `plusone` tinyint(1) NOT NULL DEFAULT '1',
  `linkedin` tinyint(1) NOT NULL DEFAULT '1',
  `pinit` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `thread` ADD PRIMARY KEY (`thread_id`);
ALTER TABLE `thread` MODIFY `thread_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
Code

Le code en JavaScript est ajouté par la vue finale standard du dossier layouts dans la balise <head> pour Pinterest et au début de la balise <body> pour Facebook. Les vues ilike et pinit définissent les paramètres $pinteresetassets et $facebookjssdk. Le paramètre de configuration $facebookid est défini dans le fichier config.inc. Pour Tweeter, Google+ et LinkedIn, le code est téléchargé en ajoutant une balise <script> avec la fonction head directement dans les vues tweetit, plusone et linkedin.

standard.phtml

Le code pour Pinterest est inséré dans la section <head> :

  1. <?php global $pinteresetassets; ?>
  2. <?php if ($pinteresetassets): ?>
  3. <script type="text/javascript">
  4. (function(d){
  5.     var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT');
  6.     p.type = 'text/javascript';
  7.     p.async = true;
  8.     p.src = '//assets.pinterest.com/js/pinit.js';
  9.     f.parentNode.insertBefore(p, f);
  10. }(document));
  11. </script>
  12. <?php endif; ?>

Le code pour Facebook est inséré au début de la section <body> :

  1. <?php global $facebookjssdk; ?>
  2. <?php if ($facebookjssdk): ?>
  3. <?php global $facebookid; ?>
  4. <div id="fb-root"></div>
  5. <script type="text/javascript">
  6. window.fbAsyncInit = function() {
  7.     FB.init({
  8. <?php if ($facebookid): ?>
  9.         appId:  '<?php echo $facebookid; ?>',
  10. <?php endif; ?>
  11.         xfbml:  true,
  12.         status: false,
  13.     });
  14. };
  15. (function(d, s, id) {
  16.     var js, fjs = d.getElementsByTagName(s)[0];
  17.     if (d.getElementById(id)) {return;}
  18.     js = d.createElement(s); js.id = id;
  19.     js.src = "//connect.facebook.net/<?php echo $facebookjssdk; ?>/all.js";
  20.     fjs.parentNode.insertBefore(js, fjs);
  21. }(document, 'script', 'facebook-jssdk'));
  22. </script>
  23. <?php endif; ?>
Vues
facebook ilike.phtml
twitter tweetit.phtml
google+ plusone.phtml
linkedin linkedin.phtml
pinit pinit.phtml

Commentaires

Pour ajouter un commentaire, cliquez ici.