Beispiel #1
0
/**
*  Simple output of a JSON'd string of the widget data
*/
function layers_create_export_file()
{
    $layers_migrator = new Layers_Widget_Migrator();
    // Make sur a post ID exists or return
    if (!isset($_GET['post'])) {
        return;
    }
    // Get the post ID
    $post_id = $_GET['post'];
    $post = get_post($post_id);
    $widget_data = json_encode($layers_migrator->export_data($post));
    $filesize = strlen($widget_data);
    // Headers to prompt "Save As"
    header('Content-Type: application/json');
    header('Content-Disposition: attachment; filename=' . $post->post_name . '-' . date('Y-m-d') . '.json');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . $filesize);
    // Clear buffering just in case
    @ob_end_clean();
    flush();
    // Output file contents
    die($widget_data);
    // Stop execution
    wp_redirect(admin_url('post.php?post=' . $post->ID . '&action=edit'));
}
Beispiel #2
0
 function layers_backup_page_sidebars_widgets($page = NULL, $no_revisions = FALSE)
 {
     // If the migrator class does not exist, then force load the migrator.php file
     if (!class_exists('Layers_Widget_Migrator')) {
         require get_template_directory() . '/core/helpers/migrator.php';
     }
     // Prep the migrator
     $migrator = new Layers_Widget_Migrator();
     if (NULL == $page || !is_object($page)) {
         return;
     }
     $raw_export_data = $migrator->export_data($page);
     $export_data = $migrator->page_widget_data($page);
     if (!empty($export_data)) {
         // Create a hash key so that we can know if this page is unique or not
         if ('' == get_post_meta($page->ID, '_layers_hash', true)) {
             $page_hash_key = 'layers_page_' . md5($page->post_name . '-' . $page->ID);
             update_post_meta($page->ID, '_layers_hash', $page_hash_key, false);
         } else {
             $page_hash_key = get_post_meta($page->ID, '_layers_hash', true);
         }
         // Save the raw widget data
         $page_raw_widget_data = array('post_id' => $page->ID, 'post_hash' => $page_hash_key, 'post_title' => esc_attr($page->post_title), 'widget_data' => $raw_export_data);
         // Generate the post content
         $post = (array) $page;
         $post['post_content_filtered'] = serialize($page_raw_widget_data);
         $post['post_content'] = layers_get_builder_page_content($page->ID);
         // Update the backup post & get the revision ID
         $post_id = wp_update_post($post);
         $revisions = wp_get_post_revisions($page->ID, array('posts_per_page' => 1));
         $latest_revision = reset($revisions);
         // Add widget order field
         update_post_meta($page->ID, '_layers_widget_order', $migrator->page_widgets_as_content($export_data), true);
         add_metadata('post', $latest_revision->ID, '_layers_widget_order', $migrator->page_widgets_as_content($export_data), true);
         $return = array('post_id' => $post_id, 'revision_id' => $latest_revision->ID);
         return $return;
     }
 }