Опубликовано: 13 июля 20187 г Здравствуйте! В Commerce можно добавлять для товаров свои значения. Но я никак не пойму как мне в нужных местах эти поля выводить в шаблоне. Пробовал по разному. Так: {$package->fieldValues()['field_4']|raw} И так: {$item->fieldValues()['field_4']|raw} Даже так: {$product->fieldValues()['field_4']|raw} Подскажите, верный синтаксис, пожалуйста.
Опубликовано: 13 июля 20187 г Автор Желательно без привязки к конкретному месту, но вообще я хотел вывести здесь: {template="cartContents" group="store" params="$location, $currency"}
Опубликовано: 13 июля 20187 г без привязки к конкретному месту,Если в шаблоне нет данных, то их нужно сперва получить, чтобы в дальнейшем с ними работать.но вообще я хотел вывести здесь:Здесь нет ничего, связанного с продуктом/полями.Данный код выводиться на странице /store/cart/. Там уже есть поля. Посмотрите шаблон cartContents. Там есть примеры, как загружать продукты и поля
Опубликовано: 13 июля 20187 г Автор Да, все верно они там уже выводятся, но по умолчанию, не подходит. Я пытался вытащить конкретное поле из foreach, но пока результатов не добился. Нужно иметь управление над каждым полем в отдельности. Пытался осознать вот этот код, но PHP так быстро не сдается: {{foreach $item->details as $k => $v}} <strong>{lang="nexus_pfield_{$k}"}: </strong> {expression="\IPS\nexus\Package\CustomField::load( $k )->displayValue( $v )" raw="true"}<br> {{endforeach}} Работаю методом тыка, подыскиваю похожие примеры, но пока не сообразил, как все это делается.
Опубликовано: 13 июля 20187 г Говоря по-простому, на указанной странице все продукты находятся в массиве $_SESSIONВот код, который можете рассматривать{{if count( $_SESSION['cart'] )}} {{foreach $_SESSION['cart'] as $id => $item}} {{if $item instanceof \IPS\nexus\extensions\nexus\Item\Package}} {{try { $package = \IPS\nexus\Package::load( $item->id ); } catch( \OutOfRangeException $e ) { continue; } }} {{endif}} {{foreach $item->details as $k => $v}} <strong>{lang="nexus_pfield_{$k}"}: </strong> {expression="\IPS\nexus\Package\CustomField::load( $k )->displayValue( $v )" raw="true"}<br> {{endforeach}} {{endforeach}} {{endif}} Пытался осознать вот этот код, но PHP так быстро не сдается:В $item->details содержатся поля со введенными значениями $k - ID поля$v - значение Можете проверять ID
Опубликовано: 13 июля 20187 г Автор Спасибо, понял. Но как вывести $k вне цикла? Мне нужно управлять каждый полем в отдельности, потому что не все нужно выводить и у каждого свое формление.
Опубликовано: 13 июля 20187 г {{if count( $_SESSION['cart'] )}} {{foreach $_SESSION['cart'] as $id => $item}} {{if $item instanceof \IPS\nexus\extensions\nexus\Item\Package}} {{try { $package = \IPS\nexus\Package::load( $item->id ); } catch( \OutOfRangeException $e ) { continue; } }} {{endif}} {{foreach $item->details as $k => $v}} {{if $k == 1}} Оформление для поля с ID #1 {{elseif $k == 2}} Оформление для поля с ID #2 {{endif}} {{endforeach}} {{endforeach}} {{endif}}Оформляете 2 поля. Остальные не будут выведены
Здравствуйте!
В Commerce можно добавлять для товаров свои значения. Но я никак не пойму как мне в нужных местах эти поля выводить в шаблоне. Пробовал по разному.
Так:
{$package->fieldValues()['field_4']|raw}И так:
{$item->fieldValues()['field_4']|raw}Даже так:
{$product->fieldValues()['field_4']|raw}Подскажите, верный синтаксис, пожалуйста.