Убрать на всех страницах text/javascript [MODX]

Подготовить страницу к валидатору validator.w3.org
15 Ноября 2024
php

Задача: на всех страницах убрать type="text/css.

Следующий скрипт подойдет если валидатор validator.w3.org показывает следующие предупреждения:

  1. Слеш в конце пустого тега - Trailing slash on void elements
  2. У тега script присутствует атрибут type - The type attribute is unnecessary for JavaScript resources.

Сам плагин работает так:

  1. Если это событие OnWebPagePrerender
  2. Если тип ресурса является документом (значение 1)
  3. Берем HTML страницы и находим значения массива $arr1, заменяем на значения массива $arr2
  4. Запоминаем изменения в переменную $output
switch ($modx->event->name) {
    case 'OnWebPagePrerender':
        if($modx->resource->get('content_type') == 1){
            $arr1 = array('type="text/css"', 'type="text/javascript"',' />','/>');
            $arr2 = array('','','>','>');
            $output = &$modx->resource->_output;
            $output = str_replace($arr1,$arr2,$output);
            $output = str_replace(' type="text/javascript"',"",$output);
        }
    break;
}