Esempio n. 1
0
 function create_layout()
 {
     $layout_ids = $_POST['data'];
     $stylesheet = $_POST['stylesheet'];
     $layout_slug = !empty($_POST['layout_slug']) ? $_POST['layout_slug'] : false;
     $load_dev = $_POST['load_dev'] == 1 ? true : false;
     $post_type = isset($_POST['new_post']) ? $_POST['new_post'] : false;
     $parsed = false;
     if (empty($layout_ids)) {
         $this->_out(new Upfront_JsonResponse_Error("No such layout"));
     }
     upfront_switch_stylesheet($stylesheet);
     if (is_string($layout_ids)) {
         $layout_ids = Upfront_EntityResolver::ids_from_url($layout_ids);
         $parsed = true;
     }
     // Start by nulling out the layout
     $layout = false;
     // Check if we're to inherit a layout from a page template
     if (!empty($_POST['use_existing'])) {
         // Resolve existing page template to a layout
         $tpl = preg_replace('/page_tpl-(.*)\\.php/', '\\1', $_POST['use_existing']);
         $theme = Upfront_ChildTheme::get_instance();
         $settings = $theme->get_theme_settings();
         if (!empty($tpl) && !empty($settings)) {
             $required_pages = $settings->get('required_pages');
             if (!empty($required_pages)) {
                 $required_pages = json_decode($required_pages, true);
             }
             $specificity = !empty($required_pages[$tpl]['layout']) ? $required_pages[$tpl]['layout'] : false;
             if (!empty($specificity)) {
                 $template_layout = Upfront_Layout::from_entity_ids(array('specificity' => $specificity));
                 if (!empty($template_layout) && !$template_layout->is_empty()) {
                     $layout = $template_layout;
                     $layout->set('layout', $layout_ids);
                     $layout->set('current_layout', $layout_ids['specificity']);
                 }
             }
         }
     }
     // If we still don't have a template set, make one up
     if (empty($layout)) {
         $layout = Upfront_Layout::create_layout($layout_ids, $layout_slug);
     }
     global $post, $upfront_ajax_query;
     if (!$upfront_ajax_query) {
         $upfront_ajax_query = false;
     }
     if ($post_type) {
         $post = Upfront_PostModel::create($post_type);
         // set new layout IDS based on the created post ID
         $cascade = array('type' => 'single', 'item' => $post_type, 'specificity' => $post->ID);
         $layout_ids = Upfront_EntityResolver::get_entity_ids($cascade);
     } else {
         $post = $post;
         if ($post && is_singular()) {
             $layout_ids = Upfront_EntityResolver::get_entity_ids();
         } else {
             if ($_POST['post_id']) {
                 $posts = get_posts(array('include' => $_POST['post_id'], 'suppress_filters' => false));
                 if (sizeof($posts)) {
                     $post = $posts[0];
                 }
             }
         }
     }
     $response = array('post' => $post, 'layout' => $layout->to_php(), 'cascade' => $layout_ids, 'query' => $upfront_ajax_query);
     $this->_out(new Upfront_JsonResponse_Success($response));
 }
Esempio n. 2
0
/**
 * Get AJAX URL with layout entity id added to arguments
 */
function upfront_ajax_url($action, $args = '')
{
    $args = wp_parse_args($args);
    $args['action'] = $action;
    $args['layout'] = Upfront_EntityResolver::get_entity_ids();
    if (current_user_can('switch_themes') && !empty($_GET['dev'])) {
        $args['load_dev'] = 1;
    }
    return admin_url('admin-ajax.php?' . http_build_query($args));
}
Esempio n. 3
0
 public function get_entity_ids_value()
 {
     $entities = array();
     $entities = Upfront_Layout::get_parsed_cascade();
     if (empty($entities)) {
         $entities = Upfront_EntityResolver::get_entity_ids();
     }
     $entities['storage_key'] = Upfront_Model::get_storage_key();
     return base64_encode(json_encode($entities));
 }
Esempio n. 4
0
<?php

the_post();
$layout = Upfront_Output::get_layout(Upfront_EntityResolver::get_entity_ids());
get_header();
echo $layout->apply_layout();
get_footer();
Esempio n. 5
0
    function inject_upfront_dependencies()
    {
        if (!Upfront_Permissions::current(Upfront_Permissions::BOOT)) {
            return false;
        }
        // Do not inject for users that can't use this
        $url = self::get_root_url();
        //Boot Edit Mode if the querystring contains the editmode param
        if (isset($_GET['editmode'])) {
            echo upfront_boot_editor_trigger();
        }
        $storage_key = apply_filters('upfront-data-storage-key', Upfront_Layout::STORAGE_KEY);
        $save_storage_key = $storage_key;
        $is_ssl = is_ssl() ? '&ssl=1' : '';
        if (isset($_GET['dev']) && current_user_can('switch_themes') && apply_filters('upfront-enable-dev-saving', true)) {
            $save_storage_key .= '_dev';
        }
        $script_urls = array("{$url}/scripts/require.js", admin_url('admin-ajax.php?action=upfront_load_main' . $is_ssl), "{$url}/scripts/main.js");
        $deps = Upfront_CoreDependencies_Registry::get_instance();
        foreach ($script_urls as $url) {
            $deps->add_script($url);
        }
        echo '<script type="text/javascript">
			var _upfront_post_data=' . json_encode(array('layout' => Upfront_EntityResolver::get_entity_ids(), 'post_id' => is_singular() ? apply_filters('upfront-data-post_id', get_the_ID()) : false)) . ';
			var _upfront_storage_key = "' . $storage_key . '";
			var _upfront_save_storage_key = "' . $save_storage_key . '";
			var _upfront_stylesheet = "' . get_stylesheet() . '";
			var _upfront_debug_mode = ' . (int) isset($_GET['debug']) . ';
			var _upfront_please_hold_on = ' . json_encode(__('Please, hold on for just a little bit more', 'upfront')) . ';
		</script>';
        echo <<<EOAdditivemarkup
\t<div id="sidebar-ui" class="upfront-ui"></div>
\t<div id="settings" style="display:none"></div>
\t<div id="contextmenu" style="display:none"></div>
EOAdditivemarkup;
        do_action('upfront-core-inject_dependencies');
    }