function getContent($def_text = '')
 {
     $t = parent::getContent($def_text);
     if (!$this->isConflict) {
         return $t;
     }
     $options = new CKeditorParserOptions();
     $options->setTidy(true);
     $parser = new CKeditorParser();
     $parser->setOutputType(OT_HTML);
     $pa = $parser->parse($t, $this->mTitle, $options);
     return $pa->mText;
 }
function wfSajaxWikiToHTML($wiki, $title = '')
{
    global $wgTitle;
    if ($title) {
        $wgTitle = Title::newFromText($title);
    }
    $options = new CKeditorParserOptions();
    $options->setTidy(true);
    $parser = new CKeditorParser();
    $parser->setOutputType(OT_HTML);
    wfSajaxToggleCKeditor('show');
    // FCKeditor was switched to visible
    return str_replace('<!-- Tidy found serious XHTML errors -->', '', $parser->parse($wiki, $wgTitle, $options)->getText());
}
 function makeImage($nt, $options, $holders = false)
 {
     CKeditorParser::$fck_mw_makeImage_options = $options;
     return parent::makeImage($nt, $options, $holders);
 }
    /**
     * Add FCK script
     *
     * @param $form EditPage object
     * @return true
     */
    public function onEditPageShowEditFormInitial($form)
    {
        global $wgOut, $wgTitle, $wgScriptPath, $wgContLang, $wgUser;
        global $wgStylePath, $wgStyleVersion, $wgDefaultSkin, $wgExtensionFunctions, $wgHooks, $wgDefaultUserOptions;
        global $wgFCKWikiTextBeforeParse, $wgFCKEditorIsCompatible;
        global $wgFCKEditorExtDir, $wgFCKEditorDir, $wgFCKEditorHeight, $wgFCKEditorToolbarSet;
        global $wgCKEditorUrlparamMode, $wgRequest;
        if (!isset($this->showFCKEditor)) {
            $this->showFCKEditor = 0;
            if (!$wgUser->getOption('riched_start_disabled', $wgDefaultUserOptions['riched_start_disabled'])) {
                $this->showFCKEditor += RTE_VISIBLE;
            }
            if ($wgUser->getOption('riched_use_popup', $wgDefaultUserOptions['riched_use_popup'])) {
                $this->showFCKEditor += RTE_POPUP;
            }
            if ($wgUser->getOption('riched_use_toggle', $wgDefaultUserOptions['riched_use_toggle'])) {
                $this->showFCKEditor += RTE_TOGGLE_LINK;
            }
        }
        if (!isset($this->loadSTBonStartup)) {
            $this->loadSTBonStartup = 0;
            if (defined('SMW_HALO_VERSION')) {
                if ($wgUser->getOption('riched_load_semantic_toolbar', $wgDefaultUserOptions['riched_load_semantic_toolbar'])) {
                    $this->loadSTBonStartup = 1;
                }
            }
        }
        if (!empty($_SESSION['showMyFCKeditor']) && $wgUser->getOption('riched_toggle_remember_state', $wgDefaultUserOptions['riched_toggle_remember_state'])) {
            $rteSettingsFromSession = true;
            // Clear RTE_VISIBLE flag
            $this->showFCKEditor &= ~RTE_VISIBLE;
            // Get flag from session
            $this->showFCKEditor |= $_SESSION['showMyFCKeditor'];
        }
        # Don't initialize if we have disabled the toolbar or FCkeditor or have a non-compatible browser
        if (!$wgUser->getOption('showtoolbar') || $wgUser->getOption('riched_disable', !empty($wgDefaultUserOptions['riched_disable']) ? $wgDefaultUserOptions['riched_disable'] : false) || !$wgFCKEditorIsCompatible) {
            return true;
        }
        # Don't do anything if we're in an excluded namespace
        if (in_array($wgTitle->getNamespace(), $this->getExcludedNamespaces())) {
            return true;
        }
        # Make sure that there's no __NORICHEDITOR__ in the text either
        if (false !== strpos($form->textbox1, '__NORICHEDITOR__')) {
            return true;
        }
        # If $wgCKEditorUrlparamMode is set to true check the url params
        if ($wgCKEditorUrlparamMode && !($wgRequest->getVal('mode') && $wgRequest->getVal('mode') == 'wysiwyg')) {
            return true;
        }
        # If mode=wysiwyg is set then start with the WYSIWYG editor
        if ($wgRequest->getVal('mode') && $wgRequest->getVal('mode') == 'wysiwyg' && !isset($rteSettingsFromSession)) {
            $this->showFCKEditor |= RTE_VISIBLE;
        }
        $wgFCKWikiTextBeforeParse = $form->textbox1;
        if ($this->showFCKEditor & RTE_VISIBLE) {
            $options = new CKeditorParserOptions();
            $options->setTidy(true);
            $parser = new CKeditorParser();
            $parser->setOutputType(OT_HTML);
            $form->textbox1 = str_replace('<!-- Tidy found serious XHTML errors -->', '', $parser->parse($form->textbox1, $wgTitle, $options)->getText());
        }
        $printsheet = htmlspecialchars("{$wgStylePath}/common/wikiprintable.css?{$wgStyleVersion}");
        // CSS trick,  we need to get user CSS stylesheets somehow... it must be done in a different way!
        $skin = $wgUser->getSkin();
        $skin->loggedin = $wgUser->isLoggedIn();
        $skin->mTitle =& $wgTitle;
        $skin->initPage($wgOut);
        $skin->userpage = $wgUser->getUserPage()->getPrefixedText();
        #   $skin->setupUserCss( $wgOut );
        $skin->setupSkinUserCss($wgOut);
        if (!empty($skin->usercss) && preg_match_all('/@import "([^"]+)";/', $skin->usercss, $matches)) {
            $userStyles = $matches[1];
        }
        // End of CSS trick
        $script = <<<HEREDOC
<script type="text/javascript" src="{$wgScriptPath}/{$wgFCKEditorDir}ckeditor.js"></script>
<!--<script type="text/javascript" src="{$wgScriptPath}/{$wgFCKEditorDir}ckeditor_source.js"></script>-->
<script type="text/javascript">
var sEditorAreaCSS = '{$printsheet},/mediawiki/skins/monobook/main.css?{$wgStyleVersion}';
</script>
<!--[if lt IE 5.5000]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE50Fixes.css?{$wgStyleVersion}'; </script><![endif]-->
<!--[if IE 5.5000]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE55Fixes.css?{$wgStyleVersion}'; </script><![endif]-->
<!--[if IE 6]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE60Fixes.css?{$wgStyleVersion}'; </script><![endif]-->
<!--[if IE 7]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE70Fixes.css?{$wgStyleVersion}'; </script><![endif]-->
<!--[if lt IE 7]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IEFixes.css?{$wgStyleVersion}'; </script><![endif]-->
HEREDOC;
        $script .= '<script type="text/javascript"> ';
        if (!empty($userStyles)) {
            $script .= 'sEditorAreaCSS += ",' . implode(',', $userStyles) . '";';
        }
        # Show references only if Cite extension has been installed
        $showRef = false;
        if (isset($wgHooks['ParserFirstCallInit']) && in_array('wfCite', $wgHooks['ParserFirstCallInit']) || isset($wgExtensionFunctions) && in_array('wfCite', $wgExtensionFunctions)) {
            $showRef = true;
        }
        $showSource = false;
        if (isset($wgHooks['ParserFirstCallInit']) && in_array('efSyntaxHighlight_GeSHiSetup', $wgHooks['ParserFirstCallInit']) || isset($wgExtensionFunctions) && in_array('efSyntaxHighlight_GeSHiSetup', $wgExtensionFunctions)) {
            $showSource = true;
        }
        /*13.11.13 RL**
        		wfLoadExtensionMessages( 'CKeditor' );
        		***/
        $script .= '
var showFCKEditor = ' . $this->showFCKEditor . ';
var loadSTBonStartup = ' . $this->loadSTBonStartup . ';
var popup = false; // pointer to popup document
var firstLoad = true;
var isConflict = ' . ($form->isConflict ? 1 : 0) . ';		                          //21.02.14 RL                                           
var editorMsgOn = "[' . Xml::escapeJsString(wfMsgHtml('textrichditor')) . ']";        //17.01.14 RL Added []
var editorMsgOff = "[' . Xml::escapeJsString(wfMsgHtml('tog-riched_disable')) . ']";  //17.01.14 RL Added []
var editorLink = "[' . ($this->showFCKEditor & RTE_VISIBLE ? Xml::escapeJsString(wfMsgHtml('tog-riched_disable')) : Xml::escapeJsString(wfMsgHtml('textrichditor'))) . ']";  //17.01.14 RL Added []
var saveSetting = ' . ($wgUser->getOption('riched_toggle_remember_state', $wgDefaultUserOptions['riched_toggle_remember_state']) ? 1 : 0) . ';
var useEditwarning = ' . ($wgUser->getOption('useeditwarning') ? 1 : 0) . ';         //13.04.14 RL
var EnabledUseEditWarning = false;                                                        //13.04.14 RL Because IE fires onbeforeunload with ToggleCKEditor  
var RTE_VISIBLE = ' . RTE_VISIBLE . ';
var RTE_TOGGLE_LINK = ' . RTE_TOGGLE_LINK . ';
var RTE_POPUP = ' . RTE_POPUP . ';
var wgCKeditorInstance = null;
var wgCKeditorCurrentMode = "wysiwyg";
var smwghQiLoadUrl = "' . CKeditor_MediaWiki::GetQILoadUrl() . '";
CKEDITOR.ready=true;
';
        $script .= '</script>';
        $script .= '<script type="text/javascript">';
        $script .= $this->InitializeScripts('wpTextbox1', Xml::escapeJsString(wfMsgHtml('rich_editor_new_window')));
        if ($this->showFCKEditor & (RTE_TOGGLE_LINK | RTE_POPUP)) {
            // add toggle link and handler
            $script .= $this->ToggleScript();
        }
        if ($this->showFCKEditor & RTE_POPUP) {
            $script .= <<<HEREDOC

function FCKeditor_OpenPopup(jsID, textareaID){
\tpopupUrl = wgFCKEditorExtDir + '/CKeditor.popup.html';
\tpopupUrl = popupUrl + '?var='+ jsID + '&el=' + textareaID;
\twindow.open(popupUrl, null, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=1,dependent=yes');
\treturn 0;
}
HEREDOC;
        }
        $script .= '</script>';
        $wgOut->addScript($script);
        return true;
    }