Перейти к содержанию
Официальный форум поддержки Simpla

Как провести сравнение в шаблоне?


Рекомендуемые сообщения

Здравствуйте. Помогите пожалуйста, никак не получается провести подобное сравнение в шаблоне.

 

Есть например $var1 - это одно число

Так-же есть $var2 - тут уже список чисел через запятую.

 

Нужно сделать проверку, присутствует-ли число $var1 в списке $var2.

Что-то подобное:

 

{$var1='4'}
{$var2='[6,7,4,5]'}
			
{if in_array($var1, $var2)}
да
{else}
нет
{/if}

 

Факт в том, что нужна реализация обязательно в tpl шаблоне. Помогите кто может

Ссылка на сообщение
Поделиться на другие сайты

Если $var2 - это массив то просто так:

{$var1='4'}
{$var2=[6,7,4,5]}
            
{if in_array($var1, $var2)}
да
{else}
нет
{/if}

Если же это строка, то нужно сначала сформировать массив:

 

{$var2=','|explode:'6,7,4,5'}
Ссылка на сообщение
Поделиться на другие сайты

 

Если $var2 - это массив то просто так:

{$var1='4'}
{$var2=[6,7,4,5]}
            
{if in_array($var1, $var2)}
да
{else}
нет
{/if}

Если же это строка, то нужно сначала сформировать массив:

 

{$var2=','|explode:'6,7,4,5'}

 

 

А можно-ли как-то сравнить 2 массива аналогичным методом?

Т.е. если

{$var1=','|explode:'1,3,4,5,29,542,20'}

{$var2=','|explode:'1,3,222,333,444,555,29'}

 

И соответственно {if in_array($var1, $var2)}  если совпало хоть одно число из первого массива со вторым.

Изменено пользователем core
Ссылка на сообщение
Поделиться на другие сайты

Засада какая-то.. Может сможете помочь начинающему? Буду очень благодарен.

 

Имеется вот что:

 

Товар, у товара есть images_ids (список id изображений добавленных к товару через запятую)

В каждом варианте данного товара установлены свои фото (думаю вы видели подобный модуль), соответственно у каждого варианта есть $v->images_ids

 

 

Что пытаюсь сделать я:

 

Вывести под каждый вариант блок фото, которые отмечены именно для этого варианта.

Код такой:

 

		<!--массив id фото добавленных к товару в целом-->
		{foreach $product->images as $i=>$image}
			{$test[$image->id] = ['Id'=>{$image->product_id}]} 
		{/foreach}
		<!--end-->
		
		<!--вывод вариантов-->
		{foreach $product->variants as $v}
		
		<!--вариант images-->
		{$variant_images=','|explode:'$v->images_ids'}
		<div class="block">
		
			{foreach $product->images as $i=>$image}
			{if in_array($variant_images, $test)}
			<img src="{$image->filename|resize:50:70}" title="{$image->id}" alt="{$product->name|escape}" />
			{/if}
			{/foreach}
			
		</div>
		{/foreach}

Это последний вариант кода, перепробовал я уже кучу по всякому.. Соответственно нихрена не работает..

 

 

jquery / css - сам знаю что можно вывести, скрыть не нужные и т.д. и т.п.-  все не то. Нужно именно под каждый вариант свои фото и ничего лишнего, без js и css обработки.

Изменено пользователем core
Ссылка на сообщение
Поделиться на другие сайты

а зачем тот test?

 

<!--вывод вариантов-->
{foreach $product->variants as $v}

<!--вариант images-->
{$variant_images=','|explode:$v->images_ids}
<div class="block">

	{foreach $product->images as $i=>$image}
	{if in_array($image->id, $variant_images)}
		<img src="{$image->filename|resize:50:70}" title="{$image->id}" alt="{$product->name|escape}" />
	{/if}
	{/foreach}
	
</div>
{/foreach}
Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

ошибка у вас тут '$v->images_ids'

не должно быть скобок, я писал еще первый раз. это массив а вы пишите как строку

 

{$variant_images=','|explode:$v->images_ids}
Ссылка на сообщение
Поделиться на другие сайты

 

а зачем тот test?

 

<!--вывод вариантов-->
{foreach $product->variants as $v}

<!--вариант images-->
{$variant_images=','|explode:$v->images_ids}
<div class="block">

	{foreach $product->images as $i=>$image}
	{if in_array($image->id, $variant_images)}
		<img src="{$image->filename|resize:50:70}" title="{$image->id}" alt="{$product->name|escape}" />
	{/if}
	{/foreach}
	
</div>
{/foreach}

 

Ахах, охренеть)) Спасибо большое, целый день с 12 дня (11 часов) голову ломаю, а тут за пару минут люди решают))) Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...