init import from old mailr project (http://svn.littlegreen.org/mailr/trunk)

This commit is contained in:
Eugene Korbut 2009-01-08 05:27:12 +10:00
commit 51b79e7298
640 changed files with 34651 additions and 0 deletions

View file

@ -0,0 +1,118 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('template', 'en'); // <- Add a comma separated list of all supported languages
/****
* Steps for creating a plugin from this template:
*
* 1. Change all "template" to the name of your plugin.
* 2. Remove all the callbacks in this file that you don't need.
* 3. Remove the popup.htm file if you don't need any popups.
* 4. Add your custom logic to the callbacks you needed.
* 5. Write documentation in a readme.txt file on how to use the plugin.
* 6. Upload it under the "Plugins" section at sourceforge.
*
****/
/**
* Gets executed when a editor instance is initialized
*/
function TinyMCE_template_initInstance(inst) {
// You can take out plugin specific parameters
alert("Initialization parameter:" + tinyMCE.getParam("template_someparam", false));
}
/**
* Gets executed when a editor needs to generate a button.
*/
function TinyMCE_template_getControlHTML(control_name) {
switch (control_name) {
case "template":
return '<img id="{$editor_id}_template" src="{$pluginurl}/images/template.gif" title="{$lang_template_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceTemplate\', true);" />';
}
return "";
}
/**
* Gets executed when a command is called.
*/
function TinyMCE_template_execCommand(editor_id, element, command, user_interface, value) {
// Handle commands
switch (command) {
// Remember to have the "mce" prefix for commands so they don't intersect with built in ones in the browser.
case "mceTemplate":
// Show UI/Popup
if (user_interface) {
// Open a popup window and send in some custom data in a window argument
var template = new Array();
template['file'] = '../../plugins/template/popup.htm'; // Relative to theme
template['width'] = 150;
template['height'] = 180;
tinyMCE.openWindow(template, {editor_id : editor_id, some_custom_arg : "somecustomdata"});
// Let TinyMCE know that something was modified
tinyMCE.triggerNodeChange(false);
} else {
// Do a command this gets called from the template popup
alert("execCommand: mceTemplate gets called from popup.");
}
return true;
}
// Pass to next handler in chain
return false;
}
/**
* Gets executed when the selection/cursor position was changed.
*/
function TinyMCE_template_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
// Deselect template button
tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonNormal');
// Select template button if parent node is a strong or b
if (node.parentNode.nodeName == "STRONG" || node.parentNode.nodeName == "B")
tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonSelected');
return true;
}
/**
* Gets executed when contents is inserted / retrived.
*/
function TinyMCE_template_cleanup(type, content) {
switch (type) {
case "get_from_editor":
alert("[FROM] Value HTML string: " + content);
// Do custom cleanup code here
break;
case "insert_to_editor":
alert("[TO] Value HTML string: " + content);
// Do custom cleanup code here
break;
case "get_from_editor_dom":
alert("[FROM] Value DOM Element " + content.innerHTML);
// Do custom cleanup code here
break;
case "insert_to_editor_dom":
alert("[TO] Value DOM Element: " + content.innerHTML);
// Do custom cleanup code here
break;
}
return content;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

View file

@ -0,0 +1,6 @@
// UK lang variables
/* Remember to namespace the language parameters lang_<your plugin>_<some name> */
tinyMCELang['lang_template_title'] = 'This is just a template popup';
tinyMCELang['lang_template_desc'] = 'This is just a template button';

View file

@ -0,0 +1,7 @@
// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
//请访问 http://www.cube316.net/ 以获取TinyMCE的中文支持
/* Remember to namespace the language parameters lang_<your plugin>_<some name> */
tinyMCELang['lang_template_title'] = '这仅是模板的弹出窗口';
tinyMCELang['lang_template_desc'] = '这仅是模板的按钮';

View file

@ -0,0 +1,31 @@
<html>
<head>
<title>{$lang_template_title}</title>
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script language="javascript" type="text/javascript">
<!--
function init() {
alert("Got a window argument from plugin: " + tinyMCE.getWindowArg('some_custom_arg'));
}
function insertSomething() {
// Execute the mceTemplate command without UI this time
tinyMCE.execInstanceCommand(tinyMCE.getWindowArg('editor_id'), 'mceTemplate');
// Close the dialog
tinyMCE.closeDialog();
}
//-->
</script>
</head>
<body onload="init();">
<h3>{$lang_template_title}</h3>
<form onsubmit="insert();return false;">
<!-- Just a simple insert button -->
<input type="button" name="insert" value="{$lang_insert}" onclick="insertSomething();" id="insert" />
</form>
<br />
</body>
</html>

View file

@ -0,0 +1 @@
This is a template/tutorial plugin that where created to help you in the development of own plugins for TinyMCE.

View file

@ -0,0 +1,2 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('advhr','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');function TinyMCE_advhr_getControlHTML(control_name){switch(control_name){case "advhr":return '<img id="{$editor_id}_advhr" src="{$pluginurl}/images/advhr.gif" title="{$lang_insert_advhr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" onclick="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvancedHr\');" />';}return "";}function TinyMCE_advhr_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceAdvancedHr":var template=new Array();template['file']='../../plugins/advhr/rule.htm';template['width']=270;template['height']=180;var size="",width="",noshade="";if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="hr"){tinyMCE.hrElement=tinyMCE.selectedElement;if(tinyMCE.hrElement){size=tinyMCE.hrElement.getAttribute('size')?tinyMCE.hrElement.getAttribute('size'):"";width=tinyMCE.hrElement.getAttribute('width')?tinyMCE.hrElement.getAttribute('width'):"";noshade=tinyMCE.hrElement.getAttribute('noshade')?tinyMCE.hrElement.getAttribute('noshade'):"";}tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'update'});}else{if(tinyMCE.isMSIE){tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,'<hr />');}else{tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'insert'});}}return true;}return false;}function TinyMCE_advhr_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_advhr','mceButtonNormal');if(node==null)return;do{if(node.nodeName.toLowerCase()=="hr")tinyMCE.switchClassSticky(editor_id+'_advhr','mceButtonSelected');}while((node=node.parentNode));return true;}

View file

@ -0,0 +1,58 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('advhr', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');
function TinyMCE_advhr_getControlHTML(control_name) {
switch (control_name) {
case "advhr":
return '<img id="{$editor_id}_advhr" src="{$pluginurl}/images/advhr.gif" title="{$lang_insert_advhr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" onclick="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvancedHr\');" />';
}
return "";
}
/**
* Executes the mceAdvanceHr command.
*/
function TinyMCE_advhr_execCommand(editor_id, element, command, user_interface, value) {
// Handle commands
switch (command) {
case "mceAdvancedHr":
var template = new Array();
template['file'] = '../../plugins/advhr/rule.htm'; // Relative to theme
template['width'] = 270;
template['height'] = 180;
var size = "", width = "", noshade = "";
if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "hr"){
tinyMCE.hrElement = tinyMCE.selectedElement;
if (tinyMCE.hrElement) {
size = tinyMCE.hrElement.getAttribute('size') ? tinyMCE.hrElement.getAttribute('size') : "";
width = tinyMCE.hrElement.getAttribute('width') ? tinyMCE.hrElement.getAttribute('width') : "";
noshade = tinyMCE.hrElement.getAttribute('noshade') ? tinyMCE.hrElement.getAttribute('noshade') : "";
}
tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'update'});
} else {
if (tinyMCE.isMSIE) {
tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false,'<hr />');
} else {
tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'insert'});
}
}
return true;
}
// Pass to next handler in chain
return false;
}
function TinyMCE_advhr_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
tinyMCE.switchClassSticky(editor_id + '_advhr', 'mceButtonNormal');
if (node == null)
return;
do {
if (node.nodeName.toLowerCase() == "hr")
tinyMCE.switchClassSticky(editor_id + '_advhr', 'mceButtonSelected');
} while ((node = node.parentNode));
return true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

View file

@ -0,0 +1,6 @@
// UK lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Vložit/editovat vodorovný oddìlovaè'
tinyMCELang['lang_insert_advhr_width'] = 'Šíøka';
tinyMCELang['lang_insert_advhr_size'] = 'Výška';
tinyMCELang['lang_insert_advhr_noshade'] = 'Nestínovat';

View file

@ -0,0 +1,6 @@
// DE lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Horizontale Linie einf&uuml;gen / bearbeiten'
tinyMCELang['lang_insert_advhr_width'] = 'Breite';
tinyMCELang['lang_insert_advhr_size'] = 'H&ouml;he';
tinyMCELang['lang_insert_advhr_noshade'] = 'Keinen Schatten';

View file

@ -0,0 +1,6 @@
// UK lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Insert / edit Horizontale Rule'
tinyMCELang['lang_insert_advhr_width'] = 'Width';
tinyMCELang['lang_insert_advhr_size'] = 'Height';
tinyMCELang['lang_insert_advhr_noshade'] = 'No shadow';

View file

@ -0,0 +1,11 @@
// IR lang variables
// Persian (Farsi) language pack (for IRAN)
// By: Morteza Zafari
// Lost@LostLord.com
// http://www.LostLord.com
tinyMCELang['lang_dir'] = 'rtl';
tinyMCELang['lang_insert_advhr_desc'] = 'درج و ویرایش خط افقی'
tinyMCELang['lang_insert_advhr_width'] = 'عرض';
tinyMCELang['lang_insert_advhr_size'] = 'ارتفاع';
tinyMCELang['lang_insert_advhr_noshade'] = 'بدون سایه';

View file

@ -0,0 +1,6 @@
// French lang variables by Laurent Dran
tinyMCELang['lang_insert_advhr_desc'] = 'Ins&eacute;rer / &eacute;diter une R&#269;gle Horizontale'
tinyMCELang['lang_insert_advhr_width'] = 'Largeur';
tinyMCELang['lang_insert_advhr_size'] = 'Hauteur';
tinyMCELang['lang_insert_advhr_noshade'] = 'Sans ombre';

View file

@ -0,0 +1,6 @@
// CA_FR lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Insérer / Modifier Séparateur Horizontal';
tinyMCELang['lang_insert_advhr_width'] = 'Largeur';
tinyMCELang['lang_insert_advhr_size'] = 'Hauteur';
tinyMCELang['lang_insert_advhr_noshade'] = 'Sans ombrage';

View file

@ -0,0 +1,6 @@
// PL lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Wstaw/Edytuj poziomą linię'
tinyMCELang['lang_insert_advhr_width'] = 'Szerokość';
tinyMCELang['lang_insert_advhr_size'] = 'Wysokość';
tinyMCELang['lang_insert_advhr_noshade'] = 'Brak cienia';

View file

@ -0,0 +1,6 @@
// pt_BR lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Inserir / editar Linha Horizontal'
tinyMCELang['lang_insert_advhr_width'] = 'Largura';
tinyMCELang['lang_insert_advhr_size'] = 'Altura';
tinyMCELang['lang_insert_advhr_noshade'] = 'Sem Sombra';

View file

@ -0,0 +1,6 @@
// SE lang variables
tinyMCELang['lang_insert_advhr_desc'] = 'Skapa/Redigera horisontell linje'
tinyMCELang['lang_insert_advhr_width'] = 'Bredd';
tinyMCELang['lang_insert_advhr_size'] = 'Höjd';
tinyMCELang['lang_insert_advhr_noshade'] = 'Ingen skugga';

View file

@ -0,0 +1,7 @@
// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
//请访问 http://www.cube316.net/ 以获取TinyMCE的中文支持
tinyMCELang['lang_insert_advhr_desc'] = '插入/编辑 水平标尺'
tinyMCELang['lang_insert_advhr_width'] = '宽度';
tinyMCELang['lang_insert_advhr_size'] = '高度';
tinyMCELang['lang_insert_advhr_noshade'] = '无阴影';

View file

