PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#26 07/12/2011 19:27:02

Jos
Pluxml Staff
Lieu : Région de Grenoble
Inscription : 04/11/2011
Messages : 1 128
Site Web

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

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/pr … dation-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?

Hors ligne

#27 08/12/2011 15:27:38

Den
Membre
Lieu : Québec
Inscription : 22/10/2009
Messages : 393
Site Web

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

À 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

Hors ligne

#28 08/12/2011 15:30:00

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

Ha super Den
Merci beaucoup, je vais faire la modif


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#29 08/12/2011 15:37:13

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

version 1.2 dispo


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#30 08/12/2011 15:44:27

Den
Membre
Lieu : Québec
Inscription : 22/10/2009
Messages : 393
Site Web

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

Stéphane a écrit :

Ha super Den
Merci beaucoup, je vais faire la modif

Re,

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

Mais bon en programmation Web... smile

P.-S. J'ai commencé à étudier pour les plugins... wink

Hors ligne

#31 16/01/2012 13:06:38

orx57
Membre
Lieu : Florange, 57
Inscription : 13/11/2009
Messages : 36
Site Web

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

Hello,

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

@+

Hors ligne

#32 16/01/2012 13:16:56

Jos
Pluxml Staff
Lieu : Région de Grenoble
Inscription : 04/11/2011
Messages : 1 128
Site Web

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

A la rigueur tu peu récupérer le code html des boutons, et les coller dans static.php à l'endroit ou tu souhaite qu'ils apparaissent.

Hors ligne

#33 19/01/2012 12:00:33

Sven
Membre
Lieu : en Normandie
Inscription : 01/12/2011
Messages : 22
Site Web

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

1 mois + tard je reprends mon code… (permalien et raccourcissement de l’URL, par contre je n’utilise plus le plugin)
et ça marche : http://goo.gl/t84Tr

Les instructions sont dans le billet vers lequel pointe l’URL au-dessus.

Dernière modification par Sven (19/01/2012 12:03:26)

Hors ligne

#34 08/02/2012 17:16:37

chilperik
Membre
Inscription : 23/12/2009
Messages : 53
Site Web

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

Je viens de faire l'install sur pluxml 5.1.2 et j'ai une belle page blanche au lieu de mon blog ! ^^

Obligé de désactiver le plugin pour revenir a la normale, j'ai vu que c’était compatible 5.1.3 mais pour des raisons pratique je n'ai pas fait la mise a jour, c'est surement du a ça...


Mon blog sous pluxml : www.chilperik.fr

Hors ligne

#35 01/05/2012 11:35:30

bg62
Membre
Inscription : 18/05/2007
Messages : 1 782
Site Web

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

pour la dernière version : GG+, ok   twitter,ok mais facebook n'apparait pas !!!
code :
<div class="art-chapo"><?php eval($plxShow->callHook('MySocialButtons')) ?><?php $plxShow->artContent(); ?>
dans article.php
il y a eu des changements depuis ou autre chose à modifier ?


le 'www' est fait pour communiquer et échanger, non ?
fonds d'écran   | référencement efficace | Portfolio | Fonds d'écran automobile | outils SEO | échange de liens en dur

Hors ligne

#36 24/10/2012 18:52:16

aruhuno
Membre
Lieu : Claye-Souilly (77)
Inscription : 13/07/2011
Messages : 258
Site Web

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

Bon alors comme je le faisais remarquer, le plugin n'est pas compatible W3C.
J'ai donc modifier le code de sorte à ce qu'il soit W3C !


Le code à mettre dans plxMySocialButtons.php ici : http://pastebin.fr/25727
Et voici ce que ça donne :
1351097319.png


Bon c'est merveilleux, mais en fait, c'est compatible et valable uniquement avec du HTML5 ! D'ailleurs, le warning qu'on à avec le W3C c'est parce que le validateur HTML5 est expérimental.


