PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
sitepress-multilingual-cms
/
classes
/
media-translation
<?php namespace WPML\MediaTranslation; class MediaCaption { private $shortcode; private $content_string; private $attributes; private $attachment_id; private $link; private $img; private $caption; public function __construct( $caption_shortcode, $attributes_data, $content_string ) { $this->shortcode = $caption_shortcode; $this->content_string = $content_string; $this->attributes = $this->find_attributes_array( $attributes_data ); $this->attachment_id = $this->find_attachment_id( $this->attributes ); $this->link = $this->find_link( $content_string ); $img_parser = new MediaImgParse(); $this->img = current( $img_parser->get_imgs( $content_string ) ); $this->caption = trim( strip_tags( $content_string ) ); } /** * @return int */ public function get_id() { return $this->attachment_id; } public function get_caption() { return $this->caption; } public function get_shortcode_string() { return $this->shortcode; } public function get_content() { return $this->content_string; } public function get_image_alt() { if ( isset( $this->img['attributes']['alt'] ) ) { return $this->img['attributes']['alt']; } else { return ''; } } public function get_link() { return $this->link; } /** * @param string $attributes_list * * @return array */ private function find_attributes_array( $attributes_list ) { $attributes = array(); if ( preg_match_all( '/(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?/', $attributes_list, $attribute_matches ) ) { foreach ( $attribute_matches[1] as $k => $key ) { $attributes[ $key ] = $attribute_matches[2][ $k ]; } } return $attributes; } /** * @param array $attributes * * @return null|int */ private function find_attachment_id( $attributes ) { $attachment_id = null; if ( isset( $attributes['id'] ) ) { if ( preg_match( '/attachment_([0-9]+)\b/', $attributes['id'], $id_match ) ) { if ( 'attachment' === get_post_type( (int) $id_match[1] ) ) { $attachment_id = (int) $id_match[1]; } } } return $attachment_id; } /** * @param $string * * @return array */ private function find_link( $string ) { $link = array(); if ( preg_match( '/<a ([^>]+)>(.+)<\/a>/s', $string, $a_match ) ) { if ( preg_match( '/href=["\']([^"]+)["\']/', $a_match[1], $url_match ) ) { $link['url'] = $url_match[1]; } } return $link; } }
[-] AddMediaDataToTranslationPackageFactory.php
[edit]
[-] MediaAttachmentByUrl.php
[edit]
[-] MediaSettings.php
[edit]
[-] MediaTranslationEditorLayoutFactory.php
[edit]
[-] MediaCaptionTagsParse.php
[edit]
[-] MediaAttachmentByUrlFactory.php
[edit]
[-] MediaImgParse.php
[edit]
[+]
..
[-] PostWithMediaFilesFactory.php
[edit]
[-] PostWithMediaFiles.php
[edit]
[-] MediaCaption.php
[edit]
[-] AddMediaDataToTranslationPackage.php
[edit]
[-] MediaTranslationEditorLayout.php
[edit]