@ -0,0 +1,20 @@
Advhr plugin for TinyMCE
-----------------------------
About:
This is a more advanced hr dialog contributed by Michael Keck.
This one supports noshade, width and size.
Installation instructions:
* Copy the advhr directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
* Add plugin to TinyMCE plugin option list example: plugins : "advhr".
* Add this "hr[class|width|size|noshade]" to extended_valid_elements option.
Initialization example:
tinyMCE.init({
theme : "advanced",
mode : "textareas",
plugins : "advhr",
theme_advanced_buttons1_add : "advhr",
extended_valid_elements : "hr[class|width|size|noshade]"
});

107
public/tiny_mce/plugins/advhr/rule.htm vendored Normal file
View file

@ -0,0 +1,107 @@
<html>
<head>
<title>{$lang_insert_link_title}</title>
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script language="javascript" type="text/javascript">
<!--
function init() {
// modified 2004-11-10 by Michael Keck (me@michaelkeck.de)
// supporting onclick event to open pop windows
var formObj = document.forms[0];
formObj.width.value = tinyMCE.getWindowArg('width');
formObj.size.value = tinyMCE.getWindowArg('size');
formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('mceDo'));
if (tinyMCE.getWindowArg('noshade')) {
formObj.noshade.checked = true;
}
if (tinyMCE.getWindowArg('width').lastIndexOf('%')!=-1) {
formObj.width2.value = "%";
formObj.width.value = formObj.width.value.substring(0,formObj.width.value.length-1);
}
}
function insertHR() {
var formObj = document.forms[0];
if (window.opener) {
var width = formObj.width.value;
var size = formObj.size.value;
var html = '<hr';
if (size!='' && size!=0) {
html += ' size="' + size + '"';
}
if (width!='' && width!=0) {
html += ' width="' + width;
if (formObj.width2.value=='%') {
html += '%';
}
html += '"';
}
if (formObj.noshade.checked==true) {
html += ' noshade';
}
html += ' />';
tinyMCE.execCommand("mceInsertContent",true,html);
// Close the dialog
tinyMCE.closeDialog();
}
}
function cancelAction() {
// Close the dialog
tinyMCE.closeDialog();
}
//-->
</script>
<style type="text/css">
<!--
input.radio {
border: 1px none #000000;
background-color: transparent;
vertical-align: middle;
}
-->
</style>
</head>
<body onload="init();">
<form onsubmit="insertHR();return false;">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
<tr>
<td colspan="2" class="title">{$lang_insert_advhr_desc}</td>
</tr>
<tr>
<td align="right">{$lang_insert_advhr_width}:</td>
<td nowrap="nowrap">
<input name="width" type="text" id="width" value="" style="width: 50px; vertical-align: middle;" />
<select name="width2" id="width2" style="width: 50px; vertical-align: middle;">
<option value="">px</option>
<option value="%">%</option>
</select>
</td>
</tr>
<tr>
<td align="right" valign="top">{$lang_insert_advhr_size}:</td>
<td><select name="size" type="text" id="size" value="" style="width: 100px;">
<option value="">Normal</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></td>
<tr>
<td align="right" valign="top"><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>
<td><label for="noshade">{$lang_insert_advhr_noshade}</label></td>
</tr>
<tr>
<td><input type="button" name="insert" value="{$lang_insert}" onclick="insertHR();" id="insert" /></td>
<td align="right"><input type="button" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" id="cancel" /></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>

View file

@ -0,0 +1,2 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('advimage','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');function TinyMCE_advimage_getInsertImageTemplate(){var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=430;template['height']=380;template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);return template;}function TinyMCE_advimage_cleanup(type,content){switch(type){case "insert_to_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=tinyMCE.getImageSrc(onmouseover))!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseover',"this.src='"+src+"';");}if((src=tinyMCE.getImageSrc(onmouseout))!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseout',"this.src='"+src+"';");}}break;case "get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=tinyMCE.getImageSrc(onmouseover))!=""){src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseover',"this.src='"+src+"';");}if((src=tinyMCE.getImageSrc(onmouseout))!=""){src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseout',"this.src='"+src+"';");}}break;}return content;}

View file

@ -0,0 +1,61 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('advimage', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');
/**
* Insert image template function.
*/
function TinyMCE_advimage_getInsertImageTemplate() {
var template = new Array();
template['file'] = '../../plugins/advimage/image.htm';
template['width'] = 430;
template['height'] = 380;
// Language specific width and height addons
template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0);
template['height'] += tinyMCE.getLang('lang_insert_image_delta_height', 0);
return template;
}
function TinyMCE_advimage_cleanup(type, content) {
switch (type) {
case "insert_to_editor_dom":
var imgs = content.getElementsByTagName("img");
for (var i=0; i<imgs.length; i++) {
var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
if ((src = tinyMCE.getImageSrc(onmouseover)) != "") {
src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
}
if ((src = tinyMCE.getImageSrc(onmouseout)) != "") {
src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
}
}
break;
case "get_from_editor_dom":
var imgs = content.getElementsByTagName("img");
for (var i=0; i<imgs.length; i++) {
var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
if ((src = tinyMCE.getImageSrc(onmouseover)) != "") {
src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
}
if ((src = tinyMCE.getImageSrc(onmouseout)) != "") {
src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
}
}
break;
}
return content;
}

View file

@ -0,0 +1,371 @@
<html>
<head>
<title>{$lang_insert_image_title}</title>
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script language="javascript">
var url = tinyMCE.getParam("external_image_list_url");
if (url != null) {
// Fix relative
if (url.charAt(0) != '/')
url = tinyMCE.documentBasePath + "/" + url;
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
}
</script>
<script language="javascript" type="text/javascript">
<!--
function myRegexpReplace(in_str, reg_exp, replace_str, opts) {
if (typeof opts == "undefined")
opts = 'g';
var re = new RegExp(reg_exp, opts);
return in_str.replace(re, replace_str);
}
function insertImage() {
var formObj = document.forms[0];
if (window.opener) {
var src = formObj.src.value;
var alt = formObj.alt.value;
var title = formObj.title.value;
var border = formObj.border.value;
var vspace = formObj.vspace.value;
var hspace = formObj.hspace.value;
var width = formObj.width.value;
var height = formObj.height.value;
var align = formObj.align.options[formObj.align.selectedIndex].value;
var onmouseover = formObj.onmouseover.value;
var onmouseout = formObj.onmouseout.value;
if (!formObj.onmousemove.checked)
onmouseover = onmouseout = "";
window.opener.tinyMCE.insertImage(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout);
// Close the dialog
tinyMCE.closeDialog();
}
}
function init() {
var formObj = document.forms[0];
var strOnOver = "", strOnOut = "";
for (var i=0; i<document.forms[0].align.options.length; i++) {
if (document.forms[0].align.options[i].value == tinyMCE.getWindowArg('align'))
document.forms[0].align.options.selectedIndex = i;
}
formObj.src.value = tinyMCE.getWindowArg('src');
formObj.alt.value = tinyMCE.getWindowArg('alt');
formObj.title.value = tinyMCE.getWindowArg('title');
formObj.border.value = tinyMCE.getWindowArg('border');
formObj.vspace.value = tinyMCE.getWindowArg('vspace');
formObj.hspace.value = tinyMCE.getWindowArg('hspace');
formObj.width.value = tinyMCE.getWindowArg('width');
formObj.height.value = tinyMCE.getWindowArg('height');
formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
strOnOver = tinyMCE.getWindowArg('onmouseover');
strOnOut = tinyMCE.getWindowArg('onmouseout');
if (strOnOver != '' && strOnOut != '') {
setOnMouseInput('enabled');
formObj.onmousemove.checked = true;
formObj.onmouseover.value = strOnOver;
formObj.onmouseout.value = strOnOut;
} else {
setOnMouseInput('disabled');
formObj.onmousemove.checked = false;
formObj.onmouseover.value = '';
formObj.onmouseout.value = '';
}
// Handle file browser
if (tinyMCE.getParam("file_browser_callback") != null) {
document.getElementById('src').style.width = '260px';
document.getElementById('onmouseover').style.width = '260px';
document.getElementById('onmouseout').style.width = '260px';
document.getElementById('browser1').innerHTML = getBrowserHTML('src');
document.getElementById('browser2').innerHTML = getBrowserHTML('onmouseover');
document.getElementById('browser3').innerHTML = getBrowserHTML('onmouseout');
}
// Auto select image in list
selectByValue(formObj, "image_list", tinyMCE.getWindowArg('src'));
selectByValue(formObj, "image_list2", strOnOver);
selectByValue(formObj, "image_list3", strOnOut);
// Handle preview
var htmlprev = '';
var src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
if (src == "")
src = "about:blank";
htmlprev += ' <iframe id="preview" name="preview" scrolling="auto" '
htmlprev += ' marginwidth="0" marginheight="0" frameborder="0" src="' + src + '"'
htmlprev += ' style="margin:0px;border: 1px solid black;width:135px;height:135px"></iframe>';
document.getElementById('prev').innerHTML = htmlprev;
getImageData();
}
function selectByValue(form_obj, field_name, value) {
if (!form_obj || !form_obj.elements[field_name])
return;
for (var i=0; i<form_obj.elements[field_name].options.length; i++) {
var option = form_obj.elements[field_name].options[i];
if (option.value == value)
option.selected = true;
}
}
function getBrowserHTML(name) {
var html = "";
html += '<img id="browserBtn" src="../../themes/advanced/images/browse.gif"';
html += ' onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');"';
html += ' onmouseout="tinyMCE.restoreClass(this);"';
html += ' onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');"';
html += ' onclick="javascript:tinyMCE.openFileBrowser(\'' + name + '\',document.forms[0].' + name + '.value,\'image\',window);"';
html += ' width="20" height="18" border="0" title="' + tinyMCE.getLang('lang_browse') + '"';
html += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" />';
return html;
}
function setOnMouseInput(stat){
var formObj = document.forms[0];
if (stat=='enabled') {
formObj.onmouseover.disabled = false;
formObj.onmouseout.disabled = false;
if (document.getElementById) {
document.getElementById('showInput1').style.color="#000000";
document.getElementById('showInput2').style.color="#000000";
}
formObj.onmouseout.value = formObj.src.value;
} else {
formObj.onmouseover.disabled = true;
formObj.onmouseout.disabled = true;
if (document.getElementById) {
document.getElementById('showInput1').style.color="#666666";
document.getElementById('showInput2').style.color="#666666";
}
}
}
function cancelAction() {
// Close the dialog
tinyMCE.closeDialog();
}
var preloadImg = new Image();
function resetImageData() {
var formObj = document.forms[0];
formObj.width.value = formObj.height.value = "";
}
function updateImageData() {
var formObj = document.forms[0];
if (formObj.width.value == "")
formObj.width.value = preloadImg.width;
if (formObj.height.value == "")
formObj.height.value = preloadImg.height;
}
function getImageData() {
if (document.forms[0].src.value == "") {
self.preview.location = "about:blank";
return;
}
preloadImg = new Image();
tinyMCE.addEvent(preloadImg, "load", updateImageData);
tinyMCE.addEvent(preloadImg, "error", function () {var formObj = document.forms[0];formObj.width.value = formObj.height.value = "";});
preloadImg.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
var src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
if (src == "")
src = "about:blank";
self.preview.location = src;
}
function changeHeight() {
var formObj = document.forms[0];
if (!tinyMCE.getParam("advimage_constrain_proportions", false) || formObj.width.value == "")
return;
var temp = (formObj.width.value / preloadImg.width) * preloadImg.height;
formObj.height.value = temp.toFixed(0);
}
function changeWidth() {
var formObj = document.forms[0];
if (!tinyMCE.getParam("advimage_constrain_proportions", false) || formObj.height.value == "")
return;
var temp = (formObj.height.value / preloadImg.height) * preloadImg.width;
formObj.width.value = temp.toFixed(0);
}
//-->
</script>
</head>
<body onload="init();">
<form onsubmit="insertImage();return false;">
<table border="0" cellpadding="0" cellspacing="0" width="300">
<tr>
<td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
<tr>
<td colspan="3" class="title">{$lang_insert_image_title}</td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_src}:</td>
<td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="src" type="text" id="src" value="" style="width: 280px" onchange="resetImageData();getImageData();" /></td>
<td id="browser1"></td>
</tr>
</table></td>
</tr>
<!-- Image list -->
<script language="javascript">
if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
var html = "";
html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
html += '<td colspan="2"><select name="image_list" style="width: 280px" onchange="this.form.alt.value=this.options[this.selectedIndex].text;this.form.title.value=this.options[this.selectedIndex].text;this.form.src.value=this.options[this.selectedIndex].value;resetImageData();getImageData();">';
html += '<option value="">---</option>';
for (var i=0; i<tinyMCEImageList.length; i++)
html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
html += '</select></td></tr>';
document.write(html);
}
</script>
<!-- /Image list -->
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_alt}:</td>
<td colspan="2"><input name="alt" type="text" id="alt" value="" style="width: 280px" onblur="if(document.forms[0].title.value==''){ document.forms[0].title.value=this.value; }" onfocus="if(document.forms[0].title.value==''){ document.forms[0].title.value=this.value; }" /></td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_alt2}:</td>
<td colspan="2"><input name="title" type="text" id="title" value="" style="width: 280px" /></td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_dimensions}:</td>
<td nowrap="nowrap">
<input name="width" type="text" id="width" value="" size="5" maxlength="5" style="vertical-align: middle; width: 50px; text-align: center;" onChange="changeHeight();" /> x
<input name="height" type="text" id="height" value="" size="5" maxlength="5" style="vertical-align: middle; width: 50px; text-align: center;" onChange="changeWidth();" /> px
</td>
<td rowspan="6" valign="top"><div id="prev" name="prev" style="margin:0px;border:none;width:135px;height:135px"></div></td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_border}:</td>
<td colspan="2"><input name="border" type="text" id="border" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_align}:</td>
<td><select name="align" style="width: 100px">
<option value="">{$lang_insert_image_align_default}</option>
<option value="baseline">{$lang_insert_image_align_baseline}</option>
<option value="top">{$lang_insert_image_align_top}</option>
<option value="middle">{$lang_insert_image_align_middle}</option>
<option value="bottom">{$lang_insert_image_align_bottom}</option>
<option value="texttop">{$lang_insert_image_align_texttop}</option>
<option value="absmiddle">{$lang_insert_image_align_absmiddle}</option>
<option value="absbottom">{$lang_insert_image_align_absbottom}</option>
<option value="left">{$lang_insert_image_align_left}</option>
<option value="right">{$lang_insert_image_align_right}</option>
</select>
</td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_vspace}:</td>
<td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_image_hspace}:</td>
<td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
</tr>
<tr>
<td colspan="2" nowrap="nowrap"><input type="checkbox" name="onmousemove" id="onmousemove" style="border: 1px none #000000; background-color: transparent; vertical-align: middle;" onclick="if(this.checked==true){ setOnMouseInput('enabled'); }else{ setOnMouseInput('enable'); }" /><label for="onmousemove"><b>{$lang_insert_image_onmousemove}</b>:</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap" id="showInput1">{$lang_insert_image_mouseover}:</td>
<td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="onmouseover" type="text" id="onmouseover" value="" style="width: 280px" /></td>
<td id="browser2"></td>
</tr>
</table></td>
</tr>
<!-- Image list -->
<script language="javascript">
if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
var html = "";
html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
html += '<td colspan="2"><select name="image_list2" style="width: 280px" onchange="this.form.onmouseover.value=this.options[this.selectedIndex].value;">';
html += '<option value="">---</option>';
for (var i=0; i<tinyMCEImageList.length; i++)
html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
html += '</select></td></tr>';
document.write(html);
}
</script>
<!-- /Image list -->
<tr>
<td align="right" nowrap="nowrap" id="showInput2">{$lang_insert_image_mouseout}:</td>
<td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="onmouseout" type="text" id="onmouseout" value="" style="width: 280px" /></td>
<td id="browser3"></td>
</tr>
</table></td>
</tr>
<!-- Image list -->
<script language="javascript">
if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
var html = "";
html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
html += '<td colspan="2"><select name="image_list3" style="width: 280px" onchange="this.form.onmouseout.value=this.options[this.selectedIndex].value;">';
html += '<option value="">---</option>';
for (var i=0; i<tinyMCEImageList.length; i++)
html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
html += '</select></td></tr>';
document.write(html);
}
</script>
<!-- /Image list -->
<tr>
<td><input type="button" name="insert" value="{$lang_insert}" onclick="insertImage();" id="insert" /></td>
<td>&nbsp;</td>
<td align="right"><input type="button" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" id="cancel" /></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>

