Не грузятся страницы сайта после обновления pdoTools с версии 2.10.3 на версию 2.10.4

У меня после обновления перестали грузиться некоторые страницы. В журнале ошибок выводит ошибки:
[2017-12-17 12:46:36] (ERROR @ /home/hostxxxxx/sitename.com/htdocs/www/core/model/modx/modconnectorresponse.class.php : 159) PHP warning: Cannot modify header information - headers already sent by (output started at /home/hostxxxxx/sitename.com/htdocs/www/core/model/modx/modx.class.php:2284)
[2017-12-17 12:46:44] (ERROR @ /home/hostxxxxx/sitename.com/htdocs/www/core/components/pdotools/model/pdotools/pdotools.class.php : 977) Unexpected token ':' in e3512ec55ae9b7b37aa4964c4dea152a line 197, near '{"modUser.id:=":' <- there
Что делать?
На страницах выводит пустой код:
<html><head></head><body></body></html>
и все!
Олег Захаров
17 декабря 2017, 10:01
modx.pro
2 397
0

Комментарии: 12

Олег Захаров
17 декабря 2017, 13:05
0
Откатил пока назад, все заработало. Просим разработчиков посмотреть в чем может быть ошибка.
    Андрей
    17 декабря 2017, 13:35
    +3
    У вас вероятно включена настройка Использовать Fenom на страницах. Посмотрите где у вас в шаблоне используется конструкция {«modUser.id — и добавьте пробел после фигурной скобки.
      Денис
      18 декабря 2017, 09:19
      0
      Верно, либо нужно обернуть в {ignore}{/ignore}
        Олег Захаров
        18 декабря 2017, 09:48
        0
        Самое интересное что у меня все что нужно (счетчик метрики и пиксели) было обернуто в {ignore}{/ignore}.
        Теперь же после отката на 2.3.10 у меня на странице вываливался текст тегов {ignore}{/ignore} — до этого было все норм.
        Т.е. теги как будто перестали работать — странно почему они на странице стали отображаться.
        Я удалил их — предварительно поставив в коде счетчиков и пикселей после фигурной скобки дополнительный пробел "{ ".
        Олег Захаров
        18 декабря 2017, 09:51
        1
        0
        в чанке был такой код:
        [[!If?
           &subject=`[[!isCustomer]]`
           &operator=`EQ`
           &operand=`1`
           &then=`
        [[!pdoUsers?
        	&limit=`0`
        	&tpl=`@INLINE [[+product_id]]`
        	&leftJoin=`{
                "msOrder": {
                    "class": "msOrder",
                    "on": "modUser.id = msOrder.user_id"
                },
                "msOrderProduct": {
                    "class": "msOrderProduct",
                    "on": "msOrder.id = msOrderProduct.order_id"
                 }
            }`
            &select=`{
                "modUser": "*",
                "msOrder": "SUM(msOrder.cost) as sum",
                "msOrderProduct": "*"
            }`
            &sortby=`sum`
            &sortdir=`DESC`
            &where=`{"modUser.id:=":[[!+modx.user.id]], "msOrder.status":2}`
            &toPlaceholder=`userProductId`
        ]]
        
                    [[!pdoResources?
                    	&tpl=`@INLINE [[+id]]`
                    	&where=`{"description:=" : "[[!+userProductId]]"}`
                    	&sortby=`{"menuindex":"ASC", "pagetitle":"DESC"}`
                    	&limit=`1`
                    	&parents=`[[*id]]`
                    	&toPlaceholder=`months`
                    ]]
                    [[!pdoResources?
                    	&tpl=`lessonListTpl`
                    	&where=`{ "template:=" : "11"}`
                    	&sortby=`{"menuindex":"ASC", "pagetitle":"DESC"}`
                    	&parents=`[[+months]]`
                    	&showUnpublished=`1`
                    	&product=`[[!+userProductId]]`
                    ]]
        `
           &else=`
               [[$ghostTemplate8Content]]
           `
        ]]
        Код используется для поиска всех пользователей оплативших заказы (Minishop2) и выборки из них текущего пользователя для отображения купленных им товаров.
        Код не я придумывал, пока сам не вкурил его.
        Может подскажете где может быть проблема?
          Денис
          18 декабря 2017, 10:52
          0
          Поставьте пробелы перед всеми "{"
      Олег Захаров
      18 декабря 2017, 11:17
      0
      Еще на главной был код проверки авторизован пользователь или нет:
      {if is_auth()}
                ...
       {else}
                 ...
        {/if}
      Теперь не работает :(((
      Вываливается на главной оба блока кода которые должны быть и сами теги:
      {if is_auth()} {css('')} блок кода 1
       {else} 
      блок кода 2 {/if}
      простановка пробелов не помогает.
      Короче сломались отработка условий по if на базе тегов Fenom :((
        Alexey T
        18 декабря 2017, 12:07
        0
        Не заметил никаких проблем с обновлением pdoTools. У вас, видимо, установлено дополнение modHelpers, может дело в нем? Попробуйте
        {if $_modx->user.id > 0}блок кода 1
        {else}блок кода 2
        {/if}
          Олег Захаров
          18 декабря 2017, 12:09
          0
          да стоит modhelpers -а как он может влиять?
            Сергей Шлоков
            18 декабря 2017, 20:23
            +1
            Вряд ли. Вообще в pdoTools можно включить настройку, которая разрешает выводить скомпилированный файл в случае ошибки (о ней, кстати, должно быть упомянуто в журнале ошибок MODX с указанием проблемной строки).
            Завтра вечером накачу на свой сайт новую версию pdoTools и посмотрю (щас уже сижу с бокалом вина :) ). Сейчас версия 2.10.3. Всё гуд.

            П.С. Стараюсь меньше здесь писать. Хочу, чтоб Володя поднялся на второе место. Он круче :)
              Сергей Шлоков
              19 декабря 2017, 08:45
              0
              Проверил. Проблемс нот детектед. Видимо какой-то твой код всё ломает. Искать в логе.

              MODX: 2.5.8, 2.6.0.
              PHP: 5.6, 7.0, 7.1
        Олег Захаров
        18 декабря 2017, 12:14
        0
        решил проблему. Сделал переустановку pdoTools (на версии 2.3.10) и все заработало.
        Будем ждать ответа по обновлению в другом топике и пробовать обновиться.
        Вопрос пока оставлю в статусе новый. Т.к. по факту проблему не решил — я просто откатился, попутно словив багов.
        А вот в чем причина такого поведения при обновлении непонятно.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12