Страница 1 из 1
Напомните
Добавлено: 06.05.2018 20:11
Vlad__
В function_download.php есть переменная $filename
Также в ней есть событие @event core.send_file_to_browser_before
Как мне из функции расширения по событию изменить переменную в вызывающей функции?
Т.е. чтобы @event core.send_file_to_browser_before отработал и изменил $filename в function_download.php
Ставил global $filename в расширении - не помогло.
Re: Напомните
Добавлено: 06.05.2018 20:24
LavIgor
Vlad__, путём изменения $event['filename']
.
Образец изменения переменных событий ищите в других расширениях.
Re: Напомните
Добавлено: 06.05.2018 20:28
Татьяна5
Код: Выделить всё
$filename = $event['filename'];
...
$event['filename'] = $filename;
Re: Напомните
Добавлено: 06.05.2018 20:39
Vlad__
LavIgor, спасибо!
но нарисовалась другая проблема. Выше события есть код:
Код: Выделить всё
filename = $phpbb_root_path . $upload_dir . '/' . $attachment['physical_filename'];
if (!@file_exists($filename))
{
send_status_line(404, 'Not Found');
trigger_error('ERROR_NO_ATTACHMENT');
}
Т.е. ниже после события все ок, но вот эта проверка if не дает отображать вложение по новому пути. Если ее закоментировать - все нормально. Жаль. Не хочется лезть в код. По-другому никак?
Чтобы было понятно, я пробую написать расширение, которое раскидывает вложения по подпапкам.
Re: Напомните
Добавлено: 06.05.2018 20:54
rxu
Вы лучше разберитесь, почему file_exists()
возвращает false
, возможно, с путями что-то не так.
Re: Напомните
Добавлено: 06.05.2018 20:57
Татьяна5
rxu, он написал, что путь по факту другой, вложение в подпапке
Re: Напомните
Добавлено: 06.05.2018 21:23
Vlad__
rxu писал(а): ↑06.05.2018 20:54
Вы лучше разберитесь, почему
file_exists()
возвращает
false
, возможно, с путями что-то не так.
Так правильно. Файл переносится в подпапку. Короче, мне кажется расширением это не оформишь. Правкой в коде - элементарно. Жаль.
Re: Напомните
Добавлено: 06.05.2018 21:24
rxu
Если оно есть в подпапке, то и результат проверки должен быть положительный.
Отправлено спустя 30 секунд:
Vlad__ писал(а): ↑06.05.2018 21:23
Файл переносится в подпапку.
Ну так вы и значение пути меняете тут, или что?
Отправлено спустя 1 минуту 55 секунд:
А, там события нет. Теперь понятно.
Отправлено спустя 2 минуты 48 секунд:
В
download/file.php
через событие
core.download_file_send_to_browser_before
меняйте значение
$config['upload_path']
на нужное, которое ниже передается в вызов функции
send_file_to_browser($attachment, $config['upload_path'], $display_cat);
.
Отправлено спустя 58 секунд:
Предыдущий кусок сообщения прочитайте.