Come posso visualizzare categorie e “ultimi” sul cellulare?
Come questo?
Ho guardato e hanno usato del codice JS personalizzato per forzare la visualizzazione “categorie e argomenti più recenti”.
Non ho controllato se ci fosse un modo migliore; ecco cosa fanno (ho modernizzato il codice e aggiunto alcuni commenti):
import { apiInitializer } from "discourse/lib/api";
import CategoriesAndLatestTopics from "discourse/components/categories-and-latest-topics";
import CategoryList from "discourse/models/category-list";
import { MAX_UNOPTIMIZED_CATEGORIES } from "discourse/lib/constants";
export default apiInitializer((api) => {
// Forza la visualizzazione di Categorie e argomenti più recenti.
api.modifyClass(
"component:discovery/categories-display",
(Superclass) =>
class extends Superclass {
get categoriesComponent() {
if (this.args.parentCategory) {
return super.categoriesComponent;
} else {
return CategoriesAndLatestTopics;
}
}
}
);
// Uguale all'originale, con la differenza che viene rimosso il controllo "this.site.desktopView",
// in modo da trovare gli argomenti più recenti anche per dispositivi mobili.
api.modifyClass(
"route:discovery-categories",
(Superclass) =>
class extends Superclass {
async findCategories(parentCategory) {
let model;
let style = this.siteSettings.desktop_category_page_style;
if (this.site.categories.length > MAX_UNOPTIMIZED_CATEGORIES) {
style = "categories_only";
}
if (
style === "categories_and_latest_topics" ||
style === "categories_and_latest_topics_created_date"
) {
model = await this._findCategoriesAndTopics(
"latest",
parentCategory
);
} else if (style === "categories_and_top_topics") {
model = await this._findCategoriesAndTopics(
"top",
parentCategory
);
} else {
PreloadStore.remove("topic_list");
model = await CategoryList.list(this.store, parentCategory);
}
return model;
}
}
);
})
Puoi provare a incollare il codice in un nuovo componente → Modifica codice → Scheda JS.
Fammi sapere se aiuta.
Grazie mille. Ci ho provato, ma non è cambiato nulla. ![]()
Controllerei quanto segue, assicurati che:
desktop_category_page_style sia impostata su categories_and_latest_topicsVediamo se riusciamo a capire perché non succede nulla.
Puoi rimuovere il duplicato. Questo è probabilmente il motivo per cui non funziona (queste 5 righe):