예제 #1
0
function motopressCERenderContent()
{
    require_once dirname(__FILE__) . '/../verifyNonce.php';
    require_once dirname(__FILE__) . '/../settings.php';
    require_once dirname(__FILE__) . '/../access.php';
    require_once dirname(__FILE__) . '/../Requirements.php';
    require_once dirname(__FILE__) . '/../functions.php';
    require_once dirname(__FILE__) . '/../getLanguageDict.php';
    require_once dirname(__FILE__) . '/postMetaFix.php';
    require_once dirname(__FILE__) . '/ThemeFix.php';
    $content = trim($_POST['data']);
    $post_id = (int) $_POST['post_id'];
    global $motopressCESettings;
    global $motopressCELang;
    $errors = array();
    global $motopressCELibrary;
    $motopressCELibrary = new MPCELibrary();
    do_action_ref_array('mp_library', array(&$motopressCELibrary));
    $content = stripslashes($content);
    $content = motopressCECleanupShortcode($content);
    if (!empty($content)) {
        $content = motopressCEWrapOuterCode($content);
    }
    $output = motopressCEParseObjectsRecursive($content);
    $tmp_post_id = motopressCECreateTemporaryPost($post_id, $output);
    if ($tmp_post_id !== 0) {
        $themeFix = new MPCEThemeFix(MPCEThemeFix::DEACTIVATE);
        $src = get_permalink($tmp_post_id);
        //@todo: fix protocol for http://codex.wordpress.org/Administration_Over_SSL
        //fix different site (WordPress Address) and home (Site Address) url for iframe security
        $siteUrl = get_site_url();
        $homeUrl = get_home_url();
        $siteUrlArr = parse_url($siteUrl);
        $homeUrlArr = parse_url($homeUrl);
        if ($homeUrlArr['scheme'] !== $siteUrlArr['scheme'] || $homeUrlArr['host'] !== $siteUrlArr['host']) {
            $src = str_replace($homeUrl, $siteUrl, $src);
        }
        $result = array('post_id' => $tmp_post_id, 'src' => $src, 'headway_themes' => $themeFix->isHeadwayTheme());
        wp_send_json($result);
    } else {
        $errors[] = $motopressCELang->CECreateTemporaryPostError;
    }
    if (!empty($errors)) {
        if ($motopressCESettings['debug']) {
            print_r($errors);
        } else {
            motopressCESetError($motopressCELang->CECreateTemporaryPostError);
        }
    }
    exit;
}
예제 #2
0
function motopressCERenderTemplate()
{
    require_once dirname(__FILE__) . '/../verifyNonce.php';
    require_once dirname(__FILE__) . '/../settings.php';
    require_once dirname(__FILE__) . '/../access.php';
    require_once dirname(__FILE__) . '/../functions.php';
    require_once dirname(__FILE__) . '/../getLanguageDict.php';
    global $motopressCELang;
    $errorMessage = strtr($motopressCELang->CERenderError, array('%name%' => $motopressCELang->CETemplate));
    if (isset($_POST['templateId']) && !empty($_POST['templateId'])) {
        global $motopressCESettings;
        $errors = array();
        $templateId = $_POST['templateId'];
        global $motopressCELibrary;
        $motopressCELibrary = new MPCELibrary();
        do_action_ref_array('mp_library', array(&$motopressCELibrary));
        $template =& $motopressCELibrary->getTemplate($templateId);
        if ($template) {
            $content = $template->getContent();
            $content = stripslashes($content);
            $content = motopressCECleanupShortcode($content);
            $content = preg_replace('/\\][\\s]*/', ']', $content);
            $content = motopressCEWrapOuterCode($content);
            $content = motopressCEParseObjectsRecursive($content);
            echo apply_filters('the_content', $content);
        } else {
            $errors[] = $errorMessage;
        }
        if (!empty($errors)) {
            if ($motopressCESettings['debug']) {
                print_r($errors);
            } else {
                motopressCESetError($errorMessage);
            }
        }
    } else {
        motopressCESetError($errorMessage);
    }
    exit;
}