Может ли модуль загружать файлы? - PullRequest
3 голосов
/ 26 августа 2010

У меня есть модуль drupal, для которого требуются другие файлы из Интернета.Может ли модуль загружать эти файлы при активации?

Ответы [ 2 ]

3 голосов
/ 26 августа 2010

Drupal Way предназначен для использования Файлового интерфейса и установочных хуков:

  • hook_enable(): срабатываеткогда модуль включен.
  • hook_install(): срабатывает при установке модуля.
  • hook_requirements(): информирует пользователя,требования к модулю соблюдены.

Если файл необходимо загрузить только один раз, вероятно, лучше использовать hook_install() и hook_requirements(), чтобы сообщить о его работоспособности.Если вам нужны свежие данные каждый раз, когда модуль включен, выберите hook_enable().

С точки зрения загрузки файлов, используйте любой метод PHP, который вы хотите.Если вам нужно использовать внешнюю библиотеку, либо поместите ее в каталог вашего модуля и используйте include и / или require, либо рассмотрите возможность использования Библиотеки API , которая предназначена для предоставления центрального хранилища для третьей-партийные скрипты и библиотеки.

Получив данные файла, вы будете использовать Файловый интерфейс .Модули имеют доступ к каталогу files сайта (определен в Конфигурация сайта -> Файловая система ).Сначала вы создадите в нем собственный каталог, используя file_create_path(), а затем сохраните данные в нем, используя file_save_data().Ознакомьтесь с остальной частью Файлового интерфейса Документация API для других вещей, которые вы можете сделать.

Затем, после сохранения, просто проверьте, доступны ли данные в файловой системе, используя file_check_location() и доступ к нему с помощью file_get_contents() или include/require.

2 голосов
/ 26 августа 2010

Предполагая, что PHP настроен на разрешение удаленного доступа к файлам (см. allow_url_fopen), а каталог модуля имеет разрешения на запись, вы можете загрузить любые необходимые файлы в hook_enable или,вероятно, даже лучше, hook_install.

...