Création du tri des sujets

Installer ce composant de thème

Cela ajoute une colonne de date de création triable à la liste des sujets. Ajoute également un onglet facultatif « Créé » à la barre de navigation.

Sur la vue de bureau, une colonne complète est ajoutée. Sur mobile, la date de création n’est ajoutée qu’en ligne avec la date d’activité lorsque le tri « Créé » est sélectionné (voir les captures d’écran ci-dessous).

:information_source: Avant d’utiliser ce composant, il peut être utile d’évaluer le besoin de votre communauté de connaître la date de création. Il existe déjà un moyen intégré de signaler automatiquement les nouveaux sujets créés dans un certain laps de temps (configurable par les utilisateurs dans Préférences > Suivi > Sujets).

Paramètres

Activer l’élément de la barre de navigation « Trier par date de création »

Ajoute un élément de barre de navigation « Trier par date de création » au menu de navigation. Par défaut : true

Captures d'écran

Bureau

Mobile

Activer la colonne uniquement sur le filtre de date de création

Empêche l’affichage de la colonne de date de création en dehors du filtre de date de création. Nécessite que l’option « Activer l’élément de la barre de navigation Trier par date de création » soit définie sur true. Par défaut : false

Activer l’élément de la barre de navigation sur la page d’accueil

Ajoute l’élément de barre de navigation « Trier par date de création » sur la page d’accueil. Par défaut : true

Activer la colonne sur la page d’accueil

Ajoute la colonne « Créé » sur la page d’accueil. Par défaut : true

Catégories pour afficher l’élément de la barre de navigation

Liste des catégories pour afficher l’élément de barre de navigation « Trier par date de création ». Laissez vide pour afficher dans toutes les catégories. Par défaut : empty

Catégories pour afficher la colonne Créé

Liste des catégories pour afficher la colonne « Créé ». Laissez vide pour afficher dans toutes les catégories. Par défaut : empty

Balises pour afficher l’élément de la barre de navigation

Liste des balises pour afficher l’élément de barre de navigation « Trier par date de création ». Laissez vide pour afficher dans toutes les balises. Par défaut : empty

Balises pour afficher la colonne Créé

Liste des balises pour afficher la colonne « Créé ». Laissez vide pour afficher dans toutes les balises.
Par défaut : empty

Élément de la barre de navigation avant

Ajuste l’emplacement de l’élément de la barre de navigation dans la liste. Par défaut : top.

Captures d’écran

Tri


Vue mobile

Avec catégories et balises

Compatibilité et remarques

Sur mobile, la fonctionnalité de tri est déjà fortement limitée, de sorte que la date de création ne sert qu’à titre informatif. Le champ supplémentaire n’apparaît que si la date de création est différente de la date de repoussage.

La compatibilité avec Topic List Thumbnails est limitée. En style liste, elle fonctionne normalement. En style blog, la date de création est déplacée en bas à droite. En style grille et style maçonnerie, la date de création n’est visible que lorsque le filtre « Créé » est sélectionné et remplacera la date d’activité. En style minimal, la date de création est masquée.

17 « J'aime »

Wow, un autre plugin parfait qui change le forum ! Ce serait formidable s’il pouvait s’intégrer au plugin Discourse Nav Item Icon / Emoji.

3 « J'aime »

Je pense que cela devrait fonctionner. :slight_smile:
Ajoutez-le simplement comme ceci, par exemple :
emoji:created_date:twitter:spiral_calendar:filter

4 « J'aime »

Je peux confirmer que l’ajout du paramètre tel que Don l’a fait fonctionne !


5 « J'aime »

Très bien ! Malheureusement, cela ne fonctionne pas bien avec le TC Topic Thumbnails, cela ajoute une heure supplémentaire pour une raison quelconque :

Notez l’heure supplémentaire de 7h en bas du centre.

Il semble que je puisse simplement masquer ce .topic-list .topic-list-data:last-of-type, mais j’ai pensé vous le faire savoir :grin:

EDIT : J’ai trouvé une autre bizarrerie, lorsque je clique sur Derniers, cela met en surbrillance Créé, et lorsque je clique sur Créé, cela met en surbrillance Derniers :zany_face:

1 « J'aime »

Intéressant. Il semble que ce soit juste un effet secondaire étrange de la façon dont les miniatures de sujets et le tri des sujets créés sont ajoutés aux modèles en même temps. Est-ce juste un problème avec le mode masonry et grid ? Je vais voir si je peux faire un ajustement approprié dans le CSS au lieu de simplement le masquer, une fois que j’aurai trouvé un moyen propre de détecter l’utilisation du composant de thème.

La mise en surbrillance pour les derniers et les créés semble vraiment étrange. Les créés ne devraient être mis en surbrillance que lorsque l’URL contient /latest?order=created… hmm…

J’ai mis à jour certains des composants pour les rendre plus jolis (ou du moins pour qu’ils correspondent) au composant Topic Thumbnails.

