We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17921
    • 101 Posts
    Пытаюсь написать сниппет для галереи - чтобы параметр TV выводился, если картинка загружена, и не выводился, если не загружена. Вот так:

    <?php
    $img1 = $modx->getTemplateVar('tvimg1');
    if($img1['value']!==""){
        echo '<img class="item" src="assets/images/medium/[+tvimg1+]" />';        
    }
    ?>
    


    Если картинка загружена, все работает хорошо, а если нет - тэги все равно выводятся:

    <img class="item" src="assets/images/medium/" />
    


    и как результат - иконки незагруженной фотки в опере и ие..

    Есть ли тут какая-то очевидная ошибка?

      samurai smiley
      • 36823
      • 334 Posts
      Просто вставляете TV:
      Тип ввода: image
      Визуальный компонент: image
        • 17921
        • 101 Posts
        Quote from: Andrei at Mar 03, 2011, 01:20 PM

        Просто вставляете TV:

        т.е. просто не писать этот самый html))

        [+tvimg1+]
        вместо
        <img class="item" src="assets/images/medium/[+tvimg1+]" />


        Но мне важен этот путь assets/images/medium/ - т.е. важно брать картинку именно из этой папки..
          samurai smiley
          • 36442
          • 97 Posts
          Quote from: Andrei at Mar 03, 2011, 01:20 PM

          Просто вставляете TV:
          Тип ввода: image
          Визуальный компонент: image
          Какраз "визуальный компонент" должен быть пустым. Тогда ТВ будет содержать только имя картинки, а не путь к ней.
          Я, правда, могу ошибаться, поэтому просто вставьте в шаблон [+tvimg1+] и посмотрите, что будет показываться в разных случаях.
          У меня аналогичная задача реализована с помощью РНх:
          [+newsimg:ifnotempty=`<img src="[(site_url)]assets/images/_news/t_[+newsimg+]" alt="[+pagetitle+]" width="64" height="48" />`+]
            • 17921
            • 101 Posts
            Warsteiner, спасибо, ваш совет о phx мне очень помог - все работает smiley
              samurai smiley
              • 17921
              • 101 Posts
              Возник еще такой вопрос - как изменить внешний вид TV в админке? В частности, я хочу поставить фиксированную ширину текстовому полю и сделать так, чтобы оно обтекалось другими. Я так понимаю, за это теоретически отвечает Визуальный компонент, но сколько не крутила - эффекта никакого..
                samurai smiley
                • 36442
                • 97 Posts
                Визуальный компонент отвечает за отображение на фронт-энде. Вам же следует посмотреть в сторону ManagerManager, но всё равно придётся его дорабатывать либо делать по аналогии свой плагин. Ещё вариант - создавать свой тип ТВ (custom TV type).