Как вывеси значение кастомного поля для продукта? - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Как вывеси значение кастомного поля для продукта?

#1 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 136
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 13 Июль 2018 - 13:02

Здравствуйте!

В Commerce можно добавлять для товаров свои значения. Но я никак не пойму как мне в нужных местах эти поля выводить в шаблоне. Пробовал по разному.

Так:

{$package->fieldValues()['field_4']|raw}


И так:

{$item->fieldValues()['field_4']|raw}


Даже так:

{$product->fieldValues()['field_4']|raw}


Подскажите, верный синтаксис, пожалуйста.
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 13 Июль 2018 - 13:21

Просмотреть сообщениеvinegredz сказал(а):

выводить в шаблоне.

В каком шаблоне?
0

#3 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 136
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 13 Июль 2018 - 13:36

Желательно без привязки к конкретному месту, но вообще я хотел вывести здесь:

{template="cartContents" group="store" params="$location, $currency"}

0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 13 Июль 2018 - 14:00

Просмотреть сообщениеvinegredz сказал(а):

без привязки к конкретному месту,

Если в шаблоне нет данных, то их нужно сперва получить, чтобы в дальнейшем с ними работать.

Просмотреть сообщениеvinegredz сказал(а):

но вообще я хотел вывести здесь:
Здесь нет ничего, связанного с продуктом/полями.
Данный код выводиться на странице /store/cart/. Там уже есть поля.
Вложение  fields.png (9,29К)
Количество загрузок: 2

Посмотрите шаблон cartContents. Там есть примеры, как загружать продукты и поля
0

#5 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 136
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 13 Июль 2018 - 14:24

Да, все верно они там уже выводятся, но по умолчанию, не подходит.

Я пытался вытащить конкретное поле из 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}}


Работаю методом тыка, подыскиваю похожие примеры, но пока не сообразил, как все это делается.
0

#6 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 13 Июль 2018 - 15:16

Говоря по-простому, на указанной странице все продукты находятся в массиве $_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}}


Просмотреть сообщениеvinegredz сказал(а):

Пытался осознать вот этот код, но PHP так быстро не сдается:
В $item->details содержатся поля со введенными значениями

$k - ID поля
$v - значение

Можете проверять ID
0

#7 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 136
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 13 Июль 2018 - 15:28

Спасибо, понял. Но как вывести $k вне цикла? Мне нужно управлять каждый полем в отдельности, потому что не все нужно выводить и у каждого свое формление.
0

#8 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 13 Июль 2018 - 15:33

{{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 поля. Остальные не будут выведены
0

#9 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 136
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 13 Июль 2018 - 16:53

Спасибо. Это работает как надо.
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна