Discourse类别标题主题组件

我在 Console 中看到了许多关于此组件的错误消息。

弃用通知:请使用注入的 siteSettings 而不是 Discourse.SiteSettings(自 Discourse 2.8 起已弃用,将在 Discourse 2.9 中移除)

我们在另一个插件中通过将 Discourse.application.SiteSettings[...] 更改为 container.lookup('site-settings:main')[...] 来修复了此问题。

也许这也能解决这里的问题。

2 个赞

对我来说不起作用,我已经尝试了所有方法,更改了类别显示方式的配置,甚至回到了 Discourse 的“默认”主题,但仍然无法使其正常工作。

2 个赞

我刚从 2.9.0.beta8 更新到 2.9.0.beta9,但遇到了同样的问题。不知何故似乎不起作用。

2 个赞

而且在 github 上已经 2 年没有更新了,@Rhidian 这个组件是否不再受支持?

2 个赞

我会在有空的时候看看。只有当 Discourse 更新破坏它时,它才会被更新。如果有人在我之前有机会查看,我很乐意在 GitHub 上接受拉取请求。

4 个赞

image

这一点立刻引起了我的注意。但还不确定为什么是 beta9 特别触发了失败。

比较我的实例,这个版本没有出现问题。

我遇到的最早有问题版本是这个提交

所以,7 月 28 日到 8 月 25 日之间的某个提交似乎扰乱了某些东西。

2 个赞

我快速看了一下,看看是否是核心问题导致了故障。

在我看来,组件中存在一些无效的 JavaScript。鉴于它过去曾正常工作,我想我们最近对主题 JavaScript Babel 转换配置的更新使其对这类错误不太宽容了。

我在这里打开了一个 PR 来修复:FIX: Do not access variables before initialization by davidtaylorhq · Pull Request #3 · naidihr/discourse-category-headers · GitHub

以及另一个将清理 Discourse.SiteSettings 警告的 PR:Remove use of deprecated and private functions/properties by davidtaylorhq · Pull Request #4 · naidihr/discourse-category-headers · GitHub

5 个赞

太棒了,David。非常感谢。我已经将它们合并了。

Rhod 和 Tristan - 现在这样能解决你们的问题了吗?

4 个赞

是的,非常感谢您和 @david,我现在正在从我的移动设备上检查它,稍后我将在 PC 上检查,但它似乎工作正常。

1 个赞

像做梦一样!谢谢 Rhidian!

2 个赞

感谢您提供这个出色的组件!

是否可以为不同的标签页面添加标题?

如何让横幅仅显示在主页上,并允许级别 4 的受信任成员编辑它?

我想将其用于一个类别。我可以在“隐藏类别例外”中列出所有其他内容,但这似乎难以维护。是否可以添加一个与该设置相反的设置?

1 个赞

我喜欢这个主题,但有一个我不知道如何修复的错误,这是因为我的无知。
我使用此组件在子类别中放置横幅,但在不使用图像的子类别中,会有一个不美观的空白。示例:

您好 @Pandabear,我去了您的论坛想看看是否能提供帮助,但似乎没有启用横幅。也许在您启用它之后,可以试试这个:

在主题或主题组件的 common-css 中:

.category-parentcategory-subcategory {
  .category-title-contents {
    display: none;
  }
}

parentcategorysubcategory 分别是父类别和子类别的 slug 名称(您在浏览器 URL 字段中看到的那个小写名称)。例如,在您的截图的情况下,URL 是 https://holaforo.com/c/musica/thalia/,那么代码将是:

.category-musica-thalia {
  .category-title-contents {
    display: none;
  }
}

非常感谢,您真是太好了。我之前禁用了它,因为找不到修复的方法。

我现在暂时把它重新启用了,只在以下子类别中添加了一个横幅:
https://holaforo.com/c/musica/musica-pop/153

其他子类别目前没有图片,但有些子类别我不想放图片,留白很难看。

关于以下代码:

.category-parentcategory-subcategory {
  .category-title-contents {
    display: none;
  }
}

我是否需要为所有不打算放图片的类别和子类别都这样做?

我正在为所有类别和子类别这样做,并且确实有效:

.category-musica-thalia {
  .category-title-contents {
    display: none;
  }
}
.category-musica {
  .category-title-contents {
    display: none;
  }
}
.category-musica-musicapop1 {
  .category-title-contents {
    display: none;
  }
}
.category-musica-musicavariada {
  .category-title-contents {
    display: none;
  }
}

1 个赞

@Pandabear - 我不明白为什么您在此主题组件中不使用“隐藏类别例外”设置?

无论如何,如果需要,您还可以这样做,以便更轻松地管理要将 CSS 代码应用于哪些类别和子类别:

$categories: 'musica', 'musica-thalia', 'musica-musicapop1', 'musica-musicavariada';

@each $category in $categories {
    .category-#{$category}  {
      .category-title-contents {
          display: none;
      }
   }
}
1 个赞

感谢您的所有帮助。
我已使用 CSS 完成了所有类别,但“soporte”除外。

类别“soporte”已设置为隐藏,但仍显示空白。
https://holaforo.com/c/soporte/72

您好,我收到了关于此组件的警告:

[THEME 68 ‘Category Headers theme component’] 弃用通知:controller:navigation/category 已不存在,此兼容层最终将被移除。要获取有关当前发现路由的信息,请改用发现服务。[deprecation id: discourse.navigation-category-controller]

2 个赞

我提交了一个 PR :+1:

4 个赞