790
10.26
11.29
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
[ExportPage] — Компонент реализует возможность экспорта ресурсов, создание и вывода файлов экспорта по запросу.

пролог
На момент создания пакет работает только с файлами pdf. (mpdf)
Общие настройки
— основные

Основные настройки файлов экспорта.

— права доступа

Настройка прав доступа к файлам экспорта.
— Файлы экспорта. Панель управления файлами экспорта. Можно просмотреть, создать, удалить, обновить файлы экспорта. Доступна сортировка, поиск и управление свойствами файлов экспорта.

— Наборы экспорта. Панель управления набором свойств файла экспорта. Можно задать тип, формат, ориентацию, оформление файла и тд.

Сниппеты ExportPage
— exp.File.List Сниппет для вывода списка файлов экспорта.
Параметры сниппета:

Помимо плейсходеров таблицы файлов, доступны еще специальные плейсходеры-ссылки:
Если в предыдущем сниппете мы выводили список существующих файлов и ссылки на их просмотр/загрузку, то с помощью этого сниппета мы можем сформировать ссылку на файл, но как такового файла может еще и не быть.
Параметры сниппета:
Пользователь перейдя по ссылке запустит процес создания файла и получит файл как если бы он уже существовал на момент запроса.
Файлы экспорта каталогов товара
Все бы ничего, но генерация файла занимает какое то время и в случае если ресурс для генерации представляет собой каталог товара, процесс создания может затянуться. Для этих целей я написал простенький скрипт для запуска из под cron.
Выборка ресурсов идет через pdoResources — доступны все знакомые вам параметры, и я думаю вам не составит труда добавить необходимые условия в пример скрипта.

пролог
На момент создания пакет работает только с файлами pdf. (mpdf)
Общие настройки
— основные

Основные настройки файлов экспорта.
- page_orientation — ориентация страницы
- page_format — формат страницы
- page_margins — отступы страницы
- creator — создатель документа
- author — автор документа
- font — шрифт документа
- font_size — размер шрифта документа
- prepare_css — подготовить css
- prepare_img — подготовить изображения
- show_log — показать лог
- source_default — источник файлов
- date_format — формат даты

- Настройки по легкой кастомизации панели файлов экспорта.
- disable_for_resources — Отключить в ресурсах
- disable_for_templates — Отключить у шаблонов
- disable_combo_resources — Отключить выбор ресурса
- disable_combo_users — Отключить выбор пользователя
- disable_field_search — Отключить поле поиска
- disable_combo_source — Отключить выбор источника файлов
- disable_combo_type — Отключить выбор типа файла
— права доступа

Настройка прав доступа к файлам экспорта.
- permit_snippet — Специальный сниппет для проверки прав доступа к файлу
- permit_download — Разрешает режим загрузки файла
- permit_direct — Разрешает режим прямой ссылки на файл
- permit_hidden — Разрешает режим скрытой ссылки на файл
- permit_auto_creation_templates — Список id шаблонов через запятую, для которых разрешено автосоздание документов экспорта
- permit_auto_remove — Разрешает удаление файлов при удалении ресурсов родителей. Файлы на блокировке не удаляются
— Файлы экспорта. Панель управления файлами экспорта. Можно просмотреть, создать, удалить, обновить файлы экспорта. Доступна сортировка, поиск и управление свойствами файлов экспорта.

— Наборы экспорта. Панель управления набором свойств файла экспорта. Можно задать тип, формат, ориентацию, оформление файла и тд.

Сниппеты ExportPage
— exp.File.List Сниппет для вывода списка файлов экспорта.
Параметры сниппета:
- tplRow — Имя чанка для оформления
- tplOuter — Обёртка для вывода результатов работы сниппета
- returnIds — Возвращать строку с id файлов, вместо оформленных чанков
- resource — Идентификатор ресурса
- users — Список id пользователей, через запятую
- where — Массив дополнительных параметров выборки, закодированный в JSON
- showInactive — Показывать неактивные файлы
- sortby — Любое поле для сортировки
- sortdir — Направление сортировки: по убыванию или возрастанию
- limit — Ограничение количества результатов выборки
- showLog — Показывать дополнительную информацию о работе сниппета

