Browse Source

Feature #2479 some adjustments of insertHTML plugin for Chamilo

Juan Carlos Raña 14 years ago
parent
commit
814d650f98

+ 44 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/fckplugin.js

@@ -0,0 +1,44 @@
+/*
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * File Name: fckplugin.js
+ * 	Plugin to add some HTML, a single snippet; a choice from multiple snippets; or manually entered HTML
+ * 
+ * File Authors:
+ * 		Paul Moers (http://www.saulmade.nl/FCKeditor/FCKPlugins.php)
+ */
+
+	// insertHtmlObject constructor
+	var insertHtmlToolbarCommand = function()
+	{
+	}
+
+	// register the command
+	FCKCommands.RegisterCommand('insertHtml', new insertHtmlToolbarCommand());
+
+	// create the toolbar  button
+	var insertHtmlButton = new FCKToolbarButton('insertHtml', FCKConfig.insertHtml_buttonTooltip || FCKLang.inserHTML_buttonTooltip);
+	insertHtmlButton.IconPath = FCKPlugins.Items['insertHtml'].Path + 'images/toolbarIcon_default.gif'; // or pick any other in folder 'images'
+	FCKToolbarItems.RegisterItem('insertHtml', insertHtmlButton);
+
+	// manage the plugins' button behavior
+	insertHtmlToolbarCommand.prototype.GetState = function()
+	{
+		return FCK_TRISTATE_OFF;
+	}
+
+	// insertHtml's button click function
+	insertHtmlToolbarCommand.prototype.Execute = function()
+	{
+		if (FCKConfig.insertHtml_showDialog || !FCKConfig.insertHtml_snippets || (FCKConfig.insertHtml_snippets && !FCKConfig.insertHtml_snippets.length))
+		{
+			var dialog = new FCKDialogCommand('insertHtml', FCKLang.insertHtml_dialogTitle, FCKPlugins.Items['insertHtml'].Path + 'insertHtml.html', 200, 100);
+			dialog.Execute();
+		}
+		else
+		{
+			FCK.InsertHtml(FCKConfig.insertHtml_snippet);
+			FCK.EditorWindow.parent.FCKUndo.SaveUndoStep();
+		}
+	}

+ 8 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/images/index.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+</head>
+<body>
+<br />
+</body>
+</html>

BIN
main/inc/lib/fckeditor/editor/plugins/insertHtml/images/toolbarIcon_default.gif


BIN
main/inc/lib/fckeditor/editor/plugins/insertHtml/images/toolbarIcon_famfamfam.gif


+ 8 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/index.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+</head>
+<body>
+<br />
+</body>
+</html>

+ 75 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml.html

@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+
+	<title>insertHtml</title>
+
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+
+	<script src="insertHtml.js" type="text/javascript"></script>
+	<script src="../../dialog/common/fck_dialog_common.js" type="text/javascript"></script>
+
+	<style>
+
+		#snippets
+		{
+			width: 200px;
+			margin-right: 10px;
+		}
+		#insertHtmlHelp,
+		{
+			margin-right: 0px; /* no extra right margin needed in IE */
+		}
+		.snippet
+		{
+			background: white;
+			padding: 3px 5px;
+			margin: 3px 0px;
+			border: 1px solid #dcdcdc;
+		}
+		.snippet.PopupSelectionBox
+		{
+		}
+
+		#insertHtmlHelp
+		{
+			margin: 0px 15px 6px 0px;
+			display: block;
+		}
+		#insertHtmlHelp,
+		{
+			margin-right: 5px; /* no extra right margin needed in IE */
+		}
+
+		#insertHtmlTextArea
+		{
+			overflow: auto;
+			margin: 0px 10px 0px 0px;
+		}
+		#insertHtmlTextArea,
+		{
+			margin-right: 0px; /* no extra right margin needed in IE */
+		}
+
+	</style>
+
+</head>
+<body style="padding-bottom: 0px;">
+
+	<table border="0" cellpadding="0" cellspacing="0">
+		<tr>
+			<td>
+				<span fcklang="inserHtml_help" id="insertHtmlHelp">
+					Enter any HTML below and click 'ok' to insert it at the location of the cursor in the editor.
+				</span>
+			</td>
+		</tr>
+		<tr>
+			<td id="content">
+			</td>
+		</tr>
+	</table>
+
+</body>
+</html>

+ 111 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml.js

