Comment synchroniser le nombre de vues des sujets avec le discours ?

Salut à tous,

J’ai créé une SPA VUE avec l’API Discourse à utiliser sur Wordpress, et je me demandais s’il existait un moyen d’envoyer une requête POST pour mettre à jour le nombre de vues du sujet sur Discourse lorsque l’utilisateur ouvre le sujet sur Wordpress ?

2 « J'aime »

Salut Alex,

Je suis curieux d’en apprendre un peu plus à ce sujet. Y a-t-il quelque chose que tu puisses partager ?

La visualisation des articles extraits par le plugin WP Discourse ne crée pas de nouvelles vues dans Discourse, cependant si vous utilisez le point de terminaison show standard dans topics_controller, et que vous passez la vérification mise en évidence ci-dessous, la « vue » sera suivie. Notez qu’en utilisant une clé API, il y aura un current_user.

Note

Une subtilité à noter lorsque vous lisez ce code est que TopicView n’est pas vraiment le droïde que vous recherchez (c’est un modèle qui gère les données sérialisées lorsqu’un sujet est affiché). Le modèle réel de « vue de sujet » est TopicViewItem.

3 « J'aime »

Salut @angus,

Merci pour votre analyse. Je vais examiner la base de code pour les vues de sujets.

Concernant l’application SPA :

À l’origine, nous avions un plugin de forum sur Wordpress, qui créait son propre type de publication pour les questions et réponses, ainsi que des catégories et des tags. Lors de la configuration du SSO avec le plugin WP Discourse, j’ai activé les Webhooks sur Discourse pour synchroniser les sujets avec Wordpress avec ce type de publication, et j’ai utilisé l’intégration pour les réponses.

À ce stade, le frontend du forum est ennuyeux car chaque élément de question s’appuyant sur ses données WP ne peut afficher que le titre et l’auteur, et j’aimerais également afficher le statut des posters, des vues, des likes et des réponses. Il ne me semblait pas logique de modifier ce plugin.

Avec une SPA, récupérer et afficher les données serait beaucoup plus rapide et flexible. Elle affiche les derniers sujets paginés, et une barre latérale avec les sujets principaux, y compris la capacité de filtrage/recherche.

À l’origine, dans la vue des détails du sujet, je voulais également gérer l’affichage des réponses. Pour une raison quelconque, les réponses intégrées affichaient le nom d’utilisateur des posters au lieu du nom complet (voir ce lien).

J’ai également rencontré des problèmes avec les emojis et autres éléments qui sont relatifs au site Discourse, j’ai donc dû revenir aux intégrations.

Un autre problème était le SEO, que j’ai pu gérer avec le hook wp_head dans WordPress.

1 « J'aime »