位置插件 🌍

所以,这是我正在做的一些原型工作的抢先预览。

我计划为当前和近期的支持者(无论赞助等级如何)提供一段时间的早期访问权限。

未来,我将为个人支持者/小型社区提供每月 7 美元的新功能早期访问权限,为企业用户则提供每月 40 美元的早期访问权限。

5 个赞

面向当前赞助者的早期访问首批邀请刚刚发出。我很快会将此范围扩大至过往赞助者,该访问权限将保留一段时间,之后将需要维持最低级别的赞助。

赞助者名单每日审核,因此如果您希望使用 Locations 的最新功能,或有意支持我的工作,请考虑赞助我

功能将视具体情况并经过一段延迟后逐步迁移至公共仓库……

3 个赞

我刚刚完成了强大的“自动用户位置定位”功能的实现,这涉及正确配置 Maxmind。这是在 newInstance 上进行的。

新的 app.yml 简洁而优雅,但不再包含 Maxmind 环境变量的注释。

如果希望让不太自信的自托管系统管理员更容易上手,我们可能需要一个清晰的说明指南,并引导他们查看以下主题:


另外,一个小小的用户体验问题

侧边栏出现了一个我不需要的地图链接,而且没有任何设置可以控制它。我通过以下方式将其隐藏:

// 隐藏用户地图链接
.sidebar-sections li[data-list-item-name="users map"] {
    display: none;
}

也许现在是时候弃用这个链接以及(由设置控制的)主题地图链接了?如果管理员希望显示它们,现在可以通过标准 UI 轻松添加。

1 个赞

管理员添加到侧边栏的链接目前无法翻译。因此,对于用户可能偏好不同界面语言的社区,该插件在将链接添加到侧边栏时提供了多语言翻译和显示选项。

2 个赞

我注意到无法在类别中启用主题的位置定位功能。

系统没有提供保存修改的选项🤔(我使用的是 2026.5.0-latest 版本)

1 个赞

这应该已经修复了。

该修复已部署到仓库的早期访问版和公开版,同时包含一系列兼容性修复。

作为这项工作的一部分,我拉大了两个版本之间的差异。

早期访问版面向具备足够权限的赞助者开放,包含以下当前公开版 Locations 所不具备的功能:

标题 描述
用户地图地球仪 为用户地图添加交互式 3D 地球视图,支持按位置放置头像、拖拽/触摸旋转、缩放、重置、搜索聚焦、用户卡片点击,以及始终启用的凹凸贴图效果。
地球仪屏保 可选的实验性空闲屏保,在标题下方显示带有用户头像的旋转 3D 地球。
增强的用户地图筛选器 在用户地图上添加结果数量限制、搜索类型、搜索词和分组筛选的控制项。
附近话题筛选器 添加基于当前用户位置距离的实验性附近话题列表筛选器。
基于 IP 的用户位置查询 自动从 IP 数据估算并存储用户位置,支持可配置的触发模式、粒度、冷却时间、GeoNames 解析、已存在时跳过行为以及调试日志。

这意味着维护中的公开版功能略有缩减。很抱歉这是必要的,以确保我的赞助者获得足够的价值。

如果您希望使用这些额外功能,请考虑赞助我,并确保选择包含早期访问权限的月度套餐。在合适的赞助层级下,您将在 24 小时内获得早期访问版的访问权限。

3 个赞

感谢 @merefield 的快速响应 :+1:

1 个赞

我刚刚在最新版本的 Discourse 中偶然发现了一条弃用通知:

[PLUGIN discourse-locations] 弃用通知:在 model:composer 上使用 api.modifyClass 已被弃用。请改用 addModelFieldaddModelAccessor/addModelGetter/addModelSetteraddModelMethodaddModelSavePropertyaddModelCallback API。[自 Discourse 2026.8 起弃用] [弃用 ID:discourse.modify-class-model]

我试着请教了我的“想象中的朋友”,但这似乎超出了我那点粗浅的编程技能…… :see_no_evil_monkey:

1 个赞

仅供参考:

[管理员通知] 插件 'discourse-locations' 包含需要更新的代码。(id:discourse.modify-class-model)

我也遇到了这个问题:

此问题已通过 @cvx 的贡献得到解决 :folded_hands:(实际上是在 5 天前!:sweat_smile:

最近的 PR

PR 主要目的 作者
#168 更新 Ruby 和 JavaScript 依赖项以解决安全警报。 angusmcleod
#169 使用现代模型扩展 API 替换已弃用的 Composer modifyClass 用法。 cvx
#171 扩展 Composer location-default 测试,并修复在切换类别时的位置同步问题。 merefield
#172 将插件代码检查和开发工具与当前的 Discourse 插件骨架同步。 merefield
#173 将 Ruby json gem 从 2.21.1 升级到 2.21.2,以修复一个 use-after-free 漏洞。 dependabot
#174 恢复位置搜索的错误处理,防止空的地理编码请求,并改进地图安全措施和回归测试覆盖率。 merefield

感谢 @angus@cvx 的贡献。

此更新已应用于免费插件和仅限赞助者的抢先体验插件。

此外,负责允许您通过 Chatbot 讨论用户位置的代码已移至 Locations 抢先体验版,以进一步增强仅限赞助者仓库的额外功能。

4 个赞