template);
}
// Have we already imported ?
$imported = get_option('pagelayer_theme_'.get_template().'_imported');
if(!empty($imported)){
$GLOBALS['pl_warn'] = __('You have already imported the content of this theme. You can re-import the same by either choosing to over-write existing pages / pagelayer templates OR creating duplicate content !', 'pagelayer');
}
// Call the theme
pagelayer_import_T();
}
function pagelayer_import_T(){
global $pagelayer, $pagelayer_theme, $pagelayer_theme_url, $pagelayer_theme_path, $pagelayer_pages, $pl_error;
pagelayer_page_header('Pagelayer - Import Template');
// Any errors ?
if(!empty($pl_error)){
pagelayer_report_error($pl_error);echo ' ';
}
// Saved ?
if(!empty($GLOBALS['pl_saved'])){
echo '
'. __('The theme content was successfully imported', 'pagelayer'). '
';
}
// Is it a pagelayer theme ?
if(!file_exists($pagelayer_theme_path.'/pagelayer.conf')){
echo 'This utility is for importing content of the current active theme if its a Pagelayer Theme. Your current theme is not a Pagelayer exported theme ! If you want to export your content and make it into a distributable theme, please refer to the guide here.';
die();
}
// Home screenshot
$screenshot = $pagelayer_theme_url.'/screenshots/home.jpg';
if(!file_exists($pagelayer_theme_path.'/screenshots/home.jpg')){
$screenshot = PAGELAYER_URL.'/images/no_screenshot.png';
}
echo '
';
add_filter('pagelayer_right_bar_promos', '__return_false');
pagelayer_page_footer(1);
}
// Imports the required conf
function pagelayer_import_conf(&$conf){
foreach($conf as $k => $v){
if(in_array($k, ['page_for_posts'])){
continue;
}
update_option($k, $v);
}
}
// The actual function to get page content to import the theme
function pagelayer_file_get_import_contents($path){
$pre_content = apply_filters('pagelayer_pre_get_import_contents', null, $path);
if(!empty($pre_content)){
return $pre_content;
}
$content = file_get_contents($path);
$content = apply_filters('pagelayer_get_import_contents', $content, $path);
return $content;
}
// The actual function to import the theme
function pagelayer_import_single($template_name, $items, $pagelayer_theme_path = ''){
global $wpdb, $wp_rewrite;
global $pagelayer, $pl_error;
if(empty($pagelayer_theme_path)){
$pagelayer_theme_path = get_stylesheet_directory();
}
if(empty($items)){
$pl_error[] = 'Items were not submitted';
return false;
}
/////////////////////////
// Handle the PAGES Data
/////////////////////////
// Load the new themes pages array
$data = file_get_contents($pagelayer_theme_path.'/pagelayer-data.conf');
$data = @json_decode($data, true);
//r_print($data);die();
if(empty($data['page'])){
$pl_error[] = 'Pages list not found. This is not a proper template !';
return false;
}
// Check the theme files
foreach($data['page'] as $k => $v){
$path = pagelayer_cleanpath($pagelayer_theme_path.'/data/page/'.$k);
// Does it have the title and slug ?
if(empty($v['post_title']) || empty($v['post_name'])){
$pl_error[] = 'Something is fishy with this theme as there is no title or slug for '.$k;
return false;
}
// Does the page exist ?
if(!file_exists($path) || pagelayer_cleanpath(realpath($path)) != $path){
$pl_error[] = 'Something is fishy with this theme';
return false;
}
}
$status = empty($_POST['save_as_draft']) ? 'publish' : 'draft';
// Now check the pages if it exist in this installation ?
foreach($data['page'] as $k => $v){
if(!in_array($k, $items['page'])){
continue;
}
$path = pagelayer_cleanpath($pagelayer_theme_path.'/data/page/'.$k);
// Is the page there ?
$page = get_page_by_path($v['post_name'], OBJECT, array('page'));
//r_print($page);
$new_post = array();
// It does exist so save the revision IF its the header and footer
if(!empty($page) && isset($_POST['overwrite'])){
$rev = wp_save_post_revision($page->ID);
$new_post['ID'] = $page->ID;
}
// Make an array
$new_post['post_content'] = pagelayer_file_get_import_contents($path);
$new_post['post_title'] = $v['post_title'];
$new_post['post_name'] = $v['post_name'];
$new_post['post_type'] = 'page';
$new_post['post_status'] = $status;
//r_print($new_post);die();
// Now insert / update the post
$ret = pagelayer_insert_content($new_post, $err);
// Did we save the post ?
if(empty($ret)){
$pl_error[] = 'Could not update the page '.$v['post_name'];
return false;
}
update_post_meta($ret, 'pagelayer_imported_content', $template_name);
}
//To import typography and breakpoint
if(!empty($data['conf'])){
pagelayer_import_conf($data['conf']);
}
return true;
}
// The actual function to import the theme
function pagelayer_import_theme($template_name, $pagelayer_theme_path = '', $to_import = array()){
global $wpdb, $wp_rewrite;
global $pagelayer, $pl_error, $sitepad;
if(empty($pagelayer_theme_path)){
$pagelayer_theme_path = get_stylesheet_directory();
}
//die($pagelayer_theme_path);
// Delete Old Data ?
if(isset($_POST['delete_old_import'])){
$args = array(
'post_type' => ['page', 'post', $pagelayer->builder['name']],
'meta_query' => array(
array(
'key' => 'pagelayer_imported_content',
'compare' => 'EXISTS'
)
)
);
$query = new WP_Query($args);
foreach ( $query->posts as $p ) {
//echo $p->ID.' ';
wp_delete_post($p->ID);
}
}
$pagelayer->import_links = [];
/////////////////////////
// Handle PAGELAYER DATA
/////////////////////////
// Load the PGL conf
$pgl = file_get_contents($pagelayer_theme_path.'/pagelayer.conf');
$pgl = @json_decode($pgl, true);
if(empty($pgl['header'])){
$pl_error[] = 'Header list not found. Report to Website Builder Team';
return false;
}
// Load the new themes pages array
$data = file_get_contents($pagelayer_theme_path.'/pagelayer-data.conf');
$data = @json_decode($data, true);
//r_print($data);die();
// Prepare template data
$data = apply_filters('pagelayer_prepare_template_import_data', $data, $template_name );
if(empty($data['page'])){
$pl_error[] = 'Pages list not found. This is not a proper template !';
return false;
}
// Check the theme files
foreach($pgl as $k => $v){
$path = pagelayer_cleanpath($pagelayer_theme_path.'/'.$k.'.pgl');
//print_r($path);
// Does the page exist ?
if(!file_exists($path) || (empty($GLOBALS['sitepad']['dev']) && pagelayer_cleanpath(realpath($path)) != $path)){
$pl_error[] = 'Something is fishy with this theme as the template - '.$k.' - of type - '.$v['type'].' - was not found';
return false;
}
}
// Are we to add default templates ?
if(empty($_POST['no_blog_templates'])){
add_filter('pagelayer_importing_templates', 'pagelayer_blog_templates', 10, 1);
}
///////////////////////////
// Lets import all MEDIA
///////////////////////////
// Now lets download the templates
if(!function_exists( 'list_files' ) ) {
require_once ABSPATH . PAGELAYER_CMS_DIR_PREFIX.'-admin/includes/file.php';
}
$_media = list_files($pagelayer_theme_path.'/images', 1);
$imgs_json = array();
//pagelayer_print($_media);die();
if(file_exists($pagelayer_theme_path.'/images.json')){
$imgs_json = @json_decode(file_get_contents($pagelayer_theme_path.'/images.json'), true);
}
// Download images
if(!empty($_REQUEST['download_imgs'])){
/* foreach($imgs_json as $k => $v){
if(empty($v['download_url'])){
continue;
}
$dest_dir = $pagelayer_theme_path.'/images';
$dest_file = $dest_dir.'/'.$k;
$image_file = $v['download_url'];
// Compare image md5
if($v['md5'] != md5_file($image_file)){
continue;
}
if(file_exists($dest_file)){
$imagesize = getimagesize($dest_file);
// Download and resize image
$resize_file = pagelayer_resizeImage($v['download_url'], $imagesize[0], $imagesize[1]);
if(!empty($resize_file)){
$image_file = $resize_file;
}
}
// Put image in file
file_put_contents($dest_file, $image_file);
} */
// Update option to set no
update_option('pagelayer_import_images_'.$template_name, 'yes');
}elseif(empty($_REQUEST['download_imgs'])){ // && !file_exists($pagelayer_theme_path.'/images.json')
foreach($_media as $k => $v){
$imagesize = getimagesize($v);
$mime = !empty($imagesize['mime']) ? $imagesize['mime'] : '';
// Create blank image
if(strpos($mime, "image/" ) !== false) {
$blank_image = pagelayer_create_blank_image($imagesize[0], $imagesize[1]);
file_put_contents($v, $blank_image);
}
}
// Update option to set no
update_option('pagelayer_import_images_'.$template_name, 'no');
}
foreach($_media as $k => $v){
$file_name = basename($v);
// We are going to create a loop to find the image
for($i = 1; $i <= 3; $i++){
// Upload the image
$ret = pagelayer_upload_media($file_name, file_get_contents($v));
// Lets check the file exists ?
if(!empty($ret)){
// Lets check if the file exists
$tmp_image_path = pagelayer_cleanpath(get_attached_file($ret));
// If the file does not exist, simply delete the old upload as well
if(!file_exists($tmp_image_path)){
wp_delete_attachment($ret, true);
$ret = false;
// The image does exist and we can continue
}else{
break;
}
}
}
if(!empty($ret)){
$pagelayer->import_media['{{theme_url}}/images/'.$file_name] = $ret;
if(isset($imgs_json[$file_name])){
$fields = array('sitepad_img_source', 'sitepad_download_url', 'sitepad_img_lic');
foreach($fields as $field){
$_field = str_replace('sitepad_', '', $field);
if(!empty($imgs_json[$file_name][$_field])){
update_post_meta($ret, $field, $imgs_json[$file_name][$_field]);
}
}
}
}
}
//r_print($pagelayer->import_media);die();
// If we are to import default templates
$pgl = apply_filters('pagelayer_importing_templates', $pgl);
//////////////////////
// Create Menus
//////////////////////
// Create the menu
if(empty($_POST['no_header_menu'])){
// Is there any MENU in this theme ?
if(empty($data['menus'])){
$menu_id = pagelayer_import_create_menu($template_name.' Header Menu');
}else{
foreach($data['menus'] as $k => $v){
$new_id = pagelayer_import_create_menu($v['name']);
$pagelayer->imported_menus[$v['term_id']] = $new_id;
$pagelayer->imported_menus_slug[$new_id] = $k;
}
//r_print($pagelayer->imported_menus);die();
$menu_id = current($pagelayer->imported_menus);
}
}else{
// Get the first menu that has items if we still can't find a menu.
$menus = wp_get_nav_menus();
foreach ( $menus as $menu_maybe ) {
$menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) );
if ( $menu_items ) {
$menu_id = $menu_maybe->term_id;
break;
}
}
}
// Make a array of OLD IDs => NEW IDs for replace
$pagelayer->imported_menus_preg = [];
// If we have menus !
if(!empty($pagelayer->imported_menus)){
foreach($pagelayer->imported_menus as $k => $v){
$pagelayer->imported_menus_preg['('.$k.')'] = $v;
}
// Theme didnt import menus, so lets replace with 0
}else{
$pagelayer->imported_menus_preg['(\d*)'] = $menu_id;
}
//////////////////////
// Start import
//////////////////////
// Import the Pagelayer Templates files
foreach($pgl as $k => $v){
$path = pagelayer_cleanpath($pagelayer_theme_path.'/'.$k.'.pgl');
$new_post = array();
// Is the page there ?
$template = get_page_by_path($k, OBJECT, array($pagelayer->builder['name']));
// It does exist so save the revision IF its the header and footer
if(!empty($template)){
$rev = wp_save_post_revision($template->ID);
// Did we save the rev ?
if(empty($rev)){
// TODO : Throw error
}
$new_post['ID'] = $template->ID;
}
// Make an array
$new_post['post_content'] = empty($v['post_content']) ? pagelayer_file_get_import_contents($path) : $v['post_content'];
$new_post['post_title'] = $v['title'];
$new_post['post_name'] = $k;
$new_post['post_type'] = $pagelayer->builder['name'];
$new_post['post_status'] = 'publish';
$new_post['comment_status'] = 'closed';
$new_post['ping_status'] = 'closed';
//pagelayer_print($new_post);die();
// Handle Menu data
$new_post['post_content'] = pagelayer_import_handle_replaces($new_post['post_content']);
//pagelayer_print($new_post);die();
// Now insert / update the post
$ret = pagelayer_insert_content($new_post, $err);
$post_id = $ret;
$pagelayer->import_map[$k] = $ret;
$pagelayer->imported_ids[$new_post['post_type']][$new_post['post_name']] = $ret;
// Did we save the rev ?
if(empty($ret)){
$pl_error[] = 'Could not update the Pagelayer Template '.$k;
return false;
}
// Save our template type
update_post_meta($post_id, 'pagelayer_template_type', $v['type']);
update_post_meta($post_id, 'pagelayer_template_conditions', $v['conditions']);
update_post_meta($post_id, 'pagelayer_imported_content', $template_name);
// Any conditions having Page IDs that need to be updated ?
if(!empty($v['conditions'])){
foreach($v['conditions'] as $ck => $cv){
if(!empty($cv['id'])){
$conditions[$post_id][$ck] = $cv['id'];
}
}
}
}
/////////////////////////
// Handle the PAGES Data
/////////////////////////
//pagelayer_print($data);
// Import taxonomies
$taxonomy_ids = array();
if(!empty($data['taxonomies'])){
$taxonomy_ids = pagelayer_import_taxonomies($data['taxonomies']);
}
foreach($data as $data_type => $data_v){
$pagelayer->imported[$data_type] = 1;
// To import theme related settings
if($data_type == 'conf'){
pagelayer_import_conf($data['conf']);
continue;
}
if($data_type == 'menus' || $data_type == 'taxonomies'){
continue;
}
// Check the theme files
foreach($data[$data_type] as $k => $v){
$path = pagelayer_cleanpath($pagelayer_theme_path.'/data/'.$data_type.'/'.$k);
// Does it have the title and slug ?
if(empty($v['post_title']) || empty($v['post_name'])){
$pl_error[] = 'Something is fishy with this theme as there is no title or slug for '.$k;
return false;
}
// Does the file exist ?
if(!file_exists($path) || (empty($GLOBALS['sitepad']['dev']) && pagelayer_cleanpath(realpath($path)) != $path)){
$pl_error[] = 'Something is fishy with this theme';
return false;
}
}
$menu_pages = [];
// Now check the pages if it exist in this installation ?
foreach($data[$data_type] as $k => $v){
// Do we have to import selected pages ?
if(!empty($to_import[$data_type]) && !in_array($k, $to_import[$data_type])){
continue;
}
do_action('pagelayer_start_importing_page', $k);
$path = pagelayer_cleanpath($pagelayer_theme_path.'/data/'.$data_type.'/'.$k);
$args = ['post_type' => $data_type,
'name' => $v['post_name'],
'post_status' => $v['post_status'],
'posts_per_page' => -1
];
$type_query = new WP_Query($args);
// Is the page there ?
$page = @current($type_query->posts);
//r_print($page);
$new_post = array();
$insert_meta = 1;
// It does exist so save the revision IF its the header and footer
if(!empty($page)){
$insert_meta = 0;
if(isset($_POST['overwrite'])){
$rev = wp_save_post_revision($page->ID);
$new_post['ID'] = $page->ID;
$insert_meta = 1;
}
}
// Make an array
$new_post['post_content'] = pagelayer_file_get_import_contents($path);
$new_post['post_excerpt'] = $v['post_excerpt'];
$new_post['post_title'] = $v['post_title'];
$new_post['post_name'] = $v['post_name'];
$new_post['post_type'] = $data_type;
$new_post['post_status'] = 'publish';
if(isset($_POST['maintain_ids']) && empty($new_post['ID'])){
$new_post['import_id'] = $v['ID'];
}
// Category register
if(!empty($v['taxonomies'])){
foreach($v['taxonomies'] as $tax => $tax_ids){
if(!empty($tax_ids)){
// Need to replace ids with new ids
$tax_ids = explode(',', $tax_ids);
foreach($tax_ids as $key => $id){
$tax_ids[$key] = (int) $taxonomy_ids[$id];
}
switch ($tax) {
case 'category':
$new_post['post_category'] = $tax_ids;
break;
case 'post_tag':
$new_post['tags_input'] = $tax_ids;
break;
default:
$new_post['tax_input'][$tax] = $tax_ids;
}
}
}
}
// Meta file path
$meta_path = pagelayer_cleanpath($pagelayer_theme_path.'/data/'.$data_type.'/'.$k.'.meta');
if($insert_meta && file_exists($meta_path)){
$meta_path = pagelayer_cleanpath($pagelayer_theme_path.'/data/'.$data_type.'/'.$k.'.meta');
$new_post['meta_input'] = file_get_contents($meta_path);
$new_post['meta_input'] = json_decode($new_post['meta_input']);
}
//r_print($new_post);die();
// Handle Menu data
$new_post['post_content'] = pagelayer_import_handle_replaces($new_post['post_content']);
// Now insert / update the post
$ret = pagelayer_insert_content($new_post, $err);
// Did we save the post ?
if(empty($ret)){
$pl_error[] = 'Could not update the '.$data_type.' '.$v['post_name'];
return false;
}
update_post_meta($ret, 'pagelayer_imported_content', $template_name);
$pagelayer->import_map[$v['ID']] = $ret;
$pagelayer->imported_ids[$new_post['post_type']][$new_post['post_name']] = $ret;
// Skip Header, Footer and Home pages
if($data_type == 'page' && preg_match('/^home/is', $new_post['post_name'])){
$home_page = $ret;
}
if(defined('SITEPAD')){
// Does the screenshot exist ?
$screenshot_file = $pagelayer_theme_path.'/screenshots/'.$v['post_name'].'.jpg';
if(file_exists($screenshot_file)){
@mkdir($sitepad['screenshots_path'], 0755, true);
@copy($screenshot_file, $sitepad['screenshots_path'].'/'.$v['post_name'].'.jpg');
}
}
}
}
// Update Post for import
if(!empty($conditions)){
foreach($conditions as $post_ID => $v){
$cond = get_post_meta($post_ID, 'pagelayer_template_conditions', 1);
foreach($v as $ck => $cv){
if(!empty($pagelayer->import_map[$cv])){
$cond[$ck]['id'] = $pagelayer->import_map[$cv];
}
}
update_post_meta($post_id, 'pagelayer_template_conditions', $cond);
}
}
// Call a function for the theme if they want to execute something like create more templates, etc
$ret = apply_filters('pagelayer_theme_imported', $template_name);
if(isset($_POST['set_home_page']) || isset($_POST['create_blog_page'])){
// Get the home page ID
$blog = get_page_by_path('blog', OBJECT, array('page'));
// Insert the blog page
if(empty($blog)){
$new_post['post_content'] = '';
$new_post['post_title'] = 'Blog';
$new_post['post_name'] = 'blog';
$new_post['post_type'] = 'page';
$new_post['post_status'] = 'publish';
// Now insert / update the post
$blog_id = wp_insert_post($new_post);
}else{
$blog_id = $blog->ID;
}
// Set the blog page
update_option('page_for_posts', $blog_id);
}
if(!empty($data['conf']['page_for_posts'])){
$pagelayer->import_map[$data['conf']['page_for_posts']] = $blog_id;
$pagelayer->imported_ids['page']['blog'] = $blog_id;
}
// Update any links that are to be updated
if(!empty($pagelayer->import_links)){
foreach($pagelayer->import_links as $post_type => $v){
foreach($v as $slug => $link_maps){
// Lets get the post
$tmp_post = get_post($pagelayer->imported_ids[$post_type][$slug]);
foreach($link_maps as $old_link_type => $old_link_slugs){
//pagelayer_print($old_link_slugs);die();
foreach($old_link_slugs as $old_link_slug){
// Did we have such a link ?
$new_link_id = @$pagelayer->imported_ids[$old_link_type][$old_link_slug];
// If not found, lets try to find a similar post
if(empty($new_link_id)){
$args = ['name' => $old_link_slug,
'post_type' => $old_link_type];
// Make query
$query = new WP_Query($args);
// Get post
if(!empty($query->posts)){
$link_post = current($query->posts);
//echo $old_link_slug.' - ';pagelayer_print($link_post->post_name);die();
$new_link_id = @$link_post->ID;
}
}
if(empty($new_link_id)){
continue;
}
$tmp_post->post_content = str_replace('||link_id|'.$old_link_type.'|'.$old_link_slug.'||', $new_link_id, $tmp_post->post_content);
}
}
//pagelayer_print($tmp_post);
wp_update_post($tmp_post);
}
}
}
if(isset($_POST['set_home_page'])){
// Set the blog page
update_option('show_on_front', 'page');
// Set home page as the default page
if(!empty($home_page)){
update_option('page_on_front', $home_page);
}
}
// Update the menu
if(empty($_POST['no_header_menu'])){
// Are we importing from the theme ?
if(!empty($pagelayer->imported_menus)){
foreach($pagelayer->imported_menus as $k => $v){
pagelayer_import_update_menus($v, $pagelayer_theme_path);
}
// We created the menu, lets update it
}else{
pagelayer_update_header_menu($menu_id, $pagelayer->import_map);
}
}
// Save that we have imported the theme
update_option('pagelayer_theme_'.$template_name.'_imported', time(), true);
// Blank woocommerce fix
update_option('pagelayer_template_product_fix', 0);
return true;
}
// Import Taxonomies Handler
function pagelayer_import_taxonomies($taxonomy){
$new_ids = array();
foreach($taxonomy as $term_id => $term){
$parent_id = null;
$term_par = 0;
// If tern has parent
if(!empty($term['parent']) && empty($new_ids[$term['parent']])){
// Get parent taxonomy
$par_terms = get_terms( array(
'taxonomy' => $term['taxonomy'],
'hide_empty' => false,
'meta_key' => 'pagelayer_imported_id',
'meta_value' => $term['parent']
) );
$par_terms_len = count($par_terms) - 1;
// If not exists
if(is_wp_error($par_terms) || empty($par_terms)){
$par_ids = pagelayer_import_taxonomies(array($term['parent'] => $taxonomy[$term['parent']]));
$term_par = $parent_id = $par_ids[$term['parent']];
$new_ids[$term['parent']] = $parent_id;
}elseif($par_terms_len > -1){
$term_par = $parent_id = $par_terms[$par_terms_len]->term_id;
}
}elseif(!empty($new_ids[$term['parent']])){
$term_par = $parent_id = $new_ids[$term['parent']];
}
$exist_term = term_exists($term['name'], $term['taxonomy'], $parent_id );
if($exist_term === null){
$tax_details = wp_insert_term($term['name'], $term['taxonomy'] ,array('description' => $term['description'],'parent' => $term_par, 'slug' => $term['slug']));
if(!(is_wp_error( $tax_details ))){
$new_id = $tax_details['term_id'];
}
}elseif(is_array($exist_term)){
$new_id = $exist_term['term_id'];
}else{
$new_id = $exist_term;
}
// ID is empty?
if(empty($new_id)){
continue;
}
update_term_meta( $new_id, 'pagelayer_imported_id', $term_id);
$new_ids[$term_id] = $new_id;
}
return $new_ids;
}
add_filter('pagelayer_start_insert_content', 'pagelayer_import_start_insert_content');
function pagelayer_import_start_insert_content($post){
global $pagelayer;
$_post = json_encode($post);
// Does it have links ?
if(preg_match_all('/(\|\|link_id\|([\w-]*)\|([\w-]*)\|\|)/', $_post, $matches)){
foreach($matches[3] as $kk => $link){
$pagelayer->import_links[$post['post_type']][$post['post_name']][$matches[2][$kk]][] = $link;
}
//pagelayer_print($matches);pagelayer_print($pagelayer->import_links);die();
}
if(preg_match('/theme_url/is', $_post)){
$do = 1;
}
// Lets replace the images
foreach($pagelayer->import_media as $k => $v){
$_post = str_replace($k, $v, $_post);
$k = str_replace('/', '\/', $k);// Handle JSON
$_post = str_replace($k, $v, $_post);
$k = str_replace('/', '\/', addslashes($k));// Handle Doubled JSON
$_post = str_replace($k, $v, $_post);
}
$post = json_decode($_post, true);
if(!empty($do)){
//echo $_post;
//pagelayer_print($post);die();
}
return $post;
}
// Create the menu
function pagelayer_import_create_menu($name){
// Create the menu if not exists
$menu_name = (empty($name) ? 'Pagelayer Menu' : $name);
$menu_exists = wp_get_nav_menu_object($menu_name);
// If there is no menu we will need to add it
if(!empty($menu_exists)){
wp_delete_nav_menu($menu_exists);
}
// Insert the Menu
$menu_id = wp_create_nav_menu($menu_name);
//r_print($menu_exists);r_print($menu_name);r_print($menu_id);die();
if(!is_int($menu_id)){
return false;
}
// We need to DISABLE auto add TEMPORARILY
$options = (array) get_option('nav_menu_options');
if (isset($options['auto_add'])){
$key = array_search($menu_id, $options['auto_add']);
if(!empty($key)){
unset($options['auto_add'][$key]);
update_option('nav_menu_options', $options);
}
}
return $menu_id;
}
// Callback for menu replacement
function pagelayer_import_handle_replaces($content){
global $pagelayer;
// Replace the old ID structure
$content = preg_replace_callback('/pagelayer-id="(\w{16})"/s', 'pagelayer_handle_id_sc', $content);
$content = preg_replace_callback('/"pagelayer-id"\:"(\w{16})"/s', 'pagelayer_handle_id', $content);
foreach($pagelayer->imported_menus_preg as $k => $v){
$content = preg_replace('/\[pl_wp_menu ([^\]]*)nav_list="'.$k.'"([^\]]*)\]/is', '[pl_wp_menu ${1}nav_list="'.$v.'"${3}]', $content);
}
// Also for block format
$content = preg_replace_callback('/).)*+)?}\s+)?(?P\/)?-->/s', 'pagelayer_handle_wp_menu', $content);
// Lets replace the variables for social icons
$content = preg_replace_callback('/\[pl_social ([^\]]*)\]/is', 'pagelayer_handle_social_urls', $content);
$content = preg_replace_callback('/).)*+)?}\s+)?(?P\/)?-->/s', 'pagelayer_handle_social_urls_blocks', $content);
// Remove comment_atts attribute
if(!PAGELAYER_DEV && stripos( $content, 'comment_atts') !== false){
$content = pagelayer_clear_comment_atts($content);
}
return $content;
}
// Remove comment_atts attribute
function pagelayer_clear_comment_atts($content){
if(defined('PAGELAYER_BLOCK_PREFIX') && PAGELAYER_BLOCK_PREFIX == 'wp'){
$content = str_replace('
';
$pgl['blog-template'] = $conf['blog-template'];
}
// Do we have the blog template ?
if(empty($pgl['404'])){
$conf['404']['post_content'] = '
The page you requested was not found we suggest you to go back to HomePage
';
$pgl['404'] = $conf['404'];
}
// Do we have the blog template ?
if(empty($pgl['single-template'])){
$conf['single-template']['post_content'] = '
';
$pgl['single-template'] = $conf['single-template'];
}
return $pgl;
}
// Resize Image
function pagelayer_resizeImage($filename, $newwidth, $newheight){
$imagesize = getimagesize($filename);
$width = $imagesize[0];
$height = $imagesize[1];
// Calculate the Height and width
if($width <= $newwidth || $height <= $newheight){
return false;
}
$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($imagesize['mime']) {
case 'image/jpg':
case 'image/jpeg':
$source = imagecreatefromjpeg($filename);
break;
case 'image/gif':
$source = imagecreatefromgif($filename);
break;
case 'image/png':
$source = imagecreatefrompng($filename);
break;
}
if(empty($source)){
return false;
}
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagedestroy($source);
ob_start();
switch($imagesize['mime']) {
case 'image/jpg':
case 'image/jpeg':
imagejpeg($thumb);
break;
case 'image/gif':
imagegif($thumb);
break;
case 'image/png':
imagepng($thumb);
break;
}
$image = ob_get_clean();
imagedestroy($thumb);
return $image;
}