Разработка:modlibs/templater — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Экспорт документов)
(Структура папок)
Строка 8: Строка 8:
 
Структура расположения классов такова: модуле modlib лежат базовые классы для экспорта в различные форматы. Классы для конкретных задач будут лежать в тех модулях, из которых они вызываются.
 
Структура расположения классов такова: модуле modlib лежат базовые классы для экспорта в различные форматы. Классы для конкретных задач будут лежать в тех модулях, из которых они вызываются.
  
Пример: в модуле типа im, который называется sample при просмотре расписания необходимо экспортировать все уроки за месяц. Для этого структура папок im должна выглядеть следующим образом:
+
Пример: в модуле типа '''im''', который называется '''sample''' при просмотре расписания необходимо экспортировать все уроки за месяц. Для этого структура папок im должна выглядеть следующим образом:
  
 
[[Изображение:folders.jpg]]
 
[[Изображение:folders.jpg]]
Строка 18: Строка 18:
 
* '''mimetype''' - mime-тип документа, который будет использоваться при передаче документа по http и на основании которого выбирается расширение
 
* '''mimetype''' - mime-тип документа, который будет использоваться при передаче документа по http и на основании которого выбирается расширение
 
Эти файлы будут определять форматирование будущего документа. Их можно получить, распаковав обычный odt-файл (как zip-архив).
 
Эти файлы будут определять форматирование будущего документа. Их можно получить, распаковав обычный odt-файл (как zip-архив).
 +
 +
Структура папок в виде списка:
 +
    * папка плагина
 +
          * templater - в этой папке хранятся все шаблоны, принадлежащие этому плагину
 +
                * Код шаблона (например order)
 +
                      * init.php - необязательный файл, переопределяющий класс всего шаблона
 +
                      * Код формат шаблона (pdf, csv)
 +
                            * init.php - необязательный (для некоторых шаблонов) файл, переорпделяющий класс парсера шаблона
 +
                      * odf - пример шаблона odf (конкретный формат odt,ods задается уже внутри шаблона, поскольку все документы устроены одинаково)
 +
                            * init.php (необязательно)
 +
                            * content - папка с распакованным документов ODF
 +
                                  * content.xml - xml-документ с основным контентом, размеченный тегами шаблонизатора PEAR::QuickForm
 +
                                  * mimetype - mime-тип документа, который будет использоваться при передаче документа по http и на основании которого выбирается расширение

Версия 19:03, 13 марта 2009

Экспорт документов

Модуль реализуется как библиотека modlib, которая называется templater. Этот модуль будет реализовывать экспорт в xls, csv, odt, и другие форматы, если они понадобятся. Экспортироваться будут как таблицы, так и текст.


Структура папок

Структура расположения классов такова: модуле modlib лежат базовые классы для экспорта в различные форматы. Классы для конкретных задач будут лежать в тех модулях, из которых они вызываются.

Пример: в модуле типа im, который называется sample при просмотре расписания необходимо экспортировать все уроки за месяц. Для этого структура папок im должна выглядеть следующим образом:

Folders.jpg

Каждый синий квадрат обозначает папку, желтый — пояснение, серый — отдельный файл.

В каждой папке с типом экспорта может лежать файл init.php, который содержит класс, наследуемый от класса dof_modlib_templater и переопределяющий его метод format(). Именно он определяет, каким образом будет отформатирован окончательный файл. Для формата odt в папке с названием формата должна находится папка «content», содержащая следующие файлы:

  • content.xml - xml-документ с основным содержанием, размеченный тегами шаблонизатора PEAR::QuickForm
  • mimetype - mime-тип документа, который будет использоваться при передаче документа по http и на основании которого выбирается расширение

Эти файлы будут определять форматирование будущего документа. Их можно получить, распаковав обычный odt-файл (как zip-архив).

Структура папок в виде списка:

   * папка плагина
         * templater - в этой папке хранятся все шаблоны, принадлежащие этому плагину
               * Код шаблона (например order)
                     * init.php - необязательный файл, переопределяющий класс всего шаблона
                     * Код формат шаблона (pdf, csv)
                           * init.php - необязательный (для некоторых шаблонов) файл, переорпделяющий класс парсера шаблона
                     * odf - пример шаблона odf (конкретный формат odt,ods задается уже внутри шаблона, поскольку все документы устроены одинаково)
                           * init.php (необязательно)
                           * content - папка с распакованным документов ODF
                                 * content.xml - xml-документ с основным контентом, размеченный тегами шаблонизатора PEAR::QuickForm
                                 * mimetype - mime-тип документа, который будет использоваться при передаче документа по http и на основании которого выбирается расширение