Fenom не игнорирует содержимое в {ignore} Новый


[2016-09-13 07:57:36] (ERROR @ /www/core/components/pdotools/model/pdotools/pdotools.class.php : 940) Unexpected tag 'margin' in 7065a87f9d50cb1b03505d654a19fb4e line 11, near '{margin:' <- there
Вставил в чанк критический css, закинул весь этот css в {ignore} {/ignore}, но все равно, каждый раз когда захожу на страницу, выплывает ошибка. Как решить проблему? Без пробелов)
Заранее спасибо.
13 сентября 2016, 08:00    DimenSi   G+  
0    821 0

Комментарии (8)

  1. Михаил 13 сентября 2016, 09:00 # 0
    Где то в шаблоне есть тэг. В самом css не выдает.
    1. DimenSi 13 сентября 2016, 09:03 # 0
      Когда, я убираю инклюд этого чанка, то ошибки не появляются.
    2. Павел Гвоздь 13 сентября 2016, 09:19 # 0
      Ставь пробел после открывающей фигурной скобки.

      Я заметил, что Феном обрабатывает тег {ignore} не во всех случаях. Ну вот, например, он его понимает в такой конструкции:
      {var $tpl}
      {ignore}
      <div><a href="{$id | url}">{$pagetitle}</a></div>
      {/ignore}
      {/var}

      После чего, данную переменную можно спокойно использовать для указания @INLINE чанка:
      {'pdoResources' | snippet : [
      	'tpl' => '@INLINE ' ~ $tpl,
      ]}

      А, вот если указать {ignore} в каком-нибудь другом месте — ломается и выводит ошибку в логи системы.
      1. DimenSi 13 сентября 2016, 10:05 # 0
        попробовал, запихнуть все в переменную, но не вышло)
        {set $css}
        {ignore}
        //css
        {/ignore}
        {/set}
        {$css}
        
        Все равно выдает ошибку. Феном популярен больно узко, гугл вообще никаких подсказок насчет ignore не дает, а в гитхабе ответа на мой случай тоже не увидел.
        1. Павел Гвоздь 13 сентября 2016, 10:15 # 0
          Во-первых, я никаких советов не давал по использованию данной конструкции в твоей ситуации.

          Во-вторых, если вот этот код вставить в контент ресурса на голый сайт modhost.pro, с установленным pdoTools и настройкой pdotools_fenom_parser=true, то всё обрабатывается корректно.
          {set $a}
          {ignore}
          {xdsd}
          {/ignore}
          {/set}
          {$a}

          Так что ищи ошибку непосредственно на своём сайте, ибо проблема не в Fenom, и не в pdoTools.
          1. Константин Ильин 30 июня 2017, 14:27 # 0
            Подскажите пожалуйста, как не выводить переменную в цикле foreach

            1. Получаю тв MIGX
            2. Создаю переменную $content_bottom
            3. В цикле все склеиваю и пихаю в переменную $content_bottom
            Но, по умолчанию fenom сразу выводит эту переменную{$content_bottom}, а мне хотелось бы ее вывести в другом месте или вообще не выводить.
            {set $rows = json_decode($_modx->resource.content_bottom, true)}        
            {var $content_bottom = ''}
            {foreach $rows as $idx => $row}
                {$content_bottom ~= '<div id="tab'~$idx~'">'~$row.slogan_text~'</div>'}
            {/foreach}
            1. Константин Ильин 30 июня 2017, 17:31 # 0
              Чтож из серии «сам ступил, сам нашел» :)

              Надо обернуть foreach в set или var
              {set $rows = json_decode($_modx->resource.content_bottom, true)}        
              {set $content_bottom}
              	{foreach $rows as $idx => $row}
              		{$content_bottom = '<div id="tab'~$idx~'">'~$row.slogan_text~'</div>'}
              	{/foreach}
              {/set}
              
              //Потом уже где хочется вызываем
              {$content_bottom}
              
      2. TITAN-UZ 13 сентября 2016, 17:08 # 0
        Прежде чем ставит {ignore} удалай кеш все везде memcache opcache итд удали кэш браузера!
        Если VPS перезагрузи! У меня после таких махинации сработал!
        Вы должны авторизоваться, чтобы оставлять комментарии.