IF в шаблоне (как правильно ?)

o_nix

Хранитель порядка
Регистрация
7 Ноя 2007
Сообщения
1.070
Реакции
1.063
Собственно в шаблоне есть ресайз картинки через вызов дополнения
PHP:
{exp:imgsizer:size src="{pic}" width="200" height="100"}
<a href="{pic}"><img src="{sized}" width="{width}" height="{height}" alt="{title}" /></a>
{/exp:imgsizer:size}

выполняется ресайз картинки с именем находящейся в переменной {pic}
Проблема в том что не всегда данное поле заполнено те мне нужно условное исполнение этого кода

делаю так
PHP:
{if pic}
{exp:imgsizer:size src="{pic}" width="200" height="100"}
<a href="{pic}"><img src="{sized}" width="{width}" height="{height}" alt="{title}" /></a>
{/exp:imgsizer:size}
{/if}

В моём понимании это:
если pic существует то исполняем, если нет то пропускаем
Но это не работает хотя подобные примеры кода часто попадаются.

Пока не вник в концепцию шабов ExpressionEngine
знаю что можно подключить php код, но хотелось бы сделать проще и правильнее разобравшись.
 
На вид все верно, не тестировал но попробуй

Код:
{if pic} 
{exp:imgsizer:size src="{pic}" width="200" height="100" parse="inward"} 
<a href="{pic}"><img src="{sized}" width="{width}" height="{height}" alt="{title}" /></a> 
{/exp:imgsizer:size} 
{/if}

Код:
parse="inward"
 
не работает
что за параметр такой parse= ??

посмотрел код плагина - там нет чтения этого параметра

пробовал и так делать тоже не работает
PHP:
{if pic != ''}

те пусть даже если и существует но пустое значение
и всё равно код исполняется ёлки палки
хотя при упрощённом
PHP:
{if pic}
указан
{/if}
{if !pic}
НЕуказан
{/if}

в случае если указать pic - выводится "указан"
в случае если не указать pic - ничё кроме глюков не выводится
 
не работает
что за параметр такой parse= ??
посмотрел код плагина - там нет чтения этого параметра
пробовал и так делать тоже не работает
PHP:
{if pic != ''}

хм, по идее так должно работать, а что за тип поля? может стандартно не пустой, а просто например 0, как вариант:

PHP:
{if pic != "0"}
 

Этот плагин попробуй. Может с ним заработает. Он один фиг лучше )
 
[/root.]
этот плуг мне не подойдёт у меня ee 1.6.9

budulay
PHP:
{if pic != "0"}

если pic не равно 0
ну так ясное дело оно не равно когда пусто там :D
и кавычки разве не переводят 0 в формат стринга ?

тип поля в mysql - text - такчто скорее всего в шаблоне оно простой стринг

не работает так
мне нужно чтобы код исполнялся только в случае присутствия значения pic
 
этот плуг мне не подойдёт у меня ee 1.6.9
там есть версия для ЕЕ1, то что он лучше тоже согласен) в последнее время только ним и пользуюсь...

PHP:
{if pic != "0"}
если pic не равно 0
ну так ясное дело оно не равно когда пусто там :D
ну хз какой у вас там тип поля) может и не пусто раз if pic != '' не работает...
 
Проверил архив. Скачивай, там действительно есть версия для EE1 :)
 
проблема решилась только выносом кода
Код:
exp:imgsizer:size src="{pic}" width="200" height="100" parse="inward"} 
<a href="{pic}"><img src="{sized}" width="{width}" height="{height}" alt="{title}" /></a> 
{/exp:imgsizer:size}
в отдельный шаблон и его инклюд в текущий
те может быть глюки при этом остались но хотя бы страница без картинки полностью выдаётся а не обрезок
проблема походу в том что в этом же шаблоне есть вызов этого же плуга в другом месте для вывода других картинок (ещё в 2 местах вызываетсо)
и вот после каждой такой отработки получается что переменная pic не обнуляется, либо даже если 1 картинка в одном месте существует то считается что везде есть
ну либо вообще хз что оно такое и откуда глюк :D
 
Назад
Сверху