Exemple #1
0
 /**
  * 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;
 }