Помощь с выводом $skuname_ Есть решение

Приложение MyLang - больше не поддерживается и его автор не выходит на связь. Прошу у webasyst сообщества подсказки в решении проблемы Локализации на разные языки витрины.. 

Витрина с двумя local (ru и en)

в карточке товара есть блок с данными артикулов value s-sku-list

MyLang добавляет input для не основной локали:

выведя массив продукта, я обнаружил, что автор MyLang записал в массив Продукта имена второй локали вот таким образом (в данном случае у товара два sku (4287 и 4288) и для каждой второй локали имеется в массиве name): 

'skuname_4287' => 'white',
'skuname_4288' => 'black',

проблема в следующем, обратиться на прямую к skuname_4287 у меня получается:

{$p.skuname_4287}

так же есть цикл, которым я могу обратиться к id 

{foreach $p.skus as $sku}
{$sku.id}
{/foreach} (выводит, как положено: 42874288)

теперь нужно прописать конструкцию в шаблоне вывода товара( да и не только, в корзине и так далее - это я уже где найду там и выведу). проблема с самой конструкцией, нужно обратиться к {$p.skuname_4287}, но вместо 4287 подставить значение {$sku.id}

3 ответа

  • 0
    civicd14 6 ноября 2022 20:11 # Решение

    вопрос решен.. всем спасибо!

  • 1
    K.Aleksey 8 ноября 2022 12:54 #

    Расскажите пожалуйста как решили ваш  вопрос !

    • 0
      civicd14 civicd14 8 ноября 2022 22:09 #

      1. Понять, происходит ли запись из админки в БД, с использованием используя консоль разработчика выявил какие метки есть на поле input

      2. Вывести в люди массив данных, которые хранятся в БД на продукт - > долго не парился, написал блок спозиционировав его фиксированно по верх всех окон и закинул туда <pre>{$p}</pre> 

      3. Найдя среди прочего  skuname_4257 был ступор

      4. Попробовал вывести в шаблон в лоб skuname_4257 - вывод сработал. начал искать как теперь вместо 4257 - подставить sku.id

      5. Найдя в шаблоне массив, который перебирает p.skus и выводит sku.id - я начал искать синтаксис php который позволит подставить в переменную sku.id

      6. Наткнулся на 10к веток разных форумов с похожими вопросами, где ответы были: АЛЯ: "тебе это не надо, сформируй по человечески подмассив внутри массива"

      7. продолжил пробовать, на чистом php получилось вывести, но как упаковать это в вывод на html толи ума не хватило толи усталость сказывалась.. 

      8. И тут я решил написать разработчикам шаблона, вопрос не по теме, ибо их косяка тут нету, а банально моих знаний PHP не хватало... они подсказали мне за конкатенацию и показали как правильно синтаксически прописать это внутри html 

      в моем случае, это 

      {$langId = "skuname_`$sku.id`"}
      {$p.$langId} 


      все просто и банально)

      остается найти все места вывода, где выводится sku.name и добавить свой вывод.. 


Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите