66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * ET_Builder_Module_Helper_Media class file.
 | 
						|
 *
 | 
						|
 * @class   ET_Builder_Module_Helper_Media
 | 
						|
 * @package Divi\Builder
 | 
						|
 */
 | 
						|
 | 
						|
if ( ! defined( 'ABSPATH' ) ) {
 | 
						|
	die( 'Direct access forbidden.' );
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Class ET_Builder_Module_Helper_Media.
 | 
						|
 *
 | 
						|
 * Module helpers for media (image).
 | 
						|
 *
 | 
						|
 * @since 4.6.4
 | 
						|
 */
 | 
						|
class ET_Builder_Module_Helper_Media {
 | 
						|
	/**
 | 
						|
	 * Return instance of current class.
 | 
						|
	 *
 | 
						|
	 * @return ET_Builder_Module_Helper_Media
 | 
						|
	 */
 | 
						|
	public static function instance() {
 | 
						|
		static $instance;
 | 
						|
 | 
						|
		return $instance ? $instance : $instance = new self();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get image attachment class.
 | 
						|
	 *
 | 
						|
	 * - wp-image-{$id}
 | 
						|
	 *   Add `wp-image-{$id}` class to let `wp_filter_content_tags()` fill in missing
 | 
						|
	 *   height and width attributes on the image. Those attributes are required to add
 | 
						|
	 *   loading "lazy" attribute on the image. WP doesn't have specific method to only
 | 
						|
	 *   generate this class. It's included in get_image_tag() to generate image tags.
 | 
						|
	 *
 | 
						|
	 * @since 4.6.4
 | 
						|
	 *
 | 
						|
	 * @param array   $attrs         All module attributes.
 | 
						|
	 * @param string  $source_key    Key of image source.
 | 
						|
	 * @param integer $attachment_id Attachment ID. Optional.
 | 
						|
	 *
 | 
						|
	 * @return string
 | 
						|
	 */
 | 
						|
	public function get_image_attachment_class( $attrs, $source_key, $attachment_id = 0 ) {
 | 
						|
		$attachment_class = '';
 | 
						|
 | 
						|
		// 1.a. Find attachment ID by URL. Skip if the source key is empty.
 | 
						|
		if ( ! empty( $source_key ) ) {
 | 
						|
			$attachment_src = et_()->array_get( $attrs, $source_key, '' );
 | 
						|
			$attachment_id  = et_get_attachment_id_by_url( $attachment_src );
 | 
						|
		}
 | 
						|
 | 
						|
		// 1.b. Generate attachment ID class.
 | 
						|
		if ( $attachment_id > 0 ) {
 | 
						|
			$attachment_class = "wp-image-{$attachment_id}";
 | 
						|
		}
 | 
						|
 | 
						|
		return $attachment_class;
 | 
						|
	}
 | 
						|
}
 |