Сжатие HTML кода
Здравствуйте. Есть такой плагин для сжатия HTML кода:
/** HTML2Minify plugin for MODX Revo
* @internal @event OnWebPagePrerender
* @internal @properties &Minify=ID TV;integer;1
* @internal @modx_category HTML-code
*
* INSTALL
* 1) Assign Minify TV to your template
* 2) Minify TV values
* - Yes==1||No==0
* - Default value: 1
* 3) Enjoy:)
*/
if($modx->event->name=='OnWebPagePrerender'){
$id = $modx->resource->get('id');
$page = $modx->getObject('modResource', $id);
$tv = $page->getTVValue('Minify');
if($tv == 1){
$html = &$modx->resource->_output;
$html = preg_replace('|\s+|', ' ', $html);
}
}Если я правильно понял, то для его активации нужно в шаблоне установить TV параметр. Не могу разобраться, подскажите как это сделать. Комментарии: 13
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Сам плагин повесить на событие OnWebPagePrerender
Решается простой проверкой
if($modx->event->name=='OnWebPagePrerender'){
$id = $modx->resource->get('id');
if($page = $modx->getObject('modResource', $id)){
$tv = $page->getTVValue('Minify');
if($tv == 1){
$html = &$modx->resource->_output;
$html = preg_replace('|\s+|', ' ', $html);
}
}
а вообще, получение id ресурса, потом получение ресурса по id, а затем получение тв и проверку этого тв можно заменить одной строчкой и получится вот так (проверил у себя, работает):
if($modx->resource->getTVValue('Minify') == 1){
$html = &$modx->resource->_output;
$html = preg_replace('|\s+|', ' ', $html);
}
Решил апнуть темку, вдруг кому поможет. Сам вчера столкнулся.
Взято отсюда, тут и расшифровка — stackoverflow.com/questions/5312349/minifying-final-html-output-using-regular-expressions-with-codeigniter
Данное регулярное выражение может некорректно «минифицировать» js, если он встроен прямо в html(присутствует например, в вашем шаблоне). В этому случае ужимайте его вручную через js minify. (например через javascript-minifier.com/).