On gists
Nette filter helper latte
1.2.2018
•
10.6.2020 (aktualizováno)
Nette
Nette-Latte
Nette vlastní filter , helper, latte
config1.neon
Raw
#
services:
nette.latteFactory:
setup:
- addFilter(abs, @petrjirasek\Latte\AbsFilter)
- petrjirasek\Latte\AbsFilter
config4.neon
Raw
#
# https://www.janpecha.cz/blog/poznamky/nette-registrace-latte-filtru/
services:
nette.latteFactory:
setup:
- addFilter('nazevFiltru', ['Trida', 'statickaMetoda'])
- addFilter('nazevFiltru2', @Sluzba::metoda)
config3.neon
Raw
#
services:
- petrjirasek\Latte\AbsFilter
filter.php
Raw
#
<?php
protected function beforeRender()
{
$this->template->addFilter('abs', function ($number) {
return abs($number);
});
}
config4.neon
Raw
#
# https://www.janpecha.cz/blog/poznamky/nette-registrace-latte-filtru/
services:
nette.latteFactory:
setup:
- addFilter('nazevFiltru', ['Trida', 'statickaMetoda'])
- addFilter('nazevFiltru2', @Sluzba::metoda)
config3.neon
Raw
#
services:
- petrjirasek\Latte\AbsFilter
filter.php
Raw
#
<?php
protected function beforeRender()
{
$this->template->addFilter('abs', function ($number) {
return abs($number);
});
}
filter3.php
Raw
#
<?php
// se zavislostmi
use petrjirasek\Latte\AbsFilter;
/** @var AbsFilter @inject */
public $absFilter;
protected function beforeRender()
{
$this->template->addFilter('abs', $this->absFilter);
}
filter2.php
Raw
#
<?php
// jako cela trida, bez zavislosti
namespace petrjirasek\Latte;
use Nette\Object;
class AbsFilter extends Object
{
/**
* @param int $number
* @return int
*/
public function __invoke($number)
{
return abs($number);
}
}
// PRESENTER
use petrjirasek\Latte\AbsFilter;
protected function beforeRender()
{
$this->template->addFilter('abs', new AbsFilter);
}
filter3.php
Raw
#
<?php
// se zavislostmi
use petrjirasek\Latte\AbsFilter;
/** @var AbsFilter @inject */
public $absFilter;
protected function beforeRender()
{
$this->template->addFilter('abs', $this->absFilter);
}
nette-2-4.php
Raw
#
<?php
/*
autowiring
*/
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;
}
}
nette-2-4.neon
Raw
#
awLatteFilters:
class: Andweb\Latte\Filters
tags:
- run
SotioFilters:
factory: App\FrontModule\Filters\SotioFilter
latte.templateFactory:
setup:
- "$onCreate[]" = [@awLatteFilters, 'register']
- "$onCreate[]" = [@SotioFilters, 'register']
filter.md
Raw
#
filter
class OnlyQuery
{
public function format(string $url): string
{
return (new \Nette\Http\Url($url))->getQuery();
}
}
config
services:
latte.latteFactory:
setup:
- addFilter(onlyQuery, [@onlyQuery, format])
onlyQuery: App\Filter\OnlyQuery
sablona
{link show!|onlyQuery}