bezirovoviku / temgen
Template generator
dev-master
2016-01-03 21:47 UTC
Requires
- php: >=5.3.2
- cebe/markdown: ~1.0.1
Requires (Dev)
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-11-13 20:03:03 UTC
README
This is simple template system for document files. It uses text replacement, allows cyclical replacements and basic filters.
Installation
You can install this library using composer
composer require bezirovoviku/temgen
Requirements
LibreOffice (2+) - only for OPDF converter
PhantomJS - only for PPDF converter
Usage
First you will need to include the generator class
use Temgen\Generator;
then use generator class as follows
//Creates generator $generator = new Generator(); //Adds basic filters $generator->addFilters(); //Sets temporary folder used to store documents $generator->setTmp('/tmp'); //Sets path to template file $generator->setTemplate(new Document('template.html')); //Generates zip archive from specified data $generator->generateArchive(json_decode($this->data, true), 'archive.zip');
Creating custom filters
To create custom filter, you will need to implement \Temgen\Generator\Filter interace
class MyFilter implements \Temgen\Generator\Filter { /** * Returns tag used to identify filter * * @return string tag identifing filter */ public function getTag() { return 'myfilter'; } /** * Filter given arguments and return result * * @param \Temgen\Generator $generator generator calling this filter * @param array $context replacing context * @param array $arguments arguments passed to filter * @param string|null $input pipe input (if present) * @return string result */ public function filter($generator, $context, $arguments, $input) { return strtoupper($input); } }
then you will need to add instance of this filter to generator instance, like so:
$generator = new Generator(); $generator->addFilter(new MyFilter());
now, in this generator instance, filter MyFilter will be accessible by {myfilter} syntax
Exporting pdf
This requires libreoffice installed
//Creates docx generator $generator = new Generator\Docx(); //PDF converter $converter = new Converter\OPDF(); //Adds basic filters $generator->addFilters(); //Sets temporary folder used to store documents $generator->setTmp('/tmp'); //Sets path to template file $generator->setTemplate(new Document\Docx('template.docx')); //Generates zip archive from specified data, converts using converter $generator->generateArchive(json_decode($this->data, true), 'archive.zip', $converter);