Locations 插件 🌍

此插件仍未获得资金支持,因此其未来有些不确定,但目前我已添加以下内容:

@viddekla 这应该可以解决您的问题

如果您认为 Locations 很棒,并且我在这里做得很好,您可以 给我买杯咖啡 :coffee:

4 个赞

如果禁用位置输入字段,我应该在位置选择器中添加新的快速查找当前位置目标按钮,它也适用于主题位置。:+1:

只需要对样式进行一些调整……

3 个赞

重要的错误修复,请更新:

(仅影响自本周末补丁以来输入的用户位置,只需重新输入即可)

3 个赞

干得好!我在用户名下方看到了一个额外的损坏的旗帜图标,知道为什么吗?

2 个赞

这让我想起这可能来自 https://meta.discourse.org/t/locations-plugin/69742。

4 个赞

是的,您不再需要同时运行两者。在 Locations 插件 中,确定国家/地区代码非常简单,那为什么不提供一个与之匹配的旗帜呢?

3 个赞

你应该将国家代码小写 @merefield

2 个赞

Locations 中开箱即用的国家/地区代码是小写的。这可能与第三方数据提供商有关。

如果有人需要更仔细地查看,我提供付费支持。

这就是问题所在,我手动将其更改为小写后加载了。我尝试了 Mapquest 和 Mapbox,结果相同。我私信你,Rob。

2 个赞

您好,感谢您提供的这个很棒的插件

我正尝试在地图上显示我的主题的名称,因为我只有位置信息

是否有需要激活的参数?

谢谢

1 个赞

一些更新:

@Renato 修复了“类别设置”中的一个问题:

我们收到了一个关于俄语的贡献,谢谢!

最后,我添加了一个实验性的新主题列表过滤器,称为“附近”:

它会列出距离登录用户提供的地点 x 公里(设置)范围内的所有主题。

@Barney_Lodge 这是受您的用例的启发,并占用了我大部分的周日时间 :slight_smile:

这也修复了模态框中主题的内联位置选择器。

7 个赞

哦,太棒了!!!我爱上了 Discourse!!

此致

巴尼·洛奇

3 个赞

在过去但最近的发布中,UserLocation 填充逻辑存在一个错误。该错误现已修复,但可能会对某些数据产生影响。

您可以通过在 rails 控制台中运行以下命令来确定您是否遇到了此问题:

array_for_fix = Locations::UserLocation.where(state: "state").pluck(:user_id)

如果该数组不为空,只需运行以下命令:

array_for_fix.each do |id|
  Locations::UserLocationProcess.upsert(id)`
end

修复此问题的另一种方法是手动重新输入用户位置,因此基本上未来的用户位置编辑将简单地覆盖错误数据。

对于造成的不便深表歉意。

如果有人想编写迁移,欢迎提交 PR。

5 个赞

是否可以实现此功能:

在用户发布帖子或回复后,根据其当前 IP 地址自动检测位置,并将其显示在帖子/回复中头像下方——而不是要求用户手动选择或在其个人资料中设置。

我愿意为此提供付费支持。

就像知乎(ZHIHU)一样。

1 个赞

对用户位置进行非自愿更新,对于这个插件来说将是一个巨大的转变,因为到目前为止,它一直依赖于自愿提交,因此需要用户个人的认同。

但我能理解这样做的理由。

每个帖子已经有一个关于用户位置的“帖子标签”(Post label)。所以我想这部分已经涵盖了。

我认为,只要满足以下条件,在发帖过程中自动更新用户位置作为一个站点选项是可行且合理的:

  • 站点更新其条款和条件(T&C’s)
  • 位置信息足够近似,也许是到最近的城市?对我来说,追踪人们到街道级别可能不会让用户喜欢这个网站!也许您希望有一个选项可以将粒度设置为城市、省份(如果数据允许)或国家/地区。我对其他管理员对此的看法很感兴趣。

我将很乐意考虑赞助,以将后端自动化作为站点选项添加。我将通过私信与您联系,看看我们是否能达成一致。

3 个赞

精确到城市就可以了。如果精确到街道那太可怕了

3 个赞

将粒度选项作为网站默认设置将是极好的。用户更改粒度/选择退出的能力也是如此。

我运营的两个全国性论坛非常适合省粒度。一个本地论坛非常适合郊区粒度。

我很容易想象使用所有选项的网站。

3 个赞

谢谢,我运行了这些命令,发现了一些东西:

discourse(prod)=> array_for_fix = Locations::UserLocation.where(state: "state").pluck(:user_id)
=> [175, 12, 578, 1347, 1355, 1, 590]
discourse(prod)* array_for_fix.each do |id|
discourse(prod)*   Locations::UserLocationProcess.upsert(id)
discourse(prod)=> end
=> [175, 12, 578, 1347, 1355, 1, 590]

然后我再次运行了第一个命令,它仍然找到了 590,当我运行第二个命令时,它也没有消失:

discourse(prod)=> array_for_fix = Locations::UserLocation.where(state: "state").pluck(:user_id)
=> [590]
discourse(prod)* array_for_fix.each do |id|
discourse(prod)*   Locations::UserLocationProcess.upsert(id)
discourse(prod)=> end
=> [590]

我该怎么办?:thinking:

非常高兴地宣布,@祁同伟@nathank 都已出资赞助 :money_bag: 通过 IP 设置用户位置的工作。

这项工作在一段时间内将是实验性的,但我也很高兴地告诉您,拉取请求 (PR) 已经在:

这不是一个简单的查找,我们做得更多——这将允许您为所有自动确定的位置设置特定的粒度(例如城市),以保护用户隐私同时增加社区信任。

(是的,VPN 会带来一些问题,恐怕我们很难克服这一点。)

一旦我满意它运行得足够好,我就会将其合并。

无论如何,它都受功能标志保护。

我会随时向您通报最新情况,但令人兴奋的是,这是 Locations 近期最好的新增功能之一。

再次感谢 @ @祁同伟@nathank!!

是的,还将有一个 rake 任务来为所有现有用户执行此操作……

10 个赞

是否有可能通过插件在 Discourse 的后端显示通知,以应对这种情况?
我很容易错过您的帖子 :slight_smile:

1 个赞