PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / 1.4.1
Starter Sites & Templates by Neve v1.4.1
1.4.1 1.4.0 1.3.0 1.2.29 1.2.28 1.2.6 1.2.7 1.2.8 1.2.9 trunk 1.0.10 1.0.11 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.27 1.1.28 1.1.29 1.1.3 1.1.30 1.1.31 1.1.32 1.1.33 1.1.34 1.1.35 1.1.36 1.1.37 1.1.38 1.1.39 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.3 1.2.4 1.2.5
templates-patterns-collection / includes / Importers / WP / WXR_Parser.php
templates-patterns-collection / includes / Importers / WP Last commit date
Atomic_Wind_Meta_Handler.php 3 months ago Beaver_Data_Fix.php 5 years ago Beaver_ParserXML.php 5 years ago Elementor_Meta_Handler.php 3 months ago WP_Import.php 3 months ago WXR_Parser.php 5 years ago WXR_Parser_SimpleXML.php 4 years ago WXR_Parser_XML.php 5 years ago
WXR_Parser.php
96 lines
1 <?php
2
3 namespace TIOB\Importers\WP;
4
5 use TIOB\Logger;
6
7 /**
8 * WordPress Importer class for managing parsing of WXR files.
9 */
10 class WXR_Parser {
11 /**
12 * Logger instance.
13 *
14 * @var Logger
15 */
16 private $logger;
17
18 /**
19 * Used page builder.
20 *
21 * @var string
22 */
23 private $page_builder;
24
25 /**
26 * WXR_Parser constructor.
27 *
28 * @param string $page_builder the page builder used.
29 */
30 public function __construct( $page_builder = '' ) {
31 $this->page_builder = $page_builder;
32 $this->logger = Logger::get_instance();
33 }
34
35 /**
36 * Parse XML file.
37 *
38 * @param string $file file path.
39 *
40 * @return array|WP_Error
41 */
42 public function parse( $file ) {
43 $this->logger->log( "Starting parsing file:{$file}", 'progress' );
44 $result = null;
45
46 if ( $this->page_builder === 'beaver-builder' || $this->page_builder === 'beaver builder' ) {
47 if ( extension_loaded( 'xml' ) ) {
48 $parser = new Beaver_ParserXML();
49
50 $result = $parser->parse( $file );
51 } else {
52 $this->logger->log( 'xml not active.' );
53 }
54 if ( is_wp_error( $result ) ) {
55 $this->logger->log( "Parse failed with message: {$result->get_error_message()}" );
56 }
57
58 if ( $result === null ) {
59 $this->logger->log( 'Nothing got parsed from XML.' );
60 }
61
62 return $result;
63 }
64
65 // Attempt to use proper XML parsers first
66 if ( extension_loaded( 'simplexml' ) ) {
67 $parser = new WXR_Parser_SimpleXML();
68 $this->logger->log( 'Using WXR_Parser_SimpleXML...', 'progress' );
69 $result = $parser->parse( $file );
70 // If SimpleXML succeeds or this is an invalid WXR file then return the results
71 if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() ) {
72 $this->logger->log( 'Parsed XML', 'success' );
73
74 return $result;
75 }
76 } elseif ( extension_loaded( 'xml' ) ) {
77 $this->logger->log( 'Using WXR_Parser_XML...', 'progress' );
78 $parser = new WXR_Parser_XML;
79 $result = $parser->parse( $file );
80 // If XMLParser succeeds or this is an invalid WXR file then return the results
81 if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() ) {
82 $this->logger->log( 'Parsed XML', 'success' );
83
84 return $result;
85 }
86 }
87
88 if ( is_wp_error( $result ) ) {
89 $this->logger->log( 'simplexml and xml not active.' );
90 $this->logger->log( "Parse failed with message: {$result->get_error_message()}" );
91 }
92
93 return $result;
94 }
95 }
96