pdoMenu ругается на содержимое modWebLink Решено

Дополнение: pdoTools

Обновил pdoTools до последнего,
В логах сыпется это:

И вот строчки, о которых говорится в логах

И ещё одна


Как понять, что не так?)
03 ноября 2016, 00:12    Klike   
0    292 0

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

  1. Александр 03 ноября 2016, 01:59 # 0
    Вызов какой у Вас? И версия php?
    1. Klike 03 ноября 2016, 02:03 # 0
      {'pdoMenu'|snippet:[
          'parents' => 4,
          'tplParentRow' => 'tpl.ParentRowAjax',
          'outerClass' => 'left-menu categories',
          'scheme' => 'uri',
          'templates' => 2,
          'level' => 3,
          'showLog' => false,
      ]}
      Версия php 7.0.10
      1. Александр 03 ноября 2016, 05:11 # 0
        7рка строгая очень, увы, с ней знаком плохо.
        Темнеменее 7ой версией пользуются в последнее время часто и с подобными проблемами вроде не сталкивались. Тут или Вы упустили важное обновление php (например 7.0.11), которое могло повлиять на данную функцию, или настройки к функциям черезмерно строгие. Боюсь, исправив данную проблему, легко посыпятся другие.
        Но если уж говорить о исправлении ситуации, в фун-ию надо подставить строку, php воспринимает строчку, как массив.
        Допишите выше:
        $contentRow = $row['content'] . '';
        А в фрагментах, указанных Вами поменяйте $row['content'] на $contentRow
        Сразу оговорюсь, мое решение неправильное, но рабочее.
        Хотя судя по тому, что Вы пользуетесь fenom и работаете на 7рке, опыта для такого решения у Вас должно быть достаточно
        1. Александр 03 ноября 2016, 05:34 # 0
          Хотя можно попробовать более изящное решение…
          1) На всякий случай, приложение у Вас привязано к modx.com или к modstore? В офф репозитории обновления могут отставать от modstore. Если pdoTools все же привязано к офф репозиторию, попробуйте деинсталировать и удалить, потом скачать с modstore.
          2) Если у Вас в данном примере класс ресурса только «документ» (а не символическая ссылка допустим), попробуйте поставить параметр в вызов 'useWeblinkUrl ' => false.

          На крайний случай можно всегда откатиться до предыдущей версии pdoTools или использовать вместо pdoMenu — pdoResources
          1. Klike 03 ноября 2016, 15:59 # 0
            Спасибо за отзывчивость! На самом деле всё было гораздо проще)
            Пробежался по всем Документам-ссылкам, и оказалось, что в одном из них куда-то делся символ «~»
            вместо [[~12]] было: [[12]]. Поправил, Теперь ошибок нет) Мда)
      2. Василий Наумкин 03 ноября 2016, 05:39 # 0
        Функция trim() ожидает строку, а был передан массив.

        Каким образом у вас массив оказался в содержимом modWebLink?
        1. Klike 03 ноября 2016, 16:00 # 0
          Спасибо, Василий!
          Ответ тут: #comment-69908
          1. Александр 03 ноября 2016, 16:15 # 0
            очень странно, [[12]] должно было игнорироваться в формировании ссылок и восприниматься, как вызов некешированного сниппета
            1. Василий Наумкин 03 ноября 2016, 16:41 # +3
              Щас, ага. Это двойной массив в PHP 5.4+
        2. Klike 03 ноября 2016, 16:00 # 0
          del
          Вы должны авторизоваться, чтобы оставлять комментарии.