Помимо плейсходеров таблицы файлов, доступны еще специальные плейсходеры-ссылки:
- uri_download — ссылка на загрузку файла
- uri_direct — прямая ссылка на файл в источнике файлов
- uri_hidden — скрытая ссылка на файл
Если в предыдущем сниппете мы выводили список существующих файлов и ссылки на их просмотр/загрузку, то с помощью этого сниппета мы можем сформировать ссылку на файл, но как такового файла может еще и не быть.
Параметры сниппета:
- tpl — Имя чанка для оформления
- resource — Идентификатор ресурса
- set — Идентификатор набора
- mode — Режим отдачи файла
- type — Тип файла
- action — Строка запроса
- download — сразу загрузка файла
- direct — открыть файл по прямой ссылке
- hidden — открыть файл по скрытой ссылке
- url — получить ссылку на файл
- json — получить файл в json
Пользователь перейдя по ссылке запустит процес создания файла и получит файл как если бы он уже существовал на момент запроса.
Файлы экспорта каталогов товара
Все бы ничего, но генерация файла занимает какое то время и в случае если ресурс для генерации представляет собой каталог товара, процесс создания может затянуться. Для этих целей я написал простенький скрипт для запуска из под cron.
<?php
define('MODX_API_MODE', true);
//require_once dirname(dirname(__FILE__)) . '/core/config/config.inc.php';
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config/config.inc.php';
require_once MODX_BASE_PATH . 'index.php';
// error
$modx->getService('error', 'error.modError');
$modx->getRequest();
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
$modx->error->message = null;
/** @var array $scriptProperties */
$scriptProperties = array();
$scriptProperties['returnIds'] = 1;
$scriptProperties['showLog'] = 1;
$scriptProperties['fastMode'] = 1;
$scriptProperties['limit'] = 10;
$scriptProperties['depth'] = 10;
$scriptProperties['parents'] = 0;
$scriptProperties['where'] = '{"class_key:IN":["msProduct","msCategory"]}';
// @var array $params */
$params = array();
$params['mode'] = 'url';
$params['sets'] = 1;
/** @var exportpage $exportpage */
if (!$exportpage = $modx->getService('exportpage', 'exportpage', $modx->getOption('exportpage_core_path', null, $modx->getOption('core_path') . 'components/exportpage/') . 'model/exportpage/', $scriptProperties)) {
return 'Could not load exportpage class!';
}
$exportpage->initialize($modx->context->key, $scriptProperties);
/** @var modSnippet $snippet */
if ($snippet = $modx->getObject('modSnippet', array('name' => 'pdoResources'))) {
$snippet->_cacheable = false;
$snippet->_processed = false;
$ids = $snippet->process($scriptProperties);
}
if (!empty($ids)) {
$ids = explode(',', $ids);
foreach($ids as $id) {
$params['id'] = $id;
if (!$response = $modx->runProcessor('web/files/request',
$params,
array(
'processors_path' => $exportpage->config['processorsPath'],
))
) {
$exportpage->printLog('[ExportPage] Could not create file:');
$exportpage->printLog($params);
}
$modx->error->reset();
$exportpage->printLog('[ExportPage] Generate for id='.$params['id']);
}
}Выборка ресурсов идет через pdoResources — доступны все знакомые вам параметры, и я думаю вам не составит труда добавить необходимые условия в пример скрипта.
1.1.2-beta (03.10.2018)
- Add "mpdfConfig" setting
1.1.1-beta (15.09.2018)
- Updated "mpdf" version 7.1.4
1.1.0-beta (20.09.2017)
- Add "dependence" validator
- Add "vendors" resolver
- Updated "mpdf" version 6.1.4
1.0.6-beta (28.10.2016)
- Fix "cache" file
1.0.5-beta (28.10.2016)
- Add "real" parameter
1.0.4-beta (09.02.2016)
- Reformat code
- Fix "chunk" getlist.class.php
1.0.3-beta (12.08.2015)
- fix file creation request
1.0.2-beta (07.08.2015)
- fix download file for manager



Последние обсуждения в сообществе MODX.pro