function motopressOptions()
{
    global $motopressSettings;
    global $lang;
    if (isset($_POST['language']) && !empty($_POST['language'])) {
        $language = $_POST['language'];
        update_option('motopress-language', $language);
        $motopressSettings['lang'] = $language;
        $lang = getLanguageDict();
    }
    echo '<div class="wrap">';
    echo '<h2>' . $lang->motopressOptions . '</h2>';
    echo '<form actoin="" method="POST">';
    echo '<table class="form-table"><tbody>';
    echo '<tr>';
    echo '<th scope="row"><label for="language">' . $lang->language . '</label></th>';
    echo '<td><select class="motopress-language" name="language" id="language">';
    $curLang = get_option('motopress-language');
    $languageFileList = glob(plugin_dir_path(__FILE__) . 'lang/*.json');
    foreach ($languageFileList as $path) {
        $file = basename($path);
        $fileContents = file_get_contents($path);
        $fileContentsJSON = json_decode($fileContents);
        $languageName = $fileContentsJSON->{'name'};
        $selected = $file == $curLang ? ' selected' : '';
        echo '<option value="' . $file . '"' . $selected . '>' . $languageName . '</option>';
    }
    echo '</select></td>';
    echo '</tr>';
    echo '</tbody></table>';
    echo '<p class="submit"><input type="submit" class="button-primary" value="' . $lang->save . '" /></p>';
    echo '</form>';
    echo '</div>';
}
 public function identify()
 {
     $lang = getLanguageDict();
     $errors = array();
     $xpath = null;
     $fileContent = '';
     $dom = new DOMDocument('1.0', 'utf-8');
     libxml_use_internal_errors(true);
     foreach ($this->themeFileList as $type => $list) {
         foreach ($list as $file) {
             if (is_writable($file)) {
                 $isIdentified = true;
                 $fileContent = file_get_contents($file);
                 if (!empty($fileContent)) {
                     $fileContent = self::preFix($fileContent, $type);
                     $dom->loadHTML($fileContent);
                     libxml_clear_errors();
                     $xpath = new DOMXpath($dom);
                     foreach ($xpath->query('//div[contains(@class, "span") and @data-motopress-wrapper-type]') as $el) {
                         if (!$el->hasAttribute('data-motopress-id') or !$el->getAttribute('data-motopress-id')) {
                             $el->setAttribute('data-motopress-id', uniqid());
                             $isIdentified = false;
                         }
                     }
                     foreach ($xpath->query('//div[contains(@class, "span") and not(@data-motopress-wrapper-type)] | //div[contains(@class, "row")] | //div[contains(@class, "motopress-inactive")]') as $el) {
                         if (!$el->hasAttribute('data-motopress-id') or !$el->getAttribute('data-motopress-id')) {
                             $el->setAttribute('data-motopress-id', uniqid());
                             $isIdentified = false;
                         }
                         if (!$el->hasAttribute('data-motopress-file') or !$el->getAttribute('data-motopress-file')) {
                             if ($type == 'main') {
                                 $el->setAttribute('data-motopress-file', basename($file));
                             } else {
                                 $el->setAttribute('data-motopress-file', $type . '/' . basename($file));
                             }
                             $isIdentified = false;
                         }
                         //                        }
                     }
                     if (!$isIdentified) {
                         $fileContent = preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>\\s*~i', '', $dom->saveHTML());
                         $fileContent = self::postFix($fileContent);
                         $fileContent = self::removeEmptyLines($fileContent);
                         file_put_contents($file, $fileContent);
                     }
                 }
             } else {
                 $errors[] = strtr($lang->notWritable, array('%name%' => $file));
             }
         }
     }
     return $errors;
 }