Dans le style blog, la date de création est placée en bas à droite. Je n’ai pas trouvé de moyen élégant de la faire figurer juste à côté de la date de mise à jour, donc cela fera l’affaire. Dans les styles grille et maçonnerie, la date de création n’est visible que lorsque le filtre « Créé » est sélectionné, et elle remplacera la date d’activité. J’ai essayé d’afficher la date d’activité et la date de création en même temps, mais cela donnait l’impression que la carte était à l’étroit. Dans le style minimal, la date de création est masquée.

Serait-il difficile d’ajouter une portée de catégorie à cela ? Nous aimerions l’avoir dans notre section d’annonces mais n’avons pas besoin qu’elle soit affichée dans nos discussions générales, etc.

1 « J'aime »

Pas du tout ! Je viens de publier une mise à jour qui ajoute quatre nouveaux paramètres pour aider à contrôler où l’élément de la barre de navigation et la colonne sont affichés.

  • Activer l’élément de la barre de navigation sur la page d’accueil : Ajoutez l’élément de la barre de navigation « Trier par date de création » sur la page d’accueil.
  • Activer la colonne sur la page d’accueil : Ajoutez la colonne « Créé » sur la page d’accueil.
  • Catégories pour afficher l’élément de la barre de navigation : Liste des catégories dans lesquelles afficher l’élément de la barre de navigation « Trier par date de création ». Laissez vide pour afficher dans toutes les catégories.
  • Catégories pour afficher la colonne de création : Liste des catégories dans lesquelles afficher la colonne « Créé ». Laissez vide pour afficher dans toutes les catégories.

Cependant, veuillez noter que les restrictions d’affichage de la colonne ne fonctionnent que sur les sites utilisant les nouvelles modifications de la liste des sujets.

2 « J'aime »

Merci beaucoup ! :star_struck: C’est génial !

Y a-t-il un moyen de faire de cette page d’accueil par défaut ? J’ai vu certains plugins ajouter des options au paramètre du site « Menu supérieur », donc je pense que c’est possible.

Je pourrais alors remplacer efficacement le dernier standard en masquant celui-ci avec CSS.

La page d’accueil par défaut peut être définie avec un peu de JS :

import { setDefaultHomepage } from "discourse/lib/utilities";
setDefaultHomepage("/latest?order=created");

Ajouter l’option dans les paramètres du menu supérieur est certainement préférable, mais je ne pense pas qu’il y ait un moyen de le faire depuis un TC, du moins d’après ce que j’ai vérifié la dernière fois. Je vais devoir voir si quelque chose a changé entre-temps.

2 « J'aime »

Merci ! Cela devrait fonctionner, mais cela ajoute %3F_discourse_homepage_rewrite à l’URL, ce qui interfère avec le tri. :confounded_face:

2 « J'aime »

J’ai pu contourner cela en faisant setDefaultHomepage(\"latest?order=created\u0026\");
Mais maintenant le problème est que, même si tous les indicateurs le disent, le tri réel ne s’applique pas.

J’ai donc essayé la même URL en utilisant Custom Homepage for Groups et cela a fonctionné :tada: Je ne suis pas sûr pourquoi la redirection de ce composant fonctionnerait différemment car je suis à peu près sûr qu’il utilise la même méthode.

2 « J'aime »

J’ai trouvé, il fallait vider le PreloadStore

Ainsi, on peut modifier votre thème par défaut ou un nouveau composant pour ajouter ceci au JS :

import { apiInitializer } from "discourse/lib/api";
import { setDefaultHomepage } from "discourse/lib/utilities";
import PreloadStore from "discourse/lib/preload-store";

export default apiInitializer((api) => {
  setDefaultHomepage("latest?order=created&");
  PreloadStore.remove("topic_list");
});

et ce CSS pour supprimer l’onglet Latest :

li.nav-item_latest {
    display: none;
}

J’aimerais que cela reste sur l’URL de la page d’accueil racine, mais cela nécessitera probablement un plugin.

3 « J'aime »

J’ai fini par créer ce plugin : Created as Default Sort Order
Ma page d’accueil est donc triée proprement par date de création. J’utilise toujours ce composant pour ajouter la colonne.

4 « J'aime »

Merci pour ce super composant de thème !

J’ai créé une PR très petite et simple qui permet de configurer où l’élément de la barre de navigation apparaît.

2 « J'aime »

Merci pour la PR ! Je l’ai fusionnée et mise à jour la description des paramètres sur l’OP.

1 « J'aime »

Est-il possible que cela fonctionne dans une vue par étiquette ? Actuellement, lorsque vous consultez une étiquette, l’option de menu « Créer » disparaît. Merci !

Mise à jour ! Les paramètres tags_to_display_nav_bar_item et tags_to_display_created_column ont été ajoutés.

3 « J'aime »