View file

@ -0,0 +1,6 @@
// UK lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Název obrázku';
tinyMCELang['lang_insert_image_onmousemove'] = 'Alternativní obrázek'
tinyMCELang['lang_insert_image_mouseover'] = 'pøi najetí myši';
tinyMCELang['lang_insert_image_mouseout'] = 'pøi odjetí myši';

View file

@ -0,0 +1,6 @@
// DE lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Titel des Bildes';
tinyMCELang['lang_insert_image_onmousemove'] = 'Alternatives Bild'
tinyMCELang['lang_insert_image_mouseover'] = 'f&uuml;r Maus dar&uuml;ber';
tinyMCELang['lang_insert_image_mouseout'] = 'f&uuml;r Maus ausserhalb';

View file

@ -0,0 +1,6 @@
// UK lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Image title';
tinyMCELang['lang_insert_image_onmousemove'] = 'Alternative image'
tinyMCELang['lang_insert_image_mouseover'] = 'for mouse over';
tinyMCELang['lang_insert_image_mouseout'] = 'for mouse out';

View file

@ -0,0 +1,11 @@
// IR lang variables
// Persian (Farsi) language pack (for IRAN)
// By: Morteza Zafari
// Lost@LostLord.com
// http://www.LostLord.com
tinyMCELang['lang_dir'] = 'rtl';
tinyMCELang['lang_insert_image_alt2'] = 'عنوان عکس';
tinyMCELang['lang_insert_image_onmousemove'] = 'عکس جایگزین'
tinyMCELang['lang_insert_image_mouseover'] = 'عکس جایگزین هنگام ورود نشانگر ماوس';
tinyMCELang['lang_insert_image_mouseout'] = 'عکس جایگزین هنگام خروج نشانگر ماوس';

View file

@ -0,0 +1,6 @@
// French lang variables by Laurent Dran
tinyMCELang['lang_insert_image_alt2'] = 'Titre de l\'image';
tinyMCELang['lang_insert_image_onmousemove'] = 'Image alternative'
tinyMCELang['lang_insert_image_mouseover'] = 'Pour la souris au dessus';
tinyMCELang['lang_insert_image_mouseout'] = 'Pour la souris en dehors';

View file

@ -0,0 +1,6 @@
// CA_FR lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Titre de l\'image';
tinyMCELang['lang_insert_image_onmousemove'] = 'Image alternative';
tinyMCELang['lang_insert_image_mouseover'] = 'pour le «mouse over»';
tinyMCELang['lang_insert_image_mouseout'] = 'pour le «mouse out»';

View file

@ -0,0 +1,6 @@
// KO lang variables
tinyMCELang['lang_insert_image_alt2'] = '그림 제목';
tinyMCELang['lang_insert_image_onmousemove'] = '대체 이미지'
tinyMCELang['lang_insert_image_mouseover'] = '마우스를 올렸을 때';
tinyMCELang['lang_insert_image_mouseout'] = '마우스를 내렸을 때';

View file

@ -0,0 +1,6 @@
// PL lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Tytuł obrazka';
tinyMCELang['lang_insert_image_onmousemove'] = 'Obrazek zastępczy'
tinyMCELang['lang_insert_image_mouseover'] = 'po najechaniu myszy';
tinyMCELang['lang_insert_image_mouseout'] = 'po odjechaniu myszy';

View file

@ -0,0 +1,6 @@
// pt_BR lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Título da Imagem';
tinyMCELang['lang_insert_image_onmousemove'] = 'Imagem Alternativa'
tinyMCELang['lang_insert_image_mouseover'] = 'para quando mouse sobre';
tinyMCELang['lang_insert_image_mouseout'] = 'para quando mouse fora';

View file

@ -0,0 +1,6 @@
// SE lang variables
tinyMCELang['lang_insert_image_alt2'] = 'Bildentitel';
tinyMCELang['lang_insert_image_onmousemove'] = 'Alternativ bild'
tinyMCELang['lang_insert_image_mouseover'] = 'n&auml;r pekaren &auml;r &ouml;ver';
tinyMCELang['lang_insert_image_mouseout'] = 'n&auml;r pekaren &auml;r utanf&ouml;r';

View file

@ -0,0 +1,7 @@
// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
//请访问 http://www.cube316.net/ 以获取TinyMCE的中文支持
tinyMCELang['lang_insert_image_alt2'] = '图片标题';
tinyMCELang['lang_insert_image_onmousemove'] = '替代图像'
tinyMCELang['lang_insert_image_mouseover'] = '鼠标移上时';
tinyMCELang['lang_insert_image_mouseout'] = '鼠标移开时';

View file

@ -0,0 +1,19 @@
Advimage plugin for TinyMCE
-----------------------------
About:
This is a more advanced image dialog mostly based on code contributed by Michael Keck.
This one supports mouseover/out image swapping.
Installation instructions:
* Copy the advimage directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
* Add plugin to TinyMCE plugin option list example: plugins : "advimage".
* Add this "a[name|href|target|title|onclick]" to extended_valid_elements option.
Initialization example:
tinyMCE.init({
theme : "advanced",
mode : "textareas",
plugins : "preview",
extended_valid_elements : "a[name|href|target|title|onclick]"
});

View file

@ -0,0 +1,2 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('advlink','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');function TinyMCE_advlink_getInsertLinkTemplate(){var template=new Array();template['file']='../../plugins/advlink/link.htm';template['width']=400;template['height']=420;template['width']+=tinyMCE.getLang('lang_insert_link_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_link_delta_height',0);return template;}

View file

@ -0,0 +1,18 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('advlink', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');
/**
* Insert link template function.
*/
function TinyMCE_advlink_getInsertLinkTemplate() {
var template = new Array();
template['file'] = '../../plugins/advlink/link.htm';
template['width'] = 400;
template['height'] = 420;
// Language specific width and height addons
template['width'] += tinyMCE.getLang('lang_insert_link_delta_width', 0);
template['height'] += tinyMCE.getLang('lang_insert_link_delta_height', 0);
return template;
}

View file

@ -0,0 +1,20 @@
// CZ lang variables
tinyMCELang['lang_insert_link_target_same'] = 'Otevøít ve stejném oknì/rámu';
tinyMCELang['lang_insert_link_target_parent'] = 'Otevøít v rodièovském oknì/rámu';
tinyMCELang['lang_insert_link_target_top'] = 'Otevøít v nejvyšším rámu (pøepíše všechny rámy)';
tinyMCELang['lang_insert_link_target_blank'] = 'Otevøít v novém oknì';
tinyMCELang['lang_insert_link_target_named'] = 'Otevøít v oknì';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL';
tinyMCELang['lang_insert_link_popup_name'] = 'Název okna';
tinyMCELang['lang_insert_link_popup_return'] = 'insert \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Ukázat posuvníky';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Ukázat stavový øádek';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Ukázat ovl. lištu';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Ukázat menu';
tinyMCELang['lang_insert_link_popup_location'] = 'Ukázat lištu umístìní';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Promìnná velikost okna';
tinyMCELang['lang_insert_link_popup_size'] = 'Velikost';
tinyMCELang['lang_insert_link_popup_position'] = 'Umístìní (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Vložte název cíle nebo vyberte jinou volbu.';

View file

@ -0,0 +1,20 @@
// DE lang variables
tinyMCELang['lang_insert_link_target_same'] = 'Im selben Frame &ouml;ffnen';
tinyMCELang['lang_insert_link_target_parent'] = 'Im dar&uuml;ber liegenden Frame &ouml;ffnen';
tinyMCELang['lang_insert_link_target_top']= 'Im obersten Frame &ouml;ffnen';
tinyMCELang['lang_insert_link_target_blank']= 'In einem neuen Fenster &ouml;ffnen';
tinyMCELang['lang_insert_link_target_named']= '&Ouml;ffnen im Fenster/Frame';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL';
tinyMCELang['lang_insert_link_popup_name']= 'Fenstername';
tinyMCELang['lang_insert_link_popup_return']= 'mit \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars']= 'Scrollbars anzeigen';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Statusbar anzeigen';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Toolbars anzeigen';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Menu anzeigen';
tinyMCELang['lang_insert_link_popup_location']= 'Adresszeile anzeigen';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Gr&ouml;&szlig;e &auml;nderbar';
tinyMCELang['lang_insert_link_popup_size']= 'Gr&ouml;&szlig;e';
tinyMCELang['lang_insert_link_popup_position']= 'Position (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Bitte geben Sie einen Namen f&uuml;r das Ziel an oder w&auml;hlen Sie eine andere Option.';

