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

Recommended Posts

Такой вопрос появился на Cyberforum, поэтому я решил заняться этой проблемой.
Как известно, начиная с тройки разработчики применили шаблонизатор Twig (чем их не устраивал Smarty?). Впрочем, как показал эксперимент на примере модуля currency, адаптация не представляет особой сложности.

Итак:

1.В папку system/library/template кидаем файл adaptetur.php с кодом:

Цитата

 

class aTemplate{
    private $data = array();
    
    public function __construct($data){
    $this->data = $data;
    }    
    
    public function render($template) {
        $file = DIR_TEMPLATE . $template . '.tpl';

        if (is_file($file)) {
            extract($this->data);

            ob_start();

            require($file);

            return ob_get_clean();
        }

        throw new \Exception('Error: Could not load template ' . $file . '!');
        exit();
    }    
}

 

2. В контроллере currency.php вносим изменения:

Цитата

#********************************************************
    if(!class_exists('aTemplate')){
require DIR_SYSTEM.'library/template/adaptetur.php';
    }
$tpl = new aTemplate($data);
$html = $tpl->render('default/template/common/currency');
return $html ;
#********************************************************
#return $this->load->view('common/currency', $data);// стандартный вывод twig блокируем

3. К шаблонам кидаем файл currency.tpl от версии 2.3 (я с ним экспериментировал)

Пользуйтесь.

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

1 минуту назад, esculapra сказал:

И выводится currency.tpl, как в опенкарт 2

 

41 минуту назад, esculapra сказал:

начиная с тройки разработчики применили шаблонизатор Twig

наверное не просто так, нет?)

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


Есть гораздо проще варинаты
К примеру просто переключить вывод на template и потом обратно на twig

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

7 минут назад, AWARO сказал:

нахрен тогда твиг туда пихали?))

С одной точки зрения правильно
Чтобы не было фрагментации opencart, когда в tpl инициализируют классы, вызывают методы и т п нарушая тем самым opencart code style
Но у себя на форуме Даниэль "проговорился" написал что "всунуть" twig это было ошибкой (видно потому что костылей понеслось еще больше)
 

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

3 часа назад, AlexDW сказал:

между двойкой и тройкой различия несколько больше, чем просто twig

Приведенный код актуален для контроллера и файла шаблона, а что касается получения данных из БД и других нюансов, то тут придется разбираться, иначе все было бы очень просто.

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

3 часа назад, markimax сказал:

Есть гораздо проще варинаты
К примеру просто переключить вывод на template и потом обратно на twig

Этот вариант я тоже прорабатывал - гемора больше.

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

3 часа назад, AWARO сказал:

 

наверное не просто так, нет?)

Меня меньше всего волнует этот вопрос. Если мне необходим модуль, то есть 2 варианта:

1. Ждать, пока его сделают и купить.

2. Переделать самостоятельно на основе уже имеющегося от предыдущей версии.

 

Вы возьмите престашоп - там изначально используется Смарти, и на уровне шаблонов не возникает конфликтов совместимости.

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

2 минуты назад, esculapra сказал:

Меня меньше всего волнует этот вопрос. Если мне необходим модуль, то есть 2 варианта:

1. Ждать, пока его сделают и купить.

2. Переделать самостоятельно на основе уже имеющегося от предыдущей версии.

 

Вы возьмите престашоп - там изначально используется Смарти, и на уровне шаблонов не возникает конфликтов совместимости.

мне тоже пофиг на соседа, хоть зарости его квартира люцерной.
Но по факту если я берусь за что либо то оно должно блестеть чтобы в спину мне не плевали. смогу или не смогу - но я постараюсь.
Так что ну его на - такие "варианты".

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


5 минут назад, esculapra сказал:

там изначально используется Смарти,

Изначально!!!!
в ОС изначально был php шаблонизатор

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

3 часа назад, markimax сказал:

(видно потому что костылей понеслось еще больше)

Не совсем, 
просто некоторые вещи в твиге сложно интерпретируются из-за типов переменных

 

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

6 минут назад, AWARO сказал:

мне тоже пофиг на соседа, хоть зарости его квартира люцерной.
Но по факту если я берусь за что либо то оно должно блестеть чтобы в спину мне не плевали. смогу или не смогу - но я постараюсь.
Так что ну его на - такие "варианты".

Так я не против Twig, хотя предпочитаю Смарти.

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

4 минуты назад, esculapra сказал:

Так я не против Twig, хотя предпочитаю Смарти.

php сам по себе "шаблонизатор", зачем еще "костыли" ему
 

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

6 минут назад, markimax сказал:

php сам по себе "шаблонизатор", зачем еще "костыли" ему
 

В пхп-скрипты легче внедрить вредоносный код, поэтому шаблонизатор - это одна из мер безопасности сайта. Хакерским атакам наиболее часто подвергается Джумла и вордпресс, но и Опенкарт не исключение. Создайте в какой-нить директории пхп-файл с echo и вызовите его по прямой ссылке - он выполнится. Может поэтому и отказались от пхп-шаблонов? Но я на свои сайты ставлю защиту, и не одну - вот на скрине график реальных атак.

Snap1.jpg

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

14 минут назад, esculapra сказал:

В пхп-скрипты легче внедрить вредоносный код, поэтому шаблонизатор - это одна из мер безопасности сайта. Хакерским атакам наиболее часто подвергается Джумла и вордпресс, но и Опенкарт не исключение. Создайте в какой-нить директории пхп-файл с echo и вызовите его по прямой ссылке - он выполнится. Может поэтому и отказались от пхп-шаблонов? Но я на свои сайты ставлю защиту, и не одну - вот на скрине график реальных атак.

 

C точностью  до наоборот - лишний код, больше вероятность получить
https://www.cvedetails.com/vulnerability-list/vendor_id-2921/Smarty.html

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

54 минуты назад, markimax сказал:

C точностью  до наоборот - лишний код, больше вероятность получить
https://www.cvedetails.com/vulnerability-list/vendor_id-2921/Smarty.html

В любом коде возможны уязвимости. По ссылке видны уязвимости в версиях ниже 3.1.33 (я эту уже применяю в своих разработках), поэтому необходимо применять самые новые версии.

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

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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