PATH:
home
/
centosnipponia
/
public_html
/
nipponiacar
/
wp-content
/
plugins
/
kirki
/
includes
/
ExportImport
<?php /** * FormValidator class * * This class is responsible for validating form data * * @package kirki */ namespace Kirki\ExportImport; use Kirki\Ajax\UserData; use Kirki\API\ContentManager\ContentManagerHelper; use Kirki\HelperFunctions; use Kirki\Staging; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class TemplateExport { private $discarded_meta = array( '_edit_lock', '_edit_last' ); public $asset_urls = array(); private $asset_urls_tracker = array(); private $only_published_pages = true; public function __construct() { } public function export( $is_assets_with, $only_published_pages = true ) { $environment = array( 'asset_urls_tracker' => $this->asset_urls_tracker, 'asset_urls' => $this->asset_urls, 'template_data' => array( 'exportId' => uniqid( '', true ) ), 'only_published_pages' => $only_published_pages, 'queue' => array( 'pages_symbols_popups_templates_utility_pages', 'viewPorts_customFonts', 'globalStyleBlocks_variables', 'contentManager', 'contentManagerRefFields', 'siteInfo', ), ); if ( $is_assets_with ) { $environment['queue'][] = 'assetUrls'; } HelperFunctions::update_global_data_using_key( 'kirki_project_export', $environment ); return array( 'status' => 'init', 'queue' => $environment['queue'], ); } public function process() { $environment = HelperFunctions::get_global_data_using_key( 'kirki_project_export' ); if ( ! $environment ) { return array( 'status' => false, 'message' => 'Nothing found to export', ); } $site_name = get_bloginfo( 'name' ); $template_data = $environment['template_data']; $template_data['variable_prefix'] = $site_name; $this->only_published_pages = $environment['only_published_pages']; $formattedString = preg_replace( '/[^a-zA-Z ]/', '', $site_name ); // Remove numbers & special symbols $formattedString = str_replace( ' ', '_', strtolower( $formattedString ) ); $template_data['batch_id'] = $formattedString; $template_data['prefix'] = $formattedString; $queue = $environment['queue']; if ( count( $queue ) > 0 ) { $this->asset_urls_tracker = $environment['asset_urls_tracker']; $this->asset_urls = $environment['asset_urls']; $current_task = array_shift( $queue ); switch ( $current_task ) { case 'pages_symbols_popups_templates_utility_pages':{ $template_data['pages'] = $this->get_all_pages(); $template_data['symbols'] = $this->get_all_symbols(); $template_data['popups'] = $this->get_all_popups(); $template_data['templates'] = $this->get_all_templates(); $template_data['utility_pages'] = $this->get_all_utility_pages(); break; } case 'viewPorts_customFonts':{ $template_data['viewPorts'] = $this->get_view_ports(); $template_data['customFonts'] = $this->get_custom_fonts(); break; } case 'globalStyleBlocks_variables':{ $template_data['globalStyleBlocks'] = $this->get_global_style_blocks(); $template_data['variables'] = UserData::get_kirki_variable_data(); break; } case 'contentManager': { $template_data['contentManager'] = $this->get_all_content_manager_data(); break; } case 'contentManagerRefFields': { $template_data['contentManagerRefFields'] = $this->get_all_content_manager_ref_fields(); break; } case 'assetUrls':{ $this->extract_asset_url_from_template_data( $template_data ); $template_data['assetUrls'] = $this->asset_urls_tracker; break; } case 'siteInfo':{ $template_data['siteInfo'] = array( 'siteName' => get_bloginfo( 'name' ), 'siteUrl' => get_bloginfo( 'url' ), 'siteDescription' => get_bloginfo( 'description' ), 'siteLogo' => get_site_icon_url(), 'page_on_front' => get_option( 'page_on_front' ), 'show_on_front' => get_option( 'show_on_front' ), ); break; } default: // code... break; } $environment['queue'] = $queue; $environment['asset_urls_tracker'] = $this->asset_urls_tracker; $environment['asset_urls'] = $this->asset_urls; $environment['template_data'] = $template_data; HelperFunctions::update_global_data_using_key( 'kirki_project_export', $environment ); return array( 'status' => 'exporting', 'queue' => $queue, 'done' => $current_task, ); } else { HelperFunctions::update_global_data_using_key( 'kirki_project_export', false ); $zip_file_url = $this->export_and_get_url( $template_data ); return array( 'status' => 'done', 'queue' => $queue, 'zip_file_url' => $zip_file_url, ); } } private function export_and_get_url( $template_data ) { // creating a zip file name for template export. $site_name = get_bloginfo( 'name' ); // Check if $site_name is empty or not found if ( empty( $site_name ) ) { $site_name = 'kirki-template'; // Fallback name } // Convert the site name to a slug format $zip_filename = strtolower( str_replace( ' ', '-', $site_name ) ); $zip_file_url = $this->make_zip_and_get_url( $zip_filename, $template_data ); return $zip_file_url; } private function extract_asset_url_from_template_data( $template_data ) { $this->extract_asset_url_from_content_manager( $template_data['contentManager'] ); $this->extract_asset_url_from_pages( $template_data['pages'] ); $this->extract_asset_url_from_template( $template_data['templates'] ); $this->extract_asset_url_from_popups( $template_data['popups'] ); $this->extract_asset_url_from_symbols( $template_data['symbols'] ); $this->extract_asset_url_from_string( json_encode( $template_data['globalStyleBlocks'] ) ); } private function extract_asset_url_from_string( $string ) { if ( ! $string ) { return; } $string = stripslashes( $string ); // Define a regular expression pattern to match any image URLs $pattern = '/https?:\/\/[^\s]+\/[^\s]+\.(jpg|jpeg|png|gif|svg|webp)/i'; // Find all image URLs matching the pattern in the string preg_match_all( $pattern, $string, $matches ); // Output the found image URLs $image_urls = $matches[0]; foreach ( $image_urls as $key => $url ) { $this->push_to_asset_urls_tracker( false, $url ); } } private function extract_asset_url_from_content_manager( $contentManager ) { $types = array( 'image', 'video', 'gallery' ); foreach ( $contentManager as $key => $collection ) { $asset_field_ids = array(); // [{type: 'image', id: 'kirki_cm_field_952_dp23nqfx'}] $meta = $collection->meta; if ( isset( $meta['kirki_cm_fields'] ) && ! empty( $meta['kirki_cm_fields'] ) ) { $fields = maybe_unserialize( $meta['kirki_cm_fields'][0] ); // kirki_cm_field_952_dp23nqfx if ( is_array( $fields ) && ! empty( $fields ) ) { foreach ( $fields as $field ) { if ( isset( $field['type'] ) && in_array( $field['type'], $types ) ) { $asset_field_ids[] = array( 'type' => $field['type'], 'id' => 'kirki_cm_field_' . $collection->ID . '_' . $field['id'], ); } } } } if ( count( $collection->children ) > 0 ) { foreach ( $collection->children as $collection_data ) { $meta = $collection_data->meta; foreach ( $asset_field_ids as $asset_field ) { if ( isset( $meta[ $asset_field['id'] ] ) && ! empty( $meta[ $asset_field['id'] ] ) ) { $asset = maybe_unserialize( $meta[ $asset_field['id'] ][0] ); $this->track_asset_and_push_to_tracker( $asset, $asset_field['type'] ); } } } } } } private function track_asset_and_push_to_tracker( $asset, $type = 'image' ) { if ( $type === 'gallery' && is_array( $asset ) ) { foreach ( $asset as $item ) { if ( ! empty( $item ) && isset( $item['id'], $item['url'] ) ) { $this->push_to_asset_urls_tracker( $item['id'], $item['url'] ); } } } elseif ( ! empty( $asset ) && isset( $asset['id'], $asset['url'] ) ) { $this->push_to_asset_urls_tracker( $asset['id'], $asset['url'] ); } } private function extract_asset_url_from_pages( $pages ) { foreach ( $pages as $page ) { $meta = $page->meta; if ( isset( $meta['kirki'] ) && ! empty( $meta['kirki'] ) ) { $kirki_data = maybe_unserialize( $meta['kirki'][0] ); if ( is_array( $kirki_data ) && ! empty( $kirki_data ) ) { $this->exact_asset_url_from_blocks( $kirki_data['blocks'], 'pages' ); } } if ( ! empty( $meta['kirki_global_style_block_random'] ) ) { $kirki_global_style_block_random = maybe_unserialize( $meta['kirki_global_style_block_random'][0] ); $this->extract_asset_url_from_string( json_encode( $kirki_global_style_block_random ) ); } } } private function extract_asset_url_from_template( $templates ) { foreach ( $templates as $template ) { $meta = $template->meta; if ( isset( $meta['kirki'] ) && ! empty( $meta['kirki'] ) ) { $kirki_data = maybe_unserialize( $meta['kirki'][0] ); if ( is_array( $kirki_data ) && ! empty( $kirki_data ) ) { $this->exact_asset_url_from_blocks( $kirki_data['blocks'], 'templates' ); } } if ( ! empty( $meta['kirki_global_style_block_random'] ) ) { $kirki_global_style_block_random = maybe_unserialize( $meta['kirki_global_style_block_random'][0] ); $this->extract_asset_url_from_string( json_encode( $kirki_global_style_block_random ) ); } } } private function extract_asset_url_from_popups( $popups ) { foreach ( $popups as $popup ) { $meta = $popup->meta; if ( isset( $meta['kirki'] ) && ! empty( $meta['kirki'] ) ) { $kirki_data = maybe_unserialize( $meta['kirki'][0] ); if ( is_array( $kirki_data ) && ! empty( $kirki_data ) ) { $this->exact_asset_url_from_blocks( $kirki_data, 'popups' ); } } } } private function extract_asset_url_from_symbols( $symbols ) { foreach ( $symbols as $symbol ) { $meta = $symbol->meta; if ( isset( $meta['kirki'] ) && ! empty( $meta['kirki'] ) ) { $kirki_data = maybe_unserialize( $meta['kirki'][0] ); if ( is_array( $kirki_data ) && ! empty( $kirki_data ) ) { $this->exact_asset_url_from_blocks( $kirki_data['data'], 'symbols' ); $this->extract_asset_url_from_string( json_encode( $kirki_data['styleBlocks'] ) ); } } } } private function exact_asset_url_from_blocks( $blocks, $context ) { $upload_dir = wp_upload_dir(); $base_url = $upload_dir['baseurl']; // $asset_urls = []; foreach ( $blocks as $key => $block ) { if ( $block['name'] === 'image' && $block['properties']['attributes']['src'] ) { $this->push_to_asset_urls_tracker( $block['properties']['wp_attachment_id'], $block['properties']['attributes']['src'] ); } if ( $block['name'] === 'video' && $block['properties']['attributes']['src'] ) { $this->push_to_asset_urls_tracker( false, $block['properties']['attributes']['src'] ); if ( $block['properties']['thumbnail']['url'] ) { $this->push_to_asset_urls_tracker( $block['properties']['thumbnail']['wp_attachment_id'], $block['properties']['thumbnail']['url'] ); } } if ( $block['name'] === 'lottie' && $block['properties']['lottie']['src'] ) { $this->push_to_asset_urls_tracker( false, $block['properties']['lottie']['src'] ); } if ( $block['name'] === 'lightbox' && $block['properties']['lightbox']['thumbnail']['src'] ) { $this->push_to_asset_urls_tracker( false, $block['properties']['lightbox']['thumbnail']['src'] ); $lightbox_media = $block['properties']['lightbox']['media']; foreach ( $lightbox_media as $key => $media_item ) { if ( $media_item['sources']['original'] ) { $this->push_to_asset_urls_tracker( false, $media_item['sources']['original'] ); } } } } } private function count( $array ) { if ( isset( $array ) && is_array( $array ) ) { return count( $array ); } return 0; } private function make_zip_and_get_url( $zip_filename, $template_data ) { try { if ( empty( $wp_filesystem ) ) { require_once ABSPATH . '/wp-admin/includes/file.php'; WP_Filesystem(); } global $wp_filesystem; $zip = new \ZipArchive(); $upload_dir = wp_upload_dir(); // Step 1: create zip file path and json file path $zip_file_path = $upload_dir['basedir'] . "/$zip_filename.zip"; // site-settings.json $site_settings_filename = 'site-settings.json'; $site_settings_file_path = $upload_dir['basedir'] . '/' . $site_settings_filename; $site_settings_data = array(); $site_settings_data['exportId'] = $template_data['exportId']; $site_settings_data['variable_prefix'] = $template_data['variable_prefix']; $site_settings_data['batch_id'] = $template_data['batch_id']; $site_settings_data['prefix'] = $template_data['prefix']; $site_settings_data['siteInfo'] = $template_data['siteInfo']; $site_settings_file_content = json_encode( $site_settings_data, JSON_PRETTY_PRINT ); $site_settings_file_write = $wp_filesystem->put_contents( $site_settings_file_path, $site_settings_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // assets.json $assets_filename = 'assets.json'; $assets_file_path = $upload_dir['basedir'] . '/' . $assets_filename; $assets_data = array(); $assets_data['assetUrls'] = $template_data['assetUrls']; $assets_file_content = json_encode( $assets_data, JSON_PRETTY_PRINT ); $assets_file_write = $wp_filesystem->put_contents( $assets_file_path, $assets_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // pages.json $pages_filename = 'pages.json'; $pages_file_path = $upload_dir['basedir'] . '/' . $pages_filename; $pages_data = array(); $pages_data['pages'] = $template_data['pages']; $pages_data['templates'] = $template_data['templates']; $pages_data['utility_pages'] = $template_data['utility_pages']; $pages_file_content = json_encode( $pages_data, JSON_PRETTY_PRINT ); $pages_file_write = $wp_filesystem->put_contents( $pages_file_path, $pages_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // popups.json $popups_filename = 'popups.json'; $popups_file_path = $upload_dir['basedir'] . '/' . $popups_filename; $popups_data = array(); $popups_data['popups'] = $template_data['popups']; $popups_file_content = json_encode( $popups_data, JSON_PRETTY_PRINT ); $popups_file_write = $wp_filesystem->put_contents( $popups_file_path, $popups_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // content-manager.json $content_manager_filename = 'content-manager.json'; $content_manager_file_path = $upload_dir['basedir'] . '/' . $content_manager_filename; $content_manager_data = array(); $content_manager_data['contentManager'] = $template_data['contentManager']; $content_manager_file_content = json_encode( $content_manager_data, JSON_PRETTY_PRINT ); $content_manager_file_write = $wp_filesystem->put_contents( $content_manager_file_path, $content_manager_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // content-manager-ref-fields.json $content_manager_ref_fields_filename = 'content-manager-ref-fields.json'; $content_manager_ref_fields_file_path = $upload_dir['basedir'] . '/' . $content_manager_ref_fields_filename; $content_manager_ref_fields_data = array(); $content_manager_ref_fields_data['contentManagerRefFields'] = $template_data['contentManagerRefFields']; $content_manager_ref_fields_file_content = json_encode( $content_manager_ref_fields_data, JSON_PRETTY_PRINT ); $content_manager_ref_fields_file_write = $wp_filesystem->put_contents( $content_manager_ref_fields_file_path, $content_manager_ref_fields_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // symbols.json $symbols_filename = 'symbols.json'; $symbols_file_path = $upload_dir['basedir'] . '/' . $symbols_filename; $symbols_data = array(); $symbols_data['symbols'] = $template_data['symbols']; $symbols_file_content = json_encode( $symbols_data, JSON_PRETTY_PRINT ); $symbols_file_write = $wp_filesystem->put_contents( $symbols_file_path, $symbols_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // styles.json $styles_filename = 'styles.json'; $styles_file_path = $upload_dir['basedir'] . '/' . $styles_filename; $styles_data = array(); $styles_data['viewPorts'] = $template_data['viewPorts']; $styles_data['customFonts'] = $template_data['customFonts']; $styles_data['globalStyleBlocks'] = $template_data['globalStyleBlocks']; $styles_data['variables'] = $template_data['variables']; $styles_file_content = json_encode( $styles_data, JSON_PRETTY_PRINT ); $styles_file_write = $wp_filesystem->put_contents( $styles_file_path, $styles_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); // single.json $single_filename = 'single.json'; $single_file_path = $upload_dir['basedir'] . '/' . $single_filename; $single_data = array(); $single_data['exportId'] = $template_data['exportId']; $single_data['batch_id'] = $template_data['batch_id']; $template_info = array( 'symbols' => $this->count( $template_data['symbols'] ), 'popups' => $this->count( $template_data['popups'] ), 'pages' => $this->count( $template_data['pages'] ), 'templates' => $this->count( $template_data['templates'] ), 'utilityPages' => $this->count( $template_data['utility_pages'] ), 'variables' => $this->count( $template_data['variables']['data'] ), 'images' => $this->count( $template_data['assetUrls'] ), 'fonts' => $this->count( $template_data['customFonts'] ), 'contentManager' => $this->count( $template_data['contentManager'] ), 'contentManager' => array_reduce( $template_data['contentManager'], function( $sum, $item ) { return $sum + ( isset( $item->children ) ? count( $item->children ) : 0 ); }, 0 ), 'contentManagerRefFields' => $this->count( $template_data['contentManagerRefFields'] ), 'contentManager_list' => array_map( function( $item ) { return $item->post_title . ' (' . ( isset( $item->children ) ? count( $item->children ) : 0 ) . ')'; }, $template_data['contentManager'] ), ); $single_data['template_info'] = $template_info; $single_data['pages'] = $this->extractPageData( $template_data['pages'] ); $single_data['templates'] = $this->extractPageData( $template_data['templates'] ); $single_data['utility_pages'] = $this->extractPageData( $template_data['utility_pages'] ); $single_file_content = json_encode( $single_data, JSON_PRETTY_PRINT ); $single_file_write = $wp_filesystem->put_contents( $single_file_path, $single_file_content, FS_CHMOD_FILE // predefined mode settings for WP files ); if ( ! $site_settings_file_write || ! $assets_file_write || ! $pages_file_write || ! $popups_file_write || ! $content_manager_file_write || ! $symbols_file_write || ! $styles_file_write || ! $single_file_write || ! $content_manager_ref_fields_file_write ) { // throw new \Exception('Failed to write template file'); wp_send_json_error( 'Failed to write template file' ); } // Step 3: Open the zip file if ( true !== $zip->open( $zip_file_path, \ZipArchive::CREATE ) ) { // throw new \Exception('Failed to create zip file'); wp_send_json_error( 'Failed to write template file' ); } // Step 4: Add file to the zip file foreach ( $template_data['assetUrls'] as $key => $asset_item ) { $url = $asset_item['url']; $file_name = basename( $url ); // Extract only the filename (e.g., "image.jpg") $file_path = $upload_dir['basedir'] . str_replace( $upload_dir['baseurl'], '', $url ); $zip_path = 'assets/' . $file_name; // Place all files inside "media/" without subdirectories // Check if file exists if ( ! file_exists( $file_path ) ) { // error_log("File not found: " . $file_path); continue; // Skip to the next file } // Try adding the file to the ZIP if ( ! $zip->addFile( $file_path, $zip_path ) ) { // error_log("Failed to add file to ZIP: " . $file_path); } } if ( false === $zip->addFile( $site_settings_file_path, $site_settings_filename ) ) { // throw new \Exception('Failed to add assets.json file to zip'); wp_send_json_error( 'Failed to write site-settings.json file' ); } if ( isset( $template_data['assetUrls'] ) && ! empty( $template_data['assetUrls'] ) ) { if ( false === $zip->addFile( $assets_file_path, $assets_filename ) ) { // throw new \Exception('Failed to add assets.json file to zip'); wp_send_json_error( 'Failed to write assets.json file' ); } } if ( false === $zip->addFile( $pages_file_path, $pages_filename ) ) { // throw new \Exception('Failed to add pages.json file to zip'); wp_send_json_error( 'Failed to write pages.json file' ); } if ( false === $zip->addFile( $popups_file_path, $popups_filename ) ) { // throw new \Exception('Failed to add popups.json file to zip'); wp_send_json_error( 'Failed to write popups.json file' ); } if ( false === $zip->addFile( $content_manager_file_path, $content_manager_filename ) ) { // throw new \Exception('Failed to add content-manager.json file to zip'); wp_send_json_error( 'Failed to write content-manager.json file' ); } if ( false === $zip->addFile( $content_manager_ref_fields_file_path, $content_manager_ref_fields_filename ) ) { // throw new \Exception('Failed to add content-manager-ref-fields.json file to zip'); wp_send_json_error( 'Failed to write content-manager-ref-fields.json file' ); } if ( false === $zip->addFile( $symbols_file_path, $symbols_filename ) ) { // throw new \Exception('Failed to add symbols.json file to zip'); wp_send_json_error( 'Failed to write symbols.json file' ); } if ( false === $zip->addFile( $styles_file_path, $styles_filename ) ) { // throw new \Exception('Failed to add styles.json file to zip'); wp_send_json_error( 'Failed to write styles.json file' ); } if ( false === $zip->addFile( $single_file_path, $single_filename ) ) { // throw new \Exception('Failed to add styles.json file to zip'); wp_send_json_error( 'Failed to write styles.json file' ); } $zip->close(); // Step 6: remove the template file after zip file is created wp_delete_file( $site_settings_file_path ); wp_delete_file( $assets_file_path ); wp_delete_file( $pages_file_path ); wp_delete_file( $popups_file_path ); wp_delete_file( $content_manager_file_path ); wp_delete_file( $content_manager_ref_fields_file_path ); wp_delete_file( $symbols_file_path ); wp_delete_file( $styles_file_path ); wp_delete_file( $single_file_path ); // Step 7: Download the created zip file return home_url( "/?page-export=true&file-name=$zip_filename.zip" ); } catch ( \Exception $e ) { // return false; wp_send_json_error( 'Failed to write template file' ); } } function extractPageData( $pages ) { $result = array(); foreach ( $pages as $page ) { if ( isset( $page->post_title ) && isset( $page->post_name ) ) { $result[] = array( 'post_title' => $page->post_title, 'post_name' => $page->post_name, ); } } return $result; // Returns an array of page data } private function get_global_style_blocks() { return HelperFunctions::get_global_data_using_key( KIRKI_GLOBAL_STYLE_BLOCK_META_KEY ); } private function get_all_pages() { return $this->get_posts_with_meta( 'page', array( 'publish' ) ); } private function get_all_popups() { return $this->get_posts_with_meta('kirki_popup', array( 'publish', 'draft' ) ); } private function get_all_templates() { return $this->get_posts_with_meta('kirki_template', array( 'publish' ) ); } private function get_all_utility_pages() { return $this->get_posts_with_meta('kirki_utility', array( 'publish' ) ); } private function get_all_symbols() { return $this->get_posts_with_meta('kirki_symbol', array( 'draft' ) ); } private function get_all_content_manager_data() { $parent_posts = $this->get_posts_with_meta('kirki_cm', array( 'publish' ) ); foreach ( $parent_posts as $key => $parent_post ) { $parent_posts[ $key ]->children = $this->get_posts_with_meta('kirki_cm_' . $parent_post->ID, array( 'publish' ) ); } return $parent_posts; } private function get_view_ports() { $control = HelperFunctions::get_global_data_using_key( KIRKI_USER_CONTROLLER_META_KEY ); if ( ! $control ) { $control = array(); } if ( ! isset( $control['viewport'] ) ) { $control['viewport'] = HelperFunctions::get_initial_view_ports(); } return $control['viewport']; } private function get_custom_fonts() { $custom_fonts = HelperFunctions::get_global_data_using_key( KIRKI_USER_CUSTOM_FONTS_META_KEY ); return $custom_fonts ? $custom_fonts : array(); } private function get_posts_with_meta( $post_type, $post_status = array( 'publish' ) ) { $all_posts = get_posts( array( 'post_type' => $post_type, 'posts_per_page' => -1, 'post_status' => $post_status, ) ); foreach ( $all_posts as $key => $post ) { $post_meta = get_post_meta( $post->ID ); foreach ( $this->discarded_meta as $discarded_meta_key ) { unset( $post_meta[ $discarded_meta_key ] ); } if ( $this->only_published_pages ) { $stage_metas = Staging::get_all_stage_related_meta_names( $post->ID ); foreach ( $stage_metas as $discarded_meta_key ) { unset( $post_meta[ $discarded_meta_key ] ); } } $post->meta = $post_meta; // Get the post's content manager fields if available // $cm_ref_fields = ContentManagerHelper::get_post_cm_ref_fields($post->ID); // if (isset($cm_ref_fields) && !empty($cm_ref_fields)) { // $post->cm_ref_fields = $cm_ref_fields; // } $all_posts[ $key ] = $post; } return $all_posts; } private function push_to_asset_urls_tracker( $attachment_id, $url ) { if ( ! $attachment_id ) { $attachment_id = attachment_url_to_postid( $url ); } if ( $attachment_id ) { $this->asset_urls_tracker[ $attachment_id ] = array( 'attachment_id' => $attachment_id, 'url' => $url, ); } } private function get_all_content_manager_ref_fields() { $cm_ref_fields = ContentManagerHelper::get_post_cm_ref_fields(); return $cm_ref_fields; } }
[+]
..
[-] TemplateExport.php
[edit]
[-] TemplateImport.php
[edit]
[-] .htaccess.disabled
[edit]