PluginProbe
Page Builder: Pagelayer – Drag and Drop website builder / 2.1.3
Page Builder: Pagelayer – Drag and Drop website builder v2.1.3
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
pagelayer / main / live-body.php

live-body.php in Page Builder: Pagelayer – Drag and Drop website builder 2.1.3, at main/live-body.php

283 lines 8.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 //////////////////////////////////////////////////////////////
4 //===========================================================
5 // live.php
6 //===========================================================
7 // PAGELAYER
8 // Inspired by the DESIRE to be the BEST OF ALL
9 // ----------------------------------------------------------
10 // Started by: Pulkit Gupta
11 // Date: 23rd Jan 2017
12 // Time: 23:00 hrs
13 // Site: http://pagelayer.com/wordpress (PAGELAYER)
14 // ----------------------------------------------------------
15 // Please Read the Terms of use at http://pagelayer.com/tos
16 // ----------------------------------------------------------
17 //===========================================================
18 // (c)Pagelayer Team
19 //===========================================================
20 //////////////////////////////////////////////////////////////
21
22 // Are we being accessed directly ?
23 if(!defined('PAGELAYER_VERSION')) {
24 exit('Hacking Attempt !');
25 }
26
27
28 function pagelayer_live_body(){
29
30 global $post, $pagelayer;
31
32 $icons = pagelayer_enabled_icons();
33 $icons_list = array();
34
35 // Load all icons
36 foreach($icons as $icon){
37 $icons_list[] = $icon.'.min.css';
38 }
39
40 $css_url = admin_url('admin-ajax.php?action=pagelayer_givecss&pagelayer_nonce=1&');
41 if(pagelayer_enable_giver()){
42 $css_url = PAGELAYER_CSS.'/givecss.php?';
43 }
44
45 $dark_mode = get_option('pagelayer_enable_dark_mode');
46 $body_class = '';
47 if(!empty($dark_mode)){
48 $body_class = 'pagelayer-dark';
49 };
50
51 if(defined('SITEPAD')){
52 $body_class .= ' sitepad-body';
53 }
54
55 $shortcut_groups = [
56 'general_shortcuts' => [
57 'undo' => 'Ctrl+Z',
58 'redo' => 'Ctrl+Y',
59 'save_post' => 'Ctrl+S',
60 'copy_widget' => 'Ctrl+C',
61 'paste_widget' => 'Ctrl+V',
62 'duplicate_widget' => 'Ctrl+D',
63 'delete_widget' => 'Delete'
64 ]
65 ];
66
67 echo '
68 <html>
69 <head>
70 <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
71 <link rel="stylesheet" href="'.$css_url.'give=pagelayer-editor.css,trumbowyg.min.css,pagelayer-icons.css,'.implode(',' ,$icons_list).'&ver='.PAGELAYER_VERSION.'">';
72
73 do_action('pagelayer_live_body_head');
74
75 // Brand Name
76 $brand = strtoupper($pagelayer->BRAND_TEXT);
77 $brand = str_split($brand);
78
79 echo '
80 <style>
81 /*Set responsive variables*/
82 .pagelayer-screen-tablet{
83 width: '. $pagelayer->settings['tablet_breakpoint'] .'px;
84 }
85 .pagelayer-screen-mobile{
86 width: '. $pagelayer->settings['mobile_breakpoint'] .'px;
87 }
88 .pagelayer-errorBox-support{
89 text-decoration:none;
90 }
91 </style>
92 </head>
93
94 <body class="pagelayer-normalize pagelayer-body '.$body_class.'">
95 <div class="pagelayer-errorBox">
96 <div class="pagelayer-errorBox-close"><i class="fas fa-times"></i></div>
97 <div class="pagelayer-errorBox-main">
98 <h2><i class="fas fa-times"></i>'.__pl('error').'</h2>
99 <div class="pagelayer-errorBox-content"></div>
100 </div>
101 <div class="pagelayer-errorBox-resolve">
102 <p>'.__pl('error_submitting').'</p>
103 <button type="button" class="pagelayer-errorBox-copy" onclick="pagelayer_copy_error(event)">'.__pl('copy').'</button>
104 <a type="button" class="pagelayer-errorBox-support" href="'. $pagelayer->support .'" target="_bank">'.__pl('support').'</a>
105 </div>
106 </div>
107 <div id="pagelayer-loader-wrapper">
108 <div class="pagelayer-animation-section">
109 <div class="pagelayer-loader">
110 <div class="pagelayer-percent-parent">
111 <div class="pagelayer-percent">10<sup>%</sup></div>
112 </div>
113 </div>
114 <div class="pagelayer-txt-loading">';
115
116 foreach($brand as $k => $v){
117 echo '<span data-text-preloader="'.$v.'" class="letters-loading">'.$v.'</span>';
118 }
119
120 echo '</div>
121 </div>
122 </div>
123
124 <table class="pagelayer-normalize pagelayer-body-table" cellpadding="0" cellspacing="0">
125 <tr>
126 <td valign="top" width="270" class="pagelayer-leftbar-table">
127 <table class="pagelayer-normalize" cellpadding="0" cellspacing="0">
128 <tr class="pagelayer-close-bar">
129 <td>
130 <div class="pagelayer-close-bar-icons">
131 <i class="pagelayer-leftbar-minimize fa fa-minus"></i>
132 <i class="pagelayer-leftbar-close fa fa-close"></i>
133 </div>
134 </td>
135 </tr>
136 <tr height="45">
137 <td class="pagelayer-topbar-holder" valign="middle" align="center">
138 <span class="pagelayer-options-icon pli pli-menu"></span>
139 <div class="pagelayer-elpd-header" style="display:none">
140 <div class="pagelayer-elpd-close"><i class="pli pli-cross" aria-hidden="true"></i></div>
141 <div class="pagelayer-elpd-title pagelayer-topbar-mover">Edit</div>
142 </div>
143 <div class="pagelayer-logo">
144 <img src="'.$pagelayer->LOGO.'" width="28" /><span class="pagelayer-logo-text pagelayer-topbar-mover">'.$pagelayer->BRAND_TEXT.(defined('PAGELAYER_PREMIUM') && strtolower($pagelayer->BRAND_TEXT) == 'pagelayer' ? '<sup style="margin: 3px; font-size: 12px; letter-spacing: 1px; font-family: "Roboto";">Pro</sup>' : '').'</span>
145 <span class="pagelayer-settings-icon pli pli-service" aria-hidden="true"></span>
146 </div>
147 </td>
148 </tr>
149 <tr height="*" valign="top">
150 <td style="position: relative;"><div class="pagelayer-leftbar-holder"></div></td>
151 </tr>
152 <tr height="35" class="pagelayer-bottombar-row">
153 <td><div class="pagelayer-bottombar-holder"></div></td>
154 </tr>
155 </table>
156 <div class="pagelayer-leftbar-toggle">&lsaquo;</div>
157 </td>
158 <td class="pagelayer-iframe" valign="top">
159 <div class="pagelayer-iframe-top-bar">';
160 do_action('pagelayer_iframe_top_bar');
161 echo '
162 </div>
163 <div class="pagelayer-iframe-holder">
164 <iframe src="'.(pagelayer_shortlink(0).'&pagelayer-iframe=1&'.$_SERVER['QUERY_STRING']).'" class="pagelayer-normalize skip-lazy" id="pagelayer-iframe"></iframe>
165 </div>
166 </td>
167 </tr>
168 </table>
169
170 <div class="pagelayer-pro-notice">';
171 pagelayer_show_pro_div('Premium Feature<span class="pli pli-cross pagelayer-pro-x"></span>', '', 0);
172 echo '</div>
173 <div class="pagelayer-editor-notice"></div>
174 <div class="pagelayer-props-modal">
175 <div class="pagelayer-props-holder">
176 <div class="pagelayer-props-wrap">
177 <div class="pagelayer-props-loading-screen"></div>
178 <i class="pagelayer-props-modal-close pli pli-cross" aria-hidden="true"></i>
179 </div>
180 </div>
181 </div>
182 <script>
183 var pagelayer_iframe_cw = document.getElementById("pagelayer-iframe").contentWindow;
184 var start_time = new Date().getTime();
185
186 // Show loading progress
187 function loader(ran) {
188 var inner = document.getElementsByClassName("pagelayer-percent")[0];
189 var w = 0;
190 var t = setInterval(function() {
191 w = w + 1;
192 inner.innerHTML = (w+"<sup>%</sup>");
193 if (w === ran || inner.getAttribute("loaded") == "1"){
194 clearInterval(t);
195 w = 0;
196 }
197 }, 50);
198 }
199 loader(90);
200
201 function $p(sel){
202 return pagelayer_iframe_cw.pagelayer.$$(sel);
203 }
204
205 // Load the window if necessary i.e. an error in the JS of the iframe
206 function onIframeLoad(){
207 setTimeout(function(){
208 force_pagelayer_start();
209 }, 5000);
210 }
211
212 function force_pagelayer_start(){
213 try{
214 if(pagelayer_iframe_cw.pagelayer.loaded == 1){
215 return;
216 }
217 pagelayer_iframe_cw.pagelayer_start();
218 var end_time = new Date().getTime();
219 var diff = (end_time - start_time) / 1000;
220 console.log("['.$pagelayer->BRAND_TEXT.'] Live Body had to load after : "+diff+" seconds");
221
222 // If this fails, lets just hide the loader
223 }catch(e){
224 alert("Fatal error within the '.$pagelayer->BRAND_TEXT.' iFrame as pagelayer object not found ! Please contact '.$pagelayer->BRAND_TEXT.' support");
225 document.getElementById("pagelayer-loader-wrapper").remove();
226 }
227 }
228
229 document.getElementById("pagelayer-iframe").onload = onIframeLoad;
230
231 // ErrorBox content copy function
232 function pagelayer_copy_error(){
233 var tempInput = document.createElement("textarea");
234 tempInput.value = document.querySelector(".pagelayer-errorBox-content").innerText;
235 document.body.appendChild(tempInput);
236 tempInput.select();
237 document.execCommand("copy");
238 document.body.removeChild(tempInput);
239 alert("'.__pl('copy_success').'");
240 }
241
242 </script>
243
244 <div class="pagelayer-editor-modal pagelayer-shortcuts-modal">
245 <div class="pagelayer-editor-modal-wrap">
246 <div class="pagelayer-editor-modal-header">
247 <h2>'.__pl('keyboard_shortcuts').'</h2>
248 <span class="pagelayer-editor-modal-close-icon"><i class="fas fa-times"></i></span>
249 </div>
250 <div class="pagelayer-editor-modal-body">';
251 foreach($shortcut_groups as $grp_name => $group){
252
253 if(empty($group)) {
254 return;
255 }
256
257 echo '<div class="pagelayer-edt-modal-block">'. (!empty($grp_name) ? '<h3>'.__pl($grp_name).'</h3>' :'' ) .'<ul>';
258
259 foreach($group as $desc => $shortcut) {
260 echo '<li><span class="pagelayer-keyboard-shortcut-desc">'.__pl($desc).'</span>
261 <span class="pagelayer-keyboard-shortcut-keys">';
262
263 //Considering the whole shortcut as a single key
264 $key = '<span>'.$shortcut.'</span>';
265
266 //replacing "+" and "," from the string to put it inside <span>
267 $key = preg_replace('/\+/', '</span> + <span>', $key);
268 $key = preg_replace('/\,/', '</span><span style="display:block; margin-top:10px;">', $key);
269
270 echo $key.'</span></li>';
271 }
272
273 echo '</ul></div>';
274 }
275
276 echo '</div>
277 </div>
278 </div>
279 </body>';
280
281 die();
282
283 }