[plugin] MySocialButtons (twitter, facebook, google+1)

StéphaneStéphane Member, Former PluXml Project Manager
Plugin pour afficher les boutons sociaux Facebook, Twitter et Google+1 sur une même ligne

Plugin disponible ici

Pour afficher les boutons sociaux Facebook, Twitter et Google+

Dans les articles
Dans le fichier article.php de votre thème, ajoutez la ligne suivante à l'endroit où vous souhaitez afficher les boutons.
<?php eval($plxShow->callHook('MySocialButtons')) ?>
Dans les pages statiques
Dans le fichier static.php de votre thème, ajoutez la ligne suivante à l'endroit où vous souhaitez afficher les boutons.
<?php eval($plxShow->callHook('MySocialButtonsStatic')) ?>
Modification affichage des boutons
L'affichage des boutons peut être modifié, en personnalisant la classe .social-buttons en allant sur l'écran d'administration:

Paramètres > Plugins > menu "Plugins actifs" > plugin "MySocialButtons" > menu "Code css" > champ "Contenu fichier css site"

Exemple: pour aligner les boutons à droite, rajoutez le code suivant:
.social-buttons {
	text-align:right !important;
}
Cliquez sur le bouton "Sauvegarder le fichier" pour enregistrer les modifications.


Historique
=======
## Version 1.4.1 (06/11/2014) ##
[+] Chargement des fichiers javascript que si nécessaire (contribution Jormun)

## Version 1.4 (15/07/2014) ##
[+] Ajout du hook MySocialButtonsStatic pour afficher les boutons sociaux sur une page statique (contribution Etienne R)
[+] Utilisation du menu "Code css" du plugin pour définir les propriétés css de .social-buttons, au lieu d'être codé en dur dans le plugin
[+] Mise à jour de l'aide
BUG echo en trop lors de l'appel de $plxShow->artUrl()

## Version 1.3 (13/11/2012) ##
Validation html5 (contribution aruhuno)

## Version 1.2 (08/12/2011) ##
BUG Validation XHTML

## Version 1.1 (01/12/2011) ##
[+] Prise en compte de la langue par défaut de PluXml au niveau de Tweeter et Google+1
[+] Meilleur format des données envoyées sur tweeter
[+] Valdiation html5 du bouton google+1

## Version initiale 1.0 (30/11/2011) ##

Consultant PluXml

Ancien responsable du projet (2010 à 2018)

«1345

