[решено]Как поместить результат SWICH в переменную?

Есть код вывода MIGX полей с помощью foreach. Появилась потребность получать значения исходя из условий. IF ELSE городить не хочется, задумал сделать с помощью конструкции SWICH, но есть одно но. На странице сама конструкция, является значением.

{set $rows = json_decode( $_modx->resource.id | resource: 'lands', true)}
        {foreach $rows as $idx => $row}
	       {switch $row.status}
                    {case 2}
                        {$status = 'sale'}
                    {case 1}
                        {$status = 'block'}
                    {case 0}
                        {$status = 'spell'}
                    {default} 
                        {$status = $row.status}
                {/switch} - эта конструкция на странице дает правильное значение и  выводит его на экран, а мне нужно что бы это значение было только лишь в переменной {$status}
		    <a class="sb-row {$status}" href="">
		        <span class="sb-item">{$idx+1}</span>
		        <span class="sb-item">{$row.number}</span>
		 </a>
		
	  {/foreach}
Получается что по мимо того что переменная вставляет правильное значение, еще и сама конструкция SWICH дублирует значение на экран. Где что упустил?
Сергей
23 марта 2019, 20:49
modx.pro
517
0

Комментарии: 2

Сергей
23 марта 2019, 21:04
0
Допер, правильно так

{set $rows = json_decode( $_modx->resource.id | resource: 'lands', true)}
		    {foreach $rows as $idx => $row}
        		{switch $row.status}
                    {case 2}
                         <a class="sb-row sale" href="">
                		    <span class="sb-item">{$idx+1}</span>
                		    <span class="sb-item">{$row.number}</span>
                		    <span class="sb-item">{$row.area}</span>
                		    <span class="sb-item">{$row.price}</span>
                		    <span class="sb-item">{$row.cost}</span>
                		    <span class="sb-item">{if $row.status == 2}В продаже{/if}</span>
                		 </a>
                    {case 1}
                        <a class="sb-row block" href="">
                		    <span class="sb-item">{$idx+1}</span>
                		    <span class="sb-item">{$row.number}</span>
                		    <span class="sb-item">{$row.area}</span>
                		    <span class="sb-item">{$row.price}</span>
                		    <span class="sb-item">{$row.cost}</span>
                		    <span class="sb-item">{if $row.status == 1}Бронь{/if}</span>
                		 </a>
                    {case 0}
                        <a class="sb-row spell" href="">
                		    <span class="sb-item">{$idx+1}</span>
                		    <span class="sb-item">{$row.number}</span>
                		    <span class="sb-item">{$row.area}</span>
                		    <span class="sb-item">{$row.price}</span>
                		    <span class="sb-item">{$row.cost}</span>
                		    <span class="sb-item">{if $row.status == 0}Продано{/if}</span>
                		</a>
                    {default} 
                        <a class="sb-row {$row.status}" href="">
                		    <span class="sb-item">{$idx+1}</span>
                		    <span class="sb-item">{$row.number}</span>
                		    <span class="sb-item">{$row.area}</span>
                		    <span class="sb-item">{$row.price}</span>
                		    <span class="sb-item">{$row.cost}</span>
                		    <span class="sb-item">{if $row.status == 2}В продаже{/if}</span>
                		</a>
                {/switch}    
	    {/foreach}
    Aborrol
    23 марта 2019, 21:24
    0
    По идее нужно так
    {set $status ="block"}
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2