View file

@ -0,0 +1,20 @@
// UK lang variables
tinyMCELang['lang_insert_link_target_same'] = 'Open in this window / frame';
tinyMCELang['lang_insert_link_target_parent'] = 'Open in parent window / frame';
tinyMCELang['lang_insert_link_target_top'] = 'Open in top frame (replaces all frames)';
tinyMCELang['lang_insert_link_target_blank'] = 'Open in new window';
tinyMCELang['lang_insert_link_target_named'] = 'Open in the window';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL';
tinyMCELang['lang_insert_link_popup_name'] = 'Window name';
tinyMCELang['lang_insert_link_popup_return'] = 'insert \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Show scrollbars';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Show statusbar';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Show toolbars';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Show menubar';
tinyMCELang['lang_insert_link_popup_location'] = 'Show locationbar';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Make window resizable';
tinyMCELang['lang_insert_link_popup_size'] = 'Size';
tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Please insert a name for the target or choose another option.';

View file

@ -0,0 +1,25 @@
// IR lang variables
// Persian (Farsi) language pack (for IRAN)
// By: Morteza Zafari
// Lost@LostLord.com
// http://www.LostLord.com
tinyMCELang['lang_dir'] = 'rtl';
tinyMCELang['lang_insert_link_target_same'] = 'در همین صفحه / فریم باز کن';
tinyMCELang['lang_insert_link_target_parent'] = 'در صفحه / فریم اصلی باز کن';
tinyMCELang['lang_insert_link_target_top'] = 'در فریم اصلی باز کن (همه فریمها نادیده گرفته میشود)';
tinyMCELang['lang_insert_link_target_blank'] = 'در صفحه جدید باز کن';
tinyMCELang['lang_insert_link_target_named'] = 'در پنجره باز کن';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'URL پنجره';
tinyMCELang['lang_insert_link_popup_name'] = 'نام پنجره';
tinyMCELang['lang_insert_link_popup_return'] = 'افزودن \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'نمایش scrollbars';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'نمایش statusbar';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'نمایش toolbars';
tinyMCELang['lang_insert_link_popup_menubar'] = 'نمایش menubar';
tinyMCELang['lang_insert_link_popup_location'] = 'نمایش locationbar';
tinyMCELang['lang_insert_link_popup_resizable'] = 'قابل تغییر اندازه باشد';
tinyMCELang['lang_insert_link_popup_size'] = 'اندازه';
tinyMCELang['lang_insert_link_popup_position'] = 'موقعیت (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'لطفا یک نام برای مقصد انتخاب کنید در غیر این صورت گزینه دیگری را انتخاب نمایید.';

View file

@ -0,0 +1,20 @@
// French lang variables by Laurent Dran
tinyMCELang['lang_insert_link_target_same'] = 'Ouvre dans la fen&#281;tre / Cadre(frame)';
tinyMCELang['lang_insert_link_target_parent'] = 'Ouvre dans fen&#281;tre parente / Cadres(frame)';
tinyMCELang['lang_insert_link_target_top'] = 'Ouvre dans le Top frame (remplace toutes les cadres(frames))';
tinyMCELang['lang_insert_link_target_blank'] = 'Ouvre dans la fen&#281;tre';
tinyMCELang['lang_insert_link_target_named'] = 'Ouvre dans la fen&#281;tre';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'URL de la Popup';
tinyMCELang['lang_insert_link_popup_name'] = 'Nom de la fen&#281;tre';
tinyMCELang['lang_insert_link_popup_return'] = 'Insert \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Montrer la barre de d&eacute;filement ';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Montrer la barre d\'&eacute;tat';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Montrer la barre d\'outils';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Montrer la barre du menu';
tinyMCELang['lang_insert_link_popup_location'] = 'Montre la barre d\'adresse';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Fabriquer une fen&#281;tre redimensionnable';
tinyMCELang['lang_insert_link_popup_size'] = 'Taille';
tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Veuillez ins&eacute;rer un nom pour la cible ou choisissez une autre option.';

View file

@ -0,0 +1,20 @@
// CA_FR lang variables
tinyMCELang['lang_insert_link_target_same'] = 'Ouvrir dans la même fenêtre';
tinyMCELang['lang_insert_link_target_parent'] = 'Ouvrir dans la fenêtre parent';
tinyMCELang['lang_insert_link_target_top'] = 'Ouvrir dans le cadre supérieur';
tinyMCELang['lang_insert_link_target_blank'] = 'Ouvrir dans une nouvelle fenêtre';
tinyMCELang['lang_insert_link_target_named'] = 'Ouvrir à la destination';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'URL du popup';
tinyMCELang['lang_insert_link_popup_name'] = 'Nom de la fenêtre';
tinyMCELang['lang_insert_link_popup_return'] = 'Insérer le script \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Barres de défilement';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Barre de statut';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Barres d\'outils';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Barre de menu';
tinyMCELang['lang_insert_link_popup_location'] = 'Barre d\'adresse';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Fenêtre redimensionnable';
tinyMCELang['lang_insert_link_popup_size'] = 'Dimensions';
tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'S.v.p., entrer un nom de destination ou choisir une autre option.';

View file

@ -0,0 +1,19 @@
// KO lang variables
tinyMCELang['lang_insert_link_target_same'] = '같은 창에서 링크/프레임 열기';
tinyMCELang['lang_insert_link_target_parent'] = '부모 창에서 링크/프레임 열기';
tinyMCELang['lang_insert_link_target_top'] = 'TOP 프레임에서 열기 (모든 프레임을 대체)';
tinyMCELang['lang_insert_link_target_blank'] = '새 창에서 열기';
tinyMCELang['lang_insert_link_target_named'] = '새 창에서 열기';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = '팝업 URL';
tinyMCELang['lang_insert_link_popup_name'] = '창 이름';
tinyMCELang['lang_insert_link_popup_return'] = '\'return false\' 넣기';
tinyMCELang['lang_insert_link_popup_scrollbars'] = '스크롤바를 보여줌';
tinyMCELang['lang_insert_link_popup_statusbar'] = '상태창을 보여줌';
tinyMCELang['lang_insert_link_popup_toolbar'] = '툴바를 보여줌';
tinyMCELang['lang_insert_link_popup_menubar'] = '메뉴바를 보여줌';
tinyMCELang['lang_insert_link_popup_location'] = '위치 표시줄을 보여줌';
tinyMCELang['lang_insert_link_popup_resizable'] = '크기 조절 가능한 윈도우 생성';
tinyMCELang['lang_insert_link_popup_size'] = '크기';
tinyMCELang['lang_insert_link_popup_position'] = '위치 (X/Y)';

View file

@ -0,0 +1,23 @@
// PL lang variables
tinyMCELang['lang_insert_link_target_same'] = 'Otwórz w tym samym oknie';
tinyMCELang['lang_insert_link_target_parent'] = 'Open in parent window / frame';
tinyMCELang['lang_insert_link_target_top'] = 'Open in top frame (replaces all frames)';
tinyMCELang['lang_insert_link_target_blank'] = 'Otwórz w nowym oknie';
tinyMCELang['lang_insert_link_target_named'] = 'Open in the window';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL';
tinyMCELang['lang_insert_link_popup_name'] = 'Window name';
tinyMCELang['lang_insert_link_popup_return'] = 'insert \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Show scrollbars';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Show statusbar';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Show toolbars';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Show menubar';
tinyMCELang['lang_insert_link_popup_location'] = 'Show locationbar';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Make window resizable';
tinyMCELang['lang_insert_link_popup_size'] = 'Size';
tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Please insert a name for the target or choose another option.';
tinyMCELang['lang_insert_link_url'] = 'Adres URL';
tinyMCELang['lang_insert_link_target'] = 'Cel';

View file

@ -0,0 +1,20 @@
// pt_BR lang variables
tinyMCELang['lang_insert_link_target_same'] = 'Abrir nesta mesma janela / frame';
tinyMCELang['lang_insert_link_target_parent'] = 'Abrir na janela / frame prévia';
tinyMCELang['lang_insert_link_target_top'] = 'Abrir no frame superior (substitui todos os frames)';
tinyMCELang['lang_insert_link_target_blank'] = 'Abrir em nova janela';
tinyMCELang['lang_insert_link_target_named'] = 'Abrir na janela';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL endereço';
tinyMCELang['lang_insert_link_popup_name'] = 'Nome da janela';
tinyMCELang['lang_insert_link_popup_return'] = 'inserir \'retorna falso\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Mostra barras de rolagem';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Mostra barra de status';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Mostra barras de ferramentas';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Mostra barra de menu';
tinyMCELang['lang_insert_link_popup_location'] = 'Mostra barra de endereço';
tinyMCELang['lang_insert_link_popup_resizable'] = 'Permite redimensionamento da janela';
tinyMCELang['lang_insert_link_popup_size'] = 'Tamanho';
tinyMCELang['lang_insert_link_popup_position'] = 'Posição (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Por Favor insira um nome para o alvo ou escolha outra opção.';

View file

@ -0,0 +1,20 @@
// SE lang variables
tinyMCELang['lang_insert_link_target_same'] = '&Ouml;ppna i samma f&ouml;nster / ram';
tinyMCELang['lang_insert_link_target_parent'] = '&Ouml;ppna i underliggande f&ouml;nster / ram';
tinyMCELang['lang_insert_link_target_top'] = '&Ouml;ppna i toppramen (ers&auml;tter alla ramar)';
tinyMCELang['lang_insert_link_target_blank'] = '&Ouml;ppna i ett nytt f&ouml;nster';
tinyMCELang['lang_insert_link_target_named'] = '&Ouml;ppna i ett specifikt f&ouml;nster';
tinyMCELang['lang_insert_link_popup'] = 'JS-Popup';
tinyMCELang['lang_insert_link_popup_url'] = 'Popup URL';
tinyMCELang['lang_insert_link_popup_name'] = 'F&ouml;nstrets namn';
tinyMCELang['lang_insert_link_popup_return'] = 'S&auml;tt in \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = 'Visa scrollbars';
tinyMCELang['lang_insert_link_popup_statusbar'] = 'Visa statusbar';
tinyMCELang['lang_insert_link_popup_toolbar'] = 'Visa toolbars';
tinyMCELang['lang_insert_link_popup_menubar'] = 'Visa menubar';
tinyMCELang['lang_insert_link_popup_location'] = 'Visa locationbar';
tinyMCELang['lang_insert_link_popup_resizable'] = 'G&ouml;r f&ouml;nstret skalbart';
tinyMCELang['lang_insert_link_popup_size'] = 'Storlek';
tinyMCELang['lang_insert_link_popup_position'] = 'Position (X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = 'Var god skriv ett namn för fönstret eller välj ett annat val.';

