PluXml.org

Blog ou CMS à l'Xml

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

#1 15/04/2013 10:50:30

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

[Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Bonjour à tous,


Je viens ici vous présenter mon premier plugin que j'ai développé pour pluXML ! Bon, vous allez voir, c'est tout rikiki, mais j'en avais besoin, du coup je le partage avec vous.


Le plugin permet tout simplement de connaitre le nombre d'articles publiés pour un auteur donné.



Pour utiliser le plugin, c'est simple, il suffit de placer ce code dans le code PHP de la page, à l'endroit où l'on veut voir apparaître le nombre d'articles rédigés par l'auteur :


[== PHP ==]
<?php eval($plxShow->callHook('NbArt', '001')) ?>

Dans cet exemple, on affichera le nombre d'articles publiés par l'auteur dont l'ID est '001'. Le plugin n'affiche que les articles publiés, donc pas les brouillons, ni les articles en attente de validation.


Ce plugin est téléchargeable à cette adresse : http://rock-anecdotes.fr/static5/plxnbart


N'hésitez pas à commenter, si vous pensez que le code est améliorable, ou si d'autres fonctionnalités peuvent venir améliorer ce plugin !


Thibaut


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#2 15/04/2013 14:25:02

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Salut Tibawbaw


Je vois deux problèmes avec ta fonction NbArt:


1) le chemin codé en dur 'data/articles', qui peut être différent selon les utilisateurs car cela se paramètre dans l'admin. Il faut donc faire référence à $plxMotor->aConf['racine_articles'] pour être juste à tous les coups.


2) Perso, j'excluerais les articles rédigés dans une catégorie inactive si on affiche le nombre d'articles coté visiteurs.


Ma version de la fonction NbArt serait donc

	public function NbArt ($IDAuteur) {
	
		$plxMotor = plxMotor::getInstance();
		$plxGlob_arts = clone($plxMotor->plxGlob_arts);
		$motif = '/^[0-9]{4}.((?:[0-9]|home|,)*(?:'.$plxMotor->activeCats.'|home)(?:[0-9]|home|,)*).'.$IDAuteur.'.(.*).xml$/'; # Motif de recherche
		if($aFiles = $plxGlob_arts->query($motif, 'art', 'sort', 0, false, 'before'))
			echo sizeof($aFiles);
		else
			echo 0;
		
	}

Voilà smile


Ancien responsable de PluXml  cool

Hors ligne

#3 15/04/2013 14:26:36

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Ah ah, t'es trop fort ^^ Bon, bah j'ai plus qu'à copier coller ton code, et changer le nom de l'auteur, et puis c'est bon  big_smile


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#4 15/04/2013 14:31:50

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

