Как получить поля торговых предложений — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(🐾)
 
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Актуально для версии 18.'''
+
'''Актуально для версии 20.'''
  
 
== Описание ==
 
== Описание ==
Строка 6: Строка 6:
  
 
== Пример ==
 
== Пример ==
 +
<source lang="php">
 +
/* @var iUmiHierarchyElement $product */
 +
$offerIdList = (array) $product->getValue('trade_offer_list');
 +
$tradeOfferFacade = UmiCms\Service::TradeOfferFacade();
 +
$collection = $tradeOfferFacade->mapCollectionWithRelations($tradeOfferFacade->getList($offerIdList));
  
<div class="php" style="font-family:monospace; font-size:15px"> <span style="color: #666666; font-style: italic;">/* @var iUmiHierarchyElement $product */</span></br>
+
/* Далее есть 2 варианта */
<span style="color: #000088;">$offerIdList</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$product</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'trade_offer_list'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></br>
+
/* 1) Пройтись по результирующему масиву $collection */
<span style="color: #000088;">$tradeOfferFacade</span> <span style="color: #339933;">=</span> UmiCms\Service<span style="color: #339933;">::</span><span style="color: #004000;">TradeOfferFacade</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></br>
+
$arrayOffersField_vendor_code = [];
<span style="color: #000088;">$collection</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tradeOfferFacade</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">mapCollectionWithRelations</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tradeOfferFacade</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getList</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$offerIdList</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></br>
+
foreach($collection as $offer) {
<span style="color: #666666; font-style: italic;">/* Далее есть 2 варианта */</span></br>
+
$arrayOffersField_vendor_code[] = $offer->getVendorCode();
<span style="color: #666666; font-style: italic;">/* 1) Пройтись по результирующему масиву $collection */</span></br>
+
}
<span style="color: #000088;">$arrayOffersField_vendor_code</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></br>
 
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$collection</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$offer</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></br>
 
<span style="color: #000088;">&nbsp;&nbsp;$arrayOffersField_vendor_code</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$offer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getVendorCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></br>
 
<span style="color: #009900;">&#125;</span></br>
 
<span style="color: #666666; font-style: italic;">/* 2) Получить массив при помощи метода extractField */</span></br>
 
<span style="color: #000088;">$arrayOffersField_vendor_code</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$collection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extractField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'vendor_code'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></br>
 
<span style="color: #666666; font-style: italic;">/*
 
Пример результирующего массива:</br>
 
Array</br>
 
(</br>
 
&nbsp;&nbsp;[0] =&gt; 101-177</br>
 
&nbsp;&nbsp;[1] =&gt; 102-177</br>
 
&nbsp;&nbsp;[2] =&gt; 103-177</br>
 
&nbsp;&nbsp;[3] =&gt; 104-177</br>
 
&nbsp;&nbsp;[4] =&gt; 105-177</br>
 
&nbsp;&nbsp;[5] =&gt; 106-177</br>
 
&nbsp;&nbsp;[6] =&gt; 107-177</br>
 
&nbsp;&nbsp;[7] =&gt; 108-177</br>
 
)</br>
 
*/</span></div>
 
  
[[category:Верстка в PHP]]
+
/* 2) Получить массив при помощи метода extractField */
 +
$arrayOffersField_vendor_code = $collection->extractField('vendor_code');
 +
 
 +
/* Пример результирующего массива:
 +
Array
 +
(
 +
[0] => 101-177
 +
[1] => 102-177
 +
[2] => 103-177
 +
[3] => 104-177
 +
[4] => 105-177
 +
[5] => 106-177
 +
[6] => 107-177
 +
[7] => 108-177
 +
)
 +
*/
 +
</source>
 +
 
 +
[[category:Верстка в PHP]] [[category:API]]

Текущая версия на 08:42, 1 февраля 2019

Актуально для версии 20.

Описание

Для вывода в PHP шаблоне полей торговых предложений необходимо сначала их получить.

Пример

	/* @var iUmiHierarchyElement $product */
	$offerIdList = (array) $product->getValue('trade_offer_list');
	$tradeOfferFacade = UmiCms\Service::TradeOfferFacade();
	$collection = $tradeOfferFacade->mapCollectionWithRelations($tradeOfferFacade->getList($offerIdList));

	/* Далее есть 2 варианта */
	/* 1) Пройтись по результирующему масиву $collection */
	$arrayOffersField_vendor_code = [];
	foreach($collection as $offer) {
		$arrayOffersField_vendor_code[] = $offer->getVendorCode();
	}

	/* 2) Получить массив при помощи метода extractField */
	$arrayOffersField_vendor_code = $collection->extractField('vendor_code');

	/* Пример результирующего массива:
	Array
	(
		[0] => 101-177
		[1] => 102-177
		[2] => 103-177
		[3] => 104-177
		[4] => 105-177
		[5] => 106-177
		[6] => 107-177
		[7] => 108-177
	)
	*/