function motopressSetPageTemplate()
{
    require_once 'verifyNonce.php';
    require_once 'access.php';
    require_once 'functions.php';
    require_once 'getLanguageDict.php';
    $pageId = $_POST['pageId'];
    $template = $_POST['template'];
    $lang = getLanguageDict();
    if (!$pageId or !$template) {
        setError($lang->setPageTemplateError);
    }
    if (!update_post_meta($pageId, '_wp_page_template', $template)) {
        setError($lang->setPageTemplateError);
    }
    exit;
}
function motopressMenu()
{
    global $lang;
    $lang = getLanguageDict();
    $mainPage = add_menu_page('MotoPress', 'MotoPress', 'read', 'motopress', 'motopress', plugin_dir_url(__FILE__) . 'images/menu-icon.png', null);
    global $requirements;
    $requirements = new Requirements();
    global $isSupportedTheme;
    $isSupportedTheme = isSupportedTheme();
    global $isjQueryVer;
    $isjQueryVer = checkjQueryVer();
    if ($isSupportedTheme && $isjQueryVer) {
        add_submenu_page('motopress', $lang->visualEditor, $lang->visualEditor, 'read', 'motopress_visual_editor', 'motopressVisualEditor');
    }
    $optionsPage = add_submenu_page('motopress', $lang->motopressOptions, $lang->motopressOptions, 'manage_options', 'motopress_options', 'motopressOptions');
    add_action('admin_print_styles-' . $mainPage, 'motopressAdminStylesAndScripts');
    add_action('admin_print_styles-' . $optionsPage, 'motopressAdminStylesAndScripts');
}
function motopressDuplicateTemplate()
{
    require_once 'verifyNonce.php';
    require_once 'settings.php';
    require_once 'access.php';
    require_once ABSPATH . '/wp-admin/includes/theme.php';
    require_once 'InitTemplate.php';
    require_once 'functions.php';
    require_once 'getLanguageDict.php';
    $pageId = $_POST['pageId'];
    $templateToDuplicate = $_POST['templateToDuplicate'];
    $newTemplateName = trim($_POST['newTemplateName']);
    global $motopressSettings;
    $lang = getLanguageDict();
    $errors = array();
    $templateDir = $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/';
    if ($pageId && $templateToDuplicate && $newTemplateName) {
        $newTemplateFile = uniqid('page-') . '.php';
        if (!preg_match('/^[^\\*\\/]{1,30}$/is', $newTemplateName)) {
            setError($lang->validationName);
        }
        // If template with new name already exists
        $pageTemplates = get_page_templates();
        foreach ($pageTemplates as $name => $file) {
            if (strcasecmp($newTemplateName, $name) == 0) {
                setError($lang->duplicateErrorTemplateExists);
                //$errors[] = 'Template `'. $name .'` already exists.';
                break;
            }
        }
        if (file_exists($templateDir . $templateToDuplicate)) {
            $oldTemplateFile = file_get_contents($templateDir . $templateToDuplicate);
            $oldTemplateFile = InitTemplate::removePhpComment($oldTemplateFile);
            $oldTemplateFile = InitTemplate::removeEmptyPhp($oldTemplateFile);
            $oldTemplateFile = InitTemplate::reinit($oldTemplateFile, $newTemplateFile, 'main');
            $oldTemplateFile = InitTemplate::setAnnotations($oldTemplateFile, array('template_name' => 'Template Name: ' . $newTemplateName));
            if (!file_put_contents($templateDir . $newTemplateFile, $oldTemplateFile)) {
                setError($lang->duplicateError);
                //$errors[] = 'Error on: file_put_contents("'.$templateDir . $newTemplateFile.'", $oldTemplateFile)';
            }
            if (!update_post_meta($pageId, '_wp_page_template', $newTemplateFile)) {
                unlink($templateDir . $newTemplateFile);
                setError($lang->duplicateError);
                //$errors[] = 'Error on: update_post_meta('.$pageId.', "_wp_page_template", "'.$newTemplateFile.'")';
            }
            $request = array('value' => $newTemplateFile, 'name' => $newTemplateName);
            echo json_encode($request);
        } else {
            $errors[] = strtr($lang->duplicateErrorTemplateNotExist, array('%template%' => $templateDir . $templateToDuplicate));
        }
    } else {
        $errors[] = $lang->duplicateError;
    }
    if (!empty($errors)) {
        if ($motopressSettings['debug']) {
            setError($errors);
        } else {
            setError($lang->duplicateError);
        }
    }
    exit;
}
function motopressVisualEditor()
{
    global $motopressSettings;
    $lang = getLanguageDict();
    wp_register_style('style', plugin_dir_url(__FILE__) . 'includes/css/style.css', null, $motopressSettings['plugin_version']);
    wp_enqueue_style('style');
    $copyErrors = copyParentFiles();
    if (!empty($copyErrors)) {
        Flash::setFlash($copyErrors, 'error');
    } else {
        $initTemplate = new InitTemplate();
        $initErrors = $initTemplate->identify();
        if (!empty($initErrors)) {
            Flash::setFlash($initErrors, 'error');
        } else {
            ?>

            <div class="navbar motopress-navbar">
                <div class="navbar-inner">
                    <div id="motopress-logo">
                        <img src="<?php 
            echo $motopressSettings['plugin_root_url'] . '/' . $motopressSettings['plugin_name'] . '/images/logo.png?ver=' . $motopressSettings['plugin_version'];
            ?>
" />
                    </div>
                    <div id="motopress-editor-group">
                        <div class="pull-left navbar-form motopress-navbar">
                            <ul class="nav">
                                <li>
                                    <span><?php 
            echo $lang->page;
            ?>
&nbsp;</span>
                                    <?php 
            require_once 'includes/showPageList.php';
            ?>

                                </li>
                                <li id="motopress-page-templates-wrapper">
                                    <!--<span id="motopress-page-templates-wrapper">-->
                                        <span><?php 
            echo $lang->template;
            ?>
&nbsp;</span>
                                        <?php 
            require_once 'includes/showTemplateList.php';
            ?>

                                    <!--</span>-->
                                    <button class="btn-default" id="motopress-duplicate-template" data-toggle="modal" data-target="#motopress-duplicate-modal"><?php 
            echo $lang->duplicate;
            ?>
</button>
                                </li>
                            </ul>
                        </div>
                    </div>
                    <div id="motopress-preview-group" style="display: none">
                        <button class="btn-default pull-left active" data-toggle="button" id="motopress-show-hide-blocks">
                            <i class="icon-eye-open"></i>&nbsp;<span><?php 
            echo $lang->showHiddenBlocks;
            ?>
</span>
                        </button>
                    </div>

                    <div class="pull-right">
                        <ul class="nav pull-right">
                            <li>
                                <button class="btn-blue" id="motopress-save"><?php 
            echo $lang->save;
            ?>
</button>
                                <!--<button class="btn-red" id="motopress-reset"><?php 
            //echo $lang->reset;
            ?>
</button>-->
                                <button class="btn-default" id="motopress-visit-site"><?php 
            echo $lang->visitSite;
            ?>
</button>
                            </li>
                            <li class="dropdown" id="screenViews">
                                <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown">
                                    <div id="currentViewMode" class="screen-views-icon screen-views-editor-icon"></div>
                                    <b class="caret"></b>
                                </a>
                                <ul class="dropdown-menu">
                                    <li><a href="javascript:void(0);" id="defaultScreenView"><div class="screen-views-icon screen-views-desktop-icon"></div></a><hr/></li>
                                    <li><a href="javascript:void(0);" id="tabletScreenView"><div class="screen-views-icon screen-views-tablet-icon"></div></a><hr/></li>
                                    <li><a href="javascript:void(0);" id="phoneScreenView"><div class="screen-views-icon screen-views-phone-icon"></div></a><hr/></li>
                                    <li><a href="javascript:void(0);" id="editorView"><div class="screen-views-icon screen-views-editor-icon"></div></a></li>
                                </ul>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>

            <div id="motopress-flash"></div>

            <div id="motopress-iframe-wrapper">
                <iframe id="motopress-iframe"></iframe>
            </div>

            <div id="motopress-preview-iframe-wrapper">
                <iframe id="motopress-preview-iframe"></iframe>
            </div>

            <!-- Welcome -->
            <div id="motopress-welcome-modal" class="modal hide fade" role="dialog" aria-labelledby="welcomeModalLabel" aria-hidden="true">
                <div class="modal-header">
                    <div class="motopress-close motopress-icon-remove" data-dismiss="modal" aria-hidden="true"></div>
                    <p id="welcomeModalLabel"><?php 
            echo $lang->welcomeToMotopressTitle;
            ?>
</p>
                </div>
                <div class="modal-body">
                    <?php 
            echo $lang->welcomeToMotopressMessage;
            ?>

                </div>
                <div class="modal-footer">
                    <button class="btn-default" data-dismiss="modal" aria-hidden="true"><?php 
            echo $lang->close;
            ?>
</button>
                </div>
            </div>

            <!-- Dublicate -->
            <div id="motopress-duplicate-modal" class="modal hide fade" role="dialog" aria-labelledby="duplicateModalLabel" aria-hidden="true">
                <div class="modal-header">
                    <div class="motopress-close motopress-icon-remove" data-dismiss="modal" aria-hidden="true"></div>
                    <p id="duplicateModalLabel"><?php 
            echo $lang->newTemplateName;
            ?>
</p>
                </div>
                <div class="modal-body">
                    <input type="text" id="motopress-new-template-name" placeholder="<?php 
            echo $lang->newTemplateName;
            ?>
" required maxlength="30">
                </div>
                <div class="modal-footer">
                    <button class="btn-blue" id="motopress-duplicate-template-create"><?php 
            echo $lang->create;
            ?>
</button>
                    <button class="btn-default" data-dismiss="modal" aria-hidden="true"><?php 
            echo $lang->cancel;
            ?>
</button>
                </div>
            </div>

            <!-- Static editor -->
            <div id="motopress-static-editor-modal" class="modal hide fade" role="dialog" aria-labelledby="staticModalLabel" aria-hidden="true">
                <div class="modal-header">
                    <div class="motopress-close motopress-icon-remove" data-dismiss="modal" aria-hidden="true"></div>
                    <p id="staticModalLabel"><?php 
            echo $lang->editContent;
            ?>
</p>
                </div>
                <div class="modal-body">
                    <label for="motopress-static-name" class="blockName-label"><?php 
            echo $lang->staticName;
            ?>
:*</label>
                    <input id="motopress-static-name" type="text" placeholder="<?php 
            echo $lang->staticName;
            ?>
" required maxlength="30">
                    <div id="motopress-static-editor-wrapper">
                        <?php 
            if (isset($_COOKIE['wp-settings-1'])) {
                $_COOKIE['wp-settings-1'] = preg_replace('/editor=(tinymce|html)/is', 'editor=html', $_COOKIE['wp-settings-1'], 1);
            }
            wp_editor('', 'motopress-static-content', array('remove_linebreaks' => 'false', 'schema' => 'html5'));
            ?>

                    </div>
                </div>
                <div class="modal-footer">
                    <button id="motopress-save-static-content" class="btn-blue"><?php 
            echo $lang->save;
            ?>
</button>
                    <button class="btn-default" data-dismiss="modal" aria-hidden="true"><?php 
            echo $lang->cancel;
            ?>
</button>
                </div>
            </div>

            <!-- Confirm -->
            <div id="motopress-confirm-modal" class="modal hide fade" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true"></div>

            <!-- Preload -->
            <div id="motopress-preload"></div>

            <script type="text/javascript">
                var steal = { production: 'mp/production.js?ver=<?php 
            echo $motopressSettings['plugin_version'];
            ?>
' };
            </script>
<?php 
            $protocol = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ? 'https' : 'http';
            $wpIncludesUrl = str_replace($protocol . '://' . $_SERVER['HTTP_HOST'], '', includes_url());
            wp_enqueue_script('steal', plugins_url('steal/steal.production.js?mp', __FILE__), null, null);
            wp_localize_script('steal', 'motopress', array('ajaxUrl' => admin_url('admin-ajax.php'), 'wpJQueryUrl' => $wpIncludesUrl . 'js/jquery/', 'wpCssUrl' => $wpIncludesUrl . 'css/', 'pluginVersion' => $motopressSettings['plugin_version'], 'pluginVersionParam' => '?ver=' . $motopressSettings['plugin_version'], 'nonces' => array('motopress_get_wp_settings' => wp_create_nonce('wp_ajax_motopress_get_wp_settings'), 'motopress_get_list' => wp_create_nonce('wp_ajax_motopress_get_list'), 'motopress_get_loop' => wp_create_nonce('wp_ajax_motopress_get_loop'), 'motopress_save' => wp_create_nonce('wp_ajax_motopress_save'), 'motopress_reset' => wp_create_nonce('wp_ajax_motopress_reset'), 'motopress_set_page_template' => wp_create_nonce('wp_ajax_motopress_set_page_template'), 'motopress_duplicate_template' => wp_create_nonce('wp_ajax_motopress_duplicate_template'), 'motopress_save_static_content' => wp_create_nonce('wp_ajax_motopress_save_static_content'), 'motopress_get_static_content' => wp_create_nonce('wp_ajax_motopress_get_static_content'), 'motopress_get_static_block' => wp_create_nonce('wp_ajax_motopress_get_static_block'), 'motopress_get_sidebar' => wp_create_nonce('wp_ajax_motopress_get_sidebar'), 'motopress_get_wrapper' => wp_create_nonce('wp_ajax_motopress_get_wrapper'))));
        }
    }
}
function motopressGetWrapper()
{
    require_once 'verifyNonce.php';
    require_once 'settings.php';
    require_once 'access.php';
    require_once 'Requirements.php';
    require_once 'SaveTemplate.php';
    require_once 'functions.php';
    require_once 'getLanguageDict.php';
    if (isset($_POST['wrapper']) && !empty($_POST['wrapper'])) {
        $wrapper = $_POST['wrapper'];
        $file = explode('.php', $wrapper);
        $wrapperName = $file[0];
        get_template_part($wrapperName);
    } elseif (isset($_POST['link']) && !empty($_POST['link']) && (isset($_POST['page']) && !empty($_POST['page'])) && (isset($_POST['newWrapper']) && !empty($_POST['newWrapper'])) && (isset($_POST['data']) && !empty($_POST['data']))) {
        $link = $_POST['link'];
        $page = $_POST['page'];
        $newWrapper = $_POST['newWrapper'];
        $data = stripslashes($_POST['data']);
        global $motopressSettings;
        $lang = getLanguageDict();
        $errors = array();
        $pageWithExt = explode('.php', $page);
        $pageName = $pageWithExt[0];
        $copy = copy($motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page, $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $pageName . '-original.php');
        if ($copy) {
            $content = file_get_contents($motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page);
            preg_match_all('/data-motopress-wrapper-file=[\'"]wrapper\\/([^\'"]+)[\'"]/is', $content, $wrapperMatches);
            if (!empty($wrapperMatches[1])) {
                $wrappers = $wrapperMatches[1];
                $newWrapperPath = explode('/', $newWrapper);
                $newWrapperName = $newWrapperPath[1];
                if (!in_array($newWrapperName, $wrappers)) {
                    $wrappers[] = $newWrapperName;
                }
                foreach ($wrappers as $wrapper) {
                    $wrapperWithExt = explode('.php', $wrapper);
                    $wrapperName = $wrapperWithExt[0];
                    $wrapperCopy = copy($motopressSettings['theme_wrapper_root'] . '/' . $wrapper, $motopressSettings['theme_wrapper_root'] . '/' . $wrapperName . '-original.php');
                    if (!$wrapperCopy) {
                        $errors[] = strtr($lang->copyError, array('%source%' => $motopressSettings['theme_wrapper_root'] . '/' . $wrapper, '%dest%' => $motopressSettings['theme_wrapper_root'] . '/' . $wrapperName . '-original.php'));
                    }
                }
                new SaveTemplate($page, $data);
                $newHtml = false;
                $requirements = new Requirements();
                if ($requirements->getCurl()) {
                    $ch = curl_init();
                    $options = array(CURLOPT_URL => $link, CURLOPT_RETURNTRANSFER => true);
                    curl_setopt_array($ch, $options);
                    $newHtml = curl_exec($ch);
                    curl_close($ch);
                } else {
                    $newHtml = file_get_contents($link);
                }
                if (!$newHtml) {
                    $errors[] = strtr($lang->openError, array('%name%' => $link));
                }
                foreach ($wrappers as $wrapper) {
                    if (!unlink($motopressSettings['theme_wrapper_root'] . '/' . $wrapper)) {
                        $errors[] = strtr($lang->removeError, array('%name%' => $motopressSettings['theme_wrapper_root'] . '/' . $wrapper));
                    }
                    $wrapperWithExt = explode('.php', $wrapper);
                    $wrapperName = $wrapperWithExt[0];
                    $wrapperRename = rename($motopressSettings['theme_wrapper_root'] . '/' . $wrapperName . '-original.php', $motopressSettings['theme_wrapper_root'] . '/' . $wrapper);
                    if (!$wrapperRename) {
                        $errors[] = strtr($lang->renameError, array('%source%' => $motopressSettings['theme_wrapper_root'] . '/' . $wrapperName . '-original.php', '%dest%' => $motopressSettings['theme_wrapper_root'] . '/' . $wrapper));
                    }
                }
            }
            if (!unlink($motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page)) {
                $errors[] = strtr($lang->removeError, array('%name%' => $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page));
            }
            $rename = rename($motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $pageName . '-original.php', $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page);
            if (!$rename) {
                $errors[] = strtr($lang->renameError, array('%source%' => $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $pageName . '-original.php', '%dest%' => $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page));
            }
        } else {
            $errors[] = strtr($lang->copyError, array('%source%' => $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $page, '%dest%' => $motopressSettings['theme_root'] . '/' . $motopressSettings['current_theme'] . '/' . $pageName . '-original.php'));
        }
        if (empty($errors)) {
            echo $newHtml;
        } else {
            if ($motopressSettings['debug']) {
                print_r($errors);
            } else {
                setError($lang->wrapperError);
            }
        }
    }
    exit;
}
function motopressSaveStaticContent()
{
    require_once 'verifyNonce.php';
    require_once 'settings.php';
    require_once 'access.php';
    require_once 'functions.php';
    require_once 'getLanguageDict.php';
    $lang = getLanguageDict();
    if (isset($_POST['staticName']) && !empty($_POST['staticName']) && preg_match('/^[^\\*\\/]{1,30}$/is', $_POST['staticName']) && isset($_POST['staticFile']) && !empty($_POST['staticFile']) && isset($_POST['staticContent'])) {
        $staticName = trim($_POST['staticName']);
        $staticName = htmlspecialchars($staticName);
        $staticFile = $_POST['staticFile'];
        $staticContent = $_POST['staticContent'];
        global $motopressSettings;
        $errors = array();
        $file = explode('/', $staticFile);
        if (count($file) == 2) {
            $fileName = $file[1];
            $fileWithExt = explode('.php', $staticFile);
            $name = $fileWithExt[0];
            $filePath = $motopressSettings['theme_static_root'] . '/' . $fileName;
            $pattern = '/\\*\\s*Static\\s+Name:\\s*([^\\*]+)\\s*\\*/is';
            $replacement = '* Static Name: ' . $staticName . ' *';
            $content = stripslashes($staticContent);
            if (file_exists($filePath)) {
                $content = preg_replace($pattern, $replacement, $content, 1);
            } else {
                file_put_contents($filePath, '');
                $content = '<?php /' . $replacement . "/ ?>\n" . $content;
            }
            $search = array('[php]', '[/php]');
            $replace = array('<?php', '?>');
            $content = str_replace($search, $replace, $content);
            if (!is_writable($motopressSettings['theme_static_root'])) {
                if (@(!chmod($motopressSettings['theme_static_root'], 0777))) {
                    $errors[] = strtr($lang->changePermissionsError, array('%name%' => $motopressSettings['theme_static_root']));
                }
            }
            if (is_writable($motopressSettings['theme_static_root'])) {
                if (!is_writable($filePath)) {
                    if (@(!chmod($filePath, 0777))) {
                        $errors[] = strtr($lang->changePermissionsError, array('%name%' => $filePath));
                    }
                }
                if (is_writable($filePath)) {
                    $write = file_put_contents($filePath, htmlspecialchars_decode($content));
                    if ($write) {
                        get_template_part($name);
                    } else {
                        $errors[] = strtr($lang->writeError, array('%name%' => $filePath));
                    }
                } else {
                    $errors[] = strtr($lang->notWritable, array('%name%' => $filePath));
                }
            } else {
                $errors[] = strtr($lang->notWritable, array('%name%' => $motopressSettings['theme_static_root']));
            }
        }
        if (!empty($errors)) {
            if ($motopressSettings['debug']) {
                print_r($errors);
            } else {
                setError($lang->saveStaticContentError);
            }
        }
    } else {
        setError($lang->saveStaticContentError);
    }
    exit;
}
Exemple #9
0
<?php

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) and strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    require_once ABSPATH . WPINC . '/pluggable.php';
    $currentUser = wp_get_current_user();
    if (!is_user_logged_in() or !in_array('administrator', $currentUser->roles) or !current_user_can('edit_themes')) {
        require_once 'functions.php';
        require_once 'getLanguageDict.php';
        global $lang;
        $lang = getLanguageDict();
        setError($lang->permissionDenied);
    }
}