Réponses

  • Merci Stéphane, ça fonctionne très bien! :)
  • Coooooool , enfin le plugin des réseaux sociaux ^^
  • Est ce que ce plugin est compatible avec la version 5.1.3 ? J'ai l'impression que ce n'est pas le cas, mais je préfère demander :)
  • De nos jours, et même si je ne suis sur aucun réseau social, ce plugin est indispensable. Merci beaucoup. Faudrait vraiment centraliser tous les plugins.
  • Le seul bémol ;) (aie pas taper moi hein Stéphane ^^)
    Le plugin n'est pas valide Xhtml à cause des boutons qui ne le sont pas.

    Sinon il fonctionne bien mon ami.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Foloex a écrit:
    Est ce que ce plugin est compatible avec la version 5.1.3 ? J'ai l'impression que ce n'est pas le cas, mais je préfère demander :)
    Oui il l'est

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    bankai a écrit:
    Le seul bémol ;) (aie pas taper moi hein Stéphane ^^)
    Le plugin n'est pas valide Xhtml à cause des boutons qui ne le sont pas.

    Sinon il fonctionne bien mon ami.
    Là j'y peux rien. Si tout le monde pouvait respecter les standards...

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Sur du HTML5, ca passe presque... Bon il y a une erreur que j'ai réussi à corriger :

    Sur plxMySocialButtons.php à la ligne 72

    <g:plusone size="medium"></g:plusone>

    Remplacer par çà

    <div class="g-plusone"></div>

    J'ai une seconde erreur mais la je n'y arrive pas. Quand au XHTML Strict, là il y a plus d'erreurs qui sont du au script et comme le dit stephane on y peut rien.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Mise à jour en v1.1

    [+] Prise en compte de la langue par défaut de PluXml au niveau de Tweeter et Google+1
    [+] Meilleur format des données envoyées sur tweeter
    [+] Valdiation html5 du bouton google+1

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • SvenSven Member
    décembre 2011 modifié
    Bonjour
    j’ai une erreur de mon côté :
    <script type="text/javascript" src="https://apis.google.com/js/plusone.js">;

    {lang: '<br />
    <b>Fatal error</b>: Call to a member function defaultLang() on a non-object in <b>..\logbook\core\lib\class.plx.show.php(1511) : eval()'d code</b> on line <b>5</b><br />

    et là, une coquille :

    * Plugin plxMySocialButtons
    *
    * @version 1.1
    * @date 01/11/2011

    eh oui : le temps passe ; nous sommes en décembre…
  • StéphaneStéphane Member, Former PluXml Project Manager
    quelle version de PluXml as-tu ?
    pour la coquille j'ai vu ça trop tard :p mais je vais corriger la date

    edit: je viens de recontroler, je n'ai pas ton message d'erreur

    edit2: as-tu bien utilisé cette syntaxe pour ajouter l'appel du hook ?
    <?php eval($plxShow->callHook('MySocialButtons')) ?>
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Fait la mise à jour en 5.1.4 et le problème n’apparaît plus.

    Petite question : pour Twitter, pourquoi ne pas utiliser un raccourcisseur d'URL ?
  • Nos message se sont croisés Stéphane.
    J’ai fait la MAJ alors je vais avoir du mal à reproduire le problème. Désolé… peut-être un souci passager chez moi. (PS : je ne connais pas Pluxml, j’ai du passer 3/4 heures dessus seulement).
    Par contre j’aime beaucoup : le code me semble superbe ; c’est simple, rapide.
    Bravo les gars.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Sven a écrit:
    Fait la mise à jour en 5.1.4 et le problème n’apparaît plus.
    ha ça me rassure
    Sven a écrit:
    Petite question : pour Twitter, pourquoi ne pas utiliser un raccourcisseur d'URL ?
    pas pensé. faut que je trouve comment faire alors.
    si quelqu'un sait et peut me faire gagner du temps...

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Je mets ça dans ma liste des Todos pour demain Stéphane.
  • StéphaneStéphane Member, Former PluXml Project Manager

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • SvenSven Member
    décembre 2011 modifié
    Une piste ici : http://davidwalsh.name/bitly-php
    Une autre là : http://code18.blogspot.com/2010/09/utiliser-lapi-de-bitly-avec-php.html

    Sauf que je viens de tenter les 2 (pour l’utiliser en permalink d’abord) et que ça marche pas chez moi, en local, dans un hôte virtuel. Bizarre. Je regarderai demain…

    EDIT : Posts croisés encore. ;-)
  • StéphaneStéphane Member, Former PluXml Project Manager
    ce qui me gene avec bit.ly c'est qu'il faut avoir un compte chez eux pour avoir un login et une clé

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Oui : pour le plugin ce n’est pas ce qui a de plus simple.
    Autre inconvénient : l’extension ly appartient à la Lybie. La pérennité est loin d’être assurée.
    Le seul avantage ce sont les stats associées au compte, mais c’est marginal.

    Le réducteur de Google offre en effet tous les avantages : on peut l’utiliser sans s’inscrire et et on peut tout autant bénéficier des stats en enregistrant son compte Google auprès du service.

    Je repasse plus tard…
  • cfdevcfdev Member
    décembre 2011 modifié
    Ha un plugin officiel du mien :D chouette..http://forum.pluxml.org/viewtopic.php?id=2607
    Mais chez moi il ne fonctionne pas, il est bloquant normal ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    whitebird a écrit:
    Ha un plugin officiel du mien :D chouette..http://forum.pluxml.org/viewtopic.php?id=2607
    Mais chez moi il ne fonctionne pas, il est bloquant normal ?
    J'avais meme pas souvenir que le plugin existait déjà.
    Je l'avais fait pour mes besoins persos y a pas mal de temps, j'ai juste voulu le partager.

    Bloquant chez toi ?
    c'est à dire.
    As-tu l'appel du hook avec le eval (pour pluxml 5.1.4 uniquement)
    <?php eval($plxShow->callHook('MySocialButtons')) ?>
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • cfdevcfdev Member
    décembre 2011 modifié
    Stéphane a écrit:
    whitebird a écrit:
    Ha un plugin officiel du mien :D chouette..http://forum.pluxml.org/viewtopic.php?id=2607
    Mais chez moi il ne fonctionne pas, il est bloquant normal ?
    J'avais meme pas souvenir que le plugin existait déjà.
    Je l'avais fait pour mes besoins persos y a pas mal de temps, j'ai juste voulu le partager.

    Bloquant chez toi ?
    c'est à dire.
    As-tu l'appel du hook avec le eval (pour pluxml 5.1.4 uniquement)
    <?php eval($plxShow->callHook('MySocialButtons')) ?>
    
    Oui en fait j'ai vu que mon plugin ne fonctionnait plus dans la version 5.1.4 du a cet appel qui a changé...
    Je fait bien ça dans mon thème...mais le reste de la page ne s'affiche pas, je vais refaire quelques essais pour voir
  • SvenSven Member
    décembre 2011 modifié
    Bon. En ce qui concerne le plugin, pas de problème avec la V 5.1.4.
    J’ai tenté ce code pour le raccourcissement d’URL qui devrait générer un permalien (dans article.php):
    <?php									
    function make_googl_url($url)
    {
        $parse_url = parse_url($url);
        if( empty($parse_url['scheme']) ) return FALSE;
        
        $content = http_build_query(array('url' => $url));
        $headers  = 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
        $headers .= 'Content-Length: ' . strlen($content);
        
        $opts = array(
            'http'=>array(
                'method'        => 'POST',
                'header'        => $headers,
                'content'       => $content,
                'timeout'       => 1,
                'max_redirects' => 1,
            )
        );
        $context = stream_context_create($opts);
    
        @file_get_contents('http://goo.gl/api/shorten', false, $context);
        
        foreach ($http_response_header as $header_response) {
            if (stripos($header_response, 'Location:') === 0) {
                return preg_replace('`Location:[\s]*`i', '', $header_response);
            }
        }
        
        return false;
    }
     ?>
    <?php
    $url = "http://monsite.moi/";
    $url = make_googl_url($url);
    echo '<span><a href="'.$url.'">∞</a>';
    echo '</span>';
    ?>
    
    que faudrait-il ajouter à la variable $url pour que l’URL soit prise en compte ?
  • SvenSven Member
    décembre 2011 modifié
    … et pour Twitter, ceci :

    EDIT : ah non, ça bug…
    Je repasse plus tard…
  • Personnellement j'ai toujours une erreur a niveau de validation en HTML5. Cela concerne cette partie :

    script type="text/javascript" src="https://apis.google.com/js/plusone.js">;
    {lang: '<?php echo "<?php \$plxShow->defaultLang() ?>"?>'}
    </script>

    Message d'erreur W3C :

    The text content of element script was not in the required format: Expected space, tab, newline, or slash but found { instead.
    </script>
    Syntax of script documentation:
    Zero or more code comments, each of which is either a single-line comment starting with "//" or a multi-line comment starting with "/*" and ending with "*/". The content must also meet the constraints of the script microsyntax. For further details, see Inline documentation for external scripts.

    Il y a deux solutions : soit en enlève la langue (et çà règle le problème, mais Google+ est en anglais), soit on utilise ceci :

    <script>
    (function() {
    var gp = document.createElement('script');
    gp.type = 'text/javascript';
    gp.async = true;
    gp.src = 'https://apis.google.com/js/plusone.js';
    gp.textContent = "{lang: 'fr'}";
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gp, s);
    })();
    </script>

    Ce script a été trouvé ici : http://desgeeksetdeslettres.com/blog/programmation-java/google-1-chargement-asynchrone-validation-w3c

    Pour cette seconde solution, çà fait pas mal de code, et je pense pas que se soit très propre. Je ne suis pas expert en javascript, qu'en pensez-vous?
  • À Stéphane,

    Dans le fichier plxMySocialButtons.php à la ligne (47) :

    <script src="http://connect.facebook.net/fr_FR/all.js#xfbml=1"></script>;

    Il manque l'attribut type="text/javascript" pour que ça passe la validation au W3C...

    Comme ceci :

    <script type="text/javascript" src="http://connect.facebook.net/fr_FR/all.js#xfbml=1"></script>;

    Bye! Den
  • StéphaneStéphane Member, Former PluXml Project Manager
    Ha super Den
    Merci beaucoup, je vais faire la modif

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    version 1.2 dispo

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Stéphane a écrit:
    Ha super Den
    Merci beaucoup, je vais faire la modif
    Re,

    De rien, je suis peut-être nul en plugin... :(

    Mais bon en programmation Web... :)

    P.-S. J'ai commencé à étudier pour les plugins... ;)
  • Hello,

    Y'aurait pas moyen de pouvoir l'utiliser aussi sur les pages static ? ;)

    @+
Connectez-vous ou Inscrivez-vous pour répondre.