以前は、カテゴリ内のトピックを「いいね」数でソートするオプションを提供するために、@samの提案を使用していました。しかし、2.5.0.beta6以降、これが機能しなくなったようです。
TypeError: undefined is not an object (evaluating 'Discourse.SiteSettings.top_menu = 'categories|latest|top|new|unread'')
この機能を有効にする新しい方法はあるでしょうか?
以前は、カテゴリ内のトピックを「いいね」数でソートするオプションを提供するために、@samの提案を使用していました。しかし、2.5.0.beta6以降、これが機能しなくなったようです。
TypeError: undefined is not an object (evaluating 'Discourse.SiteSettings.top_menu = 'categories|latest|top|new|unread'')
この機能を有効にする新しい方法はあるでしょうか?
ええと、試してみたところ、すぐに同じエラーには遭遇しませんでした。とはいえ、リンクされたコードは現在ではかなり古いですね!このコードで、ほとんどの現代的なパターンをカバーし、同じ(あるいはより良い)結果が得られると思います。ぜひ、あなたのコミュニティに適した値で試してみてください。
<script type="text/discourse-plugin" version="0.10.0">
const I18n = require("I18n").default;
I18n.translations[I18n.locale].js.filters.topliked = { help: "最高評価" };
api.addNavigationBarItem({
displayName: "最高評価",
name: "topliked",
before: "top",
href: "?order=op_likes&status=open",
customFilter: category => {
return category && category.name === "Testing"
},
forceActive: (category, args, router) => {
const queryParams = router.currentRoute.queryParams;
return (
queryParams &&
Object.keys(queryParams).length === 2 &&
queryParams["order"] === "op_likes" &&
queryParams["status"] === "open"
);
}
});
</script>
これで完璧に動作します。ありがとうございます!