Друзья, первая версия моего компонента для альтернативного подхода к использованию шаблонизаторов PHP готова. Пакет находится на модерации в modStore. Надеюсь, ребята быстро одобрят. Последние дни занимался документацией, переводами и т.п. Так как свободного времени у меня мало, это дело затянулось. В дальнейшем планирую написать пару статей и снять видео по использованию данного компонента. Задача на ближайшее время — доделать пакет Blade для подключения к ZoomX.

В общем, смотрите, пробуйте, комментируйте. Давайте сделаем MODX более современным.

0   593

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

  1. Семён 25 октября 2020, 12:48 # 0
    Уже пробую Ваш компонент, всё работает быстро. Не могу понять только логику обработки 404 ошибок:

    При режиме роутинга = 1, всё понятно, работает настройка MODX error_page, в ней указан ресурс, который будет использован для 404 ошибок, но он показывается с тем шаблоном, который указан в админке, то есть zoomx не перехватывает его, если у ресурса 404 указать пустой шаблон — получим дефолтную браузерную страницу 404
    Получается, что при этом режиме роутинга, нельзя указать свой smarty шаблон?

    При режиме роутинга = 2, я так понимаю, настройка error_page игнорируется, и у меня показывается пустой базовый шаблон base.tpl

    Вопрос: как обрабатывать ошибки 404 при разных режимах роутинга?
    1. Семён 25 октября 2020, 13:06 # 0
      С режимом = 2 я разобрался, не увидел сначала настройку zoomx_default_tpl, в ней указал шаблон 404 страницы и всё заработало как надо.
      Остался вопрос по режиму = 1, как в нём указать свой смарти шаблон для ресурса 404?
      1. Сергей Шлоков 25 октября 2020, 18:18 # 0
        В режиме STRICT также нужно указать в настройке «error_page» id страницы ошибки. И у этой страницы или заморозить URI со значением 404 (чтобы соответствовало роуту), или создать роут с таким же URI как у страницы ошибки.

        Получается, что при этом режиме роутинга, нельзя указать свой smarty шаблон?
        В режиме MIXED никак нельзя указать Smarty шаблон. В этом и смысл режима.

        Настройка zoomx_default_tpl нужна только в том случае, если не найден роут и некуда перенаправить запрос — не найдена страница ошибки. Должно срабатывать крайне редко. Ибо часто указывается стартовая страница.
    2. Vladimir 26 октября 2020, 10:34 # 0
      вот же, вроде на все везде подписан, а пропустил! ))
      1. Сергей Шлоков 26 октября 2020, 10:42 # 0
        Предположу, что выходные прошли хорошо;)
        1. Vladimir 26 октября 2020, 10:46 # +1
          И это правда!
          Хотя не со стаканом в руке, но зато с паяльником!!!
          Так. Загрузил ZoomX. Ща позырю.
          1. Сергей Шлоков 26 октября 2020, 22:02 # 0
            А я на выходных сварку осваивал. Паяльник освоил ещё в детстве в электро-техническом кружке. Там же и платы травили.:r
            1. Vladimir 26 октября 2020, 22:09 # 0
              видимо, паяльник осваивали в одно и тоже время)) Правда, я без кружков, у меня дедушка шефствовал надо мной («Возьмем немного элекричества из розетки, говорит дедушка заряжая конденсатор, вот, теперь его можно пощупать… Ну, как? Видишь, мы вязли очень мало, а бъёт ощутимо!»
              1. Сергей Шлоков 26 октября 2020, 22:26 # +1
                Золотые времена!

                Где-то читал, что в случае апокалипсиса выживет 10% специалистов, которые не дадут вернуться человечеству в первобытный строй. Думаю, ещё 10 лет, и специалистами будут считаться менеджеры и блогеры. Кто из современных детей разбирал аккумулятор и плавил свинец?:(
      2. Vladimir 28 октября 2020, 18:30 # 0
        Просто наблюдение: поставил на готовый проект (2.8.1, на всякий случай, упомяну версию), но решил глянуть как удаляется, а удалить пакет ZoomX не получилось, только откат назад из резервной копии.
        1. Сергей Шлоков 28 октября 2020, 20:53 # +1
          Поставил на тестовый сайт. Деинсталяция прошла нормально, но кэш не очистился, что вызывало ошибку 500. Удалил пакет, кэш очистился и всё заработало. Похоже менеджер пакетов глючит. Я сегодня пробовал ставить Fred. Менеджер не смог поставить зависимости, выдавал ошибки.

          Будем ковырять почему кэш не чистится. Спасибо!

          П.С. Тебе надо было принудительно удалить пакет. Или просто очистить кэш.
          1. Сергей Шлоков 31 октября 2020, 16:33 # +1
            Выяснил, баг менеджера. Если у плагина есть событие OnCacheUpdate, то кранты. MODX пытается вызывать уже удалённый плагин, возникает ошибка, которая корректно не обрабатывается.:w Придётся костыль делать до багфикса MODX.:(
          2. shock 18 ноября 2020, 15:33 # +2
            Спасибо Сергей за ваши труды!
            Видимо MODX не такой уж и отсталый движок как пишут некоторые:)
            Гибкость и вложенный труд в компоненты дают второе дыхание.

            Собственно вопрос, Сергей, не увидел в документации один нюанс: шаблоны можно создавать только с расширением tpl или возможно с html. Такое желательно, потому что использую препроцессор PUG.
            Что скажите?
            1. Сергей Шлоков 18 ноября 2020, 16:15 # 0
              Смарти пофиг на расширение. Ему нужен только контент. А вот Блейду не пофиг.

            Вы должны авторизоваться, чтобы оставлять комментарии.

            Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.