http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88592
Revision: 88592
Author: yaron
Date: 2011-05-22 18:12:18 +0000 (Sun, 22 May 2011)
Log Message:
-----------
Added some code to improve FCKeditor display, from ontoprise; removed handling
of CKeditor/WYSIWYG extensions, added in r87891 (will now be handled by hooks);
removed default setting of user options via $wgDefaultUserOptions (caused
problems and not necessary)
Modified Paths:
--------------
trunk/extensions/SemanticForms/includes/SF_FormUtils.php
Modified: trunk/extensions/SemanticForms/includes/SF_FormUtils.php
===================================================================
--- trunk/extensions/SemanticForms/includes/SF_FormUtils.php 2011-05-22
18:09:59 UTC (rev 88591)
+++ trunk/extensions/SemanticForms/includes/SF_FormUtils.php 2011-05-22
18:12:18 UTC (rev 88592)
@@ -372,14 +372,20 @@
static function getShowFCKEditor() {
global $wgUser, $wgDefaultUserOptions;
+ // Differentiate between FCKeditor and the newer CKeditor,
+ // which isn't handled here
+ if ( !class_exists( 'FCKeditor' ) ) {
+ return false;
+ }
+
$showFCKEditor = 0;
- if ( !array_key_exists( 'riched_start_disabled',
$wgDefaultUserOptions) && !$wgUser->getOption( 'riched_start_disabled' ) ) {
+ if ( !$wgUser->getOption( 'riched_start_disabled' ) ) {
$showFCKEditor += RTE_VISIBLE;
}
- if ( array_key_exists( 'riched_use_popup',
$wgDefaultUserOptions ) || $wgUser->getOption( 'riched_use_popup' ) ) {
+ if ( $wgUser->getOption( 'riched_use_popup' ) ) {
$showFCKEditor += RTE_POPUP;
}
- if ( array_key_exists( 'riched_use_toggle',
$wgDefaultUserOptions ) || $wgUser->getOption( 'riched_use_toggle' ) ) {
+ if ( $wgUser->getOption( 'riched_use_toggle' ) ) {
$showFCKEditor += RTE_TOGGLE_LINK;
}
@@ -404,10 +410,12 @@
return $text;
}
- static function mainFCKJavascript( $showFCKEditor ) {
+ static function mainFCKJavascript( $showFCKEditor, $fieldArgs ) {
global $wgUser, $wgScriptPath, $wgFCKEditorExtDir,
$wgFCKEditorDir, $wgFCKEditorToolbarSet, $wgFCKEditorHeight;
global $wgHooks, $wgExtensionFunctions;
+ $numRows = isset( $fieldArgs['rows'] ) && $fieldArgs['rows'] >
0 ? $fieldArgs['rows'] : 5;
+
$newWinMsg = wfMsg( 'rich_editor_new_window' );
$javascript_text = '
var showFCKEditor = ' . $showFCKEditor . ';
@@ -440,8 +448,7 @@
$wgFCKEditorDir .= '/';
}
- if ( class_exists('FCKeditor') ) {
- $javascript_text .= <<<END
+ $javascript_text .= <<<END
var oFCKeditor = new FCKeditor( "free_text" );
//Set config
@@ -463,6 +470,32 @@
);
}
+// If the rows attribute was defined in the form, use the font size to
+// calculate the editor window height
+function getFontSize(el) {
+ var x = document.getElementById(el);
+ if (x.currentStyle) {
+ // IE
+ var y = x.currentStyle['lineheight'];
+ } else if (window.getComputedStyle) {
+ // FF, Opera
+ var y =
document.defaultView.getComputedStyle(x,null).getPropertyValue('line-height');
+ }
+ return y;
+}
+function getWindowHeight4editor() {
+ var fsize = getFontSize('free_text');
+ // if value was not determined, return default val from
$wgFCKEditorHeight
+ if (!fsize) return $FCKEditorHeight;
+ if (fsize.indexOf('px') == -1) // we didn't get pixels
+ // arbitary value, don't hassle with caluclating
+ return $FCKEditorHeight;
+ var px = parseFloat(fsize.replace(/\w{2}$/, ''));
+ // the text in the edit window is slightly larger than the determined
value
+ px = px * 1.25;
+ return Math.round( px * $numRows );
+}
+
function onLoadFCKeditor()
{
if (!(showFCKEditor & RTE_VISIBLE))
@@ -660,17 +693,12 @@
addOnloadHook( initEditor );
END;
- } else {
- // CKeditor instead of FCKeditor
- $javascript_text =
CKeditor_MediaWiki::InitializeScripts('free_text', $newWinMsg);
- }
return $javascript_text;
}
static function FCKToggleJavascript() {
// add toggle link and handler
- if ( class_exists('FCKeditor') ) {
- $javascript_text = <<<END
+ $javascript_text = <<<END
function ToggleFCKEditor(mode, objId)
{
@@ -775,10 +803,6 @@
}
END;
- } else {
- // CKeditor instead of FCKeditor
- $javascript_text = CKeditor_MediaWiki::ToggleScript();
- }
return $javascript_text;
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs