Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

помогите с переводом Twig на PHP


Xelen
 Поделиться

Рекомендованные сообщения

Подскажите, как можно на пхп перевести такую строчку?

 

{{ attribute(_context, 'shipping_venipak_shipping_method_title_' ~ geo_zone.geo_zone_id|default(shipping_venipak_shipping_method_title) ) }}

она передается как value для поля формы

Ссылка на комментарий
Поделиться на других сайтах

Ссылка на комментарий
Поделиться на других сайтах

Цитата

if (isset(${'shipping_venipak_shipping_method_title_' . $geo_zone['geo_zone_id']})) {
echo ${'shipping_venipak_shipping_method_title_' . $geo_zone['geo_zone_id']}; {
} else {
echo $shipping_venipak_shipping_method_title;
}

 

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

08.12.2022 в 14:08, chukcha сказал:

 

 

Попробовала, что-то не то выходит

 

 Вот, смотрите оригинальный код для опенкарт 3, он нормально отрабатывает. Сначала показывает заглушку(default) для поля, которая прямо в коде контроллера через тернарник.

$data['venipak_shipping_method_title_' . $geo_zone_id] = $this->getParam('venipak_shipping_method_title') ?: 'Venipak';

После заполнения поля, отправляет в базу настройку shipping_venipak_shipping_method_title_(айди геозоны). И потом, при редактировании поля, там всегда то, что в этой настройке. Эта переменная естественно не одна, а создается под каждую зону. Таких полей много, это поле лишь образец.

Вот полный код одного из инпутов в твиге.

 

<input type="text"
name="shipping_venipak_shipping_method_title_{{ geo_zone.geo_zone_id }}"
value="{{ attribute(_context, 'shipping_venipak_shipping_method_title_' ~ geo_zone.geo_zone_id|default(shipping_venipak_shipping_method_title) ) }}"
id="input-shipping_venipak

 

В опенкарт 2 поменялись переменные , спереди убрала shipping_

Сейчас закинула ваш код, но мне выдает только дефолтное значение. Не понимаю, что не так в опенкарт 2, если в опенкарт 3 оно отрабатывает?

<input type="text"
name="venipak_shipping_method_title_<?php echo $geo_zone['geo_zone_id']; ?>"
value="<?php if (isset(${'venipak_shipping_method_title_' . $geo_zone['geo_zone_id']})) {echo ${'venipak_shipping_method_title_' . $geo_zone['geo_zone_id']};} else {echo $venipak_shipping_method_title;} ?>"
id="input-venipak_shipping_method_title_<?php echo $geo_zone['geo_zone_id']; ?>"
class="form-control" />

 

в базу переменная прилетает

 

 

1376147416_.png.044270d7eddb505dd158ec5806c85407.png

 

а в админке вот

 

76865144_.png.a8be5a4f077527880c5c06d55fe5644d.png

 

Ссылка на комментарий
Поделиться на других сайтах

08.12.2022 в 07:28, Tom сказал:

 

Это уже пробовала, там выдает конструкцию

 

<?php echo $context[('shipping_venipak_shipping_method_title_' . isset($geo_zone['geo_zone_id'], $shipping_venipak_shipping_method_title))]; ?>

 и плюется ошибкой

 

1953087206_.png.c76541147cb24ce249b62927498ecefd.png

Ссылка на комментарий
Поделиться на других сайтах

В 08.12.2022 в 17:17, Xelen сказав:
shipping_venipak_shipping_method_title

значит ее нет
 

Ссылка на комментарий
Поделиться на других сайтах

08.12.2022 в 17:30, chukcha сказал:

значит ее нет
 

 

 

Извините меня да, да я нашла почему, тут запуталась из-за разницы в названии переменных в оп3 и оп2

 

посмотрите выше поправила пост, сейчас там отображает только дефолт

Ссылка на комментарий
Поделиться на других сайтах

у вас должна существовать переменная
 

'venipak_shipping_method_title_' . $geo_zone['geo_zone_id']
Ссылка на комментарий
Поделиться на других сайтах

08.12.2022 в 17:35, chukcha сказал:

у вас должна существовать переменная
 

'venipak_shipping_method_title_' . $geo_zone['geo_zone_id']

 

так она создается динамически, в зависимости от зоны, и когда я отправляю текст Venipak lv, то она и создается в базе

 

867470340_.png.411a6edce4f6f5bac7394b107ddcde71.png

 

как это отрабатывает нормально в опенкарт 3?

 

насколько я понимаю, это переменная переменной, но тут у меня знания пока заканчиваются

 

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.