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.
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...
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 ?
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 :
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() ?>">
Salut !
Bon d'abord le plugin est super
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:
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
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
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
sachant que si je fais un test comme celui ci ça marche :
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.
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
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
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.
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.
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.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
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.
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)
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 ?
Bonjour,
Je repasse sur le sujet avec une demande en forme de UP pour le sujet des URL raccourcis Existe il maintenant une solution viable et "officielle" ?
Autre souci avec le plugin, le bouton twetter chez moi ne revoit aucun lien .... C'est dommage surtout que ça fonctionne pour google+ et FB ^^'
Effectivement, lorsque j'ai contribuer, je n'ai pas pu tester puisque je n'avais pas de compte.
Visiblement, lorsqu'on à pas de compte, ça fonctionne :
Peux-tu essayer s'il te plait ? (même si je ne vois pas trop l'incidence).
Pour ma part c'est avec Facebook que j'ai un problème... je regarderais ça quand j'aurais un peu de temps.
bon, je ne suis pas une lumière en programmation, alors mes question paraîtront sans doute idiotes :8 mais
1) Il n'y a rien à installer à la différence des plugins "ordinaires" c'est ça ? Seulement la ligne à coller ??
2) où faut-il coller la ligne de code dans le fichier "article.php" (si c'est bien là qu'il faut le mettre !!) ? J'utilise le thème Nostalgiev42b et je ne comprends pas grand chose à la signification des différentes lignes, donc j'ai essayé, au hasard, de coller la ligne à deux ou trois endroits mais rien n'apparaît.
3) puisqu'on en parle : les autres utilisateurs du thème Nostalgie42b (qui a l'air populaire), savent-ils comment on peut corriger le bug de la fonction de recherche (qui ne marche pas du tout !!) ou, si ce n'est pas possible, comment la supprimer ? Je sais cette dernière question est hors sujet mais bon, on ne sait jamais !
Merci pour la réponse mais comme je le disais, je suis vraiment une bille avec les lignes de code... Donc je ne comprends pas forcément où je dois intégrer les lignes en question dans ceci (j'ai essayé au début mais rien ne se passe) :
Pour l'autre point (la fonction recherche dans Nostalgie), j'utilise la dernière version de Pluxml (5.2) mais la fonction "recherche" ne marchait pas non plus dans les versions précédentes. Si tu as une idée là-dessus, je suis preneur !
là où tu veux que ça apparaissent ... commence JUSTE avec la ligne du milieu pour tester
pour le second point
il suffit de télécharger le plugin " plxMySearch ", de l'activer et de suivre les instructions pour le faire fonctionner
Pour la fonction recherche, elle marche en effet après activation du plugin mais cela entraîne l'impossibilité d'afficher les articles (ils apparaissent dans le fil de la page d'accueil mais quand on en sélectionne un : page blanche ! Du coup, j'ai désactivé le plugin et je peux à nouveau afficher les articles entier... étrange, non ?).
Pour la fonction partager, ça y est tout fonctionne ! Merci ! Juste un point : on peut partager seulement depuis l'article seul (en pleine page), pas depuis la page d'accueil. Comment faire pour que ce soit aussi possible (si c'est possible !)... J'imagine qu'il faut ajouter la ligne sur un autre fichier php... Peux-tu me dire lequel ?
Bonjour, j'ai développé un plugin similaire dont l'avantage est de pouvoir fonctionner sans javascript. Le plugin utilise des images à héberger directement dans le serveur. Comment intégrer ces icônes directement dans le plugin ?
Option 1 : je crée un dossier images contenant les icones dans le repertoire du plugin.
Quelle url indiquer dans le code ? <img src="???∕facebook.png>
Option 2 : je crée un dossier images indépendant du plugin, donc 2 archives à uploader...
Je pense que je mettrai à disposition une première version du plugin en fin d'après midi.
Merci pour vos réponses.
Merci Stephane, je découvre le script depuis une journée à peine :8
Est-ce qu'on peut récupérer, l'url et le titre de l'article sous forme de variable dans le fichier du plugin ? exemple : $url_article et $titre_article
Réponses
et ça marche : http://goo.gl/t84Tr
Les instructions sont dans le billet vers lequel pointe l’URL au-dessus.
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...
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 ?
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
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 :
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 :
Par :
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 !).
Validation html5 (contribution aruhuno)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Bon d'abord le plugin est super
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:
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
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 :
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
sachant que si je fais un test comme celui ci ça marche :
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.
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
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
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:
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.
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.
faut juste le savoir.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
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 :
ça marche ! Mais pas ça :
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.
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)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
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 ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
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 ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci pour ton aide en tout cas Stéphane!
Je repasse sur le sujet avec une demande en forme de UP pour le sujet des URL raccourcis Existe il maintenant une solution viable et "officielle" ?
Autre souci avec le plugin, le bouton twetter chez moi ne revoit aucun lien .... C'est dommage surtout que ça fonctionne pour google+ et FB ^^'
une petite capture :
Effectivement, lorsque j'ai contribuer, je n'ai pas pu tester puisque je n'avais pas de compte.
Visiblement, lorsqu'on à pas de compte, ça fonctionne :
Peux-tu essayer s'il te plait ? (même si je ne vois pas trop l'incidence).
Pour ma part c'est avec Facebook que j'ai un problème... je regarderais ça quand j'aurais un peu de temps.
1) Il n'y a rien à installer à la différence des plugins "ordinaires" c'est ça ? Seulement la ligne à coller ??
2) où faut-il coller la ligne de code dans le fichier "article.php" (si c'est bien là qu'il faut le mettre !!) ? J'utilise le thème Nostalgiev42b et je ne comprends pas grand chose à la signification des différentes lignes, donc j'ai essayé, au hasard, de coller la ligne à deux ou trois endroits mais rien n'apparaît.
3) puisqu'on en parle : les autres utilisateurs du thème Nostalgie42b (qui a l'air populaire), savent-ils comment on peut corriger le bug de la fonction de recherche (qui ne marche pas du tout !!) ou, si ce n'est pas possible, comment la supprimer ? Je sais cette dernière question est hors sujet mais bon, on ne sait jamais !
dans article.php il faut que tu aies ceci : par exemple , mais tu peux le placer ailleurs si tu veux ...
pour le reste attention ce thème est pour le 5.1.3 .... donc quelle version as-tu ?
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Pour l'autre point (la fonction recherche dans Nostalgie), j'utilise la dernière version de Pluxml (5.2) mais la fonction "recherche" ne marchait pas non plus dans les versions précédentes. Si tu as une idée là-dessus, je suis preneur !
pour le second point
il suffit de télécharger le plugin " plxMySearch ", de l'activer et de suivre les instructions pour le faire fonctionner
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Pour la fonction partager, ça y est tout fonctionne ! Merci ! Juste un point : on peut partager seulement depuis l'article seul (en pleine page), pas depuis la page d'accueil. Comment faire pour que ce soit aussi possible (si c'est possible !)... J'imagine qu'il faut ajouter la ligne sur un autre fichier php... Peux-tu me dire lequel ?
Option 1 : je crée un dossier images contenant les icones dans le repertoire du plugin.
Quelle url indiquer dans le code ? <img src="???∕facebook.png>
Option 2 : je crée un dossier images indépendant du plugin, donc 2 archives à uploader...
Je pense que je mettrai à disposition une première version du plugin en fin d'après midi.
Merci pour vos réponses.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Est-ce qu'on peut récupérer, l'url et le titre de l'article sous forme de variable dans le fichier du plugin ? exemple : $url_article et $titre_article
Edit: c'est bon merci