"text/javascript" в дополнениях

Можно всех попросить не добавлять
type="text/javascript"
в regClientStartupScript и regClientScript

Валидатор ругается. И HTML4 уже ушёл

К 2.6.Х добавил isssue. Pull-request не прокатил
Stan Ezersky
30 марта 2018, 17:59
modx.pro
1 976
+6

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

Семён Кудрявцев
31 марта 2018, 09:37
+3
Молодец! Давно уже пора.
Ещё, если не трудно, не плохо бы туда добавить возможность опционально указывать атрибуты defer и async,
а в связи с последними обновлениями спецификации js то атрибут type лучше не удалять, а тоже сделать опциональным, так как в эпоху модульного js в нём теперь можно указывать type=«module»
В настоящий момент приходится отказываться от нативных методов и использовать компонент modHelpers, в котором Сергей Шлоков предусмотрел эти моменты и скрипты и стили регистрируются как положено, по современным стандартам.
    Сергей Шлоков
    31 марта 2018, 16:20
    +2
    У Сергея Шлокова тоже
    type="text/javascript"
    Я так понимаю, что и
    type="text/css"
    тоже устарел. Завтра выпущу новую версию. Заодно в ней и поправлю это дело.
      Stan Ezersky
      31 марта 2018, 16:38
      0
      Кстати, да.
      type="text/css"
      тоже не используется.

      Спасибо за отклик!
        Сергей Шлоков
        31 марта 2018, 17:54
        +2
        Да весь этот функционал уже давно требует рефакторинга. Мало того, что нет никакой возможности добавить свои аттрибуты в методы regClient*(), так ещё и в качестве ключей хранить код как минимум не профессионально. Т.е. при регистрации сырого кода типа
        <script>
           Тут яваскрипт код...
        </script>
        он прописывается в качестве ключа в массив
        // $src - это сырой код
        $this->loadedjscripts[$src]= true;
        А потом он проверяется на существование
        isset ($this->loadedjscripts[$src])
        Я понимаю, что PHP всё стерпит. Тут всё-таки напрашивается хэш.

        Вот этот код тоже выглядит немного по школьному
        $this->sjscripts[count($this->sjscripts)]= $src;


        П.С. Я даже в какой-то момент при исследовании кода MODX хотел целую статью написать про то, что не боги горшки обжигают. Но потом просто PR делал. Что стоит один только код получения id страницы ошибки
        $errorPageId = $modx->getOption('error_page', null, 404);
        и страницы для неавторизованных пользователей
        $PageId = $modx->getOption('unauthorized_page', null, 401);
          Сергей Шлоков
          01 апреля 2018, 08:55
          0
          Вот ещё один из примеров (класс modRequest).


          А если присмотреться повнимательнее:
          1. Если метод «alias» — ищется id ресурса методом findResource().
          2. Дальше (в скриншот не попало) методом getResource() загружается этот ресурс в $modx->resource.
          3. А в этом методе getResource() опять забито условие
          if ($method == 'alias') {
                $resourceId = $this->modx->findResource($identifier);
          }
          В общем, рефакторить и рефакторить.
    Василий Наумкин
    31 марта 2018, 19:23
    0
    Pull-request не прокатил
    Потому что ты сделал форк форка и из него пытался прислать 60 коммитов.

    Надо просто быть внимательнее и делать PR так, чтобы там был только твой коммит, иначе мерджить невозможно.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7