En gros, dans le header faut remplacer :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php $plxShow->defaultLang() ?>" lang="<?php $plxShow->defaultLang() ?>">

Par :

<!DOCTYPE html>
<html lang="<?php $plxShow->defaultLang() ?>">

En espérant que ma modif. fasse partie intégrante de la prochaine version du plugin (attention je ne gère que le français !).

Dernière modification par aruhuno (24/10/2012 19:11:29)


"Parce que la connaissance appartient à tout le monde...", Inios.

Hors ligne

#37 14/11/2012 10:41:17

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

## Version 1.3 (13/11/2012) ##

Validation html5 (contribution aruhuno)


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#38 18/11/2012 23:36:36

aruhuno
Membre
Lieu : Claye-Souilly (77)
Inscription : 13/07/2011
Messages : 258
Site Web

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

Merci beaucoup Stéphane pour cette mise à jour !


"Parce que la connaissance appartient à tout le monde...", Inios.

Hors ligne

#39 16/01/2013 04:47:44

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

Salut !
Bon d'abord le plugin est super big_smile
Ensuite j'ai quelques remarques concernant le bouton "tweeter" et peut être des améliorations.


Mon premier point concerne le MyTwitterID.
Quand on clique dessus ça envoie pré-écrit un tweet de la forme : balise meta description de l'article - le titre du blog URL-DE-L-ARTICLE @MyTwitterID


Je suis allé jeter un oeil dans le fichier plxMySocialButtons.php du plugin. Plus précisément dans le la partie qui concerne la méthode "Méthode qui affiche les boutons sociaux".


Intéressons nous à la ligne qui correspond à twitter que voici:

  <div><a href="https://twitter.com/share" class="twitter-share-button" data-via="LeShadowBlog" data-url="<?php echo  "<?php echo \$plxShow->artUrl() ?>" ?>" data-lang="fr" data-count="none">Tweeter</a></div>

Comme vous pouvez le voir j'ai changé le data-via qui est par défaut à MyTwitterID à "LeShadowBlog". Ce serait cool de pouvoir le configurer via le panneau de configuration big_smile


Mon deuxième point concerne l'URL de l'article.
Vous savez tous très bien qu'un tweet est limité à 140 caractères. Or le lien de l'article en question peut prendre énormément de place.
De ce fait beaucoup de service dit d'URL shortner qui permettent de raccourcir l'URL existent. Exemple tinyurl.com ou encore goo.gl.


Ces derniers proposent des API qui permettent de le faire assez facilement.


J'ai pensé à intégré le service de tinyurl dans le fichier plxMySocialButtons.php


Voila comment ce que j'ai ajouté pour l'instant :

<?php
function createTinyUrl($strURL) {
    $tinyurl = file_get_contents("http://tinyurl.com/api-create.php?url=".$strURL);
    return $tinyurl;
}
?>

Mon but étant de remplacer l'URL du blog par celle générée par cette fonction. J'ai donc remplacé le <?php echo \$plxShow->artUrl() ?> par un echo( createTinyUrl($plxShow->artUrl()) )
Mais ça me renvoie une belle erreur une fois que j'appuie sur le bouton tweeter big_smile

sachant que si je fais un test comme celui ci ça marche :

data-url="<?php echo "<?php echo(file_get_contents('http://tinyurl.com/api-create.php?url=http://shadowblog.fr')) ?>" ?>"

Auriez vous une idée de ce qui pose ce problème ?


Une autre idée que l'on pourrait ajouter à ce plugin dans le panel configuration est de proposer plusieurs services qui permettent de raccourcir les URL (celui de goo.gl ou de tinyurl par exemple) l'utilsateur pourrait ainsi en choisir l'un d'entre eux (ce qui ferait appel à la fonction qui permet de faire la transformation) ou ne pas les activer.


Si jamais j'ai du temps je pourrais éventuellement plonger dedans. Ca me permettera de mieux comprendre le fonctionnement de des plugins et plus généralement de pluxml.
Merci.

