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

Тема в разделе "ExpressionEngine", создана пользователем o_nix, 23 авг 2011.

  1. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    Собственно в шаблоне есть ресайз картинки через вызов дополнения
    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 код, но хотелось бы сделать проще и правильнее разобравшись.
     
  2. [/root.]

    [/root.] Он самый

    Регистр.:
    20 май 2006
    Сообщения:
    368
    Симпатии:
    58
    На вид все верно, не тестировал но попробуй

    Код:
    {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"
    
     
  3. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    не работает
    что за параметр такой parse= ??

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

    пробовал и так делать тоже не работает
    PHP:
    {if pic != ''}
    те пусть даже если и существует но пустое значение
    и всё равно код исполняется ёлки палки
    хотя при упрощённом
    PHP:
    {if pic}
    указан
    {/if}
    {if !
    pic}
    НЕуказан
    {/if}
    в случае если указать pic - выводится "указан"
    в случае если не указать pic - ничё кроме глюков не выводится
     
  4. budulay

    budulay

    Регистр.:
    8 апр 2006
    Сообщения:
    283
    Симпатии:
    87
    хм, по идее так должно работать, а что за тип поля? может стандартно не пустой, а просто например 0, как вариант:

    PHP:
    {if pic != "0"}
     
  5. [/root.]

    [/root.] Он самый

    Регистр.:
    20 май 2006
    Сообщения:
    368
    Симпатии:
    58
    o_nix нравится это.
  6. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    [/root.]
    этот плуг мне не подойдёт у меня ee 1.6.9

    budulay
    PHP:
    {if pic != "0"
    если pic не равно 0
    ну так ясное дело оно не равно когда пусто там :D
    и кавычки разве не переводят 0 в формат стринга ?

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

    не работает так
    мне нужно чтобы код исполнялся только в случае присутствия значения pic
     
  7. budulay

    budulay

    Регистр.:
    8 апр 2006
    Сообщения:
    283
    Симпатии:
    87
    там есть версия для ЕЕ1, то что он лучше тоже согласен) в последнее время только ним и пользуюсь...

    ну хз какой у вас там тип поля) может и не пусто раз if pic != '' не работает...
     
    o_nix нравится это.
  8. [/root.]

    [/root.] Он самый

    Регистр.:
    20 май 2006
    Сообщения:
    368
    Симпатии:
    58
    Проверил архив. Скачивай, там действительно есть версия для EE1 :)
     
  9. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    проблема решилась только выносом кода
    Код:
    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

    по поводу плуга - скачал пока не тестил но судя по php файлам там ещё ватермарк можно на изображение накладывать ?

    приколол Читать.rtf :)
    К сожалению поделиться не чем, пока только вникаю в EE

    Купил сайт с трафом на ee 1.6.9 (даже не лицензия, как обновлять до 1.7 хз)
    ранее с этим двигом вообще не сталкивался
    по мере освоения и познания нравится всё больше и больше

    но многие заморочки непонятны
    возможно потому что делал не сам, код чужой, а потому многое дикостью кажется...
    А может быть и шабы сделаны с нарушением всего что "не смертельно" :D