• Блог
  • Пример расширения MODX

Немного поэкспериментируем с ядром MODX — добавим возможность расширения главного класса системы. Весь процесс я заснял на скрытую камеру. Смотрим, комментируем.

Кстати, по поводу метода modX::getInstance(). Напишите, пользуетесь ли вы им? Или видели где-нибудь?

1   985

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

  1. Семён 21 марта 2019, 19:28 # 0
    Интересное видео, благодарю!
    Вопрос — как Вы в шторме вызываете список классов для переопределения?
    1. Сергей Шлоков 21 марта 2019, 19:54 # 0
      На здоровье!
      Список классов или список методов?
      1. Семён 21 марта 2019, 20:09 # 0
        Да, перепутал, список методов как в видео?
        1. Сергей Шлоков 21 марта 2019, 20:12 # 0
          Ctrl+O
          1. Семён 21 марта 2019, 20:23 # 0
            Спасибо, полезная штука
    2. Николай 22 марта 2019, 13:32 # 0
      А парсер MODX тоже вызывается до наступления OnMODXInit? Интересно, можно ли как-то выпилить родной парсер… Оставить только Fenom, а квадратные скобки, чтобы MODX вообще воспринимать перестал.
      1. Сергей Шлоков 22 марта 2019, 14:23 # 0
        Нет конечно. Вот статья про очередность событий. Парсер запускается на OnParseDocument.

        Ну как минимум не используйте квадратные скобки. Это уменьшит запуск парсера до 3-х раз. Правда синтаксис феном будет от этого всё равно пострадает. Как от этого избавиться читайте тут.
        1. Николай 24 марта 2019, 17:02 # 0
          Вот я к примеру создал тестовый плагин где отметил все события, которые я записываю с помощью file_put_contents в файлик столбиком. Открываю ресурс на пустом шаблоне без единого тега (предварительно удалив папку с кешем), и вот такие события возникают при этом:

          OnInitCulture
          OnMODXInit
          OnHandleRequest
          OnWebPageInit
          OnLoadWebDocument
          OnTVOutputRenderList
          OnParseDocument
          OnParseDocument
          OnParseDocument
          OnBeforeRegisterClientScripts
          OnWebPagePrerender
          OnBeforeSaveWebPageCache
          OnWebPageComplete
          3 раза OnParseDocument срабатывает. А в документации сказано: «Fires on each time the Element tags are parsed.». А тегов то нет у меня) И почему 3 раза-то непонятно…
          1. Сергей Шлоков 24 марта 2019, 18:22 # 0
            Странно проходит коммуникация. Я пишу, что не используйте теги MODX — это снизит количество срабатываний парсера до 3-х. Ответ: «У меня тегов MODX нет. Но парсер срабатывает 3 раза».

            И почему 3 раза-то непонятно…
            Знающим людям понятно.
            1. Николай 24 марта 2019, 19:23 # 0
              Сорри, прочитал ответ вчера, а сегодня написал ответ после экспериментов, и фразу про 3 срабатывания упустил) Буду разбираться дальше
              1. Сергей Шлоков 24 марта 2019, 19:33 # 0
                В начале статьи указаны 3 шага парсера, в которых срабатывает событие OnParseDocument. Но если теги MODX не найдены, то обработка заканчивается.

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

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