public function import_layouts_from_theme($source_dir, $overwrite_assignment = false) { return WPDD_Layouts_Theme::getInstance()->import_layouts_from_theme($source_dir, $overwrite_assignment); }
function import_layouts_from_theme($source_dir, $overwrite_assignment = false) { global $wpddlayout; if (is_dir($source_dir)) { $layouts = glob($source_dir . '/*.ddl'); foreach ($layouts as $layout) { $file_details = pathinfo($layout); $layout_name = $file_details['filename']; $layout_json = file_get_contents($layout); $layout = json_decode(str_replace('\\\\"', '\\"', $layout_json)); $layout->file_name = $layout_name; $layouts_array[] = $layout; } usort($layouts_array, array($this, 'sortLayoutsFromFile')); $res = array(); foreach ($layouts_array as $layout) { $layout_name = $layout->file_name; unset($layout->file_name); if (is_null($layout) === false) { $layout_array = WPDD_Layouts_Theme::fix_toolset_association_on_import_export($layout, 'import'); // make sure we have the right data type $layout_array = (array) $layout_array; $id = WPDD_Layouts_Cache_Singleton::get_id_by_name($layout_name); if (!$id) { $postarr = array('post_title' => is_object($layout) ? $layout->name : $layout['name'], 'post_name' => $layout_name, 'post_content' => '', 'post_status' => 'publish', 'post_type' => WPDDL_LAYOUTS_POST_TYPE); $post_id = wp_insert_post($postarr); $layout_array['id'] = $post_id; $save = WPDD_Layouts::save_layout_settings($post_id, $layout_array); if ($save) { $res[] = $post_id; } if ($overwrite_assignment) { //Archives if (isset($layout_array['archives']) && count($layout_array['archives']) > 0) { $wpddlayout->layout_post_loop_cell_manager->handle_archives_data_save($layout_array['archives'], $post_id); $wpddlayout->layout_post_loop_cell_manager->handle_archives_data_save($layout_array['archives'], $post_id); } //Post Types if (isset($layout_array['post_types']) && count($layout_array['post_types']) > 0) { $to_set = array(); $to_bulk = array(); foreach ($layout->post_types as $post_type => $bulk) { if (post_type_exists($post_type)) { if ($bulk) { $to_bulk[] = $post_type; } $to_set[] = $post_type; } } $wpddlayout->post_types_manager->handle_set_option_and_bulk_at_once($post_id, $to_set, $to_bulk, false); } if (isset($layout_array['posts']) && count($layout_array['posts']) > 0) { $this->write_single_posts_assignments($post_id, $layout, $overwrite_assignment); } } } } } $save = $wpddlayout->css_manager->import_css_from_theme($source_dir); if ($save) { $res[] = 'CSS'; } } return $res; }
function ddl_update_theme_layouts($layouts_dir, $import_args) { WPDD_Layouts_Theme::getInstance()->update_layouts($layouts_dir, $import_args); }