parent
90516165b4
commit
ddb220cd62
@ -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(); |
||||
} |
||||
} |
After Width: | Height: | Size: 159 B |
After Width: | Height: | Size: 249 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…
Reference in new issue