PluginProbe
Page Builder: Pagelayer – Drag and Drop website builder / 2.2.0
Page Builder: Pagelayer – Drag and Drop website builder v2.2.0
2.2.1 2.2.0 2.1.9 2.1.8 2.1.7 2.1.6 2.1.5 2.1.4 2.1.3 trunk 0.9.0 0.9.1 0.9.2 0.9.3 0.9.4 0.9.5 0.9.6 0.9.7 0.9.8 0.9.9 1.0.0 1.0.2 1.0.3 1.0.4 1.0.5 All 129 releases
← All changes | main/class.php +155 -2 0.9.72.2.0 View file →
@@ -23,10 +23,33 @@
23 23 if(!defined('PAGELAYER_VERSION')) {
24 24 exit('Hacking Attempt !');
25 25 }
26 26
27 -// PageLayer Class
27 +// Pagelayer Class
28 +#[AllowDynamicProperties]
28 29 class PageLayer{
30 +
31 + var $BRAND_TEXT;
32 + var $LOGO;
33 + var $action;
34 + var $license;
35 + var $allowed_mime_type;
36 + var $template_call_sidebar;
37 + var $shortcode_loaded;
38 + var $anim_in_options;
39 + var $anim_out_options;
40 + var $slider_arrow_styles;
41 + var $slider_pager_styles;
42 + var $slider_options;
43 + var $templates;
44 + var $template_header;
45 + var $template_post;
46 + var $template_editor;
47 + var $template_footer;
48 + var $template_popup_ids;
49 + var $load_live_errors;
50 + var $rendering_template_id;
51 + var $dont_make_editable;
29 52
30 53 // All Settings
31 54 var $settings = array();
32 55
@@ -48,9 +71,13 @@
48 71 // The Lang Strings
49 72 var $l = array();
50 73
51 74 // Runtime fonts
75 + var $fonts = array();
52 76 var $runtime_fonts = array();
77 + var $fonts_sent = array();
78 + var $system_fonts = array();
79 + var $typo_props = array();
53 80
54 81 // Array of all the template paths
55 82 var $all_template_paths = array();
56 83
@@ -56,13 +83,139 @@
56 83
57 84 // Tabs visible in the left panel
58 85 var $tabs = ['settings', 'options'];
59 86
87 + // Tabs visible in the left panel
88 + var $screens = ['desktop' => '', 'tablet' => 'tablet', 'mobile' => 'mobile'];
89 +
90 + // Icons set
91 + var $icons = ['font-awesome5'];
92 +
93 + // For exporting templates
94 + var $media_to_export = array();
95 +
96 + // For global widget
97 + var $global_widgets = array();
98 +
99 + // For global section
100 + var $global_sections = array();
101 +
102 + // For saved sections
103 + var $saved_sections = array();
104 +
105 + // For saved default params
106 + var $default_params = array();
107 +
108 + // Youtube API
109 + var $append_yt_api = false;
110 +
111 + var $css = array();
112 + var $css_settings = array();
113 +
114 + // Customizer options
115 + var $customizer_mods = array();
116 + var $customizer_params = array();
117 +
118 + var $data_attr = array();
119 + var $sc_audio_enqueued = 0;
120 +
121 + var $support = 'http://pagelayer.deskuss.com';
122 +
123 + // Global colors and typographies
124 + var $global_colors = array();
125 + var $global_fonts = array();
126 +
127 + // Explicit property declarations to prevent PHP 8.2 dynamic property deprecation warnings
128 + var $font_style;
129 + var $text_transform;
130 + var $font_weight;
131 + var $text_decoration_line;
132 + var $text_decoration_style;
133 + var $customizer_styles_options;
134 + var $e;
135 + var $export_menus;
136 + var $export_mode;
137 + var $font_settings;
138 + var $from_header_to_footer;
139 + var $import_links;
140 + var $import_map;
141 + var $import_media;
142 + var $imported;
143 + var $imported_ids;
144 + var $imported_menus;
145 + var $imported_menus_preg;
146 + var $imported_menus_slug;
147 + var $ip_method;
148 + var $localScript;
149 + var $template_conf;
150 + var $template_sidebar;
151 +
60 152 function __construct() {
61 153
62 154 // Load the langs
63 155 $this->l = @file_get_contents(PAGELAYER_DIR.'/languages/en.json');
64 156 $this->l = @json_decode($this->l, true);
65 -
157 +
158 + // Load the langs hook
159 + $this->l = apply_filters('pagelayer_load_languages', $this->l);
160 +
161 + // Add after plugins_loaded
162 + add_action('plugins_loaded', [ $this, 'load_extra_languages' ], 11);
163 +
164 + // Array of font options
165 + $this->css_settings = ['body' => ['name' => 'Body', 'key' => 'pagelayer_body_typography'],
166 + 'header' => ['name' => 'Site Header', 'sel' => '> header'],
167 + 'main' => ['name' => 'Site Main', 'sel' => '.site-main'],
168 + 'footer' => ['name' => 'Site Footer', 'sel' => '> footer'],
169 + 'entry-header' => ['name' => 'Content Header', 'sel' => '.entry-header'],
170 + 'entry-content' => ['name' => 'Content', 'sel' => '.entry-content'],
171 + 'entry-footer' => ['name' => 'Content Footer', 'sel' => '.entry-footer'],
172 + 'p' => ['name' => 'Paragraph'],
173 + 'aside' => ['name' => 'Sidebar'],
174 + 'a' => ['name' => 'Link'],
175 + 'a-hover' => ['name' => 'Link Hover', 'sel' => 'a:hover'],
176 + 'h1' => ['name' => 'H1', 'key' => 'pagelayer_h1_typography'],
177 + 'h2' => ['name' => 'H2', 'key' => 'pagelayer_h2_typography'],
178 + 'h3' => ['name' => 'H3', 'key' => 'pagelayer_h3_typography'],
179 + 'h4' => ['name' => 'H4', 'key' => 'pagelayer_h4_typography'],
180 + 'h5' => ['name' => 'H5', 'key' => 'pagelayer_h5_typography'],
181 + 'h6' => ['name' => 'H6', 'key' => 'pagelayer_h6_typography'],
182 + 'b' => ['name' => 'Bold', 'sel' => 'strong, body.pagelayer-body b'],
183 + 'i' => ['name' => 'Italics', 'sel' => 'em, body.pagelayer-body i:not(.fa, .fas, .far, .fab)'],
184 + ];
185 +
186 + $this->system_fonts = ['Arial', 'Arial Black', 'Courier', 'Georgia', 'Helvetica', 'impact', 'Tahoma', 'Times New Roman', 'Trebuchet MS', 'Verdana'];
187 + $this->customizer_mods = get_option('pagelayer_customizer_mods', []);
188 + $this->support = (defined('SITEPAD') ? 'http://sitepad.deskuss.com' : $this->support);
189 + $this->typo_props = ['font-family', 'font-size', 'font-style', 'font-weight', 'font-variant', 'text-decoration-line', 'text-decoration-style', 'line-height', 'text-transform', 'letter-spacing', 'word-spacing'];
190 +
191 + }
192 +
193 + function default_font_styles( $args = array()){
194 +
195 + $default_font_styles = [
196 + 'font-family' => 'Open Sans',
197 + 'font-size' => '',
198 + 'font-style' => '',
199 + 'font-variant' => '',
200 + 'font-weight' => '',
201 + 'letter-spacing' => '',
202 + 'line-height' => '',
203 + 'text-decoration-line' => '',
204 + 'text-decoration-style' => '',
205 + 'text-transform' => '',
206 + 'word-spacing' => ''
207 + ];
208 +
209 + return array_merge($default_font_styles, $args);
210 + }
211 +
212 + function load_extra_languages(){
213 +
214 + if(defined('SITEPAD')){
215 + $this->l['email_desc'] = 'To change the email, visit your '.BRAND_SM.' Dashboard -> Settings -> Editor Settings';
216 + $this->l['CMA_desc'] = 'To change text, visit your '.BRAND_SM.' Dashboard -> Settings -> Editor Settings';
217 + }
218 +
66 219 }
67 220
68 221 }