Как просмотреть категории и «Последние» на мобильном устройстве?
Так?
Я посмотрел, и они использовали некоторый пользовательский JS-код, чтобы принудительно включить представление «Категории и последние темы».
Я не проверял, есть ли более лучший способ; вот что они делают (я модернизировал код и добавил некоторые комментарии):
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) => {
// Принудительно включает представление «Категории и последние темы».
api.modifyClass(
"component:discovery/categories-display",
(Superclass) =>
class extends Superclass {
get categoriesComponent() {
if (this.args.parentCategory) {
return super.categoriesComponent;
} else {
return CategoriesAndLatestTopics;
}
}
}
);
// То же, что и в оригинале, но с изменением проверки "this.site.desktopView",
// чтобы последние темы находились также и для мобильных устройств.
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;
}
}
);
})
Вы можете попробовать вставить этот код в новый компонент → Редактировать код → вкладка JS.
Дайте знать, если это поможет.
Очень вам благодарен. Я попробовал, но ничего не изменилось. ![]()
Я бы проверил следующее, убедитесь, что:
desktop_category_page_style со значением categories_and_latest_topicsДавайте посмотрим, сможем ли мы выяснить, почему ничего не происходит.