Здравствуйте. В моем файле твиг есть строка, содержащая preg_replace:
<input type='hidden' data-title="{{ product['after_title'] }}" data-hash="{{ preg_replace('/[\s,.+\-]+/','-',product['id']) }}" name='series_product_id' value="{{ product['id'] }}">
Дело в том, что это не работает, фатальная ошибка из-за того, что preg_replace нельзя использовать. Я нагуглила, что нужно создать свое расширение Twig. В общем, в папку system/library/template/Twig/Extension я положила файлик PcreExtension.php, вроде бы с содержимым, которое должно обработать этот preg_replace (содержание файла ниже) и подключила его в файле system/library/template/Twig/Environment.php таким образом: $this->addExtension(new Twig_Extension_PcreExtension());
Но все равно не обрабатывается этот preg_replace. Пожалуйста, подскажите, что не так, код этого файла я в сети нашла. Вижу, что вызов функции обработки preg_replace лежит внутри функции getFilters. Где же ее вызывать следует?
<?php
class Twig_Extension_PcreExtension extends Twig_Extension
{
public function getFilters()
{
return [
new Twig_SimpleFilter('preg_replace', [$this, 'replace']),
];
}
public function replace($value, $pattern, $replacement = '', $limit = -1)
{
$this->assertNoEval($pattern);
if (!isset($value)) {
return null;
}
return preg_replace($pattern, $replacement, $value, $limit);
}
}