Créé un sujet Par sorted

:information_source: Résumé Ajoute une colonne de date de création triable à la liste des sujets
:eyeglasses: Aperçu \u003chttps://discourse.theme-creator.io/theme/Alteras/created-topic-sort\u003e
:hammer_and_wrench: Dépôt GitHub - Alteras1/discourse-created-topic-sort: Discourse theme component adds topic sorting by created date
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau aux thèmes Discourse ? Guide pour débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Ceci ajoute une colonne de date de création triable à la liste des sujets. Ajoute également un onglet optionnel “Créé” à la barre de navigation.

En vue de bureau, une colonne entière 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).

\u003e :information_source: Avant d’utiliser ce composant, il peut être bon d’évaluer le besoin de votre communauté de connaître une date de création. Il existe déjà un moyen intégré de signaler automatiquement les sujets nouvellement créés dans un certain délai (personnalisable par les utilisateurs dans Préférences \u003e Suivi \u003e 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 “Activer l’élément de la barre de navigation Trier par date de création” soit vrai. 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 à afficher dans l’élément de barre de navigation “Trier par date de création”. Laisser vide pour afficher dans toutes les catégories. Par défaut : vide

Catégories pour afficher la colonne Créé

Liste des catégories pour afficher la colonne “Créé”. Laisser vide pour afficher dans toutes les catégories. Par défaut : vide

Élément de barre de navigation Avant

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

Captures d’écran

Tri


Vue mobile

Avec catégorie et tags

Compatibilité et notes

Avec le mobile, la fonctionnalité de tri est déjà très limitée, donc la date de création ne fonctionnerait qu’à titre informatif. Le champ supplémentaire n’apparaît que si la date de création est différente de la date de mise à jour.

La compatibilité avec Topic List Thumbnails est limitée. En style liste, il fonctionnera normalement. En style blog, la date de création est ramenée en bas à droite. En style grille et en 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.

16 « 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.

1 « 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 »