View file

@ -0,0 +1,21 @@
// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
//请访问 http://www.cube316.net/ 以获取TinyMCE的中文支持
tinyMCELang['lang_insert_link_target_same'] = '在本窗口/框架中打开';
tinyMCELang['lang_insert_link_target_parent'] = '在父窗口/框架中打开';
tinyMCELang['lang_insert_link_target_top'] = '在根框架中打开(替换所有框架)';
tinyMCELang['lang_insert_link_target_blank'] = '在新窗口中打开';
tinyMCELang['lang_insert_link_target_named'] = '在此窗口中打开';
tinyMCELang['lang_insert_link_popup'] = 'JavaScript弹出窗口';
tinyMCELang['lang_insert_link_popup_url'] = '弹出窗口地址';
tinyMCELang['lang_insert_link_popup_name'] = '窗口名称';
tinyMCELang['lang_insert_link_popup_return'] = '插入 \'return false\'';
tinyMCELang['lang_insert_link_popup_scrollbars'] = '显示滚动条';
tinyMCELang['lang_insert_link_popup_statusbar'] = '显示状态栏';
tinyMCELang['lang_insert_link_popup_toolbar'] = '显示工具栏';
tinyMCELang['lang_insert_link_popup_menubar'] = '显示菜单栏';
tinyMCELang['lang_insert_link_popup_location'] = '显示地址栏';
tinyMCELang['lang_insert_link_popup_resizable'] = '可重定义窗口大小';
tinyMCELang['lang_insert_link_popup_size'] = '尺寸';
tinyMCELang['lang_insert_link_popup_position'] = '位置(X/Y)';
tinyMCELang['lang_insert_link_popup_missingtarget'] = '请插入目标名称或者选择另外的选项。';

444
public/tiny_mce/plugins/advlink/link.htm vendored Normal file
View file

@ -0,0 +1,444 @@
<html>
<head>
<title>{$lang_insert_link_title}</title>
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script language="javascript">
var url = tinyMCE.getParam("external_link_list_url");
if (url != null) {
// Fix relative
if (url.charAt(0) != '/')
url = tinyMCE.documentBasePath + "/" + url;
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
}
</script>
<script language="javascript" type="text/javascript">
<!--
function myRegexpReplace(in_str, reg_exp, replace_str, opts) {
if (typeof opts == "undefined")
opts = 'g';
var re = new RegExp(reg_exp, opts);
return in_str.replace(re, replace_str);
}
function init() {
// modified 2004-11-10 by Michael Keck (me@michaelkeck.de)
// supporting onclick event to open pop windows
var formObj = document.forms[0];
var arrOnClick = new Array(), arrWinFeatures = new Array();
var strOnClick = '', strDocReturn = '';
arrOnClick = tinyMCE.getWindowArg('onclick').split(';');
for (var i=0; i<arrOnClick.length; i++) {
if (arrOnClick[i].indexOf('window.open')!=-1) {
strOnClick = arrOnClick[i];
strOnClick = strOnClick.substring(12,strOnClick.length-1);
formObj.ispopup.checked=true;
break;
}
}
if (strOnClick!='') {
for (var i=0; i<arrOnClick.length; i++) {
if (arrOnClick[i].indexOf('return false')!=-1) {
formObj.winreturn.checked=true;
break;
}
}
// get the win features
arrWinFeatures = strOnClick.split(',');
if (arrWinFeatures[0]!='') // link , url
formObj.winurl.value = myRegexpReplace(arrWinFeatures[0],"'","","gi");
if (arrWinFeatures[1]!='') // link , url
formObj.winname.value = myRegexpReplace(arrWinFeatures[1],"'","","gi");
for (var i=2; i<arrWinFeatures.length; i++) { // special features
tmpFeature = myRegexpReplace(arrWinFeatures[i],"'","","gi");
valFeature = tmpFeature.split('=');
if (valFeature[0]!='left' && valFeature[0]!='top' && valFeature[0]!='width' && valFeature[0]!='height') {
if (valFeature[1]=='yes')
formObj.elements['win'+valFeature[0].toLowerCase()].checked=true;
else
formObj.elements['win'+valFeature[0].toLowerCase()].checked=false;
} else {
switch (valFeature[0]) {
case 'left':
case 'top':
if (valFeature[1].indexOf('screen.avail')!=-1)
formObj.elements['win'+valFeature[0].toLowerCase()].value='c';
else
formObj.elements['win'+valFeature[0].toLowerCase()].value=valFeature[1];
break;
case 'width':
case 'height':
formObj.elements['win'+valFeature[0].toLowerCase()].value=valFeature[1];
break;
}
}
}
}
var myTarget = tinyMCE.getWindowArg('target');
myTarget = myTarget != "" ? myTarget : "_self";
formObj.target.value = myTarget;
formObj.href.value = tinyMCE.getWindowArg('href');
formObj.linktitle.value = tinyMCE.getWindowArg('title');
setMyTarget(myTarget);
// Handle file browser
if (tinyMCE.getParam("file_browser_callback") != null) {
document.getElementById('href').style.width = '280px';
document.getElementById('winurl').style.width = '180px';
document.getElementById('browser1').innerHTML = getBrowserHTML('href');
document.getElementById('browser2').innerHTML = getBrowserHTML('winurl');
}
// Auto select link in list
if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
for (var i=0; i<formObj.link_list.length; i++) {
if (formObj.link_list.options[i].value == tinyMCE.getWindowArg('href'))
formObj.link_list.options[i].selected = true;
}
}
}
function insertLink() {
var formObj = document.forms[0];
if (window.opener) {
var href = formObj.href.value;
var target = formObj.target.value;
var title = formObj.linktitle.value;
var onclick = '', features = '';
var winwith = '', winheight = '', winleft = '', wintop = '', winlocation = '', winmenubar = '', wintoolbar = '', winscrollbars = '', winresizable = '';
if (formObj.ispopup.checked==true) {
// building the onclick event
onclick = "window.open(";
// check if url given
if (formObj.winurl.value=='')
onclick += "this.href,";
else
onclick += "'" + formObj.winurl.value + "',";
onclick += "'" + formObj.winname.value + "'";
// get/set with and height
if (formObj.winwidth.value=='')
formObj.winwidth.value = 640;
if (formObj.winheight.value=='')
formObj.winheight.value = 480;
// win position
if (formObj.winleft.value=='c') {
if (features!='')
features += ",";
features += "left='+(screen.availWidth/2-" + (formObj.winwidth.value/2) + ")+'";
} else {
if (formObj.winleft.value!='') {
if (features!='')
features += ",";
features += "left=" + formObj.winleft.value;
}
}
if (formObj.wintop.value=='c') {
if (features!='')
features += ",";
features += "top='+(screen.availHeight/2-" + (formObj.winheight.value/2) + ")+'";
} else {
if (formObj.wintop.value!='') {
if (features!='')
features += ",";
features += "top=" + formObj.wintop.value;
}
}
if (features!='')
features += ',';
features += "width=" + formObj.winwidth.value + ",height=" + formObj.winheight.value;
// some window features
if (formObj.winlocation.checked==true) {
if (features!='')
features += ',';
features += "location=yes";
}
if (formObj.winmenubar.checked==true) {
if (features!='')
features += ',';
features += "menubar=yes";
}
if (formObj.wintoolbar.checked==true) {
if (features!='')
features += ',';
features += "toolbar=yes";
}
if (formObj.winstatus.checked==true) {
if (features!='')
features += ',';
features += "status=yes";
}
if (formObj.winscrollbars.checked==true) {
if (features!='')
features += ',';
features += "scrollbars=yes";
}
if (formObj.winresizable.checked==true) {
if (features!='')
features += ',';
features += "resizable=yes";
}
if (features!='')
onclick += ",'" + features + "'";
if (onclick!='')
onclick += ");";
// return false means: open only the popup
if (formObj.winreturn.checked==true)
onclick += "return false;";
}
if (target!='' && target!='please_insert_on_target_in_textfield') {
//alert (onclick);
window.opener.tinyMCE.insertLink(href, target, title, onclick);
// Close the dialog
tinyMCE.closeDialog();
} else {
alert(tinyMCE.getLang('lang_insert_link_popup_missingtarget'));
formObj.framename.select();
}
}
}
function setMyTarget(what) {
var formObj = document.forms[0];
formObj.target.value=what;
switch (what) {
case '':
case '_self':
document.getElementById('same').checked=true;
formObj.framename.value='_self';
break;
case '_blank':
document.getElementById('blank').checked=true;
formObj.framename.value='';
break;
case '_parent':
document.getElementById('parent').checked=true;
formObj.framename.value='';
break;
case '_top':
document.getElementById('top').checked=true;
formObj.framename.value='';
break;
default:
document.getElementById('named').checked=true;
if (what!='please_insert_on_target_in_textfield') {
formObj.framename.value=what;
}
break;
}
}
function getBrowserHTML(name) {
var html = "";
html += '<img id="browserBtn" src="../../themes/advanced/images/browse.gif"';
html += ' onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');"';
html += ' onmouseout="tinyMCE.restoreClass(this);"';
html += ' onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');"';
html += ' onclick="javascript:tinyMCE.openFileBrowser(\'' + name + '\',document.forms[0].' + name + '.value,\'file\',window);"';
html += ' width="20" height="18" border="0" title="' + tinyMCE.getLang('lang_browse') + '"';
html += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" />';
return html;
}
function setPopupInputs() {
var formObj = document.forms[0];
var ids = new Array('url','name','left','top','width','height','location','menubar','toolbar','status','scrollbars','resizable','return');
if (formObj.ispopup.checked==false) {
formObj.winurl.value = "";
formObj.winname.value = "";
formObj.winwidth.value = "";
formObj.winheight.value = "";
formObj.winleft.value = "";
formObj.wintop.value = "";
formObj.winlocation.checked = false;
formObj.winmenubar.checked = false;
formObj.wintoolbar.checked = false;
formObj.winscrollbars.checked = false;
formObj.winresizable.checked = false;
formObj.winstatus.checked = false;
formObj.winreturn.checked = false;
for (var i=0; i<ids.length; i++) {
if (typeof(formObj.elements['win'+ids[i]])!='undefined')
formObj.elements['win'+ids[i]].disabled = true;
if (document.getElementById('label'+ids[i]))
document.getElementById('label'+ids[i]).style.color = "#666666";
}
} else {
formObj.winreturn.checked = true;
for (var i=0; i<ids.length; i++) {
if (typeof(formObj.elements['win'+ids[i]])!='undefined')
formObj.elements['win'+ids[i]].disabled = false;
if (document.getElementById('label'+ids[i]))
document.getElementById('label'+ids[i]).style.color = "#000000";
}
}
}
function cancelAction() {
// Close the dialog
tinyMCE.closeDialog();
}
//-->
</script>
<style type="text/css">
<!--
input.radio {
border: 1px none #000000;
background-color: transparent;
vertical-align: middle;
}
-->
</style>
</head>
<body onload="init();">
<form onsubmit="insertLink();return false;">
<table border="0" cellpadding="0" cellspacing="0" width="100">
<tr>
<td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
<tr>
<td colspan="2" class="title" nowrap="nowrap">{$lang_insert_link_title}</td>
</tr>
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_link_url}:</td>
<td><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="href" type="text" id="href" value="" style="width: 300px;" /></td>
<td id="browser1"></td>
</tr>
</table></td>
</tr>
<!-- Link list -->
<script language="javascript">
if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
var html = "";
html += '<tr><td align="right">{$lang_link_list}:</td>';
html += '<td><select name="link_list" style="width: 300px" onchange="this.form.href.value=this.options[this.selectedIndex].value;">';
html += '<option value="">---</option>';
for (var i=0; i<tinyMCELinkList.length; i++)
html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';
html += '</select></td></tr>';
document.write(html);
}
</script>
<!-- /Link list -->
<tr>
<td align="right" nowrap="nowrap">{$lang_theme_insert_link_titlefield}:</td>
<td><input name="linktitle" type="text" id="linktitle" value="" style="width: 300px;" /></td>
</tr>
<tr>
<td align="right" valign="top">{$lang_insert_link_target}:<input type="hidden" name="target" id="target" value="" /></td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input type="radio" id="same" name="linktarget" class="radio" onclick="setMyTarget('_self');" checked="checked" /></td>
<td nowrap="nowrap"><label for="same">_self</label></td>
<td nowrap="nowrap">&nbsp;({$lang_insert_link_target_same})</td>
</tr>
<tr>
<td><input type="radio" id="parent" name="linktarget" class="radio" onclick="setMyTarget('_parent');" checked="checked" /></td>
<td nowrap="nowrap"><label for="parent">_parent</label></td>
<td nowrap="nowrap">&nbsp;({$lang_insert_link_target_parent})</td>
</tr>
<tr>
<td><input type="radio" id="top" name="linktarget" class="radio" onclick="setMyTarget('_top');" checked="checked" /></td>
<td nowrap="nowrap"><label for="top">_top</label></td>
<td nowrap="nowrap">&nbsp;({$lang_insert_link_target_top})</td>
</tr>
<tr>
<td><input type="radio" id="blank" name="linktarget" class="radio" onclick="setMyTarget('_blank');" checked="checked" /></td>
<td nowrap="nowrap"><label for="blank">_blank</label></td>
<td nowrap="nowrap">&nbsp;({$lang_insert_link_target_blank})</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input type="radio" id="named" name="linktarget" class="radio" onclick="setMyTarget('please_insert_on_target_in_textfield');" /></td>
<td nowrap="nowrap"><label for="named">{$lang_insert_link_target_named}:</label>&nbsp;</td>
<td nowrap="nowrap"><input type="text" name="framename" value="" id="framename" style="width: 120px; vertical-align: middle;" onblur="if(this.value!=''){ setMyTarget(this.value); }" onfocus="if(this.value!=''){ setMyTarget(this.value); }" maxlength="50" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="right" valign="top"><input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupInputs();" /><label for="ispopup"><b>{$lang_insert_link_popup}:</b></label></td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="right" nowrap="nowrap">{$lang_insert_link_popup_url}:&nbsp;</td>
<td id="labelurl"><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input type="text" name="winurl" id="winurl" value="" style="width: 200px;" /></td>
<td id="browser2"></td>
</tr>
</table></td>
</tr>
<tr>
<td align="right" nowrap="nowrap" id="labelname">{$lang_insert_link_popup_name}:&nbsp;</td>
<td><input type="text" name="winname" id="winname" value="" style="width: 200px;" /></td>
</tr>
<tr>
<td align="right" nowrap="nowrap" id="labelwidth">{$lang_insert_link_popup_size}:&nbsp;</td>
<td nowrap="nowrap" id="labelheight">
<input type="text" name="winwidth" id="winwidth" value="" style="width: 30px; vertical-align: middle; text-align: center;" /> x
<input type="text" name="winheight" id="winheight" value="" style="width: 30px; vertical-align: middle; text-align: center;" /> px
</td>
</tr>
<tr>
<td align="right" nowrap="nowrap" id="labelleft">{$lang_insert_link_popup_position}:&nbsp;</td>
<td nowrap="nowrap" id="labeltop">
<input type="text" name="winleft" id="winleft" value="" style="width: 30px; vertical-align: middle; text-align: center;" /> /
<input type="text" name="wintop" id="wintop" value="" style="width: 30px; vertical-align: middle; text-align: center;" /> (c /c = center)
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="right"><input type="checkbox" id="winlocation" name="winloaction" class="radio" /></td>
<td nowrap="nowrap" id="labellocation"><label for="winloaction">{$lang_insert_link_popup_location}</label></td>
<td nowrap="nowrap">&nbsp;&nbsp;</td>
<td align="right"><input type="checkbox" id="winscrollbars" name="winscrollbars" class="radio" /></td>
<td nowrap="nowrap" id="labelscrollbars"><label for="winscrollbars">{$lang_insert_link_popup_scrollbars}</label></td>
</tr>
<tr>
<td align="right"><input type="checkbox" id="winmenubar" name="winmenubar" class="radio" /></td>
<td nowrap="nowrap" id="labelmenubar"><label for="winmenubar">{$lang_insert_link_popup_menubar}</label></td>
<td nowrap="nowrap">&nbsp;</td>
<td align="right"><input type="checkbox" id="winresizable" name="winresizable" class="radio" /></td>
<td nowrap="nowrap" id="labelresizable"><label for="winresizable">{$lang_insert_link_popup_resizable}</label></td>
</tr>
<tr>
<td align="right"><input type="checkbox" id="wintoolbar" name="wintoolbar" class="radio" /></td>
<td nowrap="nowrap" id="labeltoolbar"><label for="wintoolbar">{$lang_insert_link_popup_toolbar}</label></td>
<td nowrap="nowrap">&nbsp;</td>
<td nowrap="nowrap">&nbsp;</td>
<td nowrap="nowrap">&nbsp;</td>
</tr>
<tr>
<td align="right"><input type="checkbox" id="winstatus" name="winstatus" class="radio" /></td>
<td nowrap="nowrap" id="labelstatus"><label for="winstatus">{$lang_insert_link_popup_statusbar}</label></td>
<td nowrap="nowrap">&nbsp;</td>
<td align="right"><input type="checkbox" id="winreturn" name="winreturn" class="radio" checked="checked" /></td>
<td nowrap="nowrap" id="labelreturn"><label for="winreturn">{$lang_insert_link_popup_return}</label></td>
</tr>
</table>
</td>
</tr>
<tr>
<td><input type="button" name="insert" value="{$lang_insert}" onclick="insertLink();" id="insert" /></td>
<td align="right"><input type="button" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" id="cancel" /></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>