C'est étrange, j'ai 4 auteurs : ta méthode marche pour les 3 premiers, mais pas pour le 4e ^^ Je vais essayer de voir ce qui cloche (c'est peut être de mon côté...)


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#5 15/04/2013 14:41:30

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

j'ai fait une modif car cela prenait en compte les articles avec une date future de publication

if($aFiles = $plxGlob_arts->query($motif, 'art', 'sort', 0, false, 'before'))

edit: oubli du paramètre 'sort'


Ancien responsable de PluXml  cool

Hors ligne

#6 15/04/2013 14:48:44

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Avec ta dernière modif, ça me met 0 article pour tous les rédacteurs ^^


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#7 15/04/2013 14:57:54

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

oups j'ai oublié de recopier un paramètre

if($aFiles = $plxGlob_arts->query($motif, 'art', 'sort', 0, false, 'before'))

Voilà


Ancien responsable de PluXml  cool

Hors ligne

#8 15/04/2013 14:59:13

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Oui, c'était ce que je venais de voir, tu m'as grillé de 20 secondes ^^


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#9 15/04/2013 15:01:54

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

J'ai toujours un problème : un auteur avec 3 articles (parus, aucun article en brouillon, approbation, ou publication future) se retrouve avec 10 articles quand j'appelle la fonction. Pour les 3 autres auteurs, le compte est bon... C'est étrange !


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#10 18/04/2013 08:50:32

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Stéphane, je crois qu'il y a une erreur dans la construction de ton motif...


J'ai un utilisateur pour qui ça merde (mon utilisateur 006), ça m'affiche des articles qui ne lui correspondent pas... Mais qui appartiennent à la catégorie 006 !


Exemple des noms de fichiers qui sont récupérés pour cet utilisateur :


0001.014,006.001.201302211238.lucy-l-australopitheque.xml
0003.029,006.001.201302220948.y-a-t-il-un-pilote-dans-l-avion.xml
0007.017,006.001.201302252216.7-status-quo-et-le-kangourou-a-lunettes.xml
0008.013,018,020,006.001.201302261749.8-les-intellos-du-rock.xml


Et il y en a 12 comme ça ! Je suppose que ça prend en compte le "006" qui se trouve derrière la virgule au lieu de prendre le "001" juste après... Mais j'ai un peu de mal à comprendre la construction du motif... Je vais chercher de mon côté, mais si tu as une idée... !


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#11 18/04/2013 15:08:38

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Salut
Effectivement le problème vient du motif car l'id de l'auteur est identique à un id d'une catégorie.
Je n'ai pas de solution pour le moment.


Ancien responsable de PluXml  cool

Hors ligne

#12 18/04/2013 16:13:32

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

J'ai mis à jour en une version 1.1, dans laquelle je gère l'emplacement réel des articles ainsi que la date de publication (mais pas encore les catégories inactives !)  :


http://rock-anecdotes.fr/static5/plxnbart


## Version 1.0 (15/04/2013) ##

- Version initiale


## Version 1.1 (18/04/2013) ##

- Répertoire des articles comme configuré par l'utilisateur (était codé en dur dans la version 1.0)
- Exclusion des articles dont la date de publication est postérieure à la date actuelle


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#13 19/04/2013 21:35:46

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Hello
Par rapport à mon post #2, peux-tu essayer avec ce motif stp

		$motif = '/^[0-9]{4}.((?:[0-9]|home|,)*(?:'.$plxMotor->activeCats.'|home)(?:[0-9]|home|,)*)\.'.$IDAuteur.'\.(.*).xml$/'; # Motif de recherche

Ancien responsable de PluXml  cool

Hors ligne

#14 20/04/2013 10:37:46

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Stéphane a écrit :

Hello
Par rapport à mon post #2, peux-tu essayer avec ce motif stp

		$motif = '/^[0-9]{4}.((?:[0-9]|home|,)*(?:'.$plxMotor->activeCats.'|home)(?:[0-9]|home|,)*)\.'.$IDAuteur.'\.(.*).xml$/'; # Motif de recherche

Je viens de tester et ça fonctionne. Le motif prend bien en compte si les articles appartiennent aux catégories actives. L'id de l'auteur est également respecté même s'il est égal à celui d'une catégorie.

Je pense que le else echo 0 n'est pas nécessaire à la fin de la méthode et que l'on pourrait ajouter le nom de l'auteur avant le nombre d'articles en faisant :

echo 'Nombre d\'articles de l\'auteur '.$plxMotor->aUsers[$IDAuteur]['name'].' : '.sizeof($aFiles);

L'idéal serait d'avoir un fichier lang pour la traduction de "Nombre d\'articles de l\'auteur".

Dernière modification par Jerry Wham (20/04/2013 10:50:09)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#15 20/04/2013 11:40:13

Tibawbaw
Membre
Lieu : Somain (près de Lille)
Inscription : 27/02/2013
Messages : 55
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Ca marche pour moi aussi !

Personnellement, je gèrerais l'affichage du "Nombre d'articles de l'auteur" dans le thème, le plugin ne retournant que le nombre d'articles. En gérant le multilangue avec la fonction directement disponible dans PluXML non ? Comme ça, ça évite d'obliger l'utilisateur à utiliser la phrase "Nombre d'articles de l'auteur" (par exemple, moi j'affiche "Nombre d'anecdotes", s'il faut à chaque fois aller bidouiller dans le code du plugin, c'est pas top, surtout s'il y a des mises à jour).


Après on pourrait imaginer une page de configuration pour savoir quel phrase il faut afficher, et gérer en plus le cas où il n'y a aucun article, un seul article, plusieurs articles... Ca sera peut-être dans une prochaine mise à jour ;-)


En tout cas, merci à Stéphane, encore du super boulot, super réactif !


Envie de découvrir la musique Rock sous un nouvel angle ? Venez visiter mon site : Rock Anecdotes  smile

Hors ligne

#16 20/04/2013 12:45:33

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Si, il faut le echo 0, pace que s'il n'y aucun article sizeof va te retourner 1, et donc tu vas afficher qu'il y a 1 articles ce qui est faux


Ancien responsable de PluXml  cool

Hors ligne

#17 20/04/2013 14:11:57

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 555
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Tibawbaw a écrit :

Ca marche pour moi aussi !

Personnellement, je gèrerais l'affichage du "Nombre d'articles de l'auteur" dans le thème, le plugin ne retournant que le nombre d'articles. En gérant le multilangue avec la fonction directement disponible dans PluXML non ? Comme ça, ça évite d'obliger l'utilisateur à utiliser la phrase "Nombre d'articles de l'auteur" (par exemple, moi j'affiche "Nombre d'anecdotes", s'il faut à chaque fois aller bidouiller dans le code du plugin, c'est pas top, surtout s'il y a des mises à jour).

Ok, ça se tient.

Stephane a écrit :

Si, il faut le echo 0, pace que s'il n'y aucun article sizeof va te retourner 1, et donc tu vas afficher qu'il y a 1 articles ce qui est faux

Oui mais non. La condition se fait sur le fait que la query retourne true ou false. Donc si le motif ne correspond pas, le if retourne false et donc c'est le else qui est interprété. Le sizeof n'est pas lu.

S'il n'y a pas le else, le script saute simplement ce qui suit le if. Et donc là aussi sizeof n'est pas interprété. Et donc rien n'est affiché.

Après, le fait de ne rien afficher dépend de comment on souhaite gérer l'affichage : comme Tibawbaw (la phrase dans le thème), et là le echo 0 est nécessaire, ou comme moi (la phrase dans le plugin) et là le else est de trop.

Dernière modification par Jerry Wham (20/04/2013 14:13:11)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#18 27/07/2014 11:20:14

bdube30
Membre
Lieu : Montréal, QC
Inscription : 16/02/2011
Messages : 149
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Sur la page d'un article, est-il possible de récupérer de façon dynamique le id de l'auteur de l'article ? Car sur chaque page d'article, j'ai un petit encadré avec une photo de l'auteur, son nom, sa description et un lien vers les articles qu'il a publié. Je veux utiliser le plugin pour dynamiser le lien pour avoir quelque chose qui ressemble à ça : «bdube30 - 12 articles».

J'ai regardé dans la documentation de pluxml, mais j'ai rien trouvé. J'ai aussi regardé dans quelques fichiers du core de pluxml pour trouvé une référence à l'id d'un auteur, mais je ne suis pas assez bon en PHP pour m'y retrouver.

Merci,

Benjamin

Hors ligne

#19 27/07/2014 11:49:05

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

@bdube30

$plxMotor->plxRecord_arts->f('author')

et pour connaitre son nom

$plxMotor->aUsers[$plxMotor->plxRecord_arts->f('author')]['name'])

Ancien responsable de PluXml  cool

Hors ligne

#20 27/07/2014 11:56:16

bdube30
Membre
Lieu : Montréal, QC
Inscription : 16/02/2011
Messages : 149
Site Web

Re : [Plugin] plxNbArt : afficher le nombre d'articles publiés par l'auteur

Merci Stéphane smile

Hors ligne

Pied de page des forums

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