![]() Server : LiteSpeed System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : claqxcrl ( 523) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/claqxcrl/anfangola.com/wp-content/plugins/wp-smushit/core/parser/ |
<?php namespace Smush\Core\Parser; class Element_Attribute { private $attribute; private $name; private $value; /** * @var Image_URL[] */ private $image_urls; public function __construct( $name, $value, $attribute = '', $image_urls = array() ) { $this->name = $name; $this->value = new Value( $value ); $this->image_urls = $image_urls; $this->attribute = empty( $attribute ) ? sprintf( '%s="%s"', $name, $value ) : $attribute; } /** * @return mixed */ public function get_attribute() { return $this->attribute; } /** * @return mixed */ public function get_name() { return $this->name; } /** * @return mixed */ public function get_value() { return $this->value->get(); } public function set_value( $value ) { $this->value->set( $value ); } public function has_updates() { if ( $this->value->has_updates() ) { return true; } foreach ( $this->image_urls as $image_url ) { if ( $image_url->has_updates() ) { return true; } } return false; } public function get_updated() { $updated = $this->attribute; if ( $this->value->has_updates() ) { // Replace whole value $updated = $this->replace_value( $updated ); } else { // Replace the image URLs within the value $updated = $this->replace_image_urls( $updated ); } return $updated; } /** * @return Image_URL[] */ public function get_image_urls() { return $this->image_urls; } public function get_single_image_url() { $image_urls = $this->get_image_urls(); return empty( $image_urls ) ? null : $image_urls[0]; } /** * @param $updated * * @return string */ private function replace_image_urls( $updated ) { foreach ( $this->image_urls as $image_url ) { if ( $image_url->has_updates() ) { $updated = str_replace( $image_url->get_previous_url(), esc_url_raw( $image_url->get_url() ), $updated ); } } return $updated; } /** * @param $updated * * @return string */ private function replace_value( $updated ) { return str_replace( $this->value->get_previous(), esc_attr( $this->value->get() ), $updated ); } }