View file

@ -0,0 +1,19 @@
Advlink plugin for TinyMCE
-----------------------------
About:
This is a more advanced link dialog mostly based on code contributed by Michael Keck.
This one supports popup windows and targets.
Installation instructions:
* Copy the advlink directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
* Add plugin to TinyMCE plugin option list example: plugins : "advlink".
* Add this "a[name|href|target|title|onclick]" to extended_valid_elements option.
Initialization example:
tinyMCE.init({
theme : "advanced",
mode : "textareas",
plugins : "advlink",
extended_valid_elements : "a[name|href|target|title|onclick]"
});

View file

@ -0,0 +1,60 @@
.contextMenuIEPopup {
padding: 0px;
margin: 0px;
border: 0px;
overflow: hidden;
}
.contextMenu {
position: absolute;
cursor: default;
z-index: 1000;
border: 1px solid #D4D0C8;
background-color: #FFFFFF;
}
.contextMenuItem, .contextMenuItemOver {
}
.contextMenuItemOver {
background-color: #B6BDD2;
}
.contextMenuSeparator {
width: 100%;
background-color: #D4D0C8;
border: 0px;
}
.contextMenuImage, .contextMenuItemDisabled {
border: 0px;
}
.contextMenuIcon {
background-color: #F0F0EE;
}
.contextMenuItemOver .contextMenuIcon {
background-color: #B6BDD2;
}
.contextMenuIcon {
background-color: #F0F0EE;
}
.contextMenuItemDisabled img {
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
-moz-opacity:0.3;
opacity: 0.3;
}
.contextMenuText {
font-family: Tahoma, Verdana, Arial, Helvetica;
font-size: 11px;
margin-left: 5px;
margin-right: 10px;
}
.contextMenuItemDisabled {
color: #AAAAAA;
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,289 @@
/* Import plugin specific language pack */
//tinyMCE.importPluginLanguagePack('contextmenu', 'en,zh_cn,cs,fa,fr_ca,fr,de');
if (!tinyMCE.settings['contextmenu_skip_plugin_css'])
tinyMCE.loadCSS(tinyMCE.baseURL + "/plugins/contextmenu/contextmenu.css");
// Global contextmenu class instance
var TinyMCE_contextmenu_contextMenu = null;
function TinyMCE_contextmenu_initInstance(inst) {
// Is not working on MSIE 5.0
if (tinyMCE.isMSIE5_0)
return;
// Add hide event handles
tinyMCE.addEvent(inst.getDoc(), "click", TinyMCE_contextmenu_hideContextMenu);
tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_contextmenu_hideContextMenu);
tinyMCE.addEvent(inst.getDoc(), "keydown", TinyMCE_contextmenu_hideContextMenu);
tinyMCE.addEvent(document, "click", TinyMCE_contextmenu_hideContextMenu);
tinyMCE.addEvent(document, "keypress", TinyMCE_contextmenu_hideContextMenu);
tinyMCE.addEvent(document, "keydown", TinyMCE_contextmenu_hideContextMenu);
var contextMenu = new ContextMenu({
commandhandler : "TinyMCE_contextmenu_commandHandler",
spacer_image : tinyMCE.baseURL + "/plugins/contextmenu/images/spacer.gif"
});
// Register global reference
TinyMCE_contextmenu_contextMenu = contextMenu;
// Attach contextmenu event
if (tinyMCE.isGecko) {
tinyMCE.addEvent(inst.getDoc(), "contextmenu", function(e) {TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE ? inst.contentWindow.event : e, inst);});
} else
tinyMCE.addEvent(inst.getDoc(), "contextmenu", TinyMCE_contextmenu_onContextMenu);
}
function TinyMCE_contextmenu_onContextMenu(e) {
var elm = tinyMCE.isMSIE ? e.srcElement : e.target;
var targetInst, body;
// Find instance
if ((body = tinyMCE.getParentElement(elm, "body")) != null) {
for (var n in tinyMCE.instances) {
var inst = tinyMCE.instances[n];
if (body == inst.getBody()) {
targetInst = inst;
break;
}
}
return TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst);
}
}
function TinyMCE_contextmenu_showContextMenu(e, inst) {
function getAttrib(elm, name) {
return elm.getAttribute(name) ? elm.getAttribute(name) : "";
}
var x, y, elm, contextMenu;
var pos = tinyMCE.getAbsPosition(inst.iframeElement);
x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft);
y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop);
elm = tinyMCE.isMSIE ? e.srcElement : e.target;
contextMenu = TinyMCE_contextmenu_contextMenu;
contextMenu.inst = inst;
// Mozilla needs some time
window.setTimeout(function () {
var theme = tinyMCE.getParam("theme");
contextMenu.clearAll();
var sel = inst.getSelectedText().length != 0 || elm.nodeName == "IMG";
// Default items
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel);
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel);
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false);
// Get element
elm = tinyMCE.getParentElement(elm, "img,table,td");
if (elm) {
switch (elm.nodeName) {
case "IMG":
contextMenu.addSeparator();
// If flash
if (tinyMCE.getAttrib(elm, 'name', '').indexOf('mce_plugin_flash') == 0)
contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash");
else
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", "mceImage");
break;
case "TABLE":
case "TD":
// Is table plugin loaded
if (typeof(TinyMCE_table_getControlHTML) != "undefined") {
var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan");
var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan");
colspan = colspan == "" ? "1" : colspan;
rowspan = rowspan == "" ? "1" : rowspan;
contextMenu.addSeparator();
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow");
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow");
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null);
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null);
/* contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/left.gif", "$lang_justifyleft_desc", "JustifyLeft", "", false);
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/center.gif", "$lang_justifycenter_desc", "JustifyCenter", "", false);
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/right.gif", "$lang_justifyright_desc", "JustifyRight", "", false);
contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/full.gif", "$lang_justifyfull_desc", "JustifyFull", "", false);*/
contextMenu.addSeparator();
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_insert_desc", "mceInsertTable", "insert");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_props_desc", "mceInsertTable");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_cell_props.gif", "$lang_table_cell_desc", "mceTableCellProps");
contextMenu.addSeparator();
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_row_props.gif", "$lang_table_row_desc", "mceTableRowProps");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_before.gif", "$lang_table_insert_row_before_desc", "mceTableInsertRowBefore");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_after.gif", "$lang_table_insert_row_after_desc", "mceTableInsertRowAfter");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_row.gif", "$lang_table_delete_row_desc", "mceTableDeleteRow");
contextMenu.addSeparator();
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_before.gif", "$lang_table_insert_col_before_desc", "mceTableInsertColBefore");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_after.gif", "$lang_table_insert_col_after_desc", "mceTableInsertColAfter");
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_col.gif", "$lang_table_delete_col_desc", "mceTableDeleteCol");
contextMenu.addSeparator();
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_split_cells.gif", "$lang_table_split_cells_desc", "mceTableSplitCells", "", (colspan == "1" && rowspan == "1"));
contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_merge_cells.gif", "$lang_table_merge_cells_desc", "mceTableMergeCells", "", false);
}
break;
}
}
contextMenu.show(x, y);
}, 10);
// Cancel default handeling
tinyMCE.cancelEvent(e);
return false;
}
function TinyMCE_contextmenu_hideContextMenu() {
TinyMCE_contextmenu_contextMenu.hide();
return true;
}
function TinyMCE_contextmenu_commandHandler(command, value) {
TinyMCE_contextmenu_contextMenu.hide();
// UI must be true on these
var ui = false;
if (command == "mceInsertTable" || command == "mceTableCellProps" || command == "mceTableRowProps" || command == "mceTableMergeCells")
ui = true;
TinyMCE_contextmenu_contextMenu.inst.execCommand(command, ui, value);
}
// Context menu class
function ContextMenu(settings) {
// Default value function
function defParam(key, def_val) {
settings[key] = typeof(settings[key]) != "undefined" ? settings[key] : def_val;
}
var self = this;
this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
// Setup contextmenu div
this.contextMenuDiv = document.createElement("div");
this.contextMenuDiv.className = "contextMenu";
this.contextMenuDiv.setAttribute("class", "contextMenu");
this.contextMenuDiv.style.display = "none";
this.contextMenuDiv.style.position = 'absolute';
this.contextMenuDiv.style.zindex = 1000;
this.contextMenuDiv.style.left = '0px';
this.contextMenuDiv.style.top = '0px';
this.contextMenuDiv.unselectable = "on";
document.body.appendChild(this.contextMenuDiv);
// Setup default values
defParam("commandhandler", "");
defParam("spacer_image", "images/spacer.gif");
this.items = new Array();
this.settings = settings;
this.html = "";
// IE Popup
if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) {
this.pop = window.createPopup();
doc = this.pop.document;
doc.open();
doc.write('<html><head><link href="' + tinyMCE.baseURL + '/plugins/contextmenu/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');
doc.close();
}
};
ContextMenu.prototype.clearAll = function() {
this.html = "";
this.contextMenuDiv.innerHTML = "";
};
ContextMenu.prototype.addSeparator = function() {
this.html += '<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="' + this.settings['spacer_image'] + '" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="' + this.settings['spacer_image'] + '" /></td></tr>';
};
ContextMenu.prototype.addItem = function(icon, title, command, value, disabled) {
if (title.charAt(0) == '$')
title = tinyMCE.getLang(title.substring(1));
var onMouseDown = '';
var html = '';
if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0)
onMouseDown = 'contextMenu.execCommand(\'' + command + '\', \'' + value + '\');return false;';
else
onMouseDown = this.settings['commandhandler'] + '(\'' + command + '\', \'' + value + '\');return false;';
if (icon == "")
icon = this.settings['spacer_image'];
if (!disabled)
html += '<tr class="contextMenuItem" onmousedown="' + onMouseDown + '" onmouseover="tinyMCE.switchClass(this,\'contextMenuItemOver\');" onmouseout="tinyMCE.switchClass(this,\'contextMenuItem\');">';
else
html += '<tr class="contextMenuItemDisabled">';
html += '<td class="contextMenuIcon"><img src="' + icon + '" width="20" height="20" class="contextMenuImage" /></td>';
html += '<td><div class="contextMenuText">';
// Add text
html += title;
html += '</div></td>';
html += '</tr>';
// Add to main
this.html += html;
};
ContextMenu.prototype.show = function(x, y) {
if (this.html == "")
return;
var html = '';
html += '<table border="0" cellpadding="0" cellspacing="0">';
html += this.html;
html += '</table>';
this.contextMenuDiv.innerHTML = html;
if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) {
var width, height;
// Get dimensions
this.contextMenuDiv.style.display = "block";
width = this.contextMenuDiv.offsetWidth;
height = this.contextMenuDiv.offsetHeight;
this.contextMenuDiv.style.display = "none";
// Setup popup and show
this.pop.document.body.innerHTML = '<div class="contextMenu">' + html + "</div>";
this.pop.document.tinyMCE = tinyMCE;
this.pop.document.contextMenu = this;
this.pop.show(x, y, width, height);
} else {
this.contextMenuDiv.style.left = x + 'px';
this.contextMenuDiv.style.top = y + 'px';
this.contextMenuDiv.style.display = "block";
}
};
ContextMenu.prototype.hide = function() {
if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0)
this.pop.hide();
else
this.contextMenuDiv.style.display = "none";
};
ContextMenu.prototype.execCommand = function(command, value) {
eval(this.settings['commandhandler'] + "(command, value);");
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

View file

@ -0,0 +1,2 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('directionality','en,sv');function TinyMCE_directionality_getControlHTML(control_name){var safariPatch='" onclick="';if(tinyMCE.isSafari)safariPatch="";switch(control_name){case "ltr":return '<img id="{$editor_id}_ltr" src="{$pluginurl}/images/ltr.gif" title="{$lang_directionality_ltr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');'+safariPatch+'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionLTR\');" />';case "rtl":return '<img id="{$editor_id}_rtl" src="{$pluginurl}/images/rtl.gif" title="{$lang_directionality_rtl_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');'+safariPatch+'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionRTL\');" />';}return "";}function TinyMCE_directionality_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceDirectionLTR":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","ltr");tinyMCE.triggerNodeChange(false);return true;case "mceDirectionRTL":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","rtl");tinyMCE.triggerNodeChange(false);return true;}return false;}function TinyMCE_directionality_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";}tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonNormal');if(node==null)return;var elm=tinyMCE.getParentElement(node,"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(!elm)return;var dir=getAttrib(elm,"dir");if(dir=="ltr"||dir=="")tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonSelected');else tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonSelected');return true;}