@@ -0,0 +1,111 @@
+
+
+	var dialog = window.parent;
+	var editorWindow = dialog.InnerDialogLoaded();
+	var editorInstance = editorWindow.FCK;
+	var FCKConfig = editorWindow.FCKConfig;
+	var FCKTools = editorWindow.FCKTools;
+	var FCKBrowserInfo = editorWindow.FCKBrowserInfo;
+
+
+	// onload
+	window.onload = function()
+	{
+		var description, snippet;
+
+		// show snippets to choose from
+		if (typeof(FCKConfig.insertHtml_snippets) == 'object')
+		{
+			var snippetsDiv, snippetDiv, numberOfSnippets = 0;
+
+			snippetsDiv = document.createElement('div');
+			snippetsDiv.id = 'snippets';
+
+			for (description in FCKConfig.insertHtml_snippets)
+			{
+				snippetDiv = document.createElement('div');
+				snippetDiv.innerHTML = description;
+				snippetDiv.className = 'snippet';
+				snippetDiv.snippet = FCKConfig.insertHtml_snippets[description];
+				snippetDiv.onmouseover = function(){this.className += ' PopupSelectionBox'};
+				snippetDiv.onmouseout = function(){this.className = this.className.replace(/\s?PopupSelectionBox\s?/, '')};
+				if (FCKConfig.insertHtml_showTextarea)
+				{
+					snippetDiv.onclick = function(){
+						document.getElementById('insertHtmlTextArea').value = this.snippet;
+					};
+				}
+				else
+				{
+					snippetDiv.onclick = function(){
+						editorInstance.InsertHtml(this.snippet);
+						editorWindow.FCKUndo.SaveUndoStep();
+						dialog.CloseDialog();
+					};
+				}
+				snippetsDiv.appendChild(snippetDiv);
+
+				numberOfSnippets++;
+			}
+			document.getElementById('content').appendChild(snippetsDiv);
+
+			// load dialog 
+		}
+
+		// show textarea
+		if (FCKConfig.insertHtml_showTextarea || !FCKConfig.insertHtml_snippets || !numberOfSnippets)
+		{
+			insertHtmlTextArea = document.createElement('textarea');
+			insertHtmlTextArea.id = 'insertHtmlTextArea';
+			document.getElementById('content').appendChild(insertHtmlTextArea);
+			// set the size of the textarea
+			insertHtmlTextArea.style.width = (FCKConfig.insertHtml_textareaWidth || 300) + 'px';
+			insertHtmlTextArea.style.height = (FCKConfig.insertHtml_textareaHeight || 100) + 'px';
+			// load default content
+			if (typeof(FCKConfig.insertHtml_snippets) == 'object')
+			{
+				for (description in FCKConfig.insertHtml_snippets)
+				{
+					snippet = FCKConfig.insertHtml_snippets[description];
+					break;
+				}
+			}
+			else
+			{
+				//snippet = FCKConfig.insertHtml_snippets;//Chamilo replaced by below
+				snippet = "";//Insert your tex here
+			}
+			insertHtmlTextArea.value = snippet;
+		}
+
+		// resize around snippets and/or textarea
+		// for IE this must be done before translating the dialog or the dialog will be to wide; also IE needs an approximate resize before autofitting or the dialog width will be to large
+		if (FCKBrowserInfo.IsIE) dialog.Sizer.ResizeDialog(parseInt(FCKConfig.insertHtml_textareaWidth || 300), parseInt(FCKConfig.insertHtml_textareaHeight || 100) + 130);
+		dialog.SetAutoSize(true);
+
+		// recenter dialog
+		setTimeout(function(){ // after a dummy delay, needed for webkit
+			var topWindowSize = FCKTools.GetViewPaneSize(dialog.top.window);
+			dialog.frameElement.style.left = Math.round((topWindowSize.Width - dialog.frameElement.offsetWidth) / 2) + 'px';
+			dialog.frameElement.style.top = Math.round((topWindowSize.Height - dialog.frameElement.offsetHeight) / 2).toString() + 'px';;
+		}, 0);
+
+		// translate the dialog box texts
+		editorWindow.FCKLanguageManager.TranslatePage(document);
+
+		// activate the "OK" button
+		dialog.SetOkButton(true);
+	}
+
+	// dialog's 'ok' button function to insert the Html
+	function Ok()
+	{
+		if (insertHtmlTextArea.value)
+		{
+			editorInstance.InsertHtml(insertHtmlTextArea.value);
+			editorWindow.FCKUndo.SaveUndoStep();
+
+			return true; // makes the dialog to close
+		}
+	}
+

+ 6 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/lang/en.js

@@ -0,0 +1,6 @@
+
+
+	FCKLang.inserHTML_buttonTooltip					= 'Insert HTML';
+	FCKLang.insertHtml_dialogTitle						= 'Insert HTML';
+	FCKLang.inserHtml_help								= 'Enter any HTML below and click \'ok\' to insert it at the location of the cursor in the editor.';
+

+ 6 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/lang/es.js

@@ -0,0 +1,6 @@
+
+
+	FCKLang.inserHTML_buttonTooltip					= 'Insertar HTML';
+	FCKLang.insertHtml_dialogTitle						= 'Insertar HTML';
+	FCKLang.inserHtml_help								= 'Introduzca cualquier código HTML debajo y haga clic \'ok\' para insertarlo en la posición en la que se encuentra el cursos en el editor.';
+

+ 8 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/lang/index.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+</head>
+<body>
+<br />
+</body>
+</html>

+ 5 - 0
main/inc/lib/fckeditor/editor/plugins/insertHtml/lang/nl.js

@@ -0,0 +1,5 @@
+
+
+	FCKLang.inserHTML_buttonTooltip					= 'HTML invoegen';
+	FCKLang.insertHtml_dialogTitle						= 'HTML invoegen';
+	FCKLang.inserHtml_help								= 'Geef HTML code in en klik op \'ok\' om de code in te voegen op de locatie van de cursor in de editor.';