Убрать на всех страницах 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;
}