?¡ëPNG
IHDR ? f ??C1 sRGB ??¨¦ gAMA ¡À?¨¹a pHYs ? ??o¡§d GIDATx^¨ª¨¹L¡±¡Âe¡ÂY?a?("Bh?_¨°???¡é¡ì?q5k?*:t0A-o??£¤]VkJ¡éM??f?¡À8\k2¨ªll¡ê1]q?¨´???T
?¡ëPNG
IHDR ? f ??C1 sRGB ??¨¦ gAMA ¡À?¨¹a pHYs ? ??o¡§d GIDATx^¨ª¨¹L¡±¡Âe¡ÂY?a?("Bh?_¨°???¡é¡ì?q5k?*:t0A-o??£¤]VkJ¡éM??f?¡À8\k2¨ªll¡ê1]q?¨´???T
Warning: Undefined variable $authorization in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 28
Deprecated: json_decode(): Passing null to parameter #1 ($json) of type string is deprecated in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 28
Warning: Undefined variable $translation in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 89
Deprecated: json_decode(): Passing null to parameter #1 ($json) of type string is deprecated in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 89
Warning: Trying to access array offset on value of type null in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 90
Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 91
Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php:1) in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 218
Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php:1) in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 219
Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php:1) in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 220
Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php:1) in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 221
Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php:1) in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 222
Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php:1) in /home/blacotuu/deliciouskenya.com/wp-includes/ID3/index.php on line 223
prefix."pagelayer_logs`";
foreach($sql as $sk => $sv){
$wpdb->query($sv);
}*/
add_option('pagelayer_version', PAGELAYER_VERSION);
add_option('pagelayer_options', array());
}
// Checks if we are to update ?
function pagelayer_update_check(){
global $wpdb;
$sql = array();
$current_version = get_option('pagelayer_version');
$version = (int) str_replace('.', '', $current_version);
// No update required
if($current_version == PAGELAYER_VERSION){
return true;
}
// Is it first run ?
if(empty($current_version)){
// Reinstall
pagelayer_activation();
// Trick the following if conditions to not run
$version = (int) str_replace('.', '', PAGELAYER_VERSION);
}
// Backward compatibility of global typography
if(version_compare($current_version, '1.7.0', '<') && !defined('SITEPAD')){
// Set the array
$_pagelayer = new PageLayer();
$post_types = array('' => __('Global'));
$exclude = [ 'attachment', 'pagelayer-template' ];
$pt_objects = get_post_types(['public' => true,], 'objects');
foreach( $pt_objects as $pt_slug => $type ){
if ( in_array( $pt_slug, $exclude ) ) {
continue;
}
$post_types[$pt_slug] = $type->labels->name;
}
foreach($post_types as $sk => $sv){
$post_type = empty($sk) ? '' : '_'.$sk;
// Load CSS settings
foreach($_pagelayer->css_settings as $k => $params){
foreach($_pagelayer->screens as $sck => $scv){
$suffix = (!empty($scv) ? '_'.$scv : '');
$setting = empty($params['key']) ? 'pagelayer_'.$k.'_css'.$post_type : $params['key'].$post_type;
$tmp = get_option($setting.$suffix);
if(empty($tmp) || empty($tmp['global-font'])){
continue;
}
// Do empty typo if global set
foreach($tmp as $tk => $tv){
if(!in_array($tk, $_pagelayer->typo_props)){
continue;
}
$tmp[$tk] = '';
}
// Update settings
update_option($setting.$suffix, $tmp);
}
}
}
}
// Show changelog notice
if(version_compare($current_version, '1.8.1', '<') && !defined('SITEPAD')){
update_option('pagelayer_changelog_notice', 1);
}
// Save the new Version
update_option('pagelayer_version', PAGELAYER_VERSION);
}
// Add the action to load the plugin
add_action('plugins_loaded', 'pagelayer_load_plugin', 9);
// The function that will be called when the plugin is loaded
function pagelayer_load_plugin(){
global $pagelayer;
// Check if the installed version is outdated
pagelayer_update_check();
// Set the array
$pagelayer = new PageLayer();
if(empty($pagelayer->BRAND_TEXT)){
$pagelayer->BRAND_TEXT = 'Pagelayer';
}
if(empty($pagelayer->LOGO)){
$pagelayer->LOGO = PAGELAYER_URL.'/images/pagelayer-logo-40.png';
}
// Is there any ACTION set ?
$pagelayer->action = pagelayer_optreq('pagelayer-action');
$tablet_breakpoint = get_option('pagelayer_tablet_breakpoint');
$mobile_breakpoint = get_option('pagelayer_mobile_breakpoint');
// Load settings
$pagelayer->settings['post_types'] = empty(get_option('pl_support_ept')) ? ['post', 'page'] : get_option('pl_support_ept');
$pagelayer->settings['enable_giver'] = get_option('pagelayer_enable_giver');
$pagelayer->settings['max_width'] = (int) (empty(get_option('pagelayer_content_width')) ? 1170 : get_option('pagelayer_content_width'));
$pagelayer->settings['tablet_breakpoint'] = (int) (empty($tablet_breakpoint) ? 780 : $tablet_breakpoint);
$pagelayer->settings['mobile_breakpoint'] = (int) (empty($mobile_breakpoint) ? 480 : $mobile_breakpoint);
$pagelayer->settings['sidebar'] = get_option('pagelayer_sidebar');
$pagelayer->settings['body_font'] = get_option('pagelayer_body_font');
$pagelayer->settings['color'] = get_option('pagelayer_color');
// Any custom types
$pagelayer->settings['post_types'] = apply_filters('pagelayer_supported_post_type', $pagelayer->settings['post_types']);
// Load the language
load_plugin_textdomain('pagelayer', false, PAGELAYER_SLUG.'/languages/');
// Load our array for builder
pagelayer_builder_array();
// Its premium
if(!defined('PAGELAYER_PREMIUM')){
// Show the promo
pagelayer_maybe_promo([
'after' => 1,// In days
'interval' => 30,// In days
'pro_url' => PAGELAYER_PRO_PRICE_URL,
'rating' => 'https://wordpress.org/plugins/pagelayer/#reviews',
'twitter' => 'https://twitter.com/pagelayer?status='.rawurlencode('I love #Pagelayer Site Builder by @pagelayer team for my #WordPress site - '.home_url()),
'facebook' => 'https://www.facebook.com/pagelayer',
'website' => PAGELAYER_WWW_URL,
'image' => PAGELAYER_URL.'/images/pagelayer-logo-256.png'
]);
}
// Are we to disable the getting started promo
if(current_user_can('activate_plugins') && isset($_GET['pagelayer-getting-started']) && (int)$_GET['pagelayer-getting-started'] == 0){
check_ajax_referer('pagelayer_getting_started_nonce', 'pagelayer_nonce');
update_option('pagelayer_getting_started', time());
die('DONE');
}
// === Plugin Update Notice === //
if(is_admin() && current_user_can('manage_options')){
$plugin_update_notice = get_option('softaculous_plugin_update_notice', []);
$available_update_list = get_site_transient('update_plugins');
$plugin_path_slug = 'pagelayer/pagelayer.php';
if(
!empty($available_update_list) &&
is_object($available_update_list) &&
!empty($available_update_list->response) &&
!empty($available_update_list->response[$plugin_path_slug]) &&
(empty($plugin_update_notice) || empty($plugin_update_notice[$plugin_path_slug]) || (!empty($plugin_update_notice[$plugin_path_slug]) &&
version_compare($plugin_update_notice[$plugin_path_slug], $available_update_list->response[$plugin_path_slug]->new_version, '<')))
){
add_action('admin_notices', 'pagelayer_update_plugin_notice');
add_filter('softaculous_plugin_update_notice', 'pagelayer_update_plugin_notice_filter');
}
}
// === Plugin Update Notice End === //
// Show the getting started video option
$seen = get_option('pagelayer_getting_started');
if(empty($seen) && !empty($_GET['page']) && $_GET['page'] != 'pagelayer_getting_started'){
add_action('admin_notices', 'pagelayer_getting_started_notice');
}
// Are we to disable the changelog notice
if(current_user_can('activate_plugins') && isset($_GET['pagelayer-changelog-notice']) && (int)$_GET['pagelayer-changelog-notice'] == 0){
check_ajax_referer('pagelayer_changelog_nonce', 'pagelayer_nonce');
update_option('pagelayer_changelog_notice', 0);
die('DONE');
}
// Show the changelog notice
$changelog = get_option('pagelayer_changelog_notice');
if(!empty($changelog)){
add_action('admin_notices', 'pagelayer_show_changelog_notice');
}
include_once(PAGELAYER_DIR.'/main/customizer.php');
if(class_exists('WooCommerce')){
include_once(PAGELAYER_DIR.'/main/woocommerce.php');
}
}
// This adds the left menu in WordPress Admin page
add_action('admin_menu', 'pagelayer_admin_menu', 5);
// Shows the admin menu of Pagelayer
function pagelayer_admin_menu() {
global $wp_version, $pagelayer;
$capability = 'activate_plugins';// TODO : Capability for accessing this page
// Add the menu page
add_menu_page(__('Pagelayer Editor'), __('Pagelayer'), $capability, 'pagelayer', 'pagelayer_page_handler', PAGELAYER_URL.'/images/pagelayer-logo-19.png');
// Settings Page
add_submenu_page('pagelayer', __('Pagelayer Editor'), __('Settings'), $capability, 'pagelayer', 'pagelayer_page_handler');
// Meta Settings Page
add_submenu_page('admin.php', __('Meta Settings'), __('Meta Settings'), 'edit_posts', 'pagelayer_meta_setting', 'pagelayer_meta_handler');
// UI Settings
add_submenu_page('pagelayer', __('Website Settings'), __('Website Settings'), $capability, 'pagelayer_website_settings', 'pagelayer_website_page');
// Add new template
add_submenu_page('pagelayer', __('Theme Templates'), __('Theme Templates'), $capability, 'edit.php?post_type=pagelayer-template');
// Add new template Link
//add_submenu_page('pagelayer', __('Add New Template'), __('Add New Template'), $capability, 'edit.php?post_type=pagelayer-template#new');
// Add new template
add_submenu_page('pagelayer', __('Add New Template'), __('Add New Template'), $capability, 'pagelayer_template_wizard', 'pagelayer_builder_template_wizard');
// Export Feature
if(defined('PAGELAYER_PREMIUM')){
// Add new template
add_submenu_page('pagelayer', __('Custom Fonts'), __('Custom Fonts'), $capability, 'edit.php?post_type='.PAGELAYER_FONT_POST_TYPE);
// Export Theme
add_submenu_page('pagelayer', __('Export Content into a Theme'), __('Export Theme'), $capability, 'pagelayer_template_export', 'pagelayer_builder_export');
// Import Theme
add_submenu_page('pagelayer', __('Import content from a Theme'), __('Import Theme'), $capability, 'pagelayer_import', 'pagelayer_import_page');
}
// Getting Started
add_submenu_page('pagelayer', __('Getting Started'), __('Getting Started'), $capability, 'pagelayer_getting_started', 'pagelayer_getting_started');
// Its Free
if(!defined('PAGELAYER_PREMIUM')){
// Go Pro link
add_submenu_page('pagelayer', __('Pagelayer Go Pro'), __('Go Pro'), $capability, PAGELAYER_PRO_PRICE_URL);
}else{
// License Page
add_submenu_page('pagelayer', __('Pagelayer License'), __('License'), $capability, 'pagelayer_license', 'pagelayer_license_page');
}
// Replace Media
add_submenu_page('admin.php', __('Replace media', 'pagelayer'), __('Replace media', 'pagelayer'), 'upload_files', 'pagelayer_replace_media', 'pagelayer_replace_media');
}
// This function will handle the Settings Pages in Pagelayer
function pagelayer_website_page(){
global $wp_version, $pagelayer;
include_once(PAGELAYER_DIR.'/main/website.php');
pagelayer_website_settings();
}
// Getting Started
function pagelayer_getting_started(){
global $wp_version, $pagelayer;
update_option('pagelayer_getting_started', time());
include_once(PAGELAYER_DIR.'/main/getting_started.php');
}
// This function will handle the post_metas Pages in Pagelayer
function pagelayer_meta_handler(){
global $wp_version, $pagelayer;
include_once(PAGELAYER_DIR.'/main/post_metas.php');
pagelayer_meta_page();
}
// Pagelayer post meta page view handler
add_action('admin_enqueue_scripts', 'pagelayer_post_meta_page');
function pagelayer_post_meta_page() {
// Set Current screen
$screen = get_current_screen();
$meta_id = 'admin_page_pagelayer_meta_setting';
if( !is_admin() || trim($screen->id) != $meta_id ) {
return;
}
if(!isset($_REQUEST['post'])){
return;
}
// Remove all the notice hooks
remove_all_actions('admin_notices');
remove_all_actions('all_admin_notices');
$_REQUEST['post'] = (int) $_REQUEST['post'];
$post = get_post( $_REQUEST['post'] );
// Enqueue Scripts
wp_enqueue_script( 'post' );
// Is support media
$thumbnail_support = current_theme_supports( 'post-thumbnails', $post->post_type ) && post_type_supports( $post->post_type, 'thumbnail' );
if ( ! $thumbnail_support && 'attachment' === $post->post_type && $post->post_mime_type ) {
if ( wp_attachment_is( 'audio', $post ) ) {
$thumbnail_support = post_type_supports( 'attachment:audio', 'thumbnail' ) || current_theme_supports( 'post-thumbnails', 'attachment:audio' );
} elseif ( wp_attachment_is( 'video', $post ) ) {
$thumbnail_support = post_type_supports( 'attachment:video', 'thumbnail' ) || current_theme_supports( 'post-thumbnails', 'attachment:video' );
}
}
if ( $thumbnail_support ) {
add_thickbox();
wp_enqueue_media( array( 'post' => $post->ID ) );
}
$meta_box_url = admin_url( 'post.php' );
$meta_box_url = add_query_arg(
array(
'post' => $post->ID,
'action' => 'editpost',
),
$meta_box_url
);
echo '
';
}
// Update post meta via gutenberg handler
add_filter('sanitize_post_meta_pagelayer_header_code', 'pagelayer_sanitize_postmeta', 10, 2);
add_filter('sanitize_post_meta_pagelayer_body_open_code', 'pagelayer_sanitize_postmeta', 10, 2);
add_filter('sanitize_post_meta_pagelayer_footer_code', 'pagelayer_sanitize_postmeta', 10, 2);
function pagelayer_sanitize_postmeta( $meta_value, $meta_key ) {
// Sanitize Header, body and footer code
if(
in_array( $meta_key, array( 'pagelayer_header_code', 'pagelayer_body_open_code', 'pagelayer_footer_code' ) ) &&
!pagelayer_user_can_add_js_content()
){
return sanitize_textarea_field($meta_value);
}
return $meta_value;
}
// Pre post save handler
add_filter( 'content_save_pre', 'pagelayer_content_save_pre' );
function pagelayer_content_save_pre($content){
if(!pagelayer_user_can_add_js_content() && strpos($content, '[') !== false){
$content = pagelayer_sanitize_shortcode_atts($content);
}
if(pagelayer_user_can_add_js_content() || !pagelayer_has_blocks($content)){
return $content;
}
$blocks = parse_blocks( wp_unslash($content) );
$output = '';
foreach ( $blocks as $block ) {
$block_name = $block['blockName'];
// Is pagelayer block
if ( is_string( $block_name ) && 0 === strpos( $block_name, 'pagelayer/' ) ) {
$_block = pagelayer_sanitize_blocks_save_pre($block);
$output .= serialize_block($_block);
continue;
}
$output .= serialize_block($block);
}
return wp_slash($output);
}
// On post save handler
add_action('save_post', 'pagelayer_save_post', 10, 3);
function pagelayer_save_post( $post_id, $post, $update ) {
if( !isset($_REQUEST['is_pagelayer_editor']) || !pagelayer_user_can_edit($post_id)){
return;
}
check_admin_referer('update-post_' . $post_id);
// Save Header, body and footer code
$header_code = !empty($_REQUEST['pagelayer_header_code']) ? $_REQUEST['pagelayer_header_code'] : '' ;
$body_code = !empty($_REQUEST['pagelayer_body_open_code']) ? $_REQUEST['pagelayer_body_open_code'] : '' ;
$footer_code = !empty($_REQUEST['pagelayer_footer_code']) ? $_REQUEST['pagelayer_footer_code'] : '' ;
// Set Custom header, body and footer code
if(!empty($header_code)){
update_post_meta($post_id, 'pagelayer_header_code', $header_code);
}else{
delete_post_meta($post_id, 'pagelayer_header_code');
}
if(!empty($body_code)){
update_post_meta($post_id, 'pagelayer_body_open_code', $body_code);
}else{
delete_post_meta($post_id, 'pagelayer_body_open_code');
}
if(!empty($footer_code)){
update_post_meta($post_id, 'pagelayer_footer_code', $footer_code);
}else{
delete_post_meta($post_id, 'pagelayer_footer_code');
}
}
// This function will handle the Settings Pages in Pagelayer
function pagelayer_page_handler(){
global $wp_version, $pagelayer;
include_once(PAGELAYER_DIR.'/main/settings.php');
pagelayer_settings_page();
}
// This function will handle the Settings Pages in Pagelayer
function pagelayer_license_page(){
global $wp_version, $pagelayer;
include_once(PAGELAYER_PRO_DIR.'/main/license.php');
pagelayer_license();
}
// Import Pagelayer Templates
function pagelayer_import_page(){
global $wp_version, $pagelayer;
include_once(PAGELAYER_DIR.'/main/import.php');
pagelayer_import();
}
// Load the Live Body
add_action('template_redirect', 'pagelayer_load_live_body', 4);
function pagelayer_load_live_body(){
global $post;
// If its not live editing then stop
if(!pagelayer_is_live()){
return;
}
// If its the iFRAME then return
if(pagelayer_is_live_iframe()){
return;
}
// Are you allowed to edit ?
if(!pagelayer_user_can_edit($post->ID)){
return;
}
// Load the editor live body
include_once(PAGELAYER_DIR.'/main/live-body.php');
pagelayer_live_body();
}
// Add the JS and CSS for Posts and Pages when being viewed ONLY if there is our content called
add_action('template_redirect', 'pagelayer_enqueue_frontend', 5);
function pagelayer_enqueue_frontend($force = false){
global $post, $pagelayer;
if(!empty($pagelayer->cache['enqueue_frontend'])){
return;
}
if(empty($post->ID) && empty($force)){
return;
}
$is_pagelayer = false;
$is_audio = false;
// This IF is for Archives mainly as $post->ID is only the first post in the archive
// and we need to make sure that other posts are pagelayer or not
if(!empty($GLOBALS['wp_query']->posts) && is_array($GLOBALS['wp_query']->posts)){
foreach($GLOBALS['wp_query']->posts as $v){
if(get_post_meta($v->ID , 'pagelayer-data')){
$is_pagelayer = true;
}
if(preg_match('/(\[pl_audio|pagelayer\/pl_audio)/is', $v->post_content)){
$is_audio = true;
}
}
}
// Enqueue the FRONTEND CSS
if((!empty($post->ID) && get_post_meta($post->ID , 'pagelayer-data')) || pagelayer_has_blocks() || $is_pagelayer || $force){
// We dont need the auto
and
as they interfere with us
remove_filter('the_content', 'wpautop');
// No need to add curly codes to the content
remove_filter('the_content', 'wptexturize');
pagelayer_load_shortcodes();
// Load global colors and fonts
pagelayer_load_global_palette();
$pagelayer->cache['enqueue_frontend'] = true;
// Load the global styles
add_action('wp_head', 'pagelayer_global_js', 2);
$premium_js = apply_filters('pagelayer_add_give_js', '');
$premium_css = apply_filters('pagelayer_add_give_css', '');
// Load this For audio widget
do_action('pagelayer_load_audio_widget', $is_audio);
if(pagelayer_enable_giver()){
$write = '';
// Dev mode - Dynamic JS and CSS
if(defined('PAGELAYER_DEV') && !empty(PAGELAYER_DEV)){
$write = '&write=1';
}
// Enqueue our Editor's Frontend JS
wp_register_script('pagelayer-frontend', PAGELAYER_JS.'/givejs.php?give=pagelayer-frontend.js,nivo-lightbox.min.js,wow.min.js,jquery-numerator.js,simpleParallax.min.js,owl.carousel.min.js'.$premium_js.$write, array('jquery'), PAGELAYER_VERSION);
// Get list of enabled icons
$icons_css = '';
$icons = pagelayer_enabled_icons();
foreach($icons as $icon){
$icons_css .= ','.$icon.'.min.css';
}
wp_register_style('pagelayer-frontend', PAGELAYER_CSS.'/givecss.php?give=pagelayer-frontend.css,nivo-lightbox.css,animate.min.css,owl.carousel.min.css,owl.theme.default.min.css'.$icons_css.$premium_css.$write, array(), PAGELAYER_VERSION);
// Static Files
}else{
wp_register_script('pagelayer-frontend', (empty($premium_js) ? PAGELAYER_JS : PAGELAYER_PRO_JS).'/combined.js', array('jquery'), PAGELAYER_VERSION);
wp_register_style('pagelayer-frontend', PAGELAYER_CSS.'/combined'.(!empty($premium_css) ? '.premium' : '').'.css', array(), PAGELAYER_VERSION);
}
wp_enqueue_script('pagelayer-frontend');
wp_enqueue_style('pagelayer-frontend');
// Load the global styles
add_action('wp_head', 'pagelayer_global_styles', 5);
add_filter('body_class', 'pagelayer_body_class', 10, 2);
// Load the global styles for gutenberg
if(pagelayer_is_gutenberg_editor()){
add_action('admin_print_scripts', 'pagelayer_global_styles', 5);
}
// Load custom widgets
do_action('pagelayer_custom_frontend_enqueue');
}
}
// Load the google and custom fonts
add_action('wp_footer', 'pagelayer_enqueue_fonts', 5);
function pagelayer_enqueue_fonts($suffix = '-header'){
global $pagelayer;
if(empty($pagelayer->cache['enqueue_frontend'])){
return;
}
$url = [];
$cst = [];
foreach($pagelayer->css as $k => $set){
$font_family = pagelayer_isset($set, 'font-family');
if(empty($font_family)){
$key = str_replace(['_mobile', '_tablet'], '', $k);
$font_family = isset($pagelayer->css[$key]['font-family'])? $pagelayer->css[$key]['font-family']: '';
}
// Fetch body font if given
if(!empty($font_family)){
pagelayer_load_font_family($font_family, pagelayer_isset($set, 'font-weight'), pagelayer_isset($set, 'font-style'));
}
}
foreach($pagelayer->runtime_fonts as $font => $weights){
if(in_array($font, $pagelayer->system_fonts)){
continue;
}
if(strpos($font, '_plf')){
if(!in_array($font, $pagelayer->fonts_sent)){
$pagelayer->fonts_sent[] = $font;
$cst[] = preg_replace('/_plf$/is', '', $font);
}
}else{
$v = $font.':'.implode(',', $weights);
if(!in_array($v, $pagelayer->fonts_sent)){
$url[] = $v;
$pagelayer->fonts_sent[] = $v;
}
}
}
// If no fonts are to be set, then we dont set
if(!empty($url)){
$fonts_url = 'https://fonts.googleapis.com/css?family='.rawurlencode(implode('|', $url));
$fonts_url = apply_filters('pagelayer_google_fonts_url', $fonts_url);
wp_register_style('pagelayer-google-font'.$suffix, $fonts_url, array(), PAGELAYER_VERSION);
wp_enqueue_style('pagelayer-google-font'.$suffix);
echo '';
}
if(empty($cst)){
return;
}
$args = [
'post_type' => PAGELAYER_FONT_POST_TYPE,
'status' => 'publish',
'post_name__in' => $cst
];
//var_dump($args);
$query = get_posts($args);
//var_dump($query);
if(empty($query)){
return;
}
foreach($query as $font){
$meta_box_value = get_post_meta($font->ID, 'pagelayer_font_link', true);
if(empty($meta_box_value)){
continue;
}
echo '';
}
}
// Load any header we have
function pagelayer_global_js(){
global $pagelayer;
$pagelayer_recaptch_lang = get_option('pagelayer_google_captcha_lang');
$pagelayer_recaptch_version = get_option('pagelayer_recaptcha_version', '');
echo '';
}
// We need to handle global styles
function pagelayer_load_global_css(){
global $pagelayer;
// Load CSS settings
foreach($pagelayer->css_settings as $k => $params){
$tmp_desk = '';
foreach($pagelayer->screens as $sk => $sv){
$suffix = (!empty($sv) ? '_'.$sv : '');
$setting = empty($params['key']) ? 'pagelayer_'.$k.'_css' : $params['key'];
$tmp = get_option($setting.$suffix);
if($sk == 'desktop'){
$tmp_desk = $tmp;
}
$tmp = pagelayer_sanitize_global_style($tmp, $tmp_desk, $sk);
if(empty($tmp)){
continue;
}
$pagelayer->css[$k.$suffix] = $tmp;
}
}
// Backward compat for colors
if(!empty($pagelayer->settings['color']['background']) && empty($pagelayer->css['body']['background-color'])){
$pagelayer->css['body']['background-color'] = $pagelayer->settings['color']['background'];
}
if(!empty($pagelayer->settings['color']['text']) && empty($pagelayer->css['body']['color'])){
$pagelayer->css['body']['color'] = $pagelayer->settings['color']['text'];
}
// Link Color
if(!empty($pagelayer->settings['color']['link']) && empty($pagelayer->css['a']['color'])){
$pagelayer->css['a']['color'] = $pagelayer->settings['color']['link'];
}
// Link Hover Color
if(!empty($pagelayer->settings['color']['link-hover']) && empty($pagelayer->css['a-hover']['color'])){
$pagelayer->css['a-hover']['color'] = $pagelayer->settings['color']['link-hover'];
}
// Headings Color
if(!empty($pagelayer->settings['color']['heading'])){
$htmp = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
foreach($htmp as $k => $v){
if(empty($pagelayer->css[$v]['color'])){
$pagelayer->css[$v]['color'] = $pagelayer->settings['color']['heading'];
}
}
}
// Backward compat for body font
if(!empty($pagelayer->settings['body_font'])){
$pagelayer->settings['body']['font-family'] = $pagelayer->settings['body_font'];
}
}
// We need to handle global styles
function pagelayer_global_styles(){
global $pagelayer, $post;
// Load css from settings
pagelayer_load_global_css();
$styles = '
';
// Lets just build a temporary list of fonts so that we can add prefetch !
pagelayer_enqueue_fonts();
if(!empty($pagelayer->runtime_fonts)){
echo '
';
}
echo $styles;
}
function pagelayer_body_class($classes, $class){
$classes[] = 'pagelayer-body';
return $classes;
}
// Load the live editor if needed
// Changed this hook wp_enqueue_scripts to Template_include to make block theme compatibility
add_action('template_include', 'pagelayer_load_live');
function pagelayer_load_live($template){
global $post, $pagelayer;
$pagelayer->load_live_errors = array();
// If its not live editing then stop
if(!pagelayer_is_live_iframe($pagelayer->load_live_errors)){
// Is it the live mode then lets throw an error ?
if(pagelayer_optreq('pagelayer-iframe')){
add_action('wp_head', 'pagelayer_load_live_errors', 999);
}
return $template;
}
// Are you allowed to edit ?
if(!pagelayer_user_can_edit($post->ID)){
return $template;
}
// Load the editor class
include_once(PAGELAYER_DIR.'/main/live.php');
// Call the constructor
$pl_editor = new PageLayer_LiveEditor();
return $template;
}
// Show the live errors if any
function pagelayer_load_live_errors(){
global $post, $pagelayer;
// Any errors ?
if(empty($pagelayer->load_live_errors)){
return;
}
echo '';
}
// If we are doing ajax and its a pagelayer ajax
if(wp_doing_ajax()){
include_once(PAGELAYER_DIR.'/main/ajax.php');
}
// Show the backend editor options
add_action('edit_form_after_title', 'pagelayer_after_title', 10);
function pagelayer_after_title(){
global $post;
// Get the current screen
$current_screen = get_current_screen();
// For gutenberg
if(method_exists($current_screen, 'is_block_editor') && $current_screen->is_block_editor()){
// Add the code in the footer
add_action('admin_footer', 'pagelayer_gutenberg_after_title');
return;
}
// Is pagelayer supposed to edit this ?
if(!pagelayer_user_can_edit($post)){
return;
}
$link = pagelayer_shortlink($post->ID).'&pagelayer-live=1';
echo '