View file

@ -0,0 +1,71 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('directionality', 'en,sv');
function TinyMCE_directionality_getControlHTML(control_name) {
var safariPatch = '" onclick="';
if (tinyMCE.isSafari)
safariPatch = "";
switch (control_name) {
case "ltr":
return '<img id="{$editor_id}_ltr" src="{$pluginurl}/images/ltr.gif" title="{$lang_directionality_ltr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');' + safariPatch + 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionLTR\');" />';
case "rtl":
return '<img id="{$editor_id}_rtl" src="{$pluginurl}/images/rtl.gif" title="{$lang_directionality_rtl_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');' + safariPatch + 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionRTL\');" />';
}
return "";
}
function TinyMCE_directionality_execCommand(editor_id, element, command, user_interface, value) {
// Handle commands
switch (command) {
case "mceDirectionLTR":
var inst = tinyMCE.getInstanceById(editor_id);
var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
if (elm)
elm.setAttribute("dir", "ltr");
tinyMCE.triggerNodeChange(false);
return true;
case "mceDirectionRTL":
var inst = tinyMCE.getInstanceById(editor_id);
var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
if (elm)
elm.setAttribute("dir", "rtl");
tinyMCE.triggerNodeChange(false);
return true;
}
// Pass to next handler in chain
return false;
}
function TinyMCE_directionality_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
function getAttrib(elm, name) {
return elm.getAttribute(name) ? elm.getAttribute(name) : "";
}
tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonNormal');
tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonNormal');
if (node == null)
return;
var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
if (!elm)
return;
var dir = getAttrib(elm, "dir");
if (dir == "ltr" || dir == "")
tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonSelected');
else
tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonSelected');
return true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

View file

@ -0,0 +1,4 @@
// UK lang variables
tinyMCELang['lang_directionality_ltr_desc'] = 'Direction left to right'
tinyMCELang['lang_directionality_rtl_desc'] = 'Direction right to left';

View file

@ -0,0 +1,4 @@
// SV lang variables
tinyMCELang['lang_directionality_ltr_desc'] = 'Riktning fr&aring;n v&auml;nster till h&ouml;ger'
tinyMCELang['lang_directionality_rtl_desc'] = 'Riktning fr&aring;n h&ouml;ger till v&auml;nster';

View file

@ -0,0 +1,5 @@
// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
//请访问 http://www.cube316.net/ 以获取TinyMCE的中文支持
tinyMCELang['lang_directionality_ltr_desc'] = '从左往右的方向'
tinyMCELang['lang_directionality_rtl_desc'] = '从右往左的方向';

View file

@ -0,0 +1,16 @@
Directionality plugin for TinyMCE
------------------------------
This plugin adds directionality icons to TinyMCE that enables TinyMCE to better handle languages that is written from right to left.
Installation instructions:
* Add plugin to TinyMCE plugin option list example: plugins : "directionality".
* Add the ltr, rtl button names to button list, example: theme_advanced_buttons3_add : "ltr,rtl".
Initialization example:
tinyMCE.init({
theme : "advanced",
mode : "textareas",
plugins : "directionality",
theme_advanced_buttons3_add : "ltr,rtl"
});

View file

@ -0,0 +1,2 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('emotions','en,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br');function TinyMCE_emotions_getControlHTML(control_name){switch(control_name){case "emotions":return '<img id="{$editor_id}_emotions" src="{$pluginurl}/images/emotions.gif" title="{$lang_emotions_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceEmotion\');">';}return "";}function TinyMCE_emotions_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceEmotion":var template=new Array();template['file']='../../plugins/emotions/emotions.htm';template['width']=150;template['height']=180;tinyMCE.openWindow(template,{editor_id:editor_id});return true;}return false;}

View file

@ -0,0 +1,36 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('emotions', 'en,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br');
/**
* Returns the HTML contents of the emotions control.
*/
function TinyMCE_emotions_getControlHTML(control_name) {
switch (control_name) {
case "emotions":
return '<img id="{$editor_id}_emotions" src="{$pluginurl}/images/emotions.gif" title="{$lang_emotions_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceEmotion\');">';
}
return "";
}
/**
* Executes the mceEmotion command.
*/
function TinyMCE_emotions_execCommand(editor_id, element, command, user_interface, value) {
// Handle commands
switch (command) {
case "mceEmotion":
var template = new Array();
template['file'] = '../../plugins/emotions/emotions.htm'; // Relative to theme
template['width'] = 150;
template['height'] = 180;
tinyMCE.openWindow(template, {editor_id : editor_id});
return true;
}
// Pass to next handler in chain
return false;
}

View file

