2012-05-15 74 views
1

我們正在開發網站(不幸在Joomla),我們需要限制訪問一些內容 - 文章(如果可能的話還有類別)。Joomla - 通過IP地址過濾內容(內聯網/外聯網)

理想情況下,即使在菜單中也應該隱藏此內容。這將是不夠的,如果我們能夠爲我們的條款規定三種訪問級別:

  • 公衆知名度
  • 只爲內部網
  • 僅外網

可見可見不幸的是我們沒有發現任何擴展這可以滿足我們的要求。 你有什麼建議,我們應該在哪裏實現這個IP過濾器(檢測IP地址並檢查它是來自內部網還是外部網是簡單的任務,但我們對Joomla API來說是相當新的)。

+0

認爲你最好的選擇可能是製作一個小的系統插件,你可以在你選擇的文章中嵌入。會建議看看Joomla Docs,看看插件是如何開發的。 – Lodder

+0

您的公共項目是否爲未登錄的用戶,您的公共項目是否爲登錄用戶的Intranet/Extranet? – Craig

+0

感謝您的建議,我會檢查Lodder,也許我們將能夠定製它以達到我們的需求。 Extranet和Intranet用戶可能沒有登錄並登錄用戶,但我們不希望用戶登錄到我們的網站。 – matussvk

回答

0

方法1將作爲@Lodder建議的System插件。它會選擇$_SERVER['REMOTE_ADDR'](檢查這個,就好像你在代理的後面,另一個變量可能需要檢查 - 比如X-FORWARDED-FOR或其他)。然後,您可以檢查它與文章或類別的條件 - 但尚未決定如何將特定文章標記爲「僅限Intranet」。如果「訪問被拒絕」,只是將訪問者重定向到主頁。所有文章默認都是開放的,並且可以是「內聯網」或「外聯網」的市場。

方法2將有兩個站點,而不是一個,共享相同的數據庫。他們可以使用單獨的模板文件,選擇不同的模塊位置來放置菜單。因此,系統中會有兩組菜單:一組用於內聯網,一組用於外聯網。當然,在這種情況下,任何具有正確鏈接的人都可以訪問任何文章,而不管他來自哪個IP。所以它只是一種裝飾。

+0

感謝您的建議,我將首先檢查Lodder,爲了管理目的,只有一個頁面會更簡單。但你的第二個建議的方法看起來相當簡單和有效,也許這將是一個理想的方式,如何實現這個非常快。 – matussvk