add insertHtml plugin
skala
Juan Carlos Raña 14 years ago
parent 90516165b4
commit ddb220cd62
  1. 26
      main/inc/lib/fckeditor/editor/plugins/insertHtml/help.txt
  2. 44
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/fckplugin.js
  3. BIN
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/images/toolbarIcon_default.gif
  4. BIN
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/images/toolbarIcon_famfamfam.gif
  5. 75
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/insertHtml.html
  6. 110
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/insertHtml.js
  7. 6
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/lang/en.js
  8. 5
      main/inc/lib/fckeditor/editor/plugins/insertHtml/insertHtml/lang/nl.js

@ -0,0 +1,26 @@
Plugin for inserting HTML: a single preconfigured snippet; a choice from multiple preconfigured snippets; or manually entered HTML
Move the folder 'insertHtml' into your plugins directory ('editor/plugins/') and add+configure the plugin in your fckconfig.js file by using the example below:
FCKConfig.Plugins.Add('insertHtml', 'en,nl');
// --- config settings for the insertHtml plugin ---
// enter a single snippet (HMTL string) or multiple snippets to choose form (object of description string and HTML string pairs)
// or leave empty if you want to show a dialog for the user to enter HTML manually (and not show any default HTML in the dialog textarea)
FCKConfig.insertHtml_snippets = {
'ArtGallery': '<embed width="475" height="400" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="FlashGallery/Art/ArtFlashGallery.swf" mediaType="flashGallery" bgcolor="#ffffff" allowfullscreen="true" flashvars="XMLFile=userfiles/image/ArtGallery/gallery.xml"></embed>',
'PhotoFlowGallery' : '<embed width="700" height="300" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="FlashGallery/PhotoFlow/PhotoFlowGallery.swf" mediaType="flashGallery" bgcolor="#ffffff" flashvars="XMLFile=userfiles/image/PhotoFlowGallery/gallery.xml"></embed>',
'StackPhotoGallery' : '<embed width="600" height="400" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="FlashGallery/StackPhoto/StackPhotoGallery.swf" mediaType="flashGallery" bgcolor="#ffffff" flashvars="XMLFile=userfiles/image/StackPhotoGallery/gallery.xml"></embed>',
'ZenGallery' : '<embed width="550" height="400" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="FlashGallery/Zen/ZenGallery.swf" mediaType="flashGallery" bgcolor="#ffffff" flashvars="XMLFile=userfiles/image/ZenGallery/gallery.xml"></embed>'
};
// show a dialog for the user to enter HTML manually or to choose between snippets
// (if no snippets specified the dialog will show anyhow)
FCKConfig.insertHtml_showDialog = true;
// specify a custom tooltip if you want this to appear when hovering the plugin's toolbar button (e.g. a description of the element being inserted)
// (if no custom tooltip is set 'Insert HTML' will appear, and if available, translated into your language)
FCKConfig.insertHtml_buttonTooltip = '';
// show a textarea in the dialog? (the (first) HTML set with FCKConfig.insertHtml_snippets will be shown in the textarea by default)
// (if no snippets specified the textarea will show anyhow)
FCKConfig.insertHtml_showTextarea = false;
// the size of the textarea in the dialog, in px
FCKConfig.insertHtml_textareaWidth = 300;
FCKConfig.insertHtml_textareaHeight = 70;

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

@ -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>

@ -0,0 +1,110 @@
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;
}
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
}
}

@ -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.';

@ -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.';
Loading…
Cancel
Save