53 lines
		
	
	
		
			900 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			900 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace W3TC;
 | |
| 
 | |
| class UserExperience_LazyLoad_Mutator_Picture {
 | |
| 	private $common;
 | |
| 
 | |
| 
 | |
| 
 | |
| 	public function __construct( $common ) {
 | |
| 		$this->common = $common;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	public function run( $content ) {
 | |
| 		$content = preg_replace_callback(
 | |
| 			'~(<img\s[^>]+>)~i',
 | |
| 			array( $this, 'tag_img' ), $content
 | |
| 		);
 | |
| 
 | |
| 		$content = preg_replace_callback(
 | |
| 			'~(<source\s[^>]+>)~i',
 | |
| 			array( $this, 'tag_source' ), $content
 | |
| 		);
 | |
| 
 | |
| 		return $content;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	public function tag_img( $matches ) {
 | |
| 		$content = $matches[0];
 | |
| 
 | |
| 		// get image dimensions
 | |
| 		$dim = $this->common->tag_get_dimensions( $content );
 | |
| 		return $this->common->tag_img_content_replace( $content, $dim );
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 	 * Common replace code for picture and img tags
 | |
| 	 */
 | |
| 	private function tag_source( $matches ) {
 | |
| 		$content = $matches[0];
 | |
| 
 | |
| 		$content = preg_replace( '~(\s)(srcset|sizes)=~i',
 | |
| 			'$1data-$2=', $content );
 | |
| 
 | |
| 		return $content;
 | |
| 	}
 | |
| }
 |