PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 1.1.0
Shortcodes and extra features for Phlox theme v1.1.0
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / admin / includes / classes / class-auxels-import.php
auxin-elements / admin / includes / classes Last commit date
class-auxels-admin-assets.php 9 years ago class-auxels-import-parser.php 9 years ago class-auxels-import.php 9 years ago
class-auxels-import.php
156 lines
1 <?php
2 /**
3 * Class for importing and exporting theme options
4 */
5
6 class Auxels_Import {
7
8 /**
9 * Instance of this class.
10 *
11 * @var object
12 */
13 protected static $instance = null;
14
15
16 function __construct(){
17 // Add a radio option for exporting auxin options to wp export options.
18 add_action( 'export_filters', array( $this, 'export_filters' ) );
19 // Process the check field for auxin options while export submited
20 add_filter( 'export_args', array( $this, 'export_args' ) );
21
22 // adding options to export file
23 add_action( 'rss2_head', array( $this, 'add_xml_tag_option_in_export' ) );
24 // Import the options based on parsed data from xml file
25 add_action( 'import_start', array( $this, 'import_start' ) );
26 }
27
28 /**
29 * Add a radio option for exporting auxin options to available export options.
30 *
31 * @return void
32 */
33 public function export_filters() {
34 ?>
35 <hr />
36 <p><label>
37 <input type="checkbox" name="auxin-options" checked="checked" aria-describedby="all-content-desc" />
38 <?php _e( 'Include theme options', 'auxin-elements' ); ?>
39 </label></p>
40 <?php
41 }
42
43 /**
44 * Process the check field for auxin options
45 *
46 * @param [type] $args [description]
47 * @return [type] [description]
48 */
49 public function export_args( $args ){
50
51 if ( ! empty( $_GET['auxin-options'] ) ) {
52 $args['auxin-options'] = true;
53 return $args;
54 }
55
56 return $args;
57 }
58
59
60 /**
61 * Generate option page for wp options in xml format
62 */
63 public function add_xml_tag_option_in_export(){
64 global $wpdb;
65
66 $options_ref = $this->get_export_option_list();
67
68 foreach ( $options_ref as $option_export_name => $option_import_name ) {
69 $sql = $wpdb->prepare("SELECT option_name, option_value FROM $wpdb->options WHERE option_name = %s", $option_import_name );
70 $result = $wpdb->get_results( $sql );
71
72 if( ! empty( $result[0]->option_value ) ){
73 ?>
74 <wp:option>
75 <wp:option_key><?php echo $this->wxr_cdata( $option_export_name ); ?></wp:option_key>
76 <wp:option_value><?php echo $this->wxr_cdata( $result[0]->option_value ); ?></wp:option_value>
77 </wp:option>
78 <?php
79 }
80
81 }
82 }
83
84
85 /**
86 * Import the options based on parsed data from xml file
87 */
88 public function import_start(){
89 global $wp_import;
90
91 $options_ref = $this->get_export_option_list();
92
93 $file = get_attached_file( $wp_import->id );
94 // if export file is not uploaded and is a link to a file in theme files
95 if( empty( $file ) && property_exists( $wp_import, 'import_file' ) ){
96 $file = $wp_import->import_file;
97 }
98
99 include 'class-auxels-import-parser.php';
100
101 $parser = new AUXELS_Import_Parser;
102 $options = $parser->parse( $file );
103
104 foreach ( $options as $option_key => $option_value ){
105 if( ! empty( $options_ref[ $option_key ] ) ){
106 update_option( $options_ref[ $option_key ], maybe_unserialize( $option_value ) );
107 }
108 }
109
110 }
111
112
113 /**
114 * Retrieves the list of options we intended to include in export file
115 */
116 public function get_export_option_list(){
117 return array(
118 'formatted_options' => THEME_ID . '_formatted_options'
119 );
120 }
121
122
123 /**
124 * Print the data in cdata and utf8 format
125 * @param string $str
126 */
127 function wxr_cdata( $str ) {
128 if ( ! seems_utf8( $str ) ) {
129 $str = utf8_encode( $str );
130 }
131
132 $str = '<![CDATA[' . str_replace( ']]>', ']]]]><![CDATA[>', $str ) . ']]>';
133
134 return $str;
135 }
136
137
138 /**
139 * Return an instance of this class.
140 *
141 * @return object A single instance of this class.
142 */
143 public static function get_instance() {
144
145 // If the single instance hasn't been set, set it now.
146 if ( null == self::$instance ) {
147 self::$instance = new self;
148 }
149
150 return self::$instance;
151 }
152
153 }
154
155 new Auxels_Import();
156