Как грамотно сформировать и отдать клиенту zip-файл?

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

Аватар пользователя marassa marassa 5 сентября 2018 в 14:43

Сейчас пытаюсь сформировать kml-файл (проблем на пути пока не вижу), но потом захочется формировать kmz-файл (это обычный zip-архив с kml-файлом и примкнувшими к нему картинками).
Как это правильно делать на восьмом друпале? Будет вьюшка, генерящая на выходе kml-файл, как перед отдачей этого файла клиенту сохранить его куда-нибудь во временную директорию, свалить туда же нужные картинки, зазиповать и отдать клиенту получившийся архив? Какие тут хуки можно/нужно задействовать, есть ли готовые модули/библиотеки/наработки, которые можно взять за основу?

Лучший ответ

Аватар пользователя bumble bumble 5 сентября 2018 в 15:38
1

В идеале - писать вью-хендлер под задачу.
Как вариант - вхукиваться, по старинке.

В любом случае, писать сервисочек, в нем всю логику, а потом уже в "нужном месте" юзать.

Комментарии

Аватар пользователя marassa marassa 5 сентября 2018 в 15:34

Спасибо!
Придется уточнить вопрос: куда и как подключить код в друпале, чтобы он мог подхватить отрендеренную вьюшкой страницу, сделать из нее zip (это самая нехитрая часть задачи) и отдать клиенту?

Аватар пользователя bumble bumble 5 сентября 2018 в 15:38
1

В идеале - писать вью-хендлер под задачу.
Как вариант - вхукиваться, по старинке.

В любом случае, писать сервисочек, в нем всю логику, а потом уже в "нужном месте" юзать.

Аватар пользователя marassa marassa 5 сентября 2018 в 15:51

Во, hook_views_post_render вроде самое то!
Попробую вхукнуться для начала, а потом попробую сделать как следует, когда руки дойдут (=никогда...).
Спасибо!