Функция file_scan_directory

Главные вкладки

Аватар пользователя WhiteFang WhiteFang 2 декабря 2013 в 18:36

Доброго времени суток. Объясните, пожалуйста, популярно (желательно на примере) как работать с функцией file_scan_directory. Нужно вывести в друпал содержимое папки (любой, на самом деле, но для примера /var/www/). Никак не могу понять, как сделать. Знаю, что нужно прописывать функцию в файле .js. А вот что именно нужно прописать в файле, чтобы вывести содержимое?

Комментарии

Аватар пользователя bsyomov bsyomov 2 декабря 2013 в 21:20

Понимаете не правильно. Smile К JS эта функция отношения не имеет. Она вызывается в каком-нибудь вашем модуле, или на худой конец теме, её вывод обрабатывается необходимым образом, и отдаётся клиенту.
Более подробно можно описать, если понимать, где и зачем вам нужно выводить список папок.

Аватар пользователя WhiteFang WhiteFang 2 декабря 2013 в 21:32

Вот в том-то и дело) У меня есть свой модуль, к нему подключен файл .js. И через этот модуль нужно вывести содержимое папки.
Вот полное описание задания для полноты картины.

1. Установить Ubuntu Server на виртуалке (без графической оболочки)
2. Установить на этом сервере систему Drupal 7
3. На Drupal 7 сделать Тестовую систему.

Требование к тестовой системе:

Описание задачи в двух словах: сделать веб-приложение, которое будет по требованию пользователя в браузере выполнять консольные команды на сервере и выводить результат в браузер.

Детали:
1. Сделать пару папок на сервере в домашней директории и по паре произвольных текстовых файлов в этих папках (чтобы в них что-то было).
2. В системе друпал надо дать возможность заводить документы, в которых можно в определенном поле указать путь к созданным на шаге 1 папкам.
3. Сделать страницу, которая будет выводить все созданные на шаге 2 документы. Напротив каждого документа должна быть кнопка. По нажатию на кнопку нужно показывать пользователю содержимое соответствующей папки (фактически, должен показываться результат выполнения команды ls в этой папке).

Я создал свой тип документов, создал view, в этой view есть поле где находится "кнопка" "Показать файлы". Но это не кнопка, а просто текст. И вот к этому полю нужно привязать выполнение программы.

Аватар пользователя WhiteFang WhiteFang 2 декабря 2013 в 21:41

Я на форуме второй день, так что извините, если чего не так.
Просто вопрос уже малость в другом. То, что там посоветовали - оказалось немного не тем. Первый ответ - подходит, но я не совсем понял. Второй - работает, но через это, как оказалось, выполнять нельзя. Требования такие. Именно поэтому и создал еще одну тему

Аватар пользователя WhiteFang WhiteFang 2 декабря 2013 в 23:45

в общем, дело такое:
вот так описываю функцию, которая должна выводить файлы (описываю в .module)
function process () {
$.ajax({
type: 'PUT',
url: Drupal.settings.basePath + 'views-field-field-path-to-directory',
data: {'field_datasource': val},
success: function(response){
files = array();
$files = array_merge(file_scan_directory($val));
return $files;
}
});
}

вот так вызываю ее при клике в файле .js
$('views-field-nothing').click(function() {
file_scan_directory($views-field-field-path-to-directory)
}
но бесполезно. сайт даже не грузится. кто-нибудь может подсказать, что я делаю не так?

Аватар пользователя deb deb 3 декабря 2013 в 5:39

"WhiteFang" wrote:
что я делаю не так?

Вообще всё. Вы даже не понимаете различия между javascript и php.

Автор, а кто вам дал это задание? Если это тестовое для трудоустройства, думаю вам не стоит тратить время. А если в университете - то они же чему-то вас там учили, прежде чем дать задание? Перечитайте конспекты, чтоли.