Автор дополнения
Андрей Степаненко
Пакетов
19
Закачек
1 484
Обычно отвечает в течение суток
Автор дополнения
Пакетов
19
Закачек
1 484
Обычно отвечает в течение суток
Версия 1.0.8-pl
Дата выпуска 06.12.2018
Загрузки 7
Просмотры 885
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Приложение для экспорта любых таблиц MODX в форматы в XLS/XLSX/CSV с frontend и backend.

Демо frontend
http://demoexportusers.bustep.ru/catalog/

Демо backend
http://demoexportusers.bustep.ru/manager
Пользователь: manager
Пароль: manager

Готовые профили для экспорта данных
во время установки добавляются готовые профили.



В компоненте реализованы возможности других компонетов:

Возможности


  • Создание не ограниченного количества профилей для экспорта данных
  • Управление полями через удобный интерфейс для таких операций как: позиция поля, наименование колонки, импорт полей по классу с указание префикса, массовое удаление полей, назначение обработчика поля, создания собственных обработчиков
  • Импорт полей из указанного класса для обработки (к примеру если указать класс modUser и выбрать импорт полей то автоматически добавятся все поля с этим классом)
  • Настройка дополнительных параметров запроса в json формате: LeftJoin, InnerJoin, where, select, groupBy, having, limit, start, sort, dir
  • Экспорт в формате XSL/XSLX/CSV
  • Тестирование запросов
  • Настройка стилей для колонок Excel
  • Добавление заголовков с изменением цвета строки
  • Определение высоты строки и ширины колонки для Excel
  • Можно задать название закладки(tab) для Excel
  • Свое наименования экспортируемого файла
  • Возможность автоматического скачивания файла сразу после экспорта
  • Назначение своих источников файлов
  • Вывод ссылки после экспорта для скачивания файла (выводится в консоле если не был отмечен пункт Автоматически скачивать после экспорта)
  • Назначение своей папки для скачивания файла
  • Возможность назначить свой процессор для формирования данных. То есть если у вас уже написан процессор для вывода данных, то вы можете указать его в качестве скрипта для форматирования данных.
  • Добавление своих обработчиков значений для каждого поля (сейчас добавлены обработчики значений для полей:boolean, gender, date, groupusers)

Дополнительно
— Компонент использует библиотеку PhpExcel
— Настройки компонент используются как параметры по умолчанию для создания своих профилей.

Ограничения на выборку: время исполнения php. — если времени не хватает то можно разбить запрос на несколько частей указав в дополнительных параметрах: «start» с позиции на который прервалась выгрузка.

Основные настройки



Стили для колонок

Задаются в настройках профиля, вкладка Excel, в json формате. Где буква E как ключ массива
{"E":{"font":{"color":{"rgb":"0000FF"},"underline":"single"}}}
информация о библиотеке


Параметры запросов

в json формате с использование стандартов xpdoquery
Where: {"Data.new:=":1, "OR:template:=":2}
Leftjoin: {"User": {"class": "modUser","on": "modResource.createdby = User.id"}}


Управление полями для выгрузки

Поля для выгрузки представлены в виде таблицы.
Действия с полями: Добавить новое поле, Изменить поле, Сменить позицию через перетаскивание, удалить, назначить обработчик, задать название колонки, задать ширину для колонки в Excele, исключать из выгрузки.

Дополнительно можно импортировать поля по заданному классу с указанием префикса.

список полей


добавить поле


Импорт полей


Дополнительные настройки


Автоматически скачивать после экспорта

После экспорта и сохранения файла, пользователь будет автоматически перенаправлен на скачивание файла. Если отключить то пользователю вернется ссылка на скачивания.

Внимание!!! Скачивание доступно только пользователям авторизованным в контексте mgr

Удалять после скачивания

После скачивания файл будет автоматически удален. Работает при условии что скачка файла производится через контроллер
assets/components/exportusers/download.php

Путь к файлу c выгрузкой

По умолчанию назначена директория
core/components/exportusers/export/
Но вы можете назначить свою директорию сохранения.
К примеру можете открыть доступ на скачивания файла
assets/export/
после экспорта все файлы будут хранится в этой директории.

Для скачивания используется контроллер
assets/components/exportusers/download.php
В который необходимо передать имя файла и id процессора для того чтобы файл мог был скачан.

Процессоры

Во вкладке Настройки есть -> Дополнительные настройки и полей Процессор по умолчанию со значение
core/components/exportusers/processors/mgr/export/default
Это процессор по умолчанию куда передаются параметры дополнительных запросов для выборки данных.

