Событие OnWebPagePrerender
<?php
if ($modx->event->name == 'OnWebPagePrerender') {
if (!$modx->user->isAuthenticated('mgr')) {return;}
$html = '
<div style="position:fixed;z-index:1000; padding:8px 5px;left:5px;bottom:5px;background-color:black;" id="editButton">
<a href="/manager/index.php?a=resource/update&id='.$modx->resource->id.'">Редактировать эту страницу</a>
</div>';
$modx->resource->_output .= $html;
}
Событие OnFileManagerUpload
$currentdoc = $modx->newObject('modResource'); foreach ($files as &$file) { if ($file['error'] == 0) { $newName = $currentdoc->cleanAlias($file['name']); //file rename logic if ($file['name'] !== $newName) { $arDirFiles = $source->getObjectsInContainer($directory); foreach ($arDirFiles as &$dirFile){ if($dirFile['name']===$newName){ //delete file if there is one with new name $source->removeObject($directory . $newName); } } //transliterate uploaded file $source->renameObject($directory . $file['name'], $newName); } } }
Событие OnWebPagePrerender
<?php if ($modx->event->name != 'OnWebPagePrerender') return; $transparentPixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="; $hasLazy = false; $content = &$modx->resource->_output; preg_match_all('/<img[^>]+>/i', $content, $images); if (count($images)) { foreach ($images[0] as $image) { $imageAttributes = array(); preg_match('/(class)=("[^"]*")/i', $image, $classValue); $imageAttributes["class"] = explode(" ", str_replace('"', '', $classValue[2])); if (in_array("lazy", $imageAttributes["class"])) { preg_match('/(src)=("[^"]*")/i', $image, $imageSrc); $i = str_replace('"', '', $imageSrc[2]); $lazyImage = str_replace(" src=", ' src="'.$transparentPixel.'" data-src=', $image); $content = str_replace($image, $lazyImage, $content); $hasLazy = true; } } } if ($hasLazy) { $lazyJs = ''; $content = str_replace("</body", $lazyJs . "</body", $content); }
Заказать бесплатную консультацию