@ -0,0 +1,45 @@
<html>
<head>
<title>{$lang_insert_emotions_title}</title>
<script language="javascript" src="../../tiny_mce_popup.js"></script>
<script language="javascript">
function insertEmotion(file_name) {
if (window.opener) {
tinyMCE.insertImage(tinyMCE.baseURL + "/plugins/emotions/images/" + file_name);
window.close();
}
}
</script>
</head>
<body onload="">
<div align="center">
<div class="title">{$lang_insert_emotions_title}:<br /><br /></div>
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-cool.gif');"><img src="images/smiley-cool.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-cry.gif');"><img src="images/smiley-cry.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-embarassed.gif');"><img src="images/smiley-embarassed.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-foot-in-mouth.gif');"><img src="images/smiley-foot-in-mouth.gif" width="18" height="18" border="0" /></a></td>
</tr>
<tr>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-frown.gif');"><img src="images/smiley-frown.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-innocent.gif');"><img src="images/smiley-innocent.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-kiss.gif');"><img src="images/smiley-kiss.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-laughing.gif');"><img src="images/smiley-laughing.gif" width="18" height="18" border="0" /></a></td>
</tr>
<tr>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-money-mouth.gif');"><img src="images/smiley-money-mouth.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-sealed.gif');"><img src="images/smiley-sealed.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-smile.gif');"><img src="images/smiley-smile.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-surprised.gif');"><img src="images/smiley-surprised.gif" width="18" height="18" border="0" /></a></td>
</tr>
<tr>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-tongue-out.gif');"><img src="images/smiley-tongue-out.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-undecided.gif');"><img src="images/smiley-undecided.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-wink.gif');"><img src="images/smiley-wink.gif" width="18" height="18" border="0" /></a></td>
<td><a href="javascript:void(0);" onmousedown="insertEmotion('smiley-yell.gif');"><img src="images/smiley-yell.gif" width="18" height="18" border="0" /></a></td>
</tr>
</table>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,2 @@
These emotions where taken from Mozilla Thunderbird.
I hope they don't get angry if I use them here after all this is a open source project aswell.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,4 @@
// UK lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Vložit emotikon';
tinyMCELang['lang_emotions_desc'] = 'Emotikony';

View file

@ -0,0 +1,6 @@
// DE lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Emotion einf&uuml;gen';
tinyMCELang['lang_emotions_desc'] = 'Emotion';

View file

@ -0,0 +1,5 @@
// Greek lang variables by Jacaranda Bill
tinyMCELang['lang_insert_emotions_title'] = 'ÅéóáãùãÞ åíüò åéêïíéäßïõ emoticon';
tinyMCELang['lang_emotions_desc'] = 'Åéêïíßäéá emoticons';

View file

@ -0,0 +1,5 @@
// UK lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Insert emotion';
tinyMCELang['lang_emotions_desc'] = 'Emotions';

View file

@ -0,0 +1,10 @@
// IR lang variables
// Persian (Farsi) language pack (for IRAN)
// By: Morteza Zafari
// Lost@LostLord.com
// http://www.LostLord.com
tinyMCELang['lang_dir'] = 'rtl';
tinyMCELang['lang_insert_emotions_title'] = 'افزودن شکلک';
tinyMCELang['lang_emotions_desc'] = 'شکلکها';

View file

@ -0,0 +1,5 @@
// French lang variables by Laurent Dran
tinyMCELang['lang_insert_emotions_title'] = 'Ins&egrave;rer un &eacute;moticon';
tinyMCELang['lang_emotions_desc'] = '&Eacute;moticons';

View file

@ -0,0 +1,5 @@
// CAN_FR lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Insérer un émoticon';
tinyMCELang['lang_emotions_desc'] = 'Émoticons';

View file

@ -0,0 +1,5 @@
//IT lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Inserisci una emoticon';
tinyMCELang['lang_emotions_desc'] = 'Emoticon';

View file

@ -0,0 +1,5 @@
// KO lang variables
tinyMCELang['lang_insert_emotions_title'] = '이모티콘 넣기';
tinyMCELang['lang_emotions_desc'] = '이모티콘';

View file

@ -0,0 +1,4 @@
// PL lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Wstaw emtoiconę';
tinyMCELang['lang_emotions_desc'] = 'Emtoicony';

View file

@ -0,0 +1,5 @@
// pt_BR lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Inserir Emoticon';
tinyMCELang['lang_emotions_desc'] = 'Emoticons';

View file

@ -0,0 +1,4 @@
// SE lang variables
tinyMCELang['lang_insert_emotions_title'] = 'Klistra in känsla';
tinyMCELang['lang_emotions_desc'] = 'Känslor';

View file

@ -0,0 +1,6 @@
// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
//请访问 http://www.cube316.net/ 以获取TinyMCE的中文支持
tinyMCELang['lang_insert_emotions_title'] = '插入表情';
tinyMCELang['lang_emotions_desc'] = '表情';

View file

@ -0,0 +1,20 @@
Emotions plugin for TinyMCE
------------------------------
Installation instructions:
* Copy the emotions directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
* Add plugin to TinyMCE plugin option list example: plugins : "emotions".
* Add the emotions button name to button list, example: theme_advanced_buttons3_add : "emotions".
Initialization example:
tinyMCE.init({
theme : "advanced",
mode : "textareas",
plugins : "emotions",
theme_advanced_buttons3_add : "emotions"
});
Copyright notice:
These emotions where taken from Mozilla Thunderbird.
I hope they don't get angry if I use them here after all this is a open source project
aswell and I realy love their product.

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,225 @@
/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('flash', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br');
function TinyMCE_flash_initInstance(inst) {
if (!tinyMCE.settings['flash_skip_plugin_css'])
tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/flash/flash.css");
}
function TinyMCE_flash_getControlHTML(control_name) {
switch (control_name) {
case "flash":
return '<img id="{$editor_id}_flash" src="{$pluginurl}/images/flash.gif" title="{$lang_insert_flash}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFlash\');" />';
}
return "";
}
function TinyMCE_flash_parseAttributes(attribute_string) {
var attributeName = "";
var attributeValue = "";
var withInName;
var withInValue;
var attributes = new Array();
var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g');
if (attribute_string == null || attribute_string.length < 2)
return null;
withInName = withInValue = false;
for (var i=0; i<attribute_string.length; i++) {
var chr = attribute_string.charAt(i);
if ((chr == '"' || chr == "'") && !withInValue)
withInValue = true;
else if ((chr == '"' || chr == "'") && withInValue) {
withInValue = false;
var pos = attributeName.lastIndexOf(' ');
if (pos != -1)
attributeName = attributeName.substring(pos+1);
attributes[attributeName.toLowerCase()] = attributeValue.substring(1).toLowerCase();
attributeName = "";
attributeValue = "";
} else if (!whiteSpaceRegExp.test(chr) && !withInName && !withInValue)
withInName = true;
if (chr == '=' && withInName)
withInName = false;
if (withInName)
attributeName += chr;
if (withInValue)
attributeValue += chr;
}
return attributes;
}
function TinyMCE_flash_execCommand(editor_id, element, command, user_interface, value) {
function getAttrib(elm, name) {
return elm.getAttribute(name) ? elm.getAttribute(name) : "";
}
// Handle commands
switch (command) {
case "mceFlash":
var name = "", swffile = "", swfwidth = "", swfheight = "", action = "insert";
var template = new Array();
var inst = tinyMCE.getInstanceById(editor_id);
var focusElm = inst.getFocusElement();
template['file'] = '../../plugins/flash/flash.htm'; // Relative to theme
template['width'] = 400;
template['height'] = 195;
// Is selection a image
if (focusElm != null && focusElm.nodeName.toLowerCase() == "img") {
name = getAttrib(focusElm, 'name');
if (name != 'mce_plugin_flash') // Not a Flash
return true;
// Get rest of Flash items
swffile = getAttrib(focusElm, 'alt');
swffile = eval(tinyMCE.settings['urlconverter_callback'] + "(swffile, null, true);");
swfwidth = getAttrib(focusElm, 'width');
swfheight = getAttrib(focusElm, 'height');
action = "update";
}
tinyMCE.openWindow(template, {editor_id : editor_id, swffile : swffile, swfwidth : swfwidth, swfheight : swfheight, action : action});
return true;
}
// Pass to next handler in chain
return false;
}
function TinyMCE_flash_cleanup(type, content) {
switch (type) {
case "insert_to_editor_dom":
var imgs = content.getElementsByTagName("img");
for (var i=0; i<imgs.length; i++) {
if (tinyMCE.getAttrib(imgs[i], "name") == "mce_plugin_flash") {
var src = tinyMCE.getAttrib(imgs[i], "alt");
src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
imgs[i].setAttribute('alt', src);
}
}
break;
case "get_from_editor_dom":
var imgs = content.getElementsByTagName("img");
for (var i=0; i<imgs.length; i++) {
if (tinyMCE.getAttrib(imgs[i], "name") == "mce_plugin_flash") {
var src = tinyMCE.getAttrib(imgs[i], "alt");
src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
imgs[i].setAttribute('alt', src);
}
}
break;
case "insert_to_editor":
var startPos = 0;
var embedList = new Array();
// Fix the embed and object elements
content = content.replace(new RegExp('<[ ]*embed','gi'),'<embed');
content = content.replace(new RegExp('<[ ]*/embed[ ]*>','gi'),'</embed>');
content = content.replace(new RegExp('<[ ]*object','gi'),'<object');
content = content.replace(new RegExp('<[ ]*/object[ ]*>','gi'),'</object>');
// Parse all embed tags
while ((startPos = content.indexOf('<embed', startPos+1)) != -1) {
var endPos = content.indexOf('>', startPos);
var attribs = TinyMCE_flash_parseAttributes(content.substring(startPos + 6, endPos));
embedList[embedList.length] = attribs;
}
// Parse all object tags and replace them with images from the embed data
var index = 0;
while ((startPos = content.indexOf('<object', startPos)) != -1) {
if (index >= embedList.length)
break;
var attribs = embedList[index];
// Find end of object
endPos = content.indexOf('</object>', startPos);
endPos += 9;
// Insert image
var contentAfter = content.substring(endPos);
content = content.substring(0, startPos);
content += '<img name="mce_plugin_flash" width="' + attribs["width"] + '" height="' + attribs["height"] + '"';
content += ' src="' + (tinyMCE.getParam("theme_href") + '/images/spacer.gif') + '" title="' + attribs["src"] + '"';
content += ' alt="' + attribs["src"] + '" class="mce_plugin_flash" />' + content.substring(endPos);
content += contentAfter;
index++;
startPos++;
}
break;
case "get_from_editor":
// Parse all img tags and replace them with object+embed
var startPos = -1;
while ((startPos = content.indexOf('<img', startPos+1)) != -1) {
var endPos = content.indexOf('/>', startPos);
var attribs = TinyMCE_flash_parseAttributes(content.substring(startPos + 4, endPos));
// Is not flash, skip it
if (attribs['name'] != "mce_plugin_flash")
continue;
endPos += 2;
var embedHTML = '';
// Insert object + embed
embedHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
embedHTML += ' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';
embedHTML += ' width="' + attribs["width"] + '" height="' + attribs["height"] + '">';
embedHTML += '<param name="movie" value="' + attribs["title"] + '" />';
embedHTML += '<param name="quality" value="high" />';
embedHTML += '<param name="menu" value="false" />';
embedHTML += '<embed src="' + attribs["title"] + '" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + attribs["width"] + '" height="' + attribs["height"] + '"></embed></object>';
// Insert embed/object chunk
chunkBefore = content.substring(0, startPos);
chunkAfter = content.substring(endPos);
content = chunkBefore + embedHTML + chunkAfter;
}
break;
}
// Pass through to next handler in chain
return content;
}
function TinyMCE_flash_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
function getAttrib(elm, name) {
return elm.getAttribute(name) ? elm.getAttribute(name) : "";
}
tinyMCE.switchClassSticky(editor_id + '_flash', 'mceButtonNormal');
if (node == null)
return;
do {
if (node.nodeName.toLowerCase() == "img" && getAttrib(node, 'name').indexOf('mce_plugin_flash') == 0)
tinyMCE.switchClassSticky(editor_id + '_flash', 'mceButtonSelected');
} while ((node = node.parentNode));
return true;
}

Some files were not shown because too many files have changed in this diff Show more