Dernière modification par Yacine (16/01/2013 10:35:36)

Hors ligne

#40 16/01/2013 10:02:41

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

Bonjour Yacine
Tes propositions sont excellentes. Je suis à 100% pour intégrer le raccourci d'url.
Sais-tu comment appeler l'api de goo.gl ou d'autres services...
Je ferais les modifs du plugin quand j'aurais toutes les infos


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#41 16/01/2013 10:30:58

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

Concernant goo.gl voici le lien pour les développeurs qui explique absolument tout : https://developers.google.com/url-shortener/


L'utilisation de l'API de Google est un peu moins simple parce qu'il faut utiliser une clé d'authenfication. Il faut donc au préalable s'inscrire sur leur site afin de la demander. Puis l'utiliser à chaque demande. (Ca ressemble un peu à la clé d'authentification du plugin myAkismet). De plus, le retour de l'utilisation de leur API est au format JSON. Il faut donc traiter les données reçues pour en extraire l'URL raccourcis.


Donc je pense qu'il vaut mieux commencer par un service simple comme celui de tinyurl.com. Mais étant donné que j'ai déjà dépoussiéré pas mal du côté de goo.gl. Voici ce que j'ai fait:

<?php
    define('GOOGLE_API_KEY', '[Clé à insérer ici]');
    define('GOOGLE_ENDPOINT', '[url]https://www.googleapis.com/urlshortener/v1[/url]');
 
    function shortenUrlGoogle($longUrl)
    {
        // Initialise la connexion cURL 
        $ch = curl_init(
            sprintf('%s/url?key=%s', GOOGLE_ENDPOINT, GOOGLE_API_KEY)
        );
 
        // Demande à cURL de nous retourner les données
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
        // Les données sons transformées en JSON afin que l'API puisse les comprendre et les lire.
        $requestData = array(
            'longUrl' => $longUrl
        );
 
        // La requête est changé en type POST
        curl_setopt($ch, CURLOPT_POST, true);
 
        // Adaptation du contenu au format JSON 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
 
        // Le post est encodé en JSON
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
 
        // Execute la requête
        $result = curl_exec($ch);
        curl_close($ch);
 
        // decode Décode et renvoie la réponse de JSON 
        return json_decode($result, true);
    }
 
    $response = shortenUrl('http://shadowblog.fr');
 
    echo sprintf(
        '%s was shortened to %s',
        $response['longUrl'],
        $response['id']
    );
?>

Bon alors j'ai bien commenté pour que le code soit assez compréhensible. Je pense donc que l'on pourrait rajouter une fonction par service. Et selon le service que l'utilisateur veut et qu'il choisira dans le panel configuration du plugin on fait appel à la fonction du service voulu, sachant qu'elles retourneront toute l'URL raccourcis en output et qu'elles prendront l'URL longue en input.

Dernière modification par Yacine (16/01/2013 10:35:58)

Hors ligne

#42 16/01/2013 10:48:26

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

En ce qui concerne la création de la clé pour l'utilisation de l'API de goo.gl voici les étapes à suivre :


Il faut aller sur ce site : https://code.google.com/apis/console


Entrer dans la console, puis créer un nouveau projet. Qui porte par exemple le nom de votre blog. Se rendre sur le menu "Services" et activer l'API qui porte le nom "URL Shortener API". C'est vers le bas de la liste.


Enfin clicker sur le menu "API Access". La clé devrait simplement apparraitre dans un encadré. A droite de "API key".


C'est cette clé qu'il faudra renseigner lors de l'utilisation de la fonction que j'ai mentionné plus haut.

Hors ligne

#43 16/01/2013 15:54:33

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

en regardant l'appel des api google et tinyurl, le raccourci d'url ne fonctionnera pas chez tout le monde car ça utilises l'extension curl (pour google) qui n'est pas active chez tous les hébergeurs et file_get_contents vers une url (pour tinyurl) qui est interdit également chez certains hébergeurs pour des raisons de sécurité.
faut juste le savoir.


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#44 16/01/2013 16:33:12

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

Ah! Merci pour ces précisions.

De toute façons je n'arrive toujours pas à faire fonctionner tinyurl. Qui est le seul que j'ai testé pour l'instant.

Quand j'essaie ça :

echo(file_get_contents('http://tinyurl.com/api-create.php?url=http://shadowblog.fr'))

ça marche ! Mais pas ça :

echo(file_get_contents('http://tinyurl.com/api-create.php?url='.$plxShow->artUrl()))

En gros, c'est le $plxShow->artUrl() qui me pose problème. Quelqu'un aurait une idée du problème ? Je ne suis pas encore très à laise avec les plxShow.

Hors ligne

#45 16/01/2013 17:40:37

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

oui c'est normal que cela ne fonctionne pas
si tu regardes dans le fichier core/lib/class.plx.show.php la fonction artUrl, tu verras qu'il y a un echo.
or toi il te faudrait une fonction qui fait un return, pour concaténer la valeur dans la chaine de caractères qui va te servir pour appeler l'api de tinyurl

en gros dans ton code il faut y aller par étape (je te donne le code en direct live sans tester)

$id = intval($plxShow->plxMotor->plxRecord_arts->f('numero'));
$url = $plxShow->plxMotor->plxRecord_arts->f('url');
$url = $plxShow->plxMotor->urlRewrite('?article'.$id.'/'.$url);
echo(file_get_contents('http://tinyurl.com/api-create.php?url='.$url))

Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#46 17/01/2013 01:23:49

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

Merci Stéphane!
Malheureusement, je n'arrive pas trop à faire marcher ton code.
le numéro ou l'url sont ils des paramètres que je dois ajouter ?

Hors ligne

#47 17/01/2013 09:32:26

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

dans le fichier plxMySocialButtons.php, essaye en remplaçant la fonction MySocialButtons par celle-ci


    public function MySocialButtons() {?>
	
		$plxMotor = plxMotor::getInstance();
	
		$id = intval($plxMotor->plxRecord_arts->f('numero'));
		$url = $plxMotor->plxRecord_arts->f('url');
		$url = $plxMotor->urlRewrite('?article'.$id.'/'.$url);
		$url = file_get_contents('http://tinyurl.com/api-create.php?url='.$url);
		
		?>
		<div class="social-buttons">
			<div id="fb-root"></div>
			<div><div class="g-plus" data-action="share" data-annotation="none" data-href="<?php echo $url ?>"></div></div>
			<div><a href="https://twitter.com/share" class="twitter-share-button" data-url="<?php echo $url ?>" data-lang="fr" data-count="none">Tweeter</a></div>
			<div class="fb-like" data-href="<?php echo $url ?>" data-send="false" data-layout="button_count" data-width="20" data-show-faces="false"></div>
		</div>
		<?php
	}

Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#48 17/01/2013 11:02:51

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

Super! Ça marche du tonnerre !


J'avais fait la même chose mais j'avais tout bonnement oublié d'instancier l'objet plxMotor.
J'ai d'ailleurs une question. Avons-nous exactement les mêmes méthodes pour plxMotor et plxShow ? Auquel cas nous pourrions faire plxMotor-> artUrl() ? Sans passer par la recomposition de l'url de l'article à partir de son id et de son nom ?

Hors ligne

#49 17/01/2013 11:37:01

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 203
Site Web

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

Non. Le rôle de plxShow et plxMotor n'est pas le meme. on ne retrouve pas les mêmes fonctions


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#50 17/01/2013 11:54:28

Yacine
Membre
Lieu : Paris
Inscription : 03/01/2013
Messages : 55
Site Web

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

Bon à force de regarder dans les entrailles de PluXml j'en perds en productivité au travail big_smile

Merci pour ton aide en tout cas Stéphane!

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2017 PluXml.org, tous droits réservés