/** * Nahrazení všech datových zdrojů tagů obrázků v zadaném HTML kódu za lazy (na základě skriptu unveil) * * @author Martin Hlaváč * @link http://www.ktstudio.cz * * @param string $html * @return string */ public static function imageReplaceLazySrc($html) { if (self::issetAndNotEmpty($html) && !KT::isAjax()) { // @todo Možno prováděd i při ajaxu, avšak je třeba dodělat javascript trigger $libxmlInternalErrorsState = libxml_use_internal_errors(true); $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->loadHTML($html); $imageTags = $dom->getElementsByTagName("img"); $processedImages = array(); foreach ($imageTags as $imageTag) { $oldSrc = $imageTag->getAttribute("src"); if (in_array($oldSrc, $processedImages)) { continue; // tento obrázek byl již zpracován } array_push($processedImages, $oldSrc); $newSrc = self::imageGetTransparent(); if ($oldSrc !== $newSrc) { $html = str_replace("src=\"{$oldSrc}\"", "src=\"{$newSrc}\" data-src=\"{$oldSrc}\"", $html); } } libxml_clear_errors(); libxml_use_internal_errors($libxmlInternalErrorsState); } return $html; }