[Résolu] Afficher dans une vue le Nombre de noeuds d'un utilisateur pour un type de contenu donné

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bien le bonjour,

Je cherche à faire une vue qui listerait les utilisateurs, le nombre de nœuds publiés par type de contenu, et trier la liste par ce nombre de nœuds publiés par type de contenu...

J'ai essayés diverses méthodes, mais j'ai pas réussi à faire ce que je voulais...

J'ai tenté avec le module Views_groupby mais je n'ai pas réussi à faire ce que je voulais...

Enfin bref, je suis à la pêche à idée, si quelqu'un en a une, je suis preneur ;)

Et si je solutionne mon besoin, bien sur je viendrais vous en informer.

Bonne journée à tous

Version de Drupal : 

Bien le bonsoir,

Bon j'avance un peu dans mes recherches ;)

J'utilise le module http://drupal.org/project/views_customfield qui me permet d'exécuter un code php dans lequel je place une requête SQL pour compter le nombre de node publiés pour un type de contenu par utilisateur.

Voici, le code php ajouté :

<?php
  $num_nodes
= db_result(db_query("SELECT COUNT(*) FROM {node} WHERE node.type = 'blog' AND node.uid = '4' AND node.status = '1'", $type->type));
print
$num_nodes;
?>

Bon, là j'arrive à faire ce que je veux, mais vous l'aurez compris, je n'ai pas qu'un seul utilisateur, il me donc faire ma requête avec une notion de variable... pour node.uid mais je n'ai pas encore trouvé...

Je viendrais alimenter ce post au fur et à mesure et si quelqu'un a une idée, je suis toujours preneur ;)

Bonne soirée à tous

CiaO ++

Bien le bonjour,

Merci d'avoir pris le temps de me répondre ;)

J'ai essayé, ça ne fait pas ce que je veux, mais il est probable qu'il faille chercher du côté de GROUP BY en effet, mais mes connaissances sont très limitées... (c'est assez frustrant d'ailleurs, mais bon...)

J'ai avancé pour mon code php :

<?php
  $num_nodes
= db_result(db_query("SELECT COUNT(*) FROM {node} WHERE node.type = 'blog' AND node.uid = '%s' AND node.status = '1'", 4));
print
$num_nodes;
?>

J'ai trouvé où mettre ma variable qui sera l'uid de l'utilisateur, ça avance ;)

Merci encore en tous cas

Pierre-Yves

Si tu veux le résultat pour un seul utilisateur, on aurait alors :

$num_nodes = db_result(db_query("SELECT node.type, COUNT(*) FROM {node} WHERE node.uid = '%s' AND node.status = '1' GROUP BY node.type", 4));
print $num_nodes;

Le GROUP BY doit comprendre les colonnes sur lesquelles on veut faire l'opération (COUNT ici).

Donc là on dit : donne moi les types de noeuds,leur nombre pour l'utilisation 4 et avec le status = 1 (publié), en groupant par type de noeud. Par contre ça va donner un tableau à 2 colonnes : type / nombre

Ça y est j'ai réussi :)

Voici le code php utilisé :

<?php
  $num_nodes
= db_result(db_query("SELECT COUNT(*) FROM {node} WHERE node.type = 'blog' AND node.uid = '%s' AND node.status = '1'", $data->users_uid));
print
$num_nodes;
?>

Je récupère l'uid de mon utilisateur grace à ça :

$data->users_uid

Comment ais-je fait pour trouver ça ?

Et bien, j'ai mis dans mon code php la ligne ci-dessous qui me permet de lister les valeurs possibles de mon tableau $data :

<?php
print var_export($data, TRUE);
?>

Désolé pour l'explication, je ne suis pas développeur comme vous aurez pu le remarquer ;)

En tous cas, j'ai l'effet souhaité ;)

Bonne journée et encore merci