Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как использовать preg_replace в Twig (Прошу помощи)?


Recommended Posts

Здравствуйте. В моем файле твиг есть строка, содержащая 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);
    }

}

 

Змінено користувачем Svoeobraznaya
Надіслати
Поділитися на інших сайтах


а так?

{{ product.id|replace({"/[\s,.+\-]+/":"-"}) }}

 

product['after_title'] лучше писать как

product.after_title

 

  • +1 3
Надіслати
Поділитися на інших сайтах

13 минут назад, Svoeobraznaya сказал:

Отлично работает

 

product['id' ]  запишите как product.id, я выше исправил, так правильнее.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.