vinegredz Posted July 13, 2018 Share Posted July 13, 2018 Здравствуйте! В Commerce можно добавлять для товаров свои значения. Но я никак не пойму как мне в нужных местах эти поля выводить в шаблоне. Пробовал по разному. Так: {$package->fieldValues()['field_4']|raw} И так: {$item->fieldValues()['field_4']|raw} Даже так: {$product->fieldValues()['field_4']|raw} Подскажите, верный синтаксис, пожалуйста. Link to comment Share on other sites More sharing options...
newbie Posted July 13, 2018 Share Posted July 13, 2018 выводить в шаблоне.В каком шаблоне? Link to comment Share on other sites More sharing options...
vinegredz Posted July 13, 2018 Author Share Posted July 13, 2018 Желательно без привязки к конкретному месту, но вообще я хотел вывести здесь: {template="cartContents" group="store" params="$location, $currency"} Link to comment Share on other sites More sharing options...
newbie Posted July 13, 2018 Share Posted July 13, 2018 без привязки к конкретному месту,Если в шаблоне нет данных, то их нужно сперва получить, чтобы в дальнейшем с ними работать.но вообще я хотел вывести здесь:Здесь нет ничего, связанного с продуктом/полями.Данный код выводиться на странице /store/cart/. Там уже есть поля. Посмотрите шаблон cartContents. Там есть примеры, как загружать продукты и поля Link to comment Share on other sites More sharing options...
vinegredz Posted July 13, 2018 Author Share Posted July 13, 2018 Да, все верно они там уже выводятся, но по умолчанию, не подходит. Я пытался вытащить конкретное поле из 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}} Работаю методом тыка, подыскиваю похожие примеры, но пока не сообразил, как все это делается. Link to comment Share on other sites More sharing options...
newbie Posted July 13, 2018 Share Posted July 13, 2018 Говоря по-простому, на указанной странице все продукты находятся в массиве $_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 Link to comment Share on other sites More sharing options...
vinegredz Posted July 13, 2018 Author Share Posted July 13, 2018 Спасибо, понял. Но как вывести $k вне цикла? Мне нужно управлять каждый полем в отдельности, потому что не все нужно выводить и у каждого свое формление. Link to comment Share on other sites More sharing options...
newbie Posted July 13, 2018 Share Posted July 13, 2018 {{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 поля. Остальные не будут выведены Link to comment Share on other sites More sharing options...
vinegredz Posted July 13, 2018 Author Share Posted July 13, 2018 Спасибо. Это работает как надо. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now