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


Фото
- - - - -

Smarty обьединение одинаковых позиций


  • Чтобы отвечать, сперва войдите на форум
9 ответов в теме

#1 shooroop

shooroop
  • Фрилансер
  • 782 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 10.12.2018 - 00:37

Как в смарти обьединить одинаковые позииции

 

к примеру имеем

 

 

{foreach $orders as $order}
   <li> {$order->purshares->name}, {$order->purshares->variant_name} - {$order->purshares-> amaunt}</li>
{foreach}
 

 

 

 

результат

 

 

<li>Носки, голубые - 100</li>
<li>Носки, белые - 50</li>
<li>Носки, голубые - 20</li>
 

 

 

 

а хотелось бы

 

 

<li>Носки, голубые - 120</li>
<li>Носки, белые - 50</li>
 

 

 



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.12.2018 - 00:39

Нужно переделывать не вывод а данные в БД...

#3 shooroop

shooroop
  • Фрилансер
  • 782 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 10.12.2018 - 00:44

Нужно переделывать не вывод а данные в БД...

 

Если бы... но есть только Smarty



#4 yr4ik

yr4ik
  • Фрилансер
  • 905 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 10.12.2018 - 01:32

создай массив и пиши туда что уже вывел, а в цикле проверяй наличие в созданном массиве. 



#5 ps-simpla

ps-simpla

    Модератор в запасе :)

  • Модератор
  • 1 008 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Пермский край

Опубликовано 10.12.2018 - 19:10

{$arr = []}
{foreach $orders as $order}
	{if $order->purshares->variant_name}
		{$oname = $order->purshares->variant_name|lower|trim}
	{else}	
		{$oname = 'тут пусто'}
	{/if}
	{$arr[$oname][] = $order->purshares->amount}
{/foreach}

{foreach key=ogroup item=sumamount from=$arr}
	{$sumamounts = '0'}
	{foreach key=key item=num from=$sumamount}
		 {$sumamounts = $sumamounts + $num}
	{/foreach}
	<li>{$order->purshares->name}, {$ogroup} -  {$sumamounts}</li>
{/foreach}


#6 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 11.12.2018 - 09:44

{$arr = []}
{foreach $orders as $order}
	{if $order->purshares->variant_name}
		{$oname = $order->purshares->variant_name|lower|trim}
	{else}	
		{$oname = 'тут пусто'}
	{/if}
	{$arr[$oname][] = $order->purshares->amount}
{/foreach}

{foreach key=ogroup item=sumamount from=$arr}
	{$sumamounts = '0'}
	{foreach key=key item=num from=$sumamount}
		 {$sumamounts = $sumamounts + $num}
	{/foreach}
	<li>{$order->purshares->name}, {$ogroup} -  {$sumamounts}</li>
{/foreach}

 

Если, скажем надо вывести

<li>Носки, голубые - 10</li>
<li>Трусы, голубые - 20</li>
<li>Майки, голубые - 30</li>
<li>Шапочки, голубые - 40</li>

то выйдет совсем неправильно

<li>Шапочки, голубые - 100</li>


#7 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 11.12.2018 - 11:07

А каким образом у вас в заказе один и тот же товар идёт разными позициями?
Ведь в функционале симплы заложено, что если в корзину добавить товар который там уже есть, то его количество просто увеличится, да и при том механизм добавления в корзину не позволяет добавить один и тот же товар разными позициями.

#8 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 11.12.2018 - 11:28

А каким образом у вас в заказе один и тот же товар идёт разными позициями?

 

Судя по {foreach $orders as $order} в первом посте, речь идет о сводном отчете по НЕСКОЛЬКИМ заказам...



#9 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 11.12.2018 - 11:40


Судя по {foreach $orders as $order} в первом посте, речь идет о сводном отчете по НЕСКОЛЬКИМ заказам...


Не обратил внимания. Но не факт, иначе не понимаю зачем это ТС.

#10 shooroop

shooroop
  • Фрилансер
  • 782 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 15.12.2018 - 13:00

Не обратил внимания. Но не факт, иначе не понимаю зачем это ТС.

 

Все правильно Владимир сказал для сводного отчета






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых