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()); }
/** * 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; }