Sono riuscito ad arrivare quasi alla fine guardando Custom Top Navigation Links.
<script type="text/discourse-plugin" version="0.8.18">
if (I18n.translations.en) {
I18n.translations.en.js.filters.needsreply = {title: "Needs Reply", help: "Unanswered Topics"};
}
// PERSONALIZZA QUESTI VALORI
// Imposta la query di ricerca
let search_query = '?max_posts=1';
// Escludi alcune categorie dalla visualizzazione dell'elemento di menu "Needs Reply"
let excludeList = ['pitches', 'weekly-recap', 'staff'];
api.addNavigationBarItem({
name: "needsreply",
displayName:"Needs Reply",
title: "Needs Reply",
href: "/latest" + search_query
});
// Aggiungi la classe active al pulsante Needs Reply
api.modifyClass('component:navigation-item', {
active: Ember.computed("contentFilterMode", "filterMode", function () {
let contentFilterMode = this.get('content').get('filterMode');
console.log(window.location.search.split('&')[0], search_query.split('&')[0])
if (window.location.search && window.location.search.split('&')[0] === search_query.split('&')[0]) {
return contentFilterMode === "needsreply";
} else {
return this._super(contentFilterMode, this.get('filterMode'));
}
}),
});
// Rimuovi il filtro max_posts e il filtro tag
api.modifyClass('controller:discovery/topics', {
resetParams: function () {
this.setProperties({max_posts: null});
this.setProperties({tags: null});
this._super();
}
});
</script>
L’unica parte che non sono riuscito a capire è come accedere alla categoria corrente in questo script.
Nel codice originale, Discourse.NavItem ti permette di accedere alla categoria corrente. Basandoci su questo codice, alteriamo dinamicamente il comportamento del link (nascondilo o modifica l’href per guardare solo i post in questa categoria).
Qualcuno può consigliare una soluzione per iniettare la categoria corrente nello script sopra, così da poter personalizzare il comportamento del link in base alla categoria che l’utente sta visualizzando?