Contemplate + statistics

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.

Bonjour,

J'ai activé le module statistics, et j'arrive aisément à créer une vue et ajouter un champs permettant d'afficher le nombre de fois qu'un noeud a été affiché.

Maintenant, j'essai de créer un affichage plus personnalisé avec Contemplate, mais je ne sais pas comment retrouver la variable à utiliser en php pour afficher le nombre de fois ou un node a été affiché...

Et d'une manière plus générale, lorsque l'on rajoute un module qui "ajoute" des champs disponibles dans views, comment connaitre le nom de la variable php correspondande ?

Merci pour votre aide, et encore bravo à Drupal pour sa puissance !

En fait l'affichage de données via Views ou via Node (et donc Contemplate) suivent deux route différentes.

Pour Views, chaque module exporte son schéma de données (en fait des définitions de tables, de jointures et de champs). Ce schéma permet à Views de générer directement une requête et d'en déduire une vue.

De son côté, l'affichage des noeuds (géré par le module Node et modifié par Contemplate) passe par deux types de hooks :

  • les hooks de base (hook_load(), hook_insert(), hook_update() etc.) qui permet à un module de définir un nouveau type de noeud
  • et un hook étendu (hook_nodeapi()) qui permet à un module d'intéragir avec un type de noeud créé par un autre module

Du coup, une donnée n'est disponible dans $node que si (a) elle est chargée par le module de base (via le hook_load()), ou (b) elle est ajoutée par un autre module (via l'opération 'load' du hook_nodeapi()).

Dans votre cas, le module Statistics exporte bien son schéma vers Views (en fait, c'est même Views lui-même qui connait le module Statistics et qui exporte pour lui ses données), mais ne les charge pas dans $node. Ces données ne sont donc pas accessible pour Contemplate.

Du coup, pour pouvoir afficher ces données avec Contemplate, il vous faudra les charger en utilisant $statistics = statistics_get($node->nid).

Damien

Il me semble avoir trouvé, donc j'expose ma solution si ça peut aider d'autres personnes...

-> aller dans le module correspondant : ici "statistics.module"
-> parcourir le fichier pour trouver le point d'entrée recherché : ici "function statistics_get($nid)"
-> ajouter le code correspondant dans "contemplate" :

$statistics = statistics_get($node->nid);
print $statistics['totalcount']

Et voilà !