Вы можете задать свои процессор для выборки данных. Таким способом вы можете выгружать данные из готовых процессоров. Так как формат отдачи данных принимаемый для выгрузки соответствует классу modObjectGetListProcessor

К пример для выгрузки заказов вы можете указать процессор:
core/components/minishop2/processors/mgr/orders/getlog

Обработчики полей

Возможность добавить свой обработчик для любого поля.
Для этого необходимо в папке
core/components/exportusers/custom/handlerfield/
создать файл и наименованием name.class.php
С содержимым:
<?php
class exportUsersHandlerFieldNameController extends exportUsersHandlerFieldController
{
    /* @inheritdoc */
    public function processValue($field, $oldvalue, $newvalue = '')
    {
        return $oldvalue;
    }

}

Где имя класса совпадает с именем обработчика exportUsersHandlerFieldNameController.

У компонента уже есть несколько обработчиков. На их примере можете создать и свой.

Описание профиля JSON
[{
  "namespace": "Основной класс компонента который требуется загрузить для подключения classKey",
  "namespace_path": "Путь до основного класса",
  "classKey": "Класс экспорта данных",
  "name": "Уникальное имя профиля",
  "tab": "Наименование таба для XLS и XLSX",
  "limit": "Лимит выгружаемых записей за 1 раз",
  "start": "Начать выгрузку с записи",
  "sort": "Поле для сортировки",
  "dir": "Сортировка данных ASC или DESC",
  "last_start_run": "дата запуска через crontab",
  "last_end_run": "дата завершения через crontab",
  "date_process": "Обрабатывать дату. Если нужно чтобы дата выводилась в unix формате",
  "date_format": "При форматировнии даты используются формат: d.m.Y H:i:s",
  "classExport": "Формат экспорта по умолчанию",
  "classExportList": "Перечисляются форматы для экспорта данных (xls,xlsx,csv)",
  "area": "Указывается ID js для регистрации компонента (требует дополнительных расширений)",
  "delimiter": "Разделитель для файла CSV",
  "source": "ИД источника файлов",
  "path": "Относительный путь от источника файлов",
  "dependent_profile": "Указывается наименование зависимого профиля(профиль может указыватся только без дополнительных зависимостей так как уровней может быть только 2)",
  "processor": "Процессор для подготовки данных для выгру",
  "filename": "Наименование файла для экспорта с возможностью добавить время и дату",
  "download": "Скачивать файл сразу после экспорта",
  "remove": "Удалять файл сразу поле скачивания",
  "line_grouping": "Групперуем записи из зависимых профилей добавляя дополнительный уровень структуры",
  "line_grouping_show": 'Показывать/Скрывать записи из зависимых профилей. Если ДА то будет раскрыт список с зависимыми записями',
  "head_process": "Если ДА то добавляет строку с заголовком в первую строку",
  "head_color": "Цвет строки с заголовком",
  "head_all": "Добавляет строку с названием колонок после каждой записи для документа XLS,XLSX",
  "head_freezepane": "Фиксирует первую строк в верхней части документа XLS,XLSX",
  "hide_colump": "Не выводить колонки в XLS,XLSX (например: id,weight)",
  "height": "Высота строки для XLS,XLSX",
  "width": "Ширина колонки для XLS,XLSX",
  "where": "Условия выборки",
  "select": "Дополнительные запросы",
  "leftjoin": "Дополнительные запросы",
  "innerjoin": "Дополнительные запросы",
  "style": "Стили для форматов XLS и XLSX",
  "json_process": "Если Да то приводит JSON данные в читайемый формат",
  "groupby": "Групперовка по полю",
  "having": "Having",
  "active": "Отключение",
}]

Описание для таблицы с полями
[{
  "fields": [
            {
                "field": "Имя поля из базы данных",
                "value": "Наименование колонки",
                "width": "Ширина для колонки",
                "handler": "Обработчик для поля",
                "alignment_horizontal": "Выравнивание по горизонтали",
                "alignment_vertical": "Выравнивание по вертикали",
                "rank": "Позиция колонок",
                "active": "Отключить поле"
            },
        ]
}]

Обсуждение в сообществе MODX.PRO



Видео инструкция

По расширению полей

для заказов


для пользователей

1.0.8-pl

  • Исправлена ошибка вызванная отсутствием назначения источника файлов
  • Исправлена ошибка с загрузкой лексикона кнопок для эксопрта

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