我有一個drupal模塊,需要網絡上的其他文件。模塊是否可以在激活時下載這些文件?模塊可以下載文件嗎?
回答
的Drupal的方式是使用File Interface和安裝掛鉤:
hook_enable()
。hook_install()
:安裝模塊時觸發。hook_requirements()
:通知用戶是否滿足模塊的要求。
如果該文件只需要下載一次,它可能會更好使用hook_install()
和使用hook_requirements()
提供有關它是否工作反饋。如果每次模塊啓用時都需要新數據,請選擇hook_enable()
。
在下載文件方面,使用任何你想要的PHP方法。如果您需要使用外部庫,請將其放入模塊目錄中並使用include
和/或require
,或考慮使用Libraries API,該目標旨在爲第三方腳本和庫提供中央存儲庫。
一旦你有文件數據,你會使用文件接口。模塊可以訪問文件站點的目錄(在站點配置→文件系統中定義)。您首先使用file_create_path()
在其下創建自己的目錄,然後使用file_save_data()
將數據保存到它。查看其他文件界面API documentation以瞭解您可以執行的其他操作。
然後,保存後,只需使用file_check_location()
檢查數據是否可用於文件系統,並使用file_get_contents()
或include/require
訪問它。
不,正如我所說的,您只能對文件夾具有寫入權限。如果你想確保圖書館的依賴性,Drupal的方式是要求用戶下載庫並在hook_requirements中檢查它。但是,即使在你的用例中,我上面描述的仍然可以工作:如果你可以下載和訪問這個庫,它保存在哪裏有什麼關係? – 2010-08-26 04:36:47
我建議使用Libraries API作爲在模塊文件夾中粘貼下載庫(如果需要獲取想要下載的文件)的替代方案,因爲它通常不贊成在Drupal模塊中封裝外部庫(並且如果您想要發佈到drupal.org)。 – 2010-08-26 04:37:37
如果您計劃將其發佈到drupal.org,請不要執行任何操作(除了實現hook_requirements之外)。要求用戶在自述文件中下載所需的庫:遵循約定比在未經用戶同意的情況下嘗試下載文件更重要。如果這是一個內部模塊,您只需要下載到文件並將其包含在內以供使用。爲了能夠將它們包含在模塊中使用,並不是要求庫位於'sites/all/libraries'或模塊的文件夾中,而且它還具有將模塊文件夾保持原始狀態的額外好處。 – 2010-08-26 05:05:20
假設PHP配置爲允許遠程文件訪問(請參閱allow_url_fopen
)並且模塊目錄具有寫權限,那麼可以下載hook_enable
或者可能更好的hook_install
所需的任何文件。當啓用一個模塊火災:
- 1. 我可以下載Nodejs模塊作爲javascript文件嗎?
- 2. 你可以從.htaccess文件加載apache模塊嗎?
- 3. 是否可以使用dryscape Python模塊下載圖像文件?
- 4. 我可以從哪裏下載apache模塊二進制文件?
- 5. 可以mozswing下載文件
- 6. Codova,我可以下載一個文件到(root)/下載文件夾嗎?
- 7. 我可以設置文件被下載到的文件名嗎?
- 8. 根據條件語句,可以加載列表perl模塊嗎?
- 9. 使用ASP.NET .ashx模塊下載文件
- 10. 以塊形式下載文件
- 11. Petrelrel可以在測試模式下加載插件嗎?
- 12. 我可以從perl中的模塊調用.pl文件嗎?
- 13. 可以在Inno-Setup中使用MSM(合併模塊)文件嗎?
- 14. 模塊可以有自己的配置文件嗎?
- 15. 我可以爲本地JavaScript模塊創建定義文件嗎?
- 16. 我可以讓pytest doctest模塊忽略一個文件嗎?
- 17. 果園模塊可以放在單獨的文件夾中嗎?
- 18. ANTLR語法文件可以模塊化嗎?
- 19. python fastparquet模塊可以讀取壓縮的parquet文件嗎?
- 20. 模塊可以在多個文件中定義嗎?
- 21. 多模塊maven原型可以設置爲可選模塊嗎?
- 22. 我可以通過下載鏈接從網站上下載文件嗎? Visual Basic
- 23. 我可以在不卸載的情況下更新Joomla模塊嗎?
- 24. iPhone應用程序可以自動下載XML文件嗎?
- 25. 我可以阻止下載JavaScript文件嗎?
- 26. 可以將Apache Maven設置爲從ftp下載jar文件嗎?
- 27. 我可以使用RestKit下載並解析大文件嗎?
- 28. 有人可以從public_html下載我的文件嗎?
- 29. 你可以通過Apache下載文件嗎?
- 30. 我可以使用HTML'download'屬性提示下載文件名嗎?
模塊可以下載文件,但它不具有對其安裝目錄的寫入權限。 – kiamlaluno 2010-08-26 00:52:08