| 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 |
class PageLayer_LiveEditor{ |
| 29 |
|
| 30 |
// The constructor |
| 31 |
function __construct() { |
| 32 |
|
| 33 |
global $pagelayer; |
| 34 |
|
| 35 |
$GLOBALS['concatenate_scripts'] = true; |
| 36 |
|
| 37 |
// Convert the post to a PageLayer Post first |
| 38 |
$this->check_post(); |
| 39 |
|
| 40 |
// Add the shortcodes |
| 41 |
// TODO : Make a json file |
| 42 |
add_action('wp_head', array($this, 'wp_head'), 999); |
| 43 |
|
| 44 |
// Add the Body Class Filter |
| 45 |
//add_filter('body_class', array($this, 'body_class')); |
| 46 |
|
| 47 |
// Add the content handler |
| 48 |
add_filter('the_content', array($this, 'the_content')); |
| 49 |
|
| 50 |
// Enqueue our Editor's JS |
| 51 |
wp_register_script('pagelayer-editor', PAGELAYER_JS.'/givejs.php?give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,drag.js,base64.js,slimscroll.js,vanilla-picker.min.js,trumbowyg.js,trumbowyg-pagelayer.js,pen.js', array('jquery'), PAGELAYER_VERSION); |
| 52 |
wp_enqueue_script('pagelayer-editor'); |
| 53 |
|
| 54 |
// Enqueue the Editor's CSS |
| 55 |
wp_register_style('pagelayer-editor', PAGELAYER_CSS.'/givecss.php?give=pagelayer-editor-frontend.css,pen.css', array(), PAGELAYER_VERSION); |
| 56 |
wp_enqueue_style('pagelayer-editor'); |
| 57 |
|
| 58 |
// Enqueue the DateTime picker CSS |
| 59 |
/* wp_register_style('datetime-picker', PAGELAYER_CSS.'/datetime-picker.css', array(), PAGELAYER_VERSION); |
| 60 |
wp_enqueue_style('datetime-picker'); */ |
| 61 |
|
| 62 |
// Enqueue the media library |
| 63 |
if(!did_action('wp_enqueue_media')){ |
| 64 |
wp_enqueue_media(); |
| 65 |
} |
| 66 |
|
| 67 |
// Force the Frontend CSS and JS if not already loaded |
| 68 |
pagelayer_enqueue_frontend(true); |
| 69 |
|
| 70 |
// Hide Admin Bar |
| 71 |
show_admin_bar(false); |
| 72 |
|
| 73 |
// Add the footer scripts |
| 74 |
add_action('wp_footer', array($this, 'wp_footer'), 1); |
| 75 |
|
| 76 |
} |
| 77 |
|
| 78 |
// Add our body class |
| 79 |
function body_class($classes){ |
| 80 |
return array_merge($classes, array('pagelayer-body')); |
| 81 |
} |
| 82 |
|
| 83 |
// Header function to add certain things |
| 84 |
function wp_head(){ |
| 85 |
|
| 86 |
global $pagelayer, $post; |
| 87 |
|
| 88 |
$returnURL = (!is_page($post->ID) ? admin_url('edit.php') : admin_url('edit.php?post_type=page') ); |
| 89 |
|
| 90 |
echo ' |
| 91 |
<script type="text/javascript"> |
| 92 |
pagelayer_ver = "'.PAGELAYER_VERSION .'"; |
| 93 |
pagelayer_shortcodes = '.json_encode($pagelayer->shortcodes).'; |
| 94 |
pagelayer_styles = '.json_encode($pagelayer->styles).'; |
| 95 |
pagelayer_groups = '.json_encode($pagelayer->groups).'; |
| 96 |
pagelayer_ajax_url = "'.admin_url( 'admin-ajax.php' ).'"; |
| 97 |
pagelayer_ajax_nonce = "'.wp_create_nonce('pagelayer_ajax').'"; |
| 98 |
pagelayer_url = "'.PAGELAYER_URL.'"; |
| 99 |
pagelayer_postID = "'.$post->ID.'"; |
| 100 |
pagelayer_tabs = '.json_encode($pagelayer->tabs).'; |
| 101 |
pagelayer_isDirty = false; |
| 102 |
pagelayer_returnURL = "'.$returnURL.'"; |
| 103 |
</script>'; |
| 104 |
} |
| 105 |
|
| 106 |
// Footer function to add certain things |
| 107 |
function wp_footer(){ |
| 108 |
wp_enqueue_script('heartbeat'); |
| 109 |
_wp_footer_scripts(); |
| 110 |
} |
| 111 |
|
| 112 |
// Convert to Pagelayer post |
| 113 |
function check_post(){ |
| 114 |
|
| 115 |
global $post; |
| 116 |
|
| 117 |
// Is this a Pagelayer post |
| 118 |
$data = get_post_meta($post->ID, 'pagelayer-data', true); |
| 119 |
|
| 120 |
if(empty($data)){ |
| 121 |
|
| 122 |
// Is it a Gutenburg Post ? |
| 123 |
if(false){ |
| 124 |
|
| 125 |
// Regular post |
| 126 |
}else{ |
| 127 |
|
| 128 |
// Add our surrounding tag |
| 129 |
$post->post_content = '['.PAGELAYER_SC_PREFIX.'_row] |
| 130 |
['.PAGELAYER_SC_PREFIX.'_col col=12] |
| 131 |
['.PAGELAYER_SC_PREFIX.'_text] |
| 132 |
'.$post->post_content.' |
| 133 |
[/'.PAGELAYER_SC_PREFIX.'_text] |
| 134 |
[/'.PAGELAYER_SC_PREFIX.'_col] |
| 135 |
[/'.PAGELAYER_SC_PREFIX.'_row]'; |
| 136 |
|
| 137 |
// Update the post |
| 138 |
$new_post = array( |
| 139 |
'ID' => $post->ID, |
| 140 |
'post_content' => $post->post_content, |
| 141 |
); |
| 142 |
|
| 143 |
// Update the post into the database |
| 144 |
wp_update_post($new_post); |
| 145 |
|
| 146 |
} |
| 147 |
|
| 148 |
// Convert to pagelayer accessed post |
| 149 |
if(!add_post_meta($post->ID, 'pagelayer-data', time(), true)){ |
| 150 |
update_post_meta($post->ID, 'pagelayer-data', time()); |
| 151 |
} |
| 152 |
} |
| 153 |
|
| 154 |
} |
| 155 |
|
| 156 |
// Add certain things |
| 157 |
function the_content($content) { |
| 158 |
|
| 159 |
global $post; |
| 160 |
|
| 161 |
// Check if we're inside the main loop in a single post page. |
| 162 |
if ( is_single() && in_the_loop() && is_main_query() ) { |
| 163 |
return $content; |
| 164 |
} |
| 165 |
|
| 166 |
return $content; |
| 167 |
|
| 168 |
} |
| 169 |
|
| 170 |
} |
| 171 |
|