【问题标题】:Joomla - filter content by IP addresses (intranet / extranet)Joomla - 按 IP 地址过滤内容(内联网/外联网)
【发布时间】:2012-05-15 19:09:13
【问题描述】:

我们正在开发网站(不幸的是在 Joomla 上),我们需要限制对某些内容的访问 - 文章(如果可能,还包括类别)。

理想情况下,即使从菜单中也应隐藏此内容。如果我们能够为我们的文章指定三个访问级别就足够了:

  • 公众可见度
  • 仅对 Intranet 可见
  • 仅对外网可见

很遗憾,我们没有找到可以满足我们要求的扩展程序。 你有什么建议,我们应该在哪里实现这个 IP 过滤器(检测 IP 地址并检查它是来自 Intranet 还是 Extranet 是简单的任务,但我们对 Joomla API 还是很陌生)。

【问题讨论】:

  • 认为您最好的选择可能是制作一个可以嵌入到您选择的文章中的小型系统插件。建议查看 Joomla Docs 以了解插件是如何开发的。
  • 您的公共项目对未登录的用户是否可见,对于已登录的用户是否对内网/外网可见?
  • 感谢您的建议,我会检查一下 Lodder,也许我们可以对其进行定制以满足我们的需求。 Extranet 和 Intranet 用户可以处于未登录和已登录用户的角色,但我们不希望用户登录到我们的站点。
  • 对不起 Lodder,我的意思是我会检查一些扩展。看来我们肯定需要了解 joomla 插件开发。

标签: joomla ip content-management


【解决方案1】:

方法 1 将是一个系统插件,正如@Lodder 所建议的那样。它会选择$_SERVER['REMOTE_ADDR'](检查这个,就好像你在代理后面,另一个变量可能需要检查——比如X-FORWARDED-FOR或其他)。然后,您可以检查它与为文章或类别设置的条件——尚未决定如何将特定文章标记为“仅限 Intranet”。在“拒绝访问”的情况下,只需将访问者重定向到主页。默认情况下,所有文章都会对所有人开放,并且可以是“内网”或“外网”市场。

方法 2 将有两个站点而不是一个站点,共享同一个数据库。他们可以使用单独的模板文件,选择不同的模块位置来放置菜单。因此,系统中将有两组菜单:一组用于 Intranet,一组用于 Extranet。当然,在这种情况下,任何拥有正确链接的人都可以访问任何文章,无论他来自什么 IP。所以它只是一个装饰品。

【讨论】:

  • 感谢您的建议,我将首先检查 Lodder,出于管理目的,只有一页会更简单。但是您建议的第二种方法看起来非常简单有效,也许这将是如何快速实现这一点的理想方法。
猜你喜欢
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多