PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.15.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.15.0
2.15.0 2.14.0 2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 All 82 releases
← All changes | includes/import/image-parsers/ablocks/tabs-parser.php +37 -0 2.7.7 → 2.15.0 View file →
@@ -1,0 +1,37 @@
1 +<?php
2 +
3 +namespace ABlocks\import\ImageParsers\ablocks;
4 +
5 +use ABlocks\import\ImageParsers\AbstractImageParser;
6 +use DOMDocument;
7 +
8 +class TabsParser extends AbstractImageParser {
9 +
10 + protected function parse() {
11 + if ( ! isset( $this->block['attrs']['iconImageUrl'] ) ) {
12 + return;
13 + }
14 +
15 + $dom = new DOMDocument();
16 + $dom->loadHTML( $this->block['innerHTML'], LIBXML_NOERROR | LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD );
17 +
18 + $image_url = $this->block['attrs']['iconImageUrl'];
19 + $images = $dom->getElementsByTagName( 'img' );
20 + $remote_images = [];
21 +
22 + $i = 1;
23 + while ( $i < $images->count() ) {
24 + $image = $images->item( $i );
25 + $i++;
26 +
27 + $remote_image_url = $image->getAttribute( 'src' );
28 + if ( ! $this->check_external_url( $remote_image_url ) ) {
29 + continue;
30 + }
31 + $remote_images[] = $remote_image_url;
32 + }
33 +
34 + $this->block['innerHTML'] = str_replace( $remote_images, $image_url, $this->block['innerHTML'] );
35 + $this->block['innerContent'] = array_map( fn( $content) => str_replace( $remote_images, $image_url, $content ), $this->block['innerContent'] );
36 + }
37 +}