Не работает условие в чанке футера на остальных страницах
        Здравствуйте всем. Возможно, вопрос простой. Недавно на одном из сайтов в чанке футера я написал такое условие (на скорую руку):
Оно сработало на главной странице, но когда просматривал остальные — условие не сработало и не выводило теперь весь блок с баннерами. Почему? Или проверка тв-поля в чанке не так делается?
В логах выводит такие ошибки. Возможно, это из-за неправильного вывода условия.
    
    
                                                                                
            <div class="container">
  <div class="row banner-flex">
	{if $_modx->resource.Banner_footer_img_01 != ''}
	<div class="col-md-3 col-xs-6">
	  <div class="test_banner_tmp">
		<a href="[[pdoField? &id=`1` &field=`Banner_footer_link_01` &top=`2`]]" target="_blank">
		  <img src="[[pdoField? &id=`1` &field=`Banner_footer_img_01` &top=`2`]]" loading="lazy"
		  alt="Баннер в подвале 1" width="264" height="120" class="img-responsive" />
		</a>
	  </div>
	</div>
	{/if}
	{if $_modx->resource.Banner_footer_img_02 != ''}
	<div class="col-md-3 col-xs-6">
	  <div class="test_banner_tmp">
		<a href="[[pdoField? &id=`1` &field=`Banner_footer_link_02` &top=`2`]]" target="_blank">
		  <img src="[[pdoField? &id=`1` &field=`Banner_footer_img_02` &top=`2`]]" loading="lazy"
		  alt="Баннер в подвале 2" width="264" height="120" class="img-responsive" />
		</a>
	  </div>
	</div>
	{/if}
	{if $_modx->resource.Banner_footer_img_03 != ''}
	<div class="col-md-3 col-xs-6">
	  <div class="test_banner_tmp">
		<a href="[[pdoField? &id=`1` &field=`Banner_footer_link_03` &top=`2`]]" target="_blank">
		  <img src="[[pdoField? &id=`1` &field=`Banner_footer_img_03` &top=`2`]]" loading="lazy"
		  alt="Баннер в подвале 3" width="264" height="120" class="img-responsive" />
		</a>
	  </div>
	</div>
	{/if}
	{if $_modx->resource.Banner_footer_img_04 != ''}
	<div class="col-md-3 col-xs-6">
	  <div class="test_banner_tmp">
		<a href="[[pdoField? &id=`1` &field=`Banner_footer_link_04` &top=`2`]]" target="_blank">
		  <img src="[[pdoField? &id=`1` &field=`Banner_footer_img_04` &top=`2`]]" loading="lazy"
		  alt="Баннер в подвале 4" width="264" height="120" class="img-responsive" />
		</a>
	  </div>
	</div>
	{/if}
  </div>
</div>Это условие проверяет наличие пустого тв-поля картинки-баннера. Если тв-поле пустое, то блок с определённым баннером не выводится.Оно сработало на главной странице, но когда просматривал остальные — условие не сработало и не выводило теперь весь блок с баннерами. Почему? Или проверка тв-поля в чанке не так делается?
В логах выводит такие ошибки. Возможно, это из-за неправильного вывода условия.
`` is not a valid integer and may not be passed to makeUrl()
Attempted to redirect to an empty URL.    Комментарии: 16
                Так попробуй
                    {if !$_modx->resource.Banner_footer_img_01}...{/if}            
                по моему, не сработало. не выводит весь блок с баннерами            
                    
                А чанк ты как на странице выводишь?            
                    
                ну в шаблонах чаще всего прописано через [[$Footer]]. Заметил, что часть кода в некоторых шаблонах подсвечена красным. сайт не я делал. Может из-за этого моё условие на феноме и не срабатывает. Мож если исправить ошибки в шаблоне — условие сработает.            
                    
                Синтаксис конечно лучше не смешивать, но вряд ли дело в этом. Скорее всего, дело в том, что баннеры берутся из ресурса с id = 1, а ты проверяешь поле текущего ресурса. И вероятно для текущего ресурса условие ложно.            
                    
                я думал раз чанк футера подключается во всех шаблонах, то будет работать и на любой странице/в любом шаблоне, раз это чанк. Значит нужно прописывать вот так? 
                    {if $Banner_footer_img_02 != ''}            
                Чанк будет работать и работает на любой странице, НО баннеры у тебя в ресурсе 1, а ты проверяешь, условно, есть ли баннер в ресурсе 2. И раз блок выводится, значит баннер в ресурсе 2 есть. Чтобы работало корректно проверять надо так
                    {if (1 | resource: 'Banner_footer_img_01')}...{/if}            
                а, работало на всех страницах, мне нужно написать условие такого вида? хотя я иногда путаюсь между $_modx->resource.id и $id
                    {if ($_modx->resource.id | resource: 'Banner_footer_img_01')}...{/if}            
                Задача в том, чтобы выводить баннер из ТВ заполненного для конкретного ресурса? Или выводить на всех страница баннер из ресурса 1?            
                    
                выводить блок с баннерами на всех страницах, так как блок с баннерами прописан в чанке футера. но чтобы проверяло тв-поле на заполненность. Если пусто — не выводить код блока определённого баннера, а то когда клиент удаляет картинку из тв-поля — она выводится на сайте как битая.            
                    
                Баннеры разные для разных страниц или одинаковые везде?            
                    
                одинаковые везде            
                    
                Тогда вот так должно условие выглядеть
                    {if (1 | resource: 'Banner_footer_img_01')}...{/if}            
                да, кажется, сработало, спасибо). Но почему оно сработало? 1 — это ведь вроде только для ресурса с id 1, но футер ведь во всех страницах, с разным id?..
upd: а, да… понял. у меня ведь тв-поля баннеров добавлены к ресурсу 1. Теперь понял.
                    upd: а, да… понял. у меня ведь тв-поля баннеров добавлены к ресурсу 1. Теперь понял.
                Какая разница на какой странице выводится футер, если баннеры хранятся в ресурсе с id = 1? Рассмотрим такой пример. У тебя есть две комнаты, в комнате с номером 1 стоит тумбочка с ящиками. Если тебе что-то нужно из неё взять, когда ты находишься в комнате 2, ты что будешь делать: искать тумбочку в комнате 2 (её там нет по условию) или пойдёшь в комнату 1?            
                    
                ну да, пойду в комнату 1. Ну по вашей подсказке потом допёрло почему в условии id 1. в ресурсе 1 у меня и лежат эти тв-поля.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.