我们正在开发网站(不幸的是在 Joomla 上),我们需要限制对某些内容的访问 - 文章(如果可能,还包括类别)。
理想情况下,即使从菜单中也应该隐藏此内容。如果我们能够为我们的文章指定三个访问级别就足够了:
- 公众知名度
- 仅对 Intranet 可见
- 仅对外网可见
不幸的是,我们没有找到可以满足我们要求的扩展。你有什么建议,我们应该在哪里实现这个 IP 过滤器(检测 IP 地址并检查它是来自 Intranet 还是 Extranet 是简单的任务,但我们对 Joomla API 还是很陌生)。
我们正在开发网站(不幸的是在 Joomla 上),我们需要限制对某些内容的访问 - 文章(如果可能,还包括类别)。
理想情况下,即使从菜单中也应该隐藏此内容。如果我们能够为我们的文章指定三个访问级别就足够了:
不幸的是,我们没有找到可以满足我们要求的扩展。你有什么建议,我们应该在哪里实现这个 IP 过滤器(检测 IP 地址并检查它是来自 Intranet 还是 Extranet 是简单的任务,但我们对 Joomla API 还是很陌生)。
正如@Lodder 建议的那样,方法1将是一个系统插件。它会选择$_SERVER['REMOTE_ADDR'](检查这个,就好像你在一个代理后面,另一个变量可能需要检查 - 比如X-FORWARDED-FOR或另一个)。然后,您可以检查它与为文章或类别设置的条件——尚未决定如何将特定文章标记为“仅限 Intranet”。在“拒绝访问”的情况下,只需将访问者重定向到主页。默认情况下,所有文章都对所有人开放,并且可以是“内联网”或“外联网”市场。
方法 2是拥有两个站点而不是一个站点,共享同一个数据库。他们可以使用单独的模板文件,选择不同的模块位置来放置菜单。因此,系统中将有两组菜单:一组用于 Intranet,一组用于 Extranet。当然,在这种情况下,任何拥有正确链接的人都可以访问任何文章,无论他来自什么 IP。所以它只是一个装饰品。