On gists
Nette 2.4 - custom filters - class
Nette
Nette-Latte
SotioFilters.php
Raw
#
<?php
namespace App\FrontModule\Filters;
use Nette;
use Andweb;
class SotioFilter
{
/**
* Andweb\Localization\ITranslator
*/
private $translator;
public function __construct(Andweb\Localization\ITranslator $translator)
{
$this->translator = $translator;
}
public function register($template)
{
$template->addFilter(null, [$this, 'loader']);
}
public function loader($filter)
{
if (method_exists(__CLASS__, $filter))
{
$args = func_get_args();
array_shift($args);
return call_user_func_array(array(__CLASS__, $filter), $args);
}
return NULL;
}
public function readMore($s)
{
$s = preg_replace('~(<div>--START--</div>)(.+)<div>--END--</div>~Usi',
'<div class="read-more-wrapper">$2</div><div class="read-more-btn-wrapper"><a href="">'.$this->translator->translate('READ MORE').'</a></div>',
$s
);
return $s;
}
}
config.neon
Raw
#
SotioFilters:
factory: App\FrontModule\Filters\SotioFilter
latte.templateFactory:
setup:
- "$onCreate[]" = [@SotioFilters, 'register']