Add JS files
This commit is contained in:
154
include/javascript/tiny_mce/langs/en.js
vendored
Executable file
154
include/javascript/tiny_mce/langs/en.js
vendored
Executable file
@@ -0,0 +1,154 @@
|
||||
tinyMCE.addI18n({en:{
|
||||
common:{
|
||||
edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",
|
||||
apply:"Apply",
|
||||
insert:"Insert",
|
||||
update:"Update",
|
||||
cancel:"Cancel",
|
||||
close:"Close",
|
||||
browse:"Browse",
|
||||
class_name:"Class",
|
||||
not_set:"-- Not set --",
|
||||
clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",
|
||||
clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",
|
||||
popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",
|
||||
invalid_data:"Error: Invalid values entered, these are marked in red.",
|
||||
more_colors:"More colors"
|
||||
},
|
||||
contextmenu:{
|
||||
align:"Alignment",
|
||||
left:"Left",
|
||||
center:"Center",
|
||||
right:"Right",
|
||||
full:"Full"
|
||||
},
|
||||
insertdatetime:{
|
||||
date_fmt:"%Y-%m-%d",
|
||||
time_fmt:"%H:%M:%S",
|
||||
insertdate_desc:"Insert date",
|
||||
inserttime_desc:"Insert time",
|
||||
months_long:"January,February,March,April,May,June,July,August,September,October,November,December",
|
||||
months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
|
||||
day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",
|
||||
day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"
|
||||
},
|
||||
print:{
|
||||
print_desc:"Print"
|
||||
},
|
||||
preview:{
|
||||
preview_desc:"Preview"
|
||||
},
|
||||
directionality:{
|
||||
ltr_desc:"Direction left to right",
|
||||
rtl_desc:"Direction right to left"
|
||||
},
|
||||
layer:{
|
||||
insertlayer_desc:"Insert new layer",
|
||||
forward_desc:"Move forward",
|
||||
backward_desc:"Move backward",
|
||||
absolute_desc:"Toggle absolute positioning",
|
||||
content:"New layer..."
|
||||
},
|
||||
save:{
|
||||
save_desc:"Save",
|
||||
cancel_desc:"Cancel all changes"
|
||||
},
|
||||
nonbreaking:{
|
||||
nonbreaking_desc:"Insert non-breaking space character"
|
||||
},
|
||||
iespell:{
|
||||
iespell_desc:"Run spell checking",
|
||||
download:"ieSpell not detected. Do you want to install it now?"
|
||||
},
|
||||
advhr:{
|
||||
advhr_desc:"Horizontal rule"
|
||||
},
|
||||
emotions:{
|
||||
emotions_desc:"Emotions"
|
||||
},
|
||||
searchreplace:{
|
||||
search_desc:"Find",
|
||||
replace_desc:"Find/Replace"
|
||||
},
|
||||
advimage:{
|
||||
image_desc:"Insert/edit image"
|
||||
},
|
||||
advlink:{
|
||||
link_desc:"Insert/edit link"
|
||||
},
|
||||
xhtmlxtras:{
|
||||
cite_desc:"Citation",
|
||||
abbr_desc:"Abbreviation",
|
||||
acronym_desc:"Acronym",
|
||||
del_desc:"Deletion",
|
||||
ins_desc:"Insertion",
|
||||
attribs_desc:"Insert/Edit Attributes"
|
||||
},
|
||||
style:{
|
||||
desc:"Edit CSS Style"
|
||||
},
|
||||
paste:{
|
||||
paste_text_desc:"Paste as Plain Text",
|
||||
paste_word_desc:"Paste from Word",
|
||||
selectall_desc:"Select All"
|
||||
},
|
||||
paste_dlg:{
|
||||
text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
|
||||
text_linebreaks:"Keep linebreaks",
|
||||
word_title:"Use CTRL+V on your keyboard to paste the text into the window."
|
||||
},
|
||||
table:{
|
||||
desc:"Inserts a new table",
|
||||
row_before_desc:"Insert row before",
|
||||
row_after_desc:"Insert row after",
|
||||
delete_row_desc:"Delete row",
|
||||
col_before_desc:"Insert column before",
|
||||
col_after_desc:"Insert column after",
|
||||
delete_col_desc:"Remove column",
|
||||
split_cells_desc:"Split merged table cells",
|
||||
merge_cells_desc:"Merge table cells",
|
||||
row_desc:"Table row properties",
|
||||
cell_desc:"Table cell properties",
|
||||
props_desc:"Table properties",
|
||||
paste_row_before_desc:"Paste table row before",
|
||||
paste_row_after_desc:"Paste table row after",
|
||||
cut_row_desc:"Cut table row",
|
||||
copy_row_desc:"Copy table row",
|
||||
del:"Delete table",
|
||||
row:"Row",
|
||||
col:"Column",
|
||||
cell:"Cell"
|
||||
},
|
||||
autosave:{
|
||||
unload_msg:"The changes you made will be lost if you navigate away from this page."
|
||||
},
|
||||
fullscreen:{
|
||||
desc:"Toggle fullscreen mode"
|
||||
},
|
||||
media:{
|
||||
desc:"Insert / edit embedded media",
|
||||
edit:"Edit embedded media"
|
||||
},
|
||||
fullpage:{
|
||||
desc:"Document properties"
|
||||
},
|
||||
template:{
|
||||
desc:"Insert predefined template content"
|
||||
},
|
||||
visualchars:{
|
||||
desc:"Visual control characters on/off."
|
||||
},
|
||||
spellchecker:{
|
||||
desc:"Toggle spellchecker",
|
||||
menu:"Spellchecker settings",
|
||||
ignore_word:"Ignore word",
|
||||
ignore_words:"Ignore all",
|
||||
langs:"Languages",
|
||||
wait:"Please wait...",
|
||||
sug:"Suggestions",
|
||||
no_sug:"No suggestions",
|
||||
no_mpell:"No misspellings found."
|
||||
},
|
||||
pagebreak:{
|
||||
desc:"Insert page break."
|
||||
}}});
|
||||
1
include/javascript/tiny_mce/plugins/advhr/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/advhr/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.AdvancedHRPlugin',{init:function(ed,url){ed.addCommand('mceAdvancedHr',function(){ed.windowManager.open({file:url+'/rule.htm',width:250+parseInt(ed.getLang('advhr.delta_width',0)),height:160+parseInt(ed.getLang('advhr.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('advhr',{title:'advhr.advhr_desc',cmd:'mceAdvancedHr'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('advhr',n.nodeName=='HR');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='HR')ed.selection.select(e);});},getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advhr',tinymce.plugins.AdvancedHRPlugin);})();
|
||||
54
include/javascript/tiny_mce/plugins/advhr/editor_plugin_src.js
vendored
Executable file
54
include/javascript/tiny_mce/plugins/advhr/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.AdvancedHRPlugin', {
|
||||
init : function(ed, url) {
|
||||
// Register commands
|
||||
ed.addCommand('mceAdvancedHr', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/rule.htm',
|
||||
width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)),
|
||||
height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('advhr', {
|
||||
title : 'advhr.advhr_desc',
|
||||
cmd : 'mceAdvancedHr'
|
||||
});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
cm.setActive('advhr', n.nodeName == 'HR');
|
||||
});
|
||||
|
||||
ed.onClick.add(function(ed, e) {
|
||||
e = e.target;
|
||||
|
||||
if (e.nodeName === 'HR')
|
||||
ed.selection.select(e);
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Advanced HR',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin);
|
||||
})();
|
||||
43
include/javascript/tiny_mce/plugins/advhr/js/rule.js
vendored
Executable file
43
include/javascript/tiny_mce/plugins/advhr/js/rule.js
vendored
Executable file
@@ -0,0 +1,43 @@
|
||||
var AdvHRDialog = {
|
||||
init : function(ed) {
|
||||
var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;
|
||||
|
||||
w = dom.getAttrib(n, 'width');
|
||||
f.width.value = w ? parseInt(w) : (dom.getStyle('width') || '');
|
||||
f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || '';
|
||||
f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width');
|
||||
selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');
|
||||
},
|
||||
|
||||
update : function() {
|
||||
var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = '';
|
||||
|
||||
h = '<hr';
|
||||
|
||||
if (f.size.value) {
|
||||
h += ' size="' + f.size.value + '"';
|
||||
st += ' height:' + f.size.value + 'px;';
|
||||
}
|
||||
|
||||
if (f.width.value) {
|
||||
h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';
|
||||
st += ' width:' + f.width.value + (f.width2.value == '%' ? '%' : 'px') + ';';
|
||||
}
|
||||
|
||||
if (f.noshade.checked) {
|
||||
h += ' noshade="noshade"';
|
||||
st += ' border-width: 1px; border-style: solid; border-color: #CCCCCC; color: #ffffff;';
|
||||
}
|
||||
|
||||
if (ed.settings.inline_styles)
|
||||
h += ' style="' + tinymce.trim(st) + '"';
|
||||
|
||||
h += ' />';
|
||||
|
||||
ed.execCommand("mceInsertContent", false, h);
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
};
|
||||
|
||||
tinyMCEPopup.requireLangPack();
|
||||
tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);
|
||||
5
include/javascript/tiny_mce/plugins/advhr/langs/en_dlg.js
vendored
Executable file
5
include/javascript/tiny_mce/plugins/advhr/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
tinyMCE.addI18n('en.advhr_dlg',{
|
||||
width:"Width",
|
||||
size:"Height",
|
||||
noshade:"No shadow"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/advimage/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/advimage/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({file:url+'/image.htm',width:480+parseInt(ed.getLang('advimage.delta_width',0)),height:385+parseInt(ed.getLang('advimage.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('image',{title:'advimage.image_desc',cmd:'mceAdvImage'});},getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})();
|
||||
47
include/javascript/tiny_mce/plugins/advimage/editor_plugin_src.js
vendored
Executable file
47
include/javascript/tiny_mce/plugins/advimage/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.AdvancedImagePlugin', {
|
||||
init : function(ed, url) {
|
||||
// Register commands
|
||||
ed.addCommand('mceAdvImage', function() {
|
||||
// Internal image object like a flash placeholder
|
||||
if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
|
||||
return;
|
||||
|
||||
ed.windowManager.open({
|
||||
file : url + '/image.htm',
|
||||
width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),
|
||||
height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('image', {
|
||||
title : 'advimage.image_desc',
|
||||
cmd : 'mceAdvImage'
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Advanced image',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);
|
||||
})();
|
||||
441
include/javascript/tiny_mce/plugins/advimage/js/image.js
vendored
Executable file
441
include/javascript/tiny_mce/plugins/advimage/js/image.js
vendored
Executable file
@@ -0,0 +1,441 @@
|
||||
var ImageDialog = {
|
||||
preInit : function() {
|
||||
var url;
|
||||
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
if (url = tinyMCEPopup.getParam("external_image_list_url"))
|
||||
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
|
||||
},
|
||||
|
||||
init : function(ed) {
|
||||
var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();
|
||||
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
this.fillClassList('class_list');
|
||||
this.fillFileList('src_list', 'tinyMCEImageList');
|
||||
this.fillFileList('over_list', 'tinyMCEImageList');
|
||||
this.fillFileList('out_list', 'tinyMCEImageList');
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
if (n.nodeName == 'IMG') {
|
||||
nl.src.value = dom.getAttrib(n, 'src');
|
||||
nl.width.value = dom.getAttrib(n, 'width');
|
||||
nl.height.value = dom.getAttrib(n, 'height');
|
||||
nl.alt.value = dom.getAttrib(n, 'alt');
|
||||
nl.title.value = dom.getAttrib(n, 'title');
|
||||
nl.vspace.value = this.getAttrib(n, 'vspace');
|
||||
nl.hspace.value = this.getAttrib(n, 'hspace');
|
||||
nl.border.value = this.getAttrib(n, 'border');
|
||||
selectByValue(f, 'align', this.getAttrib(n, 'align'));
|
||||
selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true);
|
||||
nl.style.value = dom.getAttrib(n, 'style');
|
||||
nl.id.value = dom.getAttrib(n, 'id');
|
||||
nl.dir.value = dom.getAttrib(n, 'dir');
|
||||
nl.lang.value = dom.getAttrib(n, 'lang');
|
||||
nl.usemap.value = dom.getAttrib(n, 'usemap');
|
||||
nl.longdesc.value = dom.getAttrib(n, 'longdesc');
|
||||
nl.insert.value = ed.getLang('update');
|
||||
|
||||
if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))
|
||||
nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
|
||||
|
||||
if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))
|
||||
nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
|
||||
|
||||
if (ed.settings.inline_styles) {
|
||||
// Move attribs to styles
|
||||
if (dom.getAttrib(n, 'align'))
|
||||
this.updateStyle('align');
|
||||
|
||||
if (dom.getAttrib(n, 'hspace'))
|
||||
this.updateStyle('hspace');
|
||||
|
||||
if (dom.getAttrib(n, 'border'))
|
||||
this.updateStyle('border');
|
||||
|
||||
if (dom.getAttrib(n, 'vspace'))
|
||||
this.updateStyle('vspace');
|
||||
}
|
||||
}
|
||||
|
||||
// Setup browse button
|
||||
document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
|
||||
if (isVisible('srcbrowser'))
|
||||
document.getElementById('src').style.width = '260px';
|
||||
|
||||
// Setup browse button
|
||||
document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');
|
||||
if (isVisible('overbrowser'))
|
||||
document.getElementById('onmouseoversrc').style.width = '260px';
|
||||
|
||||
// Setup browse button
|
||||
document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');
|
||||
if (isVisible('outbrowser'))
|
||||
document.getElementById('onmouseoutsrc').style.width = '260px';
|
||||
|
||||
// If option enabled default contrain proportions to checked
|
||||
if (ed.getParam("advimage_constrain_proportions", true))
|
||||
f.constrain.checked = true;
|
||||
|
||||
// Check swap image if valid data
|
||||
if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)
|
||||
this.setSwapImage(true);
|
||||
else
|
||||
this.setSwapImage(false);
|
||||
|
||||
this.changeAppearance();
|
||||
this.showPreviewImage(nl.src.value, 1);
|
||||
},
|
||||
|
||||
insert : function(file, title) {
|
||||
var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];
|
||||
|
||||
if (f.src.value === '') {
|
||||
if (ed.selection.getNode().nodeName == 'IMG') {
|
||||
ed.dom.remove(ed.selection.getNode());
|
||||
ed.execCommand('mceRepaint');
|
||||
}
|
||||
|
||||
tinyMCEPopup.close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {
|
||||
if (!f.alt.value) {
|
||||
tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
|
||||
if (s)
|
||||
t.insertAndClose();
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
t.insertAndClose();
|
||||
},
|
||||
|
||||
insertAndClose : function() {
|
||||
var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
// Fixes crash in Safari
|
||||
if (tinymce.isWebKit)
|
||||
ed.getWin().focus();
|
||||
|
||||
if (!ed.settings.inline_styles) {
|
||||
args = {
|
||||
vspace : nl.vspace.value,
|
||||
hspace : nl.hspace.value,
|
||||
border : nl.border.value,
|
||||
align : getSelectValue(f, 'align')
|
||||
};
|
||||
} else {
|
||||
// Remove deprecated values
|
||||
args = {
|
||||
vspace : '',
|
||||
hspace : '',
|
||||
border : '',
|
||||
align : ''
|
||||
};
|
||||
}
|
||||
|
||||
tinymce.extend(args, {
|
||||
src : nl.src.value,
|
||||
width : nl.width.value,
|
||||
height : nl.height.value,
|
||||
alt : nl.alt.value,
|
||||
title : nl.title.value,
|
||||
'class' : getSelectValue(f, 'class_list'),
|
||||
style : nl.style.value,
|
||||
id : nl.id.value,
|
||||
dir : nl.dir.value,
|
||||
lang : nl.lang.value,
|
||||
usemap : nl.usemap.value,
|
||||
longdesc : nl.longdesc.value
|
||||
});
|
||||
|
||||
args.onmouseover = args.onmouseout = '';
|
||||
|
||||
if (f.onmousemovecheck.checked) {
|
||||
if (nl.onmouseoversrc.value)
|
||||
args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";
|
||||
|
||||
if (nl.onmouseoutsrc.value)
|
||||
args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";
|
||||
}
|
||||
|
||||
el = ed.selection.getNode();
|
||||
|
||||
if (el && el.nodeName == 'IMG') {
|
||||
ed.dom.setAttribs(el, args);
|
||||
} else {
|
||||
ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});
|
||||
ed.dom.setAttribs('__mce_tmp', args);
|
||||
ed.dom.setAttrib('__mce_tmp', 'id', '');
|
||||
ed.undoManager.add();
|
||||
}
|
||||
|
||||
tinyMCEPopup.close();
|
||||
},
|
||||
|
||||
getAttrib : function(e, at) {
|
||||
var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
|
||||
|
||||
if (ed.settings.inline_styles) {
|
||||
switch (at) {
|
||||
case 'align':
|
||||
if (v = dom.getStyle(e, 'float'))
|
||||
return v;
|
||||
|
||||
if (v = dom.getStyle(e, 'vertical-align'))
|
||||
return v;
|
||||
|
||||
break;
|
||||
|
||||
case 'hspace':
|
||||
v = dom.getStyle(e, 'margin-left')
|
||||
v2 = dom.getStyle(e, 'margin-right');
|
||||
|
||||
if (v && v == v2)
|
||||
return parseInt(v.replace(/[^0-9]/g, ''));
|
||||
|
||||
break;
|
||||
|
||||
case 'vspace':
|
||||
v = dom.getStyle(e, 'margin-top')
|
||||
v2 = dom.getStyle(e, 'margin-bottom');
|
||||
if (v && v == v2)
|
||||
return parseInt(v.replace(/[^0-9]/g, ''));
|
||||
|
||||
break;
|
||||
|
||||
case 'border':
|
||||
v = 0;
|
||||
|
||||
tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
|
||||
sv = dom.getStyle(e, 'border-' + sv + '-width');
|
||||
|
||||
// False or not the same as prev
|
||||
if (!sv || (sv != v && v !== 0)) {
|
||||
v = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (sv)
|
||||
v = sv;
|
||||
});
|
||||
|
||||
if (v)
|
||||
return parseInt(v.replace(/[^0-9]/g, ''));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (v = dom.getAttrib(e, at))
|
||||
return v;
|
||||
|
||||
return '';
|
||||
},
|
||||
|
||||
setSwapImage : function(st) {
|
||||
var f = document.forms[0];
|
||||
|
||||
f.onmousemovecheck.checked = st;
|
||||
setBrowserDisabled('overbrowser', !st);
|
||||
setBrowserDisabled('outbrowser', !st);
|
||||
|
||||
if (f.over_list)
|
||||
f.over_list.disabled = !st;
|
||||
|
||||
if (f.out_list)
|
||||
f.out_list.disabled = !st;
|
||||
|
||||
f.onmouseoversrc.disabled = !st;
|
||||
f.onmouseoutsrc.disabled = !st;
|
||||
},
|
||||
|
||||
fillClassList : function(id) {
|
||||
var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
|
||||
|
||||
if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
|
||||
cl = [];
|
||||
|
||||
tinymce.each(v.split(';'), function(v) {
|
||||
var p = v.split('=');
|
||||
|
||||
cl.push({'title' : p[0], 'class' : p[1]});
|
||||
});
|
||||
} else
|
||||
cl = tinyMCEPopup.editor.dom.getClasses();
|
||||
|
||||
if (cl.length > 0) {
|
||||
lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
|
||||
|
||||
tinymce.each(cl, function(o) {
|
||||
lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
|
||||
});
|
||||
} else
|
||||
dom.remove(dom.getParent(id, 'tr'));
|
||||
},
|
||||
|
||||
fillFileList : function(id, l) {
|
||||
var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
|
||||
|
||||
l = window[l];
|
||||
|
||||
if (l && l.length > 0) {
|
||||
lst.options[lst.options.length] = new Option('', '');
|
||||
|
||||
tinymce.each(l, function(o) {
|
||||
lst.options[lst.options.length] = new Option(o[0], o[1]);
|
||||
});
|
||||
} else
|
||||
dom.remove(dom.getParent(id, 'tr'));
|
||||
},
|
||||
|
||||
resetImageData : function() {
|
||||
var f = document.forms[0];
|
||||
|
||||
f.elements.width.value = f.elements.height.value = '';
|
||||
},
|
||||
|
||||
updateImageData : function(img, st) {
|
||||
var f = document.forms[0];
|
||||
|
||||
if (!st) {
|
||||
f.elements.width.value = img.width;
|
||||
f.elements.height.value = img.height;
|
||||
}
|
||||
|
||||
this.preloadImg = img;
|
||||
},
|
||||
|
||||
changeAppearance : function() {
|
||||
var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');
|
||||
|
||||
if (img) {
|
||||
if (ed.getParam('inline_styles')) {
|
||||
ed.dom.setAttrib(img, 'style', f.style.value);
|
||||
} else {
|
||||
img.align = f.align.value;
|
||||
img.border = f.border.value;
|
||||
img.hspace = f.hspace.value;
|
||||
img.vspace = f.vspace.value;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
changeHeight : function() {
|
||||
var f = document.forms[0], tp, t = this;
|
||||
|
||||
if (!f.constrain.checked || !t.preloadImg) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (f.width.value == "" || f.height.value == "")
|
||||
return;
|
||||
|
||||
tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;
|
||||
f.height.value = tp.toFixed(0);
|
||||
},
|
||||
|
||||
changeWidth : function() {
|
||||
var f = document.forms[0], tp, t = this;
|
||||
|
||||
if (!f.constrain.checked || !t.preloadImg) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (f.width.value == "" || f.height.value == "")
|
||||
return;
|
||||
|
||||
tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;
|
||||
f.width.value = tp.toFixed(0);
|
||||
},
|
||||
|
||||
updateStyle : function(ty) {
|
||||
var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});
|
||||
|
||||
if (tinyMCEPopup.editor.settings.inline_styles) {
|
||||
// Handle align
|
||||
if (ty == 'align') {
|
||||
dom.setStyle(img, 'float', '');
|
||||
dom.setStyle(img, 'vertical-align', '');
|
||||
|
||||
v = getSelectValue(f, 'align');
|
||||
if (v) {
|
||||
if (v == 'left' || v == 'right')
|
||||
dom.setStyle(img, 'float', v);
|
||||
else
|
||||
img.style.verticalAlign = v;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle border
|
||||
if (ty == 'border') {
|
||||
dom.setStyle(img, 'border', '');
|
||||
|
||||
v = f.border.value;
|
||||
if (v || v == '0') {
|
||||
if (v == '0')
|
||||
img.style.border = '0';
|
||||
else
|
||||
img.style.border = v + 'px solid black';
|
||||
}
|
||||
}
|
||||
|
||||
// Handle hspace
|
||||
if (ty == 'hspace') {
|
||||
dom.setStyle(img, 'marginLeft', '');
|
||||
dom.setStyle(img, 'marginRight', '');
|
||||
|
||||
v = f.hspace.value;
|
||||
if (v) {
|
||||
img.style.marginLeft = v + 'px';
|
||||
img.style.marginRight = v + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
// Handle vspace
|
||||
if (ty == 'vspace') {
|
||||
dom.setStyle(img, 'marginTop', '');
|
||||
dom.setStyle(img, 'marginBottom', '');
|
||||
|
||||
v = f.vspace.value;
|
||||
if (v) {
|
||||
img.style.marginTop = v + 'px';
|
||||
img.style.marginBottom = v + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
// Merge
|
||||
dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
|
||||
}
|
||||
},
|
||||
|
||||
changeMouseMove : function() {
|
||||
},
|
||||
|
||||
showPreviewImage : function(u, st) {
|
||||
if (!u) {
|
||||
tinyMCEPopup.dom.setHTML('prev', '');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))
|
||||
this.resetImageData();
|
||||
|
||||
u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);
|
||||
|
||||
if (!st)
|
||||
tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');
|
||||
else
|
||||
tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');
|
||||
}
|
||||
};
|
||||
|
||||
ImageDialog.preInit();
|
||||
tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
|
||||
43
include/javascript/tiny_mce/plugins/advimage/langs/en_dlg.js
vendored
Executable file
43
include/javascript/tiny_mce/plugins/advimage/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,43 @@
|
||||
tinyMCE.addI18n('en.advimage_dlg',{
|
||||
tab_general:"General",
|
||||
tab_appearance:"Appearance",
|
||||
tab_advanced:"Advanced",
|
||||
general:"General",
|
||||
title:"Title",
|
||||
preview:"Preview",
|
||||
constrain_proportions:"Constrain proportions",
|
||||
langdir:"Language direction",
|
||||
langcode:"Language code",
|
||||
long_desc:"Long description link",
|
||||
style:"Style",
|
||||
classes:"Classes",
|
||||
ltr:"Left to right",
|
||||
rtl:"Right to left",
|
||||
id:"Id",
|
||||
map:"Image map",
|
||||
swap_image:"Swap image",
|
||||
alt_image:"Alternative image",
|
||||
mouseover:"for mouse over",
|
||||
mouseout:"for mouse out",
|
||||
misc:"Miscellaneous",
|
||||
example_img:"Appearance preview image",
|
||||
missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.",
|
||||
dialog_title:"Insert/edit image",
|
||||
src:"Image URL",
|
||||
alt:"Image description",
|
||||
list:"Image list",
|
||||
border:"Border",
|
||||
dimensions:"Dimensions",
|
||||
vspace:"Vertical space",
|
||||
hspace:"Horizontal space",
|
||||
align:"Alignment",
|
||||
align_baseline:"Baseline",
|
||||
align_top:"Top",
|
||||
align_middle:"Middle",
|
||||
align_bottom:"Bottom",
|
||||
align_texttop:"Text top",
|
||||
align_textbottom:"Text bottom",
|
||||
align_left:"Left",
|
||||
align_right:"Right",
|
||||
image_list:"Image list"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/advlink/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/advlink/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.AdvancedLinkPlugin',{init:function(ed,url){this.editor=ed;ed.addCommand('mceAdvLink',function(){var se=ed.selection;if(se.isCollapsed()&&!ed.dom.getParent(se.getNode(),'A'))return;ed.windowManager.open({file:url+'/link.htm',width:480+parseInt(ed.getLang('advlink.delta_width',0)),height:400+parseInt(ed.getLang('advlink.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('link',{title:'advlink.link_desc',cmd:'mceAdvLink'});ed.addShortcut('ctrl+k','advlink.advlink_desc','mceAdvLink');ed.onNodeChange.add(function(ed,cm,n,co){cm.setDisabled('link',co&&n.nodeName!='A');cm.setActive('link',n.nodeName=='A'&&!n.name);});},getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advlink',tinymce.plugins.AdvancedLinkPlugin);})();
|
||||
58
include/javascript/tiny_mce/plugins/advlink/editor_plugin_src.js
vendored
Executable file
58
include/javascript/tiny_mce/plugins/advlink/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,58 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.AdvancedLinkPlugin', {
|
||||
init : function(ed, url) {
|
||||
this.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceAdvLink', function() {
|
||||
var se = ed.selection;
|
||||
|
||||
// No selection and not in link
|
||||
if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A'))
|
||||
return;
|
||||
|
||||
ed.windowManager.open({
|
||||
file : url + '/link.htm',
|
||||
width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)),
|
||||
height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('link', {
|
||||
title : 'advlink.link_desc',
|
||||
cmd : 'mceAdvLink'
|
||||
});
|
||||
|
||||
ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink');
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n, co) {
|
||||
cm.setDisabled('link', co && n.nodeName != 'A');
|
||||
cm.setActive('link', n.nodeName == 'A' && !n.name);
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Advanced link',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin);
|
||||
})();
|
||||
527
include/javascript/tiny_mce/plugins/advlink/js/advlink.js
vendored
Executable file
527
include/javascript/tiny_mce/plugins/advlink/js/advlink.js
vendored
Executable file
@@ -0,0 +1,527 @@
|
||||
/* Functions for the advlink plugin popup */
|
||||
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var templates = {
|
||||
"window.open" : "window.open('${url}','${target}','${options}')"
|
||||
};
|
||||
|
||||
function preinit() {
|
||||
var url;
|
||||
|
||||
if (url = tinyMCEPopup.getParam("external_link_list_url"))
|
||||
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
|
||||
}
|
||||
|
||||
function changeClass() {
|
||||
var f = document.forms[0];
|
||||
|
||||
f.classes.value = getSelectValue(f, 'classlist');
|
||||
}
|
||||
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
var formObj = document.forms[0];
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var elm = inst.selection.getNode();
|
||||
var action = "insert";
|
||||
var html;
|
||||
|
||||
document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');
|
||||
document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');
|
||||
document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href');
|
||||
document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href');
|
||||
document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');
|
||||
|
||||
// Link list
|
||||
html = getLinkListHTML('linklisthref','href');
|
||||
if (html == "")
|
||||
document.getElementById("linklisthrefrow").style.display = 'none';
|
||||
else
|
||||
document.getElementById("linklisthrefcontainer").innerHTML = html;
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('hrefbrowser'))
|
||||
document.getElementById('href').style.width = '260px';
|
||||
|
||||
if (isVisible('popupurlbrowser'))
|
||||
document.getElementById('popupurl').style.width = '180px';
|
||||
|
||||
elm = inst.dom.getParent(elm, "A");
|
||||
if (elm != null && elm.nodeName == "A")
|
||||
action = "update";
|
||||
|
||||
formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true);
|
||||
|
||||
setPopupControlsDisabled(true);
|
||||
|
||||
if (action == "update") {
|
||||
var href = inst.dom.getAttrib(elm, 'href');
|
||||
var onclick = inst.dom.getAttrib(elm, 'onclick');
|
||||
|
||||
// Setup form data
|
||||
setFormValue('href', href);
|
||||
setFormValue('title', inst.dom.getAttrib(elm, 'title'));
|
||||
setFormValue('id', inst.dom.getAttrib(elm, 'id'));
|
||||
setFormValue('style', inst.dom.getAttrib(elm, "style"));
|
||||
setFormValue('rel', inst.dom.getAttrib(elm, 'rel'));
|
||||
setFormValue('rev', inst.dom.getAttrib(elm, 'rev'));
|
||||
setFormValue('charset', inst.dom.getAttrib(elm, 'charset'));
|
||||
setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang'));
|
||||
setFormValue('dir', inst.dom.getAttrib(elm, 'dir'));
|
||||
setFormValue('lang', inst.dom.getAttrib(elm, 'lang'));
|
||||
setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
|
||||
setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
|
||||
setFormValue('type', inst.dom.getAttrib(elm, 'type'));
|
||||
setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus'));
|
||||
setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur'));
|
||||
setFormValue('onclick', onclick);
|
||||
setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick'));
|
||||
setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown'));
|
||||
setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup'));
|
||||
setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover'));
|
||||
setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove'));
|
||||
setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout'));
|
||||
setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));
|
||||
setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));
|
||||
setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));
|
||||
setFormValue('target', inst.dom.getAttrib(elm, 'target'));
|
||||
setFormValue('classes', inst.dom.getAttrib(elm, 'class'));
|
||||
|
||||
// Parse onclick data
|
||||
if (onclick != null && onclick.indexOf('window.open') != -1)
|
||||
parseWindowOpen(onclick);
|
||||
else
|
||||
parseFunction(onclick);
|
||||
|
||||
// Select by the values
|
||||
selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir'));
|
||||
selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel'));
|
||||
selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev'));
|
||||
selectByValue(formObj, 'linklisthref', href);
|
||||
|
||||
if (href.charAt(0) == '#')
|
||||
selectByValue(formObj, 'anchorlist', href);
|
||||
|
||||
addClassesToList('classlist', 'advlink_styles');
|
||||
|
||||
selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);
|
||||
selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);
|
||||
} else
|
||||
addClassesToList('classlist', 'advlink_styles');
|
||||
}
|
||||
|
||||
function checkPrefix(n) {
|
||||
if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))
|
||||
n.value = 'mailto:' + n.value;
|
||||
|
||||
if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))
|
||||
n.value = 'http://' + n.value;
|
||||
}
|
||||
|
||||
function setFormValue(name, value) {
|
||||
document.forms[0].elements[name].value = value;
|
||||
}
|
||||
|
||||
function parseWindowOpen(onclick) {
|
||||
var formObj = document.forms[0];
|
||||
|
||||
// Preprocess center code
|
||||
if (onclick.indexOf('return false;') != -1) {
|
||||
formObj.popupreturn.checked = true;
|
||||
onclick = onclick.replace('return false;', '');
|
||||
} else
|
||||
formObj.popupreturn.checked = false;
|
||||
|
||||
var onClickData = parseLink(onclick);
|
||||
|
||||
if (onClickData != null) {
|
||||
formObj.ispopup.checked = true;
|
||||
setPopupControlsDisabled(false);
|
||||
|
||||
var onClickWindowOptions = parseOptions(onClickData['options']);
|
||||
var url = onClickData['url'];
|
||||
|
||||
formObj.popupname.value = onClickData['target'];
|
||||
formObj.popupurl.value = url;
|
||||
formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');
|
||||
formObj.popupheight.value = getOption(onClickWindowOptions, 'height');
|
||||
|
||||
formObj.popupleft.value = getOption(onClickWindowOptions, 'left');
|
||||
formObj.popuptop.value = getOption(onClickWindowOptions, 'top');
|
||||
|
||||
if (formObj.popupleft.value.indexOf('screen') != -1)
|
||||
formObj.popupleft.value = "c";
|
||||
|
||||
if (formObj.popuptop.value.indexOf('screen') != -1)
|
||||
formObj.popuptop.value = "c";
|
||||
|
||||
formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";
|
||||
formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";
|
||||
formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";
|
||||
formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";
|
||||
formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";
|
||||
formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";
|
||||
formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";
|
||||
|
||||
buildOnClick();
|
||||
}
|
||||
}
|
||||
|
||||
function parseFunction(onclick) {
|
||||
var formObj = document.forms[0];
|
||||
var onClickData = parseLink(onclick);
|
||||
|
||||
// TODO: Add stuff here
|
||||
}
|
||||
|
||||
function getOption(opts, name) {
|
||||
return typeof(opts[name]) == "undefined" ? "" : opts[name];
|
||||
}
|
||||
|
||||
function setPopupControlsDisabled(state) {
|
||||
var formObj = document.forms[0];
|
||||
|
||||
formObj.popupname.disabled = state;
|
||||
formObj.popupurl.disabled = state;
|
||||
formObj.popupwidth.disabled = state;
|
||||
formObj.popupheight.disabled = state;
|
||||
formObj.popupleft.disabled = state;
|
||||
formObj.popuptop.disabled = state;
|
||||
formObj.popuplocation.disabled = state;
|
||||
formObj.popupscrollbars.disabled = state;
|
||||
formObj.popupmenubar.disabled = state;
|
||||
formObj.popupresizable.disabled = state;
|
||||
formObj.popuptoolbar.disabled = state;
|
||||
formObj.popupstatus.disabled = state;
|
||||
formObj.popupreturn.disabled = state;
|
||||
formObj.popupdependent.disabled = state;
|
||||
|
||||
setBrowserDisabled('popupurlbrowser', state);
|
||||
}
|
||||
|
||||
function parseLink(link) {
|
||||
link = link.replace(new RegExp(''', 'g'), "'");
|
||||
|
||||
var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");
|
||||
|
||||
// Is function name a template function
|
||||
var template = templates[fnName];
|
||||
if (template) {
|
||||
// Build regexp
|
||||
var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));
|
||||
var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";
|
||||
var replaceStr = "";
|
||||
for (var i=0; i<variableNames.length; i++) {
|
||||
// Is string value
|
||||
if (variableNames[i].indexOf("'${") != -1)
|
||||
regExp += "'(.*)'";
|
||||
else // Number value
|
||||
regExp += "([0-9]*)";
|
||||
|
||||
replaceStr += "$" + (i+1);
|
||||
|
||||
// Cleanup variable name
|
||||
variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");
|
||||
|
||||
if (i != variableNames.length-1) {
|
||||
regExp += "\\s*,\\s*";
|
||||
replaceStr += "<delim>";
|
||||
} else
|
||||
regExp += ".*";
|
||||
}
|
||||
|
||||
regExp += "\\);?";
|
||||
|
||||
// Build variable array
|
||||
var variables = [];
|
||||
variables["_function"] = fnName;
|
||||
var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');
|
||||
for (var i=0; i<variableNames.length; i++)
|
||||
variables[variableNames[i]] = variableValues[i];
|
||||
|
||||
return variables;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function parseOptions(opts) {
|
||||
if (opts == null || opts == "")
|
||||
return [];
|
||||
|
||||
// Cleanup the options
|
||||
opts = opts.toLowerCase();
|
||||
opts = opts.replace(/;/g, ",");
|
||||
opts = opts.replace(/[^0-9a-z=,]/g, "");
|
||||
|
||||
var optionChunks = opts.split(',');
|
||||
var options = [];
|
||||
|
||||
for (var i=0; i<optionChunks.length; i++) {
|
||||
var parts = optionChunks[i].split('=');
|
||||
|
||||
if (parts.length == 2)
|
||||
options[parts[0]] = parts[1];
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
function buildOnClick() {
|
||||
var formObj = document.forms[0];
|
||||
|
||||
if (!formObj.ispopup.checked) {
|
||||
formObj.onclick.value = "";
|
||||
return;
|
||||
}
|
||||
|
||||
var onclick = "window.open('";
|
||||
var url = formObj.popupurl.value;
|
||||
|
||||
onclick += url + "','";
|
||||
onclick += formObj.popupname.value + "','";
|
||||
|
||||
if (formObj.popuplocation.checked)
|
||||
onclick += "location=yes,";
|
||||
|
||||
if (formObj.popupscrollbars.checked)
|
||||
onclick += "scrollbars=yes,";
|
||||
|
||||
if (formObj.popupmenubar.checked)
|
||||
onclick += "menubar=yes,";
|
||||
|
||||
if (formObj.popupresizable.checked)
|
||||
onclick += "resizable=yes,";
|
||||
|
||||
if (formObj.popuptoolbar.checked)
|
||||
onclick += "toolbar=yes,";
|
||||
|
||||
if (formObj.popupstatus.checked)
|
||||
onclick += "status=yes,";
|
||||
|
||||
if (formObj.popupdependent.checked)
|
||||
onclick += "dependent=yes,";
|
||||
|
||||
if (formObj.popupwidth.value != "")
|
||||
onclick += "width=" + formObj.popupwidth.value + ",";
|
||||
|
||||
if (formObj.popupheight.value != "")
|
||||
onclick += "height=" + formObj.popupheight.value + ",";
|
||||
|
||||
if (formObj.popupleft.value != "") {
|
||||
if (formObj.popupleft.value != "c")
|
||||
onclick += "left=" + formObj.popupleft.value + ",";
|
||||
else
|
||||
onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";
|
||||
}
|
||||
|
||||
if (formObj.popuptop.value != "") {
|
||||
if (formObj.popuptop.value != "c")
|
||||
onclick += "top=" + formObj.popuptop.value + ",";
|
||||
else
|
||||
onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";
|
||||
}
|
||||
|
||||
if (onclick.charAt(onclick.length-1) == ',')
|
||||
onclick = onclick.substring(0, onclick.length-1);
|
||||
|
||||
onclick += "');";
|
||||
|
||||
if (formObj.popupreturn.checked)
|
||||
onclick += "return false;";
|
||||
|
||||
// tinyMCE.debug(onclick);
|
||||
|
||||
formObj.onclick.value = onclick;
|
||||
|
||||
if (formObj.href.value == "")
|
||||
formObj.href.value = url;
|
||||
}
|
||||
|
||||
function setAttrib(elm, attrib, value) {
|
||||
var formObj = document.forms[0];
|
||||
var valueElm = formObj.elements[attrib.toLowerCase()];
|
||||
var dom = tinyMCEPopup.editor.dom;
|
||||
|
||||
if (typeof(value) == "undefined" || value == null) {
|
||||
value = "";
|
||||
|
||||
if (valueElm)
|
||||
value = valueElm.value;
|
||||
}
|
||||
|
||||
// Clean up the style
|
||||
if (attrib == 'style')
|
||||
value = dom.serializeStyle(dom.parseStyle(value));
|
||||
|
||||
dom.setAttrib(elm, attrib, value);
|
||||
}
|
||||
|
||||
function getAnchorListHTML(id, target) {
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var nodes = inst.dom.select('a.mceItemAnchor,img.mceItemAnchor'), name, i;
|
||||
var html = "";
|
||||
|
||||
html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" o2nfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';
|
||||
html += 'this.options[this.selectedIndex].value;">';
|
||||
html += '<option value="">---</option>';
|
||||
|
||||
for (i=0; i<nodes.length; i++) {
|
||||
if ((name = inst.dom.getAttrib(nodes[i], "name")) != "")
|
||||
html += '<option value="#' + name + '">' + name + '</option>';
|
||||
}
|
||||
|
||||
html += '</select>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function insertAction() {
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var elm, elementArray, i;
|
||||
|
||||
elm = inst.selection.getNode();
|
||||
checkPrefix(document.forms[0].href);
|
||||
|
||||
elm = inst.dom.getParent(elm, "A");
|
||||
|
||||
// Remove element if there is no href
|
||||
if (!document.forms[0].href.value) {
|
||||
tinyMCEPopup.execCommand("mceBeginUndoLevel");
|
||||
i = inst.selection.getBookmark();
|
||||
inst.dom.remove(elm, 1);
|
||||
inst.selection.moveToBookmark(i);
|
||||
tinyMCEPopup.execCommand("mceEndUndoLevel");
|
||||
tinyMCEPopup.close();
|
||||
return;
|
||||
}
|
||||
|
||||
tinyMCEPopup.execCommand("mceBeginUndoLevel");
|
||||
|
||||
// Create new anchor elements
|
||||
if (elm == null) {
|
||||
tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});
|
||||
|
||||
elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});
|
||||
for (i=0; i<elementArray.length; i++)
|
||||
setAllAttribs(elm = elementArray[i]);
|
||||
} else
|
||||
setAllAttribs(elm);
|
||||
|
||||
// Don't move caret if selection was image
|
||||
if (elm.childNodes.length != 1 || elm.firstChild.nodeName != 'IMG') {
|
||||
inst.focus();
|
||||
inst.selection.select(elm);
|
||||
inst.selection.collapse(0);
|
||||
tinyMCEPopup.storeSelection();
|
||||
}
|
||||
|
||||
tinyMCEPopup.execCommand("mceEndUndoLevel");
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function setAllAttribs(elm) {
|
||||
var formObj = document.forms[0];
|
||||
var href = formObj.href.value;
|
||||
var target = getSelectValue(formObj, 'targetlist');
|
||||
|
||||
setAttrib(elm, 'href', href);
|
||||
setAttrib(elm, 'title');
|
||||
setAttrib(elm, 'target', target == '_self' ? '' : target);
|
||||
setAttrib(elm, 'id');
|
||||
setAttrib(elm, 'style');
|
||||
setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));
|
||||
setAttrib(elm, 'rel');
|
||||
setAttrib(elm, 'rev');
|
||||
setAttrib(elm, 'charset');
|
||||
setAttrib(elm, 'hreflang');
|
||||
setAttrib(elm, 'dir');
|
||||
setAttrib(elm, 'lang');
|
||||
setAttrib(elm, 'tabindex');
|
||||
setAttrib(elm, 'accesskey');
|
||||
setAttrib(elm, 'type');
|
||||
setAttrib(elm, 'onfocus');
|
||||
setAttrib(elm, 'onblur');
|
||||
setAttrib(elm, 'onclick');
|
||||
setAttrib(elm, 'ondblclick');
|
||||
setAttrib(elm, 'onmousedown');
|
||||
setAttrib(elm, 'onmouseup');
|
||||
setAttrib(elm, 'onmouseover');
|
||||
setAttrib(elm, 'onmousemove');
|
||||
setAttrib(elm, 'onmouseout');
|
||||
setAttrib(elm, 'onkeypress');
|
||||
setAttrib(elm, 'onkeydown');
|
||||
setAttrib(elm, 'onkeyup');
|
||||
|
||||
// Refresh in old MSIE
|
||||
if (tinyMCE.isMSIE5)
|
||||
elm.outerHTML = elm.outerHTML;
|
||||
}
|
||||
|
||||
function getSelectValue(form_obj, field_name) {
|
||||
var elm = form_obj.elements[field_name];
|
||||
|
||||
if (!elm || elm.options == null || elm.selectedIndex == -1)
|
||||
return "";
|
||||
|
||||
return elm.options[elm.selectedIndex].value;
|
||||
}
|
||||
|
||||
function getLinkListHTML(elm_id, target_form_element, onchange_func) {
|
||||
if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)
|
||||
return "";
|
||||
|
||||
var html = "";
|
||||
|
||||
html += '<select id="' + elm_id + '" name="' + elm_id + '"';
|
||||
html += ' class="mceLinkList" onfoc2us="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
|
||||
html += 'this.options[this.selectedIndex].value;';
|
||||
|
||||
if (typeof(onchange_func) != "undefined")
|
||||
html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,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>';
|
||||
|
||||
return html;
|
||||
|
||||
// tinyMCE.debug('-- image list start --', html, '-- image list end --');
|
||||
}
|
||||
|
||||
function getTargetListHTML(elm_id, target_form_element) {
|
||||
var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');
|
||||
var html = '';
|
||||
|
||||
html += '<select id="' + elm_id + '" name="' + elm_id + '" onf2ocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
|
||||
html += 'this.options[this.selectedIndex].value;">';
|
||||
html += '<option value="_self">' + tinyMCEPopup.getLang('advlink_dlg.target_same') + '</option>';
|
||||
html += '<option value="_blank">' + tinyMCEPopup.getLang('advlink_dlg.target_blank') + ' (_blank)</option>';
|
||||
html += '<option value="_parent">' + tinyMCEPopup.getLang('advlink_dlg.target_parent') + ' (_parent)</option>';
|
||||
html += '<option value="_top">' + tinyMCEPopup.getLang('advlink_dlg.target_top') + ' (_top)</option>';
|
||||
|
||||
for (var i=0; i<targets.length; i++) {
|
||||
var key, value;
|
||||
|
||||
if (targets[i] == "")
|
||||
continue;
|
||||
|
||||
key = targets[i].split('=')[0];
|
||||
value = targets[i].split('=')[1];
|
||||
|
||||
html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';
|
||||
}
|
||||
|
||||
html += '</select>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
// While loading
|
||||
preinit();
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
52
include/javascript/tiny_mce/plugins/advlink/langs/en_dlg.js
vendored
Executable file
52
include/javascript/tiny_mce/plugins/advlink/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,52 @@
|
||||
tinyMCE.addI18n('en.advlink_dlg',{
|
||||
title:"Insert/edit link",
|
||||
url:"Link URL",
|
||||
target:"Target",
|
||||
titlefield:"Title",
|
||||
is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",
|
||||
is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",
|
||||
list:"Link list",
|
||||
general_tab:"General",
|
||||
popup_tab:"Popup",
|
||||
events_tab:"Events",
|
||||
advanced_tab:"Advanced",
|
||||
general_props:"General properties",
|
||||
popup_props:"Popup properties",
|
||||
event_props:"Events",
|
||||
advanced_props:"Advanced properties",
|
||||
popup_opts:"Options",
|
||||
anchor_names:"Anchors",
|
||||
target_same:"Open in this window / frame",
|
||||
target_parent:"Open in parent window / frame",
|
||||
target_top:"Open in top frame (replaces all frames)",
|
||||
target_blank:"Open in new window",
|
||||
popup:"Javascript popup",
|
||||
popup_url:"Popup URL",
|
||||
popup_name:"Window name",
|
||||
popup_return:"Insert 'return false'",
|
||||
popup_scrollbars:"Show scrollbars",
|
||||
popup_statusbar:"Show status bar",
|
||||
popup_toolbar:"Show toolbars",
|
||||
popup_menubar:"Show menu bar",
|
||||
popup_location:"Show location bar",
|
||||
popup_resizable:"Make window resizable",
|
||||
popup_dependent:"Dependent (Mozilla/Firefox only)",
|
||||
popup_size:"Size",
|
||||
popup_position:"Position (X/Y)",
|
||||
id:"Id",
|
||||
style:"Style",
|
||||
classes:"Classes",
|
||||
target_name:"Target name",
|
||||
langdir:"Language direction",
|
||||
target_langcode:"Target language",
|
||||
langcode:"Language code",
|
||||
encoding:"Target character encoding",
|
||||
mime:"Target MIME type",
|
||||
rel:"Relationship page to target",
|
||||
rev:"Relationship target to page",
|
||||
tabindex:"Tabindex",
|
||||
accesskey:"Accesskey",
|
||||
ltr:"Left to right",
|
||||
rtl:"Right to left",
|
||||
link_list:"Link list"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/autosave/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/autosave/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.AutoSavePlugin',{init:function(ed,url){var t=this;t.editor=ed;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;},getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinymce.majorVersion+"."+tinymce.minorVersion};},'static':{_beforeUnloadHandler:function(){var msg;tinymce.each(tinyMCE.editors,function(ed){if(ed.getParam("fullscreen_is_enabled"))return;if(ed.isDirty()){msg=ed.getLang("autosave.unload_msg");return false;}});return msg;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSavePlugin);})();
|
||||
51
include/javascript/tiny_mce/plugins/autosave/editor_plugin_src.js
vendored
Executable file
51
include/javascript/tiny_mce/plugins/autosave/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.AutoSavePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
window.onbeforeunload = tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Auto save',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private plugin internal methods
|
||||
|
||||
'static' : {
|
||||
_beforeUnloadHandler : function() {
|
||||
var msg;
|
||||
|
||||
tinymce.each(tinyMCE.editors, function(ed) {
|
||||
if (ed.getParam("fullscreen_is_enabled"))
|
||||
return;
|
||||
|
||||
if (ed.isDirty()) {
|
||||
msg = ed.getLang("autosave.unload_msg");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSavePlugin);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/bbcode/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/bbcode/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.BBCodePlugin',{init:function(ed,url){var t=this,dialect=ed.getParam('bbcode_dialect','punbb').toLowerCase();ed.onBeforeSetContent.add(function(ed,o){o.content=t['_'+dialect+'_bbcode2html'](o.content);});ed.onPostProcess.add(function(ed,o){if(o.set)o.content=t['_'+dialect+'_bbcode2html'](o.content);if(o.get)o.content=t['_'+dialect+'_html2bbcode'](o.content);});},getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_punbb_html2bbcode:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");rep(/<\/(strong|b)>/gi,"[/b]");rep(/<(strong|b)>/gi,"[b]");rep(/<\/(em|i)>/gi,"[/i]");rep(/<(em|i)>/gi,"[i]");rep(/<\/u>/gi,"[/u]");rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");rep(/<u>/gi,"[u]");rep(/<blockquote[^>]*>/gi,"[quote]");rep(/<\/blockquote>/gi,"[/quote]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/ /gi," ");rep(/"/gi,"\"");rep(/</gi,"<");rep(/>/gi,">");rep(/&/gi,"&");return s;},_punbb_bbcode2html:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");return s;}});tinymce.PluginManager.add('bbcode',tinymce.plugins.BBCodePlugin);})();
|
||||
117
include/javascript/tiny_mce/plugins/bbcode/editor_plugin_src.js
vendored
Executable file
117
include/javascript/tiny_mce/plugins/bbcode/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,117 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.BBCodePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();
|
||||
|
||||
ed.onBeforeSetContent.add(function(ed, o) {
|
||||
o.content = t['_' + dialect + '_bbcode2html'](o.content);
|
||||
});
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
if (o.set)
|
||||
o.content = t['_' + dialect + '_bbcode2html'](o.content);
|
||||
|
||||
if (o.get)
|
||||
o.content = t['_' + dialect + '_html2bbcode'](o.content);
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'BBCode Plugin',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
// HTML -> BBCode in PunBB dialect
|
||||
_punbb_html2bbcode : function(s) {
|
||||
s = tinymce.trim(s);
|
||||
|
||||
function rep(re, str) {
|
||||
s = s.replace(re, str);
|
||||
};
|
||||
|
||||
// example: <strong> to [b]
|
||||
rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
|
||||
rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
|
||||
rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
|
||||
rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
|
||||
rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
|
||||
rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
|
||||
rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
|
||||
rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");
|
||||
rep(/<font>(.*?)<\/font>/gi,"$1");
|
||||
rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
|
||||
rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
|
||||
rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");
|
||||
rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");
|
||||
rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");
|
||||
rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");
|
||||
rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");
|
||||
rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
|
||||
rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");
|
||||
rep(/<\/(strong|b)>/gi,"[/b]");
|
||||
rep(/<(strong|b)>/gi,"[b]");
|
||||
rep(/<\/(em|i)>/gi,"[/i]");
|
||||
rep(/<(em|i)>/gi,"[i]");
|
||||
rep(/<\/u>/gi,"[/u]");
|
||||
rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
|
||||
rep(/<u>/gi,"[u]");
|
||||
rep(/<blockquote[^>]*>/gi,"[quote]");
|
||||
rep(/<\/blockquote>/gi,"[/quote]");
|
||||
rep(/<br \/>/gi,"\n");
|
||||
rep(/<br\/>/gi,"\n");
|
||||
rep(/<br>/gi,"\n");
|
||||
rep(/<p>/gi,"");
|
||||
rep(/<\/p>/gi,"\n");
|
||||
rep(/ /gi," ");
|
||||
rep(/"/gi,"\"");
|
||||
rep(/</gi,"<");
|
||||
rep(/>/gi,">");
|
||||
rep(/&/gi,"&");
|
||||
|
||||
return s;
|
||||
},
|
||||
|
||||
// BBCode -> HTML from PunBB dialect
|
||||
_punbb_bbcode2html : function(s) {
|
||||
s = tinymce.trim(s);
|
||||
|
||||
function rep(re, str) {
|
||||
s = s.replace(re, str);
|
||||
};
|
||||
|
||||
// example: [b] to <strong>
|
||||
rep(/\n/gi,"<br />");
|
||||
rep(/\[b\]/gi,"<strong>");
|
||||
rep(/\[\/b\]/gi,"</strong>");
|
||||
rep(/\[i\]/gi,"<em>");
|
||||
rep(/\[\/i\]/gi,"</em>");
|
||||
rep(/\[u\]/gi,"<u>");
|
||||
rep(/\[\/u\]/gi,"</u>");
|
||||
rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
|
||||
rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
|
||||
rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
|
||||
rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
|
||||
rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");
|
||||
rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");
|
||||
|
||||
return s;
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/compat2x/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/compat2x/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
616
include/javascript/tiny_mce/plugins/compat2x/editor_plugin_src.js
vendored
Executable file
616
include/javascript/tiny_mce/plugins/compat2x/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,616 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;
|
||||
|
||||
tinymce.create('tinymce.plugins.Compat2x', {
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Compat2x',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',
|
||||
version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
(function() {
|
||||
// Extend tinyMCE/EditorManager
|
||||
tinymce.extend(tinyMCE, {
|
||||
addToLang : function(p, l) {
|
||||
each(l, function(v, k) {
|
||||
tinyMCE.i18n[(tinyMCE.settings.language || 'en') + '.' + (p ? p + '_' : '') + k] = v;
|
||||
});
|
||||
},
|
||||
|
||||
getInstanceById : function(n) {
|
||||
return this.get(n);
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
(function() {
|
||||
var EditorManager = tinymce.EditorManager;
|
||||
|
||||
tinyMCE.instances = {};
|
||||
tinyMCE.plugins = {};
|
||||
tinymce.PluginManager.onAdd.add(function(pm, n, p) {
|
||||
tinyMCE.plugins[n] = p;
|
||||
});
|
||||
|
||||
tinyMCE.majorVersion = tinymce.majorVersion;
|
||||
tinyMCE.minorVersion = tinymce.minorVersion;
|
||||
tinyMCE.releaseDate = tinymce.releaseDate;
|
||||
tinyMCE.baseURL = tinymce.baseURL;
|
||||
tinyMCE.isIE = tinyMCE.isMSIE = tinymce.isIE || tinymce.isOpera;
|
||||
tinyMCE.isMSIE5 = tinymce.isIE;
|
||||
tinyMCE.isMSIE5_0 = tinymce.isIE;
|
||||
tinyMCE.isMSIE7 = tinymce.isIE;
|
||||
tinyMCE.isGecko = tinymce.isGecko;
|
||||
tinyMCE.isSafari = tinymce.isWebKit;
|
||||
tinyMCE.isOpera = tinymce.isOpera;
|
||||
tinyMCE.isMac = false;
|
||||
tinyMCE.isNS7 = false;
|
||||
tinyMCE.isNS71 = false;
|
||||
tinyMCE.compat = true;
|
||||
|
||||
// Extend tinyMCE class
|
||||
TinyMCE_Engine = tinyMCE;
|
||||
tinymce.extend(tinyMCE, {
|
||||
getParam : function(n, dv) {
|
||||
return this.activeEditor.getParam(n, dv);
|
||||
},
|
||||
|
||||
addEvent : function(e, na, f, sc) {
|
||||
tinymce.dom.Event.add(e, na, f, sc || this);
|
||||
},
|
||||
|
||||
getControlHTML : function(n) {
|
||||
return EditorManager.activeEditor.controlManager.createControl(n);
|
||||
},
|
||||
|
||||
loadCSS : function(u) {
|
||||
tinymce.DOM.loadCSS(u);
|
||||
},
|
||||
|
||||
importCSS : function(doc, u) {
|
||||
if (doc == document)
|
||||
this.loadCSS(u);
|
||||
else
|
||||
new tinymce.dom.DOMUtils(doc).loadCSS(u);
|
||||
},
|
||||
|
||||
log : function() {
|
||||
console.debug.apply(console, arguments);
|
||||
},
|
||||
|
||||
getLang : function(n, dv) {
|
||||
var v = EditorManager.activeEditor.getLang(n.replace(/^lang_/g, ''), dv);
|
||||
|
||||
// Is number
|
||||
if (/^[0-9\-.]+$/g.test(v))
|
||||
return parseInt(v);
|
||||
|
||||
return v;
|
||||
},
|
||||
|
||||
isInstance : function(o) {
|
||||
return o != null && typeof(o) == "object" && o.execCommand;
|
||||
},
|
||||
|
||||
triggerNodeChange : function() {
|
||||
EditorManager.activeEditor.nodeChanged();
|
||||
},
|
||||
|
||||
regexpReplace : function(in_str, reg_exp, replace_str, opts) {
|
||||
var re;
|
||||
|
||||
if (in_str == null)
|
||||
return in_str;
|
||||
|
||||
if (typeof(opts) == "undefined")
|
||||
opts = 'g';
|
||||
|
||||
re = new RegExp(reg_exp, opts);
|
||||
|
||||
return in_str.replace(re, replace_str);
|
||||
},
|
||||
|
||||
trim : function(s) {
|
||||
return tinymce.trim(s);
|
||||
},
|
||||
|
||||
xmlEncode : function(s) {
|
||||
return tinymce.DOM.encode(s);
|
||||
},
|
||||
|
||||
explode : function(s, d) {
|
||||
var o = [];
|
||||
|
||||
tinymce.each(s.split(d), function(v) {
|
||||
if (v != '')
|
||||
o.push(v);
|
||||
});
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
switchClass : function(id, cls) {
|
||||
var b;
|
||||
|
||||
if (/^mceButton/.test(cls)) {
|
||||
b = EditorManager.activeEditor.controlManager.get(id);
|
||||
|
||||
if (!b)
|
||||
return;
|
||||
|
||||
switch (cls) {
|
||||
case "mceButtonNormal":
|
||||
b.setDisabled(false);
|
||||
b.setActive(false);
|
||||
return;
|
||||
|
||||
case "mceButtonDisabled":
|
||||
b.setDisabled(true);
|
||||
return;
|
||||
|
||||
case "mceButtonSelected":
|
||||
b.setActive(true);
|
||||
b.setDisabled(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
addCSSClass : function(e, n, b) {
|
||||
return tinymce.DOM.addClass(e, n, b);
|
||||
},
|
||||
|
||||
hasCSSClass : function(e, n) {
|
||||
return tinymce.DOM.hasClass(e, n);
|
||||
},
|
||||
|
||||
removeCSSClass : function(e, n) {
|
||||
return tinymce.DOM.removeClass(e, n);
|
||||
},
|
||||
|
||||
getCSSClasses : function() {
|
||||
var cl = EditorManager.activeEditor.dom.getClasses(), o = [];
|
||||
|
||||
each(cl, function(c) {
|
||||
o.push(c['class']);
|
||||
});
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
setWindowArg : function(n, v) {
|
||||
EditorManager.activeEditor.windowManager.params[n] = v;
|
||||
},
|
||||
|
||||
getWindowArg : function(n, dv) {
|
||||
var wm = EditorManager.activeEditor.windowManager, v;
|
||||
|
||||
v = wm.getParam(n);
|
||||
if (v === '')
|
||||
return '';
|
||||
|
||||
return v || wm.getFeature(n) || dv;
|
||||
},
|
||||
|
||||
getParentNode : function(n, f) {
|
||||
return this._getDOM().getParent(n, f);
|
||||
},
|
||||
|
||||
selectElements : function(n, na, f) {
|
||||
var i, a = [], nl, x;
|
||||
|
||||
for (x=0, na = na.split(','); x<na.length; x++)
|
||||
for (i=0, nl = n.getElementsByTagName(na[x]); i<nl.length; i++)
|
||||
(!f || f(nl[i])) && a.push(nl[i]);
|
||||
|
||||
return a;
|
||||
},
|
||||
|
||||
getNodeTree : function(n, na, t, nn) {
|
||||
return this.selectNodes(n, function(n) {
|
||||
return (!t || n.nodeType == t) && (!nn || n.nodeName == nn);
|
||||
}, na ? na : []);
|
||||
},
|
||||
|
||||
getAttrib : function(e, n, dv) {
|
||||
return this._getDOM().getAttrib(e, n, dv);
|
||||
},
|
||||
|
||||
setAttrib : function(e, n, v) {
|
||||
return this._getDOM().setAttrib(e, n, v);
|
||||
},
|
||||
|
||||
getElementsByAttributeValue : function(n, e, a, v) {
|
||||
var i, nl = n.getElementsByTagName(e), o = [];
|
||||
|
||||
for (i=0; i<nl.length; i++) {
|
||||
if (tinyMCE.getAttrib(nl[i], a).indexOf(v) != -1)
|
||||
o[o.length] = nl[i];
|
||||
}
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
selectNodes : function(n, f, a) {
|
||||
var i;
|
||||
|
||||
if (!a)
|
||||
a = [];
|
||||
|
||||
if (f(n))
|
||||
a[a.length] = n;
|
||||
|
||||
if (n.hasChildNodes()) {
|
||||
for (i=0; i<n.childNodes.length; i++)
|
||||
tinyMCE.selectNodes(n.childNodes[i], f, a);
|
||||
}
|
||||
|
||||
return a;
|
||||
},
|
||||
|
||||
getContent : function() {
|
||||
return EditorManager.activeEditor.getContent();
|
||||
},
|
||||
|
||||
getParentElement : function(n, na, f) {
|
||||
if (na)
|
||||
na = new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') + ')$', 'g');
|
||||
|
||||
return this._getDOM().getParent(n, function(n) {
|
||||
return n.nodeType == 1 && (!na || na.test(n.nodeName)) && (!f || f(n));
|
||||
}, this.activeEditor.getBody());
|
||||
},
|
||||
|
||||
importPluginLanguagePack : function(n) {
|
||||
tinymce.PluginManager.requireLangPack(n);
|
||||
},
|
||||
|
||||
getButtonHTML : function(cn, lang, img, c, u, v) {
|
||||
var ed = EditorManager.activeEditor;
|
||||
|
||||
img = img.replace(/\{\$pluginurl\}/g, tinyMCE.pluginURL);
|
||||
img = img.replace(/\{\$themeurl\}/g, tinyMCE.themeURL);
|
||||
lang = lang.replace(/^lang_/g, '');
|
||||
|
||||
return ed.controlManager.createButton(cn, {
|
||||
title : lang,
|
||||
command : c,
|
||||
ui : u,
|
||||
value : v,
|
||||
scope : this,
|
||||
'class' : 'compat',
|
||||
image : img
|
||||
});
|
||||
},
|
||||
|
||||
addSelectAccessibility : function(e, s, w) {
|
||||
// Add event handlers
|
||||
if (!s._isAccessible) {
|
||||
s.onkeydown = tinyMCE.accessibleEventHandler;
|
||||
s.onblur = tinyMCE.accessibleEventHandler;
|
||||
s._isAccessible = true;
|
||||
s._win = w;
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
accessibleEventHandler : function(e) {
|
||||
var elm, win = this._win;
|
||||
|
||||
e = tinymce.isIE ? win.event : e;
|
||||
elm = tinymce.isIE ? e.srcElement : e.target;
|
||||
|
||||
// Unpiggyback onchange on blur
|
||||
if (e.type == "blur") {
|
||||
if (elm.oldonchange) {
|
||||
elm.onchange = elm.oldonchange;
|
||||
elm.oldonchange = null;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Piggyback onchange
|
||||
if (elm.nodeName == "SELECT" && !elm.oldonchange) {
|
||||
elm.oldonchange = elm.onchange;
|
||||
elm.onchange = null;
|
||||
}
|
||||
|
||||
// Execute onchange and remove piggyback
|
||||
if (e.keyCode == 13 || e.keyCode == 32) {
|
||||
elm.onchange = elm.oldonchange;
|
||||
elm.onchange();
|
||||
elm.oldonchange = null;
|
||||
|
||||
tinyMCE.cancelEvent(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
cancelEvent : function(e) {
|
||||
return tinymce.dom.Event.cancel(e);
|
||||
},
|
||||
|
||||
handleVisualAid : function(e) {
|
||||
EditorManager.activeEditor.addVisual(e);
|
||||
},
|
||||
|
||||
getAbsPosition : function(n, r) {
|
||||
return tinymce.DOM.getPos(n, r);
|
||||
},
|
||||
|
||||
cleanupEventStr : function(s) {
|
||||
s = "" + s;
|
||||
s = s.replace('function anonymous()\n{\n', '');
|
||||
s = s.replace('\n}', '');
|
||||
s = s.replace(/^return true;/gi, ''); // Remove event blocker
|
||||
|
||||
return s;
|
||||
},
|
||||
|
||||
getVisualAidClass : function(s) {
|
||||
// TODO: Implement
|
||||
return s;
|
||||
},
|
||||
|
||||
parseStyle : function(s) {
|
||||
return this._getDOM().parseStyle(s);
|
||||
},
|
||||
|
||||
serializeStyle : function(s) {
|
||||
return this._getDOM().serializeStyle(s);
|
||||
},
|
||||
|
||||
openWindow : function(tpl, args) {
|
||||
var ed = EditorManager.activeEditor, o = {}, n;
|
||||
|
||||
// Convert name/value array to object
|
||||
for (n in tpl)
|
||||
o[n] = tpl[n];
|
||||
|
||||
tpl = o;
|
||||
|
||||
args = args || {};
|
||||
tpl.url = new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);
|
||||
tpl.inline = tpl.inline || args.inline;
|
||||
|
||||
ed.windowManager.open(tpl, args);
|
||||
},
|
||||
|
||||
closeWindow : function(win) {
|
||||
EditorManager.activeEditor.windowManager.close(win);
|
||||
},
|
||||
|
||||
getOuterHTML : function(e) {
|
||||
return tinymce.DOM.getOuterHTML(e);
|
||||
},
|
||||
|
||||
setOuterHTML : function(e, h, d) {
|
||||
return tinymce.DOM.setOuterHTML(e, h, d);
|
||||
},
|
||||
|
||||
hasPlugin : function(n) {
|
||||
return tinymce.PluginManager.get(n) != null;
|
||||
},
|
||||
|
||||
_setEventsEnabled : function() {
|
||||
// Ignore it!!
|
||||
},
|
||||
|
||||
addPlugin : function(pn, f) {
|
||||
var t = this;
|
||||
|
||||
function PluginWrapper(ed) {
|
||||
tinyMCE.selectedInstance = ed;
|
||||
|
||||
ed.onInit.add(function() {
|
||||
t.settings = ed.settings;
|
||||
t.settings['base_href'] = tinyMCE.documentBasePath;
|
||||
tinyMCE.settings = t.settings;
|
||||
tinyMCE.documentBasePath = ed.documentBasePath;
|
||||
//ed.formElement = DOM.get(ed.id);
|
||||
|
||||
if (f.initInstance)
|
||||
f.initInstance(ed);
|
||||
|
||||
ed.contentDocument = ed.getDoc();
|
||||
ed.contentWindow = ed.getWin();
|
||||
ed.undoRedo = ed.undoManager;
|
||||
ed.startContent = ed.getContent({format : 'raw'});
|
||||
|
||||
tinyMCE.instances[ed.id] = ed;
|
||||
tinyMCE.loadedFiles = [];
|
||||
});
|
||||
|
||||
ed.onActivate.add(function() {
|
||||
tinyMCE.settings = ed.settings;
|
||||
tinyMCE.selectedInstance = ed;
|
||||
});
|
||||
|
||||
/* if (f.removeInstance) {
|
||||
ed.onDestroy.add(function() {
|
||||
return f.removeInstance(ed.id);
|
||||
});
|
||||
}*/
|
||||
|
||||
if (f.handleNodeChange) {
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
f.handleNodeChange(ed.id, n, 0, 0, false, !ed.selection.isCollapsed());
|
||||
});
|
||||
}
|
||||
|
||||
if (f.onChange) {
|
||||
ed.onChange.add(function(ed, n) {
|
||||
return f.onChange(ed);
|
||||
});
|
||||
}
|
||||
|
||||
if (f.cleanup) {
|
||||
ed.onGetContent.add(function() {
|
||||
//f.cleanup(type, content, inst);
|
||||
});
|
||||
}
|
||||
|
||||
this.getInfo = function() {
|
||||
return f.getInfo();
|
||||
};
|
||||
|
||||
this.createControl = function(n) {
|
||||
tinyMCE.pluginURL = tinymce.baseURL + '/plugins/' + pn;
|
||||
tinyMCE.themeURL = tinymce.baseURL + '/themes/' + tinyMCE.activeEditor.settings.theme;
|
||||
|
||||
if (f.getControlHTML)
|
||||
return f.getControlHTML(n);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
this.execCommand = function(cmd, ui, val) {
|
||||
if (f.execCommand)
|
||||
return f.execCommand(ed.id, ed.getBody(), cmd, ui, val);
|
||||
|
||||
return false;
|
||||
};
|
||||
};
|
||||
|
||||
tinymce.PluginManager.add(pn, PluginWrapper);
|
||||
},
|
||||
|
||||
_getDOM : function() {
|
||||
return tinyMCE.activeEditor ? tinyMCE.activeEditor.dom : tinymce.DOM;
|
||||
},
|
||||
|
||||
convertRelativeToAbsoluteURL : function(b, u) {
|
||||
return new tinymce.util.URI(b).toAbsolute(u);
|
||||
},
|
||||
|
||||
convertAbsoluteURLToRelativeURL : function(b, u) {
|
||||
return new tinymce.util.URI(b).toRelative(u);
|
||||
}
|
||||
});
|
||||
|
||||
// Extend Editor class
|
||||
tinymce.extend(tinymce.Editor.prototype, {
|
||||
getFocusElement : function() {
|
||||
return this.selection.getNode();
|
||||
},
|
||||
|
||||
getData : function(n) {
|
||||
if (!this.data)
|
||||
this.data = [];
|
||||
|
||||
if (!this.data[n])
|
||||
this.data[n] = [];
|
||||
|
||||
return this.data[n];
|
||||
},
|
||||
|
||||
hasPlugin : function(n) {
|
||||
return this.plugins[n] != null;
|
||||
},
|
||||
|
||||
getContainerWin : function() {
|
||||
return window;
|
||||
},
|
||||
|
||||
getHTML : function(raw) {
|
||||
return this.getContent({ format : raw ? 'raw' : 'html'});
|
||||
},
|
||||
|
||||
setHTML : function(h) {
|
||||
this.setContent(h);
|
||||
},
|
||||
|
||||
getSel : function() {
|
||||
return this.selection.getSel();
|
||||
},
|
||||
|
||||
getRng : function() {
|
||||
return this.selection.getRng();
|
||||
},
|
||||
|
||||
isHidden : function() {
|
||||
var s;
|
||||
|
||||
if (!tinymce.isGecko)
|
||||
return false;
|
||||
|
||||
s = this.getSel();
|
||||
|
||||
// Weird, wheres that cursor selection?
|
||||
return (!s || !s.rangeCount || s.rangeCount == 0);
|
||||
},
|
||||
|
||||
translate : function(s) {
|
||||
var c = this.settings.language, o;
|
||||
|
||||
if (!s)
|
||||
return s;
|
||||
|
||||
o = tinymce.EditorManager.i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {
|
||||
return tinymce.EditorManager.i18n[c + '.' + b] || '{#' + b + '}';
|
||||
});
|
||||
|
||||
o = o.replace(/{\$lang_([^}]+)\}/g, function(a, b) {
|
||||
return tinymce.EditorManager.i18n[c + '.' + b] || '{$lang_' + b + '}';
|
||||
});
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
repaint : function() {
|
||||
this.execCommand('mceRepaint');
|
||||
}
|
||||
});
|
||||
|
||||
// Extend selection
|
||||
tinymce.extend(tinymce.dom.Selection.prototype, {
|
||||
getSelectedText : function() {
|
||||
return this.getContent({format : 'text'});
|
||||
},
|
||||
|
||||
getSelectedHTML : function() {
|
||||
return this.getContent({format : 'html'});
|
||||
},
|
||||
|
||||
getFocusElement : function() {
|
||||
return this.getNode();
|
||||
},
|
||||
|
||||
selectNode : function(node, collapse, select_text_node, to_start) {
|
||||
var t = this;
|
||||
|
||||
t.select(node, select_text_node || 0);
|
||||
|
||||
if (!is(collapse))
|
||||
collapse = true;
|
||||
|
||||
if (collapse) {
|
||||
if (!is(to_start))
|
||||
to_start = true;
|
||||
|
||||
t.collapse(to_start);
|
||||
}
|
||||
}
|
||||
});
|
||||
}).call(this);
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('compat2x', tinymce.plugins.Compat2x);
|
||||
})();
|
||||
|
||||
1
include/javascript/tiny_mce/plugins/contextmenu/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/contextmenu/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(ed.getDoc(),'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(ed.getDoc(),'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x+ed.getParam('contextmenu_offset_x',0),offset_y:p1.y+ed.getParam('contextmenu_offset_y',0),constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
|
||||
95
include/javascript/tiny_mce/plugins/contextmenu/editor_plugin_src.js
vendored
Executable file
95
include/javascript/tiny_mce/plugins/contextmenu/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;
|
||||
|
||||
tinymce.create('tinymce.plugins.ContextMenu', {
|
||||
init : function(ed) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
t.onContextMenu = new tinymce.util.Dispatcher(this);
|
||||
|
||||
ed.onContextMenu.add(function(ed, e) {
|
||||
if (!e.ctrlKey) {
|
||||
t._getMenu(ed).showMenu(e.clientX, e.clientY);
|
||||
Event.add(ed.getDoc(), 'click', hide);
|
||||
Event.cancel(e);
|
||||
}
|
||||
});
|
||||
|
||||
function hide() {
|
||||
if (t._menu) {
|
||||
t._menu.removeAll();
|
||||
t._menu.destroy();
|
||||
Event.remove(ed.getDoc(), 'click', hide);
|
||||
}
|
||||
};
|
||||
|
||||
ed.onMouseDown.add(hide);
|
||||
ed.onKeyDown.add(hide);
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Contextmenu',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
_getMenu : function(ed) {
|
||||
var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2;
|
||||
|
||||
if (m) {
|
||||
m.removeAll();
|
||||
m.destroy();
|
||||
}
|
||||
|
||||
p1 = DOM.getPos(ed.getContentAreaContainer());
|
||||
p2 = DOM.getPos(ed.getContainer());
|
||||
|
||||
m = ed.controlManager.createDropMenu('contextmenu', {
|
||||
offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0),
|
||||
offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0),
|
||||
constrain : 1
|
||||
});
|
||||
|
||||
t._menu = m;
|
||||
|
||||
m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);
|
||||
m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);
|
||||
m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'});
|
||||
|
||||
if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {
|
||||
m.addSeparator();
|
||||
m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
|
||||
m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
|
||||
}
|
||||
|
||||
m.addSeparator();
|
||||
m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
|
||||
|
||||
m.addSeparator();
|
||||
am = m.addMenu({title : 'contextmenu.align'});
|
||||
am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});
|
||||
am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});
|
||||
am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});
|
||||
am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});
|
||||
|
||||
t.onContextMenu.dispatch(t, m, el, col);
|
||||
|
||||
return m;
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/directionality/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/directionality/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.Directionality',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceDirectionLTR',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="ltr")ed.dom.setAttrib(e,"dir","ltr");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addCommand('mceDirectionRTL',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="rtl")ed.dom.setAttrib(e,"dir","rtl");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addButton('ltr',{title:'directionality.ltr_desc',cmd:'mceDirectionLTR'});ed.addButton('rtl',{title:'directionality.rtl_desc',cmd:'mceDirectionRTL'});ed.onNodeChange.add(t._nodeChange,t);},getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var dom=ed.dom,dir;n=dom.getParent(n,dom.isBlock);if(!n){cm.setDisabled('ltr',1);cm.setDisabled('rtl',1);return;}dir=dom.getAttrib(n,'dir');cm.setActive('ltr',dir=="ltr");cm.setDisabled('ltr',0);cm.setActive('rtl',dir=="rtl");cm.setDisabled('rtl',0);}});tinymce.PluginManager.add('directionality',tinymce.plugins.Directionality);})();
|
||||
79
include/javascript/tiny_mce/plugins/directionality/editor_plugin_src.js
vendored
Executable file
79
include/javascript/tiny_mce/plugins/directionality/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.Directionality', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
ed.addCommand('mceDirectionLTR', function() {
|
||||
var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
|
||||
|
||||
if (e) {
|
||||
if (ed.dom.getAttrib(e, "dir") != "ltr")
|
||||
ed.dom.setAttrib(e, "dir", "ltr");
|
||||
else
|
||||
ed.dom.setAttrib(e, "dir", "");
|
||||
}
|
||||
|
||||
ed.nodeChanged();
|
||||
});
|
||||
|
||||
ed.addCommand('mceDirectionRTL', function() {
|
||||
var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
|
||||
|
||||
if (e) {
|
||||
if (ed.dom.getAttrib(e, "dir") != "rtl")
|
||||
ed.dom.setAttrib(e, "dir", "rtl");
|
||||
else
|
||||
ed.dom.setAttrib(e, "dir", "");
|
||||
}
|
||||
|
||||
ed.nodeChanged();
|
||||
});
|
||||
|
||||
ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
|
||||
ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});
|
||||
|
||||
ed.onNodeChange.add(t._nodeChange, t);
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Directionality',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_nodeChange : function(ed, cm, n) {
|
||||
var dom = ed.dom, dir;
|
||||
|
||||
n = dom.getParent(n, dom.isBlock);
|
||||
if (!n) {
|
||||
cm.setDisabled('ltr', 1);
|
||||
cm.setDisabled('rtl', 1);
|
||||
return;
|
||||
}
|
||||
|
||||
dir = dom.getAttrib(n, 'dir');
|
||||
cm.setActive('ltr', dir == "ltr");
|
||||
cm.setDisabled('ltr', 0);
|
||||
cm.setActive('rtl', dir == "rtl");
|
||||
cm.setDisabled('rtl', 0);
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/emotions/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/emotions/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.EmotionsPlugin',{init:function(ed,url){ed.addCommand('mceEmotion',function(){ed.windowManager.open({file:url+'/emotions.htm',width:250+parseInt(ed.getLang('emotions.delta_width',0)),height:160+parseInt(ed.getLang('emotions.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emotions',{title:'emotions.emotions_desc',cmd:'mceEmotion'});},getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('emotions',tinymce.plugins.EmotionsPlugin);})();
|
||||
40
include/javascript/tiny_mce/plugins/emotions/editor_plugin_src.js
vendored
Executable file
40
include/javascript/tiny_mce/plugins/emotions/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.EmotionsPlugin', {
|
||||
init : function(ed, url) {
|
||||
// Register commands
|
||||
ed.addCommand('mceEmotion', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/emotions.htm',
|
||||
width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),
|
||||
height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Emotions',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);
|
||||
})();
|
||||
22
include/javascript/tiny_mce/plugins/emotions/js/emotions.js
vendored
Executable file
22
include/javascript/tiny_mce/plugins/emotions/js/emotions.js
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var EmotionsDialog = {
|
||||
init : function(ed) {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
},
|
||||
|
||||
insert : function(file, title) {
|
||||
var ed = tinyMCEPopup.editor, dom = ed.dom;
|
||||
|
||||
tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {
|
||||
src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,
|
||||
alt : ed.getLang(title),
|
||||
title : ed.getLang(title),
|
||||
border : 0
|
||||
}));
|
||||
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
};
|
||||
|
||||
tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);
|
||||
20
include/javascript/tiny_mce/plugins/emotions/langs/en_dlg.js
vendored
Executable file
20
include/javascript/tiny_mce/plugins/emotions/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,20 @@
|
||||
tinyMCE.addI18n('en.emotions_dlg',{
|
||||
title:"Insert emotion",
|
||||
desc:"Emotions",
|
||||
cool:"Cool",
|
||||
cry:"Cry",
|
||||
embarassed:"Embarassed",
|
||||
foot_in_mouth:"Foot in mouth",
|
||||
frown:"Frown",
|
||||
innocent:"Innocent",
|
||||
kiss:"Kiss",
|
||||
laughing:"Laughing",
|
||||
money_mouth:"Money mouth",
|
||||
sealed:"Sealed",
|
||||
smile:"Smile",
|
||||
surprised:"Surprised",
|
||||
tongue_out:"Tongue out",
|
||||
undecided:"Undecided",
|
||||
wink:"Wink",
|
||||
yell:"Yell"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/example/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/example/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.PluginManager.requireLangPack('example');tinymce.create('tinymce.plugins.ExamplePlugin',{init:function(ed,url){ed.addCommand('mceExample',function(){ed.windowManager.open({file:url+'/dialog.htm',width:320+parseInt(ed.getLang('example.delta_width',0)),height:120+parseInt(ed.getLang('example.delta_height',0)),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('example',{title:'example.desc',cmd:'mceExample',image:url+'/img/example.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('example',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Example plugin',author:'Some author',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('example',tinymce.plugins.ExamplePlugin);})();
|
||||
81
include/javascript/tiny_mce/plugins/example/editor_plugin_src.js
vendored
Executable file
81
include/javascript/tiny_mce/plugins/example/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,81 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
// Load plugin specific language pack
|
||||
tinymce.PluginManager.requireLangPack('example');
|
||||
|
||||
tinymce.create('tinymce.plugins.ExamplePlugin', {
|
||||
/**
|
||||
* Initializes the plugin, this will be executed after the plugin has been created.
|
||||
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
||||
* of the editor instance to intercept that event.
|
||||
*
|
||||
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
||||
* @param {string} url Absolute URL to where the plugin is located.
|
||||
*/
|
||||
init : function(ed, url) {
|
||||
// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
|
||||
ed.addCommand('mceExample', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/dialog.htm',
|
||||
width : 320 + parseInt(ed.getLang('example.delta_width', 0)),
|
||||
height : 120 + parseInt(ed.getLang('example.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url, // Plugin absolute URL
|
||||
some_custom_arg : 'custom arg' // Custom argument
|
||||
});
|
||||
});
|
||||
|
||||
// Register example button
|
||||
ed.addButton('example', {
|
||||
title : 'example.desc',
|
||||
cmd : 'mceExample',
|
||||
image : url + '/img/example.gif'
|
||||
});
|
||||
|
||||
// Add a node change handler, selects the button in the UI when a image is selected
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
cm.setActive('example', n.nodeName == 'IMG');
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates control instances based in the incomming name. This method is normally not
|
||||
* needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
|
||||
* but you sometimes need to create more complex controls like listboxes, split buttons etc then this
|
||||
* method can be used to create those.
|
||||
*
|
||||
* @param {String} n Name of the control to create.
|
||||
* @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
|
||||
* @return {tinymce.ui.Control} New control instance or null if no control was created.
|
||||
*/
|
||||
createControl : function(n, cm) {
|
||||
return null;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns information about the plugin as a name/value array.
|
||||
* The current keys are longname, author, authorurl, infourl and version.
|
||||
*
|
||||
* @return {Object} Name/value array containing information about the plugin.
|
||||
*/
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Example plugin',
|
||||
author : 'Some author',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',
|
||||
version : "1.0"
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);
|
||||
})();
|
||||
19
include/javascript/tiny_mce/plugins/example/js/dialog.js
vendored
Executable file
19
include/javascript/tiny_mce/plugins/example/js/dialog.js
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var ExampleDialog = {
|
||||
init : function() {
|
||||
var f = document.forms[0];
|
||||
|
||||
// Get the selected contents as text and place it in the input
|
||||
f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});
|
||||
f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');
|
||||
},
|
||||
|
||||
insert : function() {
|
||||
// Insert the contents from the input into the document
|
||||
tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
};
|
||||
|
||||
tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);
|
||||
3
include/javascript/tiny_mce/plugins/example/langs/en.js
vendored
Executable file
3
include/javascript/tiny_mce/plugins/example/langs/en.js
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
tinyMCE.addI18n('en.example',{
|
||||
desc : 'This is just a template button'
|
||||
});
|
||||
3
include/javascript/tiny_mce/plugins/example/langs/en_dlg.js
vendored
Executable file
3
include/javascript/tiny_mce/plugins/example/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
tinyMCE.addI18n('en.example_dlg',{
|
||||
title : 'This is just a example title'
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/fullpage/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/fullpage/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceFullPageProperties',function(){ed.windowManager.open({file:url+'/fullpage.htm',width:430+parseInt(ed.getLang('fullpage.delta_width',0)),height:495+parseInt(ed.getLang('fullpage.delta_height',0)),inline:1},{plugin_url:url,head_html:t.head});});ed.addButton('fullpage',{title:'fullpage.desc',cmd:'mceFullPageProperties'});ed.onBeforeSetContent.add(t._setContent,t);ed.onSetContent.add(t._setBodyAttribs,t);ed.onGetContent.add(t._getContent,t);},getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_setBodyAttribs:function(ed,o){var bdattr,i,len,kv,k,v,t,attr=this.head.match(/body(.*?)>/i);if(attr&&attr[1]){bdattr=attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);if(bdattr){for(i=0,len=bdattr.length;i<len;i++){kv=bdattr[i].split('=');k=kv[0].replace(/\s/,'');v=kv[1];if(v){v=v.replace(/^\s+/,'').replace(/\s+$/,'');t=v.match(/^["'](.*)["']$/);if(t)v=t[1];}else v=k;ed.dom.setAttrib(ed.getBody(),'style',v);}}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true});},_setContent:function(ed,o){var t=this,sp,ep,c=o.content,v,st='';c=c.replace(/<(\/?)BODY/gi,'<$1body');sp=c.indexOf('<body');if(sp!=-1){sp=c.indexOf('>',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('</body',sp);if(ep==-1)ep=c.indexOf('</body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='';if(ed.getParam('fullpage_default_xml_pi'))t.head+='<?xml version="1.0" encoding="'+ed.getParam('fullpage_default_encoding','ISO-8859-1')+'" ?>\n';t.head+=ed.getParam('fullpage_default_doctype','<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');t.head+='\n<html>\n<head>\n<title>'+ed.getParam('fullpage_default_title','Untitled document')+'</title>\n';if(v=ed.getParam('fullpage_default_encoding'))t.head+='<meta http-equiv="Content-Type" content="'+v+'" />\n';if(v=ed.getParam('fullpage_default_font_family'))st+='font-family: '+v+';';if(v=ed.getParam('fullpage_default_font_size'))st+='font-size: '+v+';';if(v=ed.getParam('fullpage_default_text_color'))st+='color: '+v+';';t.head+='</head>\n<body'+(st?' style="'+st+'"':'')+'>\n';t.foot='\n</body>\n</html>';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
|
||||
142
include/javascript/tiny_mce/plugins/fullpage/editor_plugin_src.js
vendored
Executable file
142
include/javascript/tiny_mce/plugins/fullpage/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,142 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.FullPagePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceFullPageProperties', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/fullpage.htm',
|
||||
width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)),
|
||||
height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url,
|
||||
head_html : t.head
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'});
|
||||
|
||||
ed.onBeforeSetContent.add(t._setContent, t);
|
||||
ed.onSetContent.add(t._setBodyAttribs, t);
|
||||
ed.onGetContent.add(t._getContent, t);
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Fullpage',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private plugin internal methods
|
||||
|
||||
_setBodyAttribs : function(ed, o) {
|
||||
var bdattr, i, len, kv, k, v, t, attr = this.head.match(/body(.*?)>/i);
|
||||
|
||||
if (attr && attr[1]) {
|
||||
bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);
|
||||
|
||||
if (bdattr) {
|
||||
for(i = 0, len = bdattr.length; i < len; i++) {
|
||||
kv = bdattr[i].split('=');
|
||||
k = kv[0].replace(/\s/,'');
|
||||
v = kv[1];
|
||||
|
||||
if (v) {
|
||||
v = v.replace(/^\s+/,'').replace(/\s+$/,'');
|
||||
t = v.match(/^["'](.*)["']$/);
|
||||
|
||||
if (t)
|
||||
v = t[1];
|
||||
} else
|
||||
v = k;
|
||||
|
||||
ed.dom.setAttrib(ed.getBody(), 'style', v);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_createSerializer : function() {
|
||||
return new tinymce.dom.Serializer({
|
||||
dom : this.editor.dom,
|
||||
apply_source_formatting : true
|
||||
});
|
||||
},
|
||||
|
||||
_setContent : function(ed, o) {
|
||||
var t = this, sp, ep, c = o.content, v, st = '';
|
||||
|
||||
// Parse out head, body and footer
|
||||
c = c.replace(/<(\/?)BODY/gi, '<$1body');
|
||||
sp = c.indexOf('<body');
|
||||
|
||||
if (sp != -1) {
|
||||
sp = c.indexOf('>', sp);
|
||||
t.head = c.substring(0, sp + 1);
|
||||
|
||||
ep = c.indexOf('</body', sp);
|
||||
if (ep == -1)
|
||||
ep = c.indexOf('</body', ep);
|
||||
|
||||
o.content = c.substring(sp + 1, ep);
|
||||
t.foot = c.substring(ep);
|
||||
|
||||
function low(s) {
|
||||
return s.replace(/<\/?[A-Z]+/g, function(a) {
|
||||
return a.toLowerCase();
|
||||
})
|
||||
};
|
||||
|
||||
t.head = low(t.head);
|
||||
t.foot = low(t.foot);
|
||||
} else {
|
||||
t.head = '';
|
||||
if (ed.getParam('fullpage_default_xml_pi'))
|
||||
t.head += '<?xml version="1.0" encoding="' + ed.getParam('fullpage_default_encoding', 'ISO-8859-1') + '" ?>\n';
|
||||
|
||||
t.head += ed.getParam('fullpage_default_doctype', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
|
||||
t.head += '\n<html>\n<head>\n<title>' + ed.getParam('fullpage_default_title', 'Untitled document') + '</title>\n';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_encoding'))
|
||||
t.head += '<meta http-equiv="Content-Type" content="' + v + '" />\n';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_font_family'))
|
||||
st += 'font-family: ' + v + ';';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_font_size'))
|
||||
st += 'font-size: ' + v + ';';
|
||||
|
||||
if (v = ed.getParam('fullpage_default_text_color'))
|
||||
st += 'color: ' + v + ';';
|
||||
|
||||
t.head += '</head>\n<body' + (st ? ' style="' + st + '"' : '') + '>\n';
|
||||
t.foot = '\n</body>\n</html>';
|
||||
}
|
||||
},
|
||||
|
||||
_getContent : function(ed, o) {
|
||||
var t = this;
|
||||
|
||||
o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin);
|
||||
})();
|
||||
461
include/javascript/tiny_mce/plugins/fullpage/js/fullpage.js
vendored
Executable file
461
include/javascript/tiny_mce/plugins/fullpage/js/fullpage.js
vendored
Executable file
@@ -0,0 +1,461 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var doc;
|
||||
|
||||
var defaultDocTypes =
|
||||
'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +
|
||||
'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +
|
||||
'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +
|
||||
'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +
|
||||
'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +
|
||||
'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +
|
||||
'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';
|
||||
|
||||
var defaultEncodings =
|
||||
'Western european (iso-8859-1)=iso-8859-1,' +
|
||||
'Central European (iso-8859-2)=iso-8859-2,' +
|
||||
'Unicode (UTF-8)=utf-8,' +
|
||||
'Chinese traditional (Big5)=big5,' +
|
||||
'Cyrillic (iso-8859-5)=iso-8859-5,' +
|
||||
'Japanese (iso-2022-jp)=iso-2022-jp,' +
|
||||
'Greek (iso-8859-7)=iso-8859-7,' +
|
||||
'Korean (iso-2022-kr)=iso-2022-kr,' +
|
||||
'ASCII (us-ascii)=us-ascii';
|
||||
|
||||
var defaultMediaTypes =
|
||||
'all=all,' +
|
||||
'screen=screen,' +
|
||||
'print=print,' +
|
||||
'tty=tty,' +
|
||||
'tv=tv,' +
|
||||
'projection=projection,' +
|
||||
'handheld=handheld,' +
|
||||
'braille=braille,' +
|
||||
'aural=aural';
|
||||
|
||||
var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
|
||||
var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';
|
||||
|
||||
function init() {
|
||||
var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style;
|
||||
|
||||
// Setup doctype select box
|
||||
doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(',');
|
||||
for (i=0; i<doctypes.length; i++) {
|
||||
p = doctypes[i].split('=');
|
||||
|
||||
if (p.length > 1)
|
||||
addSelectValue(f, 'doctypes', p[0], p[1]);
|
||||
}
|
||||
|
||||
// Setup fonts select box
|
||||
fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';');
|
||||
for (i=0; i<fonts.length; i++) {
|
||||
p = fonts[i].split('=');
|
||||
|
||||
if (p.length > 1)
|
||||
addSelectValue(f, 'fontface', p[0], p[1]);
|
||||
}
|
||||
|
||||
// Setup fontsize select box
|
||||
fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(',');
|
||||
for (i=0; i<fonts.length; i++)
|
||||
addSelectValue(f, 'fontsize', fonts[i], fonts[i]);
|
||||
|
||||
// Setup mediatype select boxs
|
||||
mediaTypes = ed.getParam("fullpage_media_types", defaultMediaTypes).split(',');
|
||||
for (i=0; i<mediaTypes.length; i++) {
|
||||
p = mediaTypes[i].split('=');
|
||||
|
||||
if (p.length > 1) {
|
||||
addSelectValue(f, 'element_style_media', p[0], p[1]);
|
||||
addSelectValue(f, 'element_link_media', p[0], p[1]);
|
||||
}
|
||||
}
|
||||
|
||||
// Setup encodings select box
|
||||
encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(',');
|
||||
for (i=0; i<encodings.length; i++) {
|
||||
p = encodings[i].split('=');
|
||||
|
||||
if (p.length > 1) {
|
||||
addSelectValue(f, 'docencoding', p[0], p[1]);
|
||||
addSelectValue(f, 'element_script_charset', p[0], p[1]);
|
||||
addSelectValue(f, 'element_link_charset', p[0], p[1]);
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
|
||||
document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');
|
||||
//document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color');
|
||||
document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');
|
||||
document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');
|
||||
document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');
|
||||
document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');
|
||||
document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage');
|
||||
document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage');
|
||||
document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('stylesheetbrowser'))
|
||||
document.getElementById('stylesheet').style.width = '220px';
|
||||
|
||||
if (isVisible('link_href_browser'))
|
||||
document.getElementById('element_link_href').style.width = '230px';
|
||||
|
||||
if (isVisible('bgimage_browser'))
|
||||
document.getElementById('bgimage').style.width = '210px';
|
||||
|
||||
// Add iframe
|
||||
dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}});
|
||||
doc = dom.get('documentIframe').contentWindow.document;
|
||||
h = tinyMCEPopup.getWindowArg('head_html');
|
||||
|
||||
// Preprocess the HTML disable scripts and urls
|
||||
h = h.replace(/<script>/gi, '<script type="text/javascript">');
|
||||
h = h.replace(/type=([\"\'])?/gi, 'type=$1-mce-');
|
||||
h = h.replace(/(src=|href=)/g, 'mce_$1');
|
||||
|
||||
// Write in the content in the iframe
|
||||
doc.write(h + '</body></html>');
|
||||
doc.close();
|
||||
|
||||
// Parse xml and doctype
|
||||
xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);
|
||||
xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);
|
||||
docType = getReItem(/<\!DOCTYPE.*?>/gi, h, 0);
|
||||
f.langcode.value = getReItem(/lang="(.*?)"/gi, h, 1);
|
||||
|
||||
// Parse title
|
||||
if (e = doc.getElementsByTagName('title')[0])
|
||||
el.metatitle.value = e.textContent || e.text;
|
||||
|
||||
// Parse meta
|
||||
tinymce.each(doc.getElementsByTagName('meta'), function(n) {
|
||||
var na = (n.getAttribute('name', 2) || '').toLowerCase(), va = n.getAttribute('content', 2), eq = n.getAttribute('httpEquiv', 2) || '';
|
||||
|
||||
e = el['meta' + na];
|
||||
|
||||
if (na == 'robots') {
|
||||
selectByValue(f, 'metarobots', tinymce.trim(va), true, true);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (eq.toLowerCase()) {
|
||||
case "content-type":
|
||||
tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, va, 1);
|
||||
|
||||
// Override XML encoding
|
||||
if (tmp != "")
|
||||
xmlEnc = tmp;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (e)
|
||||
e.value = va;
|
||||
});
|
||||
|
||||
selectByValue(f, 'doctypes', docType, true, true);
|
||||
selectByValue(f, 'docencoding', xmlEnc, true, true);
|
||||
selectByValue(f, 'langdir', doc.body.getAttribute('dir', 2) || '', true, true);
|
||||
|
||||
if (xmlVer != '')
|
||||
el.xml_pi.checked = true;
|
||||
|
||||
// Parse appearance
|
||||
|
||||
// Parse primary stylesheet
|
||||
tinymce.each(doc.getElementsByTagName("link"), function(l) {
|
||||
var m = l.getAttribute('media', 2) || '', t = l.getAttribute('type', 2) || '';
|
||||
|
||||
if (t == "-mce-text/css" && (m == "" || m == "screen" || m == "all") && (l.getAttribute('rel', 2) || '') == "stylesheet") {
|
||||
f.stylesheet.value = l.getAttribute('mce_href', 2) || '';
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// Get from style elements
|
||||
tinymce.each(doc.getElementsByTagName("style"), function(st) {
|
||||
var tmp = parseStyleElement(st);
|
||||
|
||||
for (x=0; x<tmp.length; x++) {
|
||||
if (tmp[x].rule.indexOf('a:visited') != -1 && tmp[x].data['color'])
|
||||
f.visited_color.value = tmp[x].data['color'];
|
||||
|
||||
if (tmp[x].rule.indexOf('a:link') != -1 && tmp[x].data['color'])
|
||||
f.link_color.value = tmp[x].data['color'];
|
||||
|
||||
if (tmp[x].rule.indexOf('a:active') != -1 && tmp[x].data['color'])
|
||||
f.active_color.value = tmp[x].data['color'];
|
||||
}
|
||||
});
|
||||
|
||||
f.textcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "text");
|
||||
f.active_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "alink");
|
||||
f.link_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "link");
|
||||
f.visited_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "vlink");
|
||||
f.bgcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "bgcolor");
|
||||
f.bgimage.value = tinyMCEPopup.dom.getAttrib(doc.body, "background");
|
||||
|
||||
// Get from style info
|
||||
style = tinyMCEPopup.dom.parseStyle(tinyMCEPopup.dom.getAttrib(doc.body, 'style'));
|
||||
|
||||
if (style['font-family'])
|
||||
selectByValue(f, 'fontface', style['font-family'], true, true);
|
||||
else
|
||||
selectByValue(f, 'fontface', ed.getParam("fullpage_default_fontface", ""), true, true);
|
||||
|
||||
if (style['font-size'])
|
||||
selectByValue(f, 'fontsize', style['font-size'], true, true);
|
||||
else
|
||||
selectByValue(f, 'fontsize', ed.getParam("fullpage_default_fontsize", ""), true, true);
|
||||
|
||||
if (style['color'])
|
||||
f.textcolor.value = convertRGBToHex(style['color']);
|
||||
|
||||
if (style['background-image'])
|
||||
f.bgimage.value = style['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
|
||||
if (style['background-color'])
|
||||
f.bgcolor.value = style['background-color'];
|
||||
|
||||
if (style['margin']) {
|
||||
tmp = style['margin'].replace(/[^0-9 ]/g, '');
|
||||
tmp = tmp.split(/ +/);
|
||||
f.topmargin.value = tmp.length > 0 ? tmp[0] : '';
|
||||
f.rightmargin.value = tmp.length > 1 ? tmp[1] : tmp[0];
|
||||
f.bottommargin.value = tmp.length > 2 ? tmp[2] : tmp[0];
|
||||
f.leftmargin.value = tmp.length > 3 ? tmp[3] : tmp[0];
|
||||
}
|
||||
|
||||
if (style['margin-left'])
|
||||
f.leftmargin.value = style['margin-left'].replace(/[^0-9]/g, '');
|
||||
|
||||
if (style['margin-right'])
|
||||
f.rightmargin.value = style['margin-right'].replace(/[^0-9]/g, '');
|
||||
|
||||
if (style['margin-top'])
|
||||
f.topmargin.value = style['margin-top'].replace(/[^0-9]/g, '');
|
||||
|
||||
if (style['margin-bottom'])
|
||||
f.bottommargin.value = style['margin-bottom'].replace(/[^0-9]/g, '');
|
||||
|
||||
f.style.value = tinyMCEPopup.dom.serializeStyle(style);
|
||||
|
||||
// Update colors
|
||||
updateColor('textcolor_pick', 'textcolor');
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
updateColor('visited_color_pick', 'visited_color');
|
||||
updateColor('active_color_pick', 'active_color');
|
||||
updateColor('link_color_pick', 'link_color');
|
||||
}
|
||||
|
||||
function getReItem(r, s, i) {
|
||||
var c = r.exec(s);
|
||||
|
||||
if (c && c.length > i)
|
||||
return c[i];
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
function updateAction() {
|
||||
var f = document.forms[0], nl, i, h, v, s, head, html, l, tmp, addlink = true, ser;
|
||||
|
||||
head = doc.getElementsByTagName('head')[0];
|
||||
|
||||
// Fix scripts without a type
|
||||
nl = doc.getElementsByTagName('script');
|
||||
for (i=0; i<nl.length; i++) {
|
||||
if (tinyMCEPopup.dom.getAttrib(nl[i], 'mce_type') == '')
|
||||
nl[i].setAttribute('mce_type', 'text/javascript');
|
||||
}
|
||||
|
||||
// Get primary stylesheet
|
||||
nl = doc.getElementsByTagName("link");
|
||||
for (i=0; i<nl.length; i++) {
|
||||
l = nl[i];
|
||||
|
||||
tmp = tinyMCEPopup.dom.getAttrib(l, 'media');
|
||||
|
||||
if (tinyMCEPopup.dom.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCEPopup.dom.getAttrib(l, 'rel') == "stylesheet") {
|
||||
addlink = false;
|
||||
|
||||
if (f.stylesheet.value == '')
|
||||
l.parentNode.removeChild(l);
|
||||
else
|
||||
l.setAttribute('mce_href', f.stylesheet.value);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Add new link
|
||||
if (f.stylesheet.value != '') {
|
||||
l = doc.createElement('link');
|
||||
|
||||
l.setAttribute('type', 'text/css');
|
||||
l.setAttribute('mce_href', f.stylesheet.value);
|
||||
l.setAttribute('rel', 'stylesheet');
|
||||
|
||||
head.appendChild(l);
|
||||
}
|
||||
|
||||
setMeta(head, 'keywords', f.metakeywords.value);
|
||||
setMeta(head, 'description', f.metadescription.value);
|
||||
setMeta(head, 'author', f.metaauthor.value);
|
||||
setMeta(head, 'copyright', f.metacopyright.value);
|
||||
setMeta(head, 'robots', getSelectValue(f, 'metarobots'));
|
||||
setMeta(head, 'Content-Type', getSelectValue(f, 'docencoding'));
|
||||
|
||||
doc.body.dir = getSelectValue(f, 'langdir');
|
||||
doc.body.style.cssText = f.style.value;
|
||||
|
||||
doc.body.setAttribute('vLink', f.visited_color.value);
|
||||
doc.body.setAttribute('link', f.link_color.value);
|
||||
doc.body.setAttribute('text', f.textcolor.value);
|
||||
doc.body.setAttribute('aLink', f.active_color.value);
|
||||
|
||||
doc.body.style.fontFamily = getSelectValue(f, 'fontface');
|
||||
doc.body.style.fontSize = getSelectValue(f, 'fontsize');
|
||||
doc.body.style.backgroundColor = f.bgcolor.value;
|
||||
|
||||
if (f.leftmargin.value != '')
|
||||
doc.body.style.marginLeft = f.leftmargin.value + 'px';
|
||||
|
||||
if (f.rightmargin.value != '')
|
||||
doc.body.style.marginRight = f.rightmargin.value + 'px';
|
||||
|
||||
if (f.bottommargin.value != '')
|
||||
doc.body.style.marginBottom = f.bottommargin.value + 'px';
|
||||
|
||||
if (f.topmargin.value != '')
|
||||
doc.body.style.marginTop = f.topmargin.value + 'px';
|
||||
|
||||
html = doc.getElementsByTagName('html')[0];
|
||||
html.setAttribute('lang', f.langcode.value);
|
||||
html.setAttribute('xml:lang', f.langcode.value);
|
||||
|
||||
if (f.bgimage.value != '')
|
||||
doc.body.style.backgroundImage = "url('" + f.bgimage.value + "')";
|
||||
else
|
||||
doc.body.style.backgroundImage = '';
|
||||
|
||||
ser = tinyMCEPopup.editor.plugins.fullpage._createSerializer();
|
||||
ser.setRules('-title,meta[http-equiv|name|content],base[href|target],link[href|rel|type|title|media],style[type],script[type|language|src],html[lang|xml::lang|xmlns],body[style|dir|vlink|link|text|alink],head');
|
||||
|
||||
h = ser.serialize(doc.documentElement);
|
||||
h = h.substring(0, h.lastIndexOf('</body>'));
|
||||
|
||||
if (h.indexOf('<title>') == -1)
|
||||
h = h.replace(/<head.*?>/, '$&\n' + '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');
|
||||
else
|
||||
h = h.replace(/<title>(.*?)<\/title>/, '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');
|
||||
|
||||
if ((v = getSelectValue(f, 'doctypes')) != '')
|
||||
h = v + '\n' + h;
|
||||
|
||||
if (f.xml_pi.checked) {
|
||||
s = '<?xml version="1.0"';
|
||||
|
||||
if ((v = getSelectValue(f, 'docencoding')) != '')
|
||||
s += ' encoding="' + v + '"';
|
||||
|
||||
s += '?>\n';
|
||||
h = s + h;
|
||||
}
|
||||
|
||||
h = h.replace(/type=\"\-mce\-/gi, 'type="');
|
||||
|
||||
tinyMCEPopup.editor.plugins.fullpage.head = h;
|
||||
tinyMCEPopup.editor.plugins.fullpage._setBodyAttribs(tinyMCEPopup.editor, {});
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function changedStyleField(field) {
|
||||
}
|
||||
|
||||
function setMeta(he, k, v) {
|
||||
var nl, i, m;
|
||||
|
||||
nl = he.getElementsByTagName('meta');
|
||||
for (i=0; i<nl.length; i++) {
|
||||
if (k == 'Content-Type' && tinyMCEPopup.dom.getAttrib(nl[i], 'http-equiv') == k) {
|
||||
if (v == '')
|
||||
nl[i].parentNode.removeChild(nl[i]);
|
||||
else
|
||||
nl[i].setAttribute('content', "text/html; charset=" + v);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (tinyMCEPopup.dom.getAttrib(nl[i], 'name') == k) {
|
||||
if (v == '')
|
||||
nl[i].parentNode.removeChild(nl[i]);
|
||||
else
|
||||
nl[i].setAttribute('content', v);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (v == '')
|
||||
return;
|
||||
|
||||
m = doc.createElement('meta');
|
||||
|
||||
if (k == 'Content-Type')
|
||||
m.httpEquiv = k;
|
||||
else
|
||||
m.setAttribute('name', k);
|
||||
|
||||
m.setAttribute('content', v);
|
||||
he.appendChild(m);
|
||||
}
|
||||
|
||||
function parseStyleElement(e) {
|
||||
var v = e.innerHTML;
|
||||
var p, i, r;
|
||||
|
||||
v = v.replace(/<!--/gi, '');
|
||||
v = v.replace(/-->/gi, '');
|
||||
v = v.replace(/[\n\r]/gi, '');
|
||||
v = v.replace(/\s+/gi, ' ');
|
||||
|
||||
r = [];
|
||||
p = v.split(/{|}/);
|
||||
|
||||
for (i=0; i<p.length; i+=2) {
|
||||
if (p[i] != "")
|
||||
r[r.length] = {rule : tinymce.trim(p[i]), data : tinyMCEPopup.dom.parseStyle(p[i+1])};
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
function serializeStyleElement(d) {
|
||||
var i, s, st;
|
||||
|
||||
s = '<!--\n';
|
||||
|
||||
for (i=0; i<d.length; i++) {
|
||||
s += d[i].rule + ' {\n';
|
||||
|
||||
st = tinyMCE.serializeStyle(d[i].data);
|
||||
|
||||
if (st != '')
|
||||
st += ';';
|
||||
|
||||
s += st.replace(/;/g, ';\n');
|
||||
s += '}\n';
|
||||
|
||||
if (i != d.length - 1)
|
||||
s += '\n';
|
||||
}
|
||||
|
||||
s += '\n-->';
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
85
include/javascript/tiny_mce/plugins/fullpage/langs/en_dlg.js
vendored
Executable file
85
include/javascript/tiny_mce/plugins/fullpage/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,85 @@
|
||||
tinyMCE.addI18n('en.fullpage_dlg',{
|
||||
title:"Document properties",
|
||||
meta_tab:"General",
|
||||
appearance_tab:"Appearance",
|
||||
advanced_tab:"Advanced",
|
||||
meta_props:"Meta information",
|
||||
langprops:"Language and encoding",
|
||||
meta_title:"Title",
|
||||
meta_keywords:"Keywords",
|
||||
meta_description:"Description",
|
||||
meta_robots:"Robots",
|
||||
doctypes:"Doctype",
|
||||
langcode:"Language code",
|
||||
langdir:"Language direction",
|
||||
ltr:"Left to right",
|
||||
rtl:"Right to left",
|
||||
xml_pi:"XML declaration",
|
||||
encoding:"Character encoding",
|
||||
appearance_bgprops:"Background properties",
|
||||
appearance_marginprops:"Body margins",
|
||||
appearance_linkprops:"Link colors",
|
||||
appearance_textprops:"Text properties",
|
||||
bgcolor:"Background color",
|
||||
bgimage:"Background image",
|
||||
left_margin:"Left margin",
|
||||
right_margin:"Right margin",
|
||||
top_margin:"Top margin",
|
||||
bottom_margin:"Bottom margin",
|
||||
text_color:"Text color",
|
||||
font_size:"Font size",
|
||||
font_face:"Font face",
|
||||
link_color:"Link color",
|
||||
hover_color:"Hover color",
|
||||
visited_color:"Visited color",
|
||||
active_color:"Active color",
|
||||
textcolor:"Color",
|
||||
fontsize:"Font size",
|
||||
fontface:"Font family",
|
||||
meta_index_follow:"Index and follow the links",
|
||||
meta_index_nofollow:"Index and don't follow the links",
|
||||
meta_noindex_follow:"Do not index but follow the links",
|
||||
meta_noindex_nofollow:"Do not index and don\'t follow the links",
|
||||
appearance_style:"Stylesheet and style properties",
|
||||
stylesheet:"Stylesheet",
|
||||
style:"Style",
|
||||
author:"Author",
|
||||
copyright:"Copyright",
|
||||
add:"Add new element",
|
||||
remove:"Remove selected element",
|
||||
moveup:"Move selected element up",
|
||||
movedown:"Move selected element down",
|
||||
head_elements:"Head elements",
|
||||
info:"Information",
|
||||
add_title:"Title element",
|
||||
add_meta:"Meta element",
|
||||
add_script:"Script element",
|
||||
add_style:"Style element",
|
||||
add_link:"Link element",
|
||||
add_base:"Base element",
|
||||
add_comment:"Comment node",
|
||||
title_element:"Title element",
|
||||
script_element:"Script element",
|
||||
style_element:"Style element",
|
||||
base_element:"Base element",
|
||||
link_element:"Link element",
|
||||
meta_element:"Meta element",
|
||||
comment_element:"Comment",
|
||||
src:"Src",
|
||||
language:"Language",
|
||||
href:"Href",
|
||||
target:"Target",
|
||||
type:"Type",
|
||||
charset:"Charset",
|
||||
defer:"Defer",
|
||||
media:"Media",
|
||||
properties:"Properties",
|
||||
name:"Name",
|
||||
value:"Value",
|
||||
content:"Content",
|
||||
rel:"Rel",
|
||||
rev:"Rev",
|
||||
hreflang:"Href lang",
|
||||
general_props:"General",
|
||||
advanced_props:"Advanced"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/fullscreen/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/fullscreen/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=DOM.doc.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{DOM.win.setTimeout(function(){tinymce.dom.Event.remove(DOM.win,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(DOM.doc.body,'overflow',ed.getParam('fullscreen_overflow'));DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=DOM.win.open(url+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(DOM.doc.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&&s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&&s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(tinymce.isIE&&(s.fullscreen_html_overflow=='visible'||s.fullscreen_html_overflow=='scroll'))s.fullscreen_html_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(DOM.doc.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();DOM.win.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(DOM.doc.body,'div',{id:'mce_fullscreen_container',style:'position:'+(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel)?'absolute':'fixed')+';top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:200000;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());t.fullscreenEditor.focus();});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(DOM.win,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})();
|
||||
145
include/javascript/tiny_mce/plugins/fullscreen/editor_plugin_src.js
vendored
Executable file
145
include/javascript/tiny_mce/plugins/fullscreen/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,145 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var DOM = tinymce.DOM;
|
||||
|
||||
tinymce.create('tinymce.plugins.FullScreenPlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this, s = {}, vp;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceFullScreen', function() {
|
||||
var win, de = DOM.doc.documentElement;
|
||||
|
||||
if (ed.getParam('fullscreen_is_enabled')) {
|
||||
if (ed.getParam('fullscreen_new_window'))
|
||||
closeFullscreen(); // Call to close in new window
|
||||
else {
|
||||
DOM.win.setTimeout(function() {
|
||||
tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);
|
||||
tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'});
|
||||
tinyMCE.remove(ed);
|
||||
DOM.remove('mce_fullscreen_container');
|
||||
de.style.overflow = ed.getParam('fullscreen_html_overflow');
|
||||
DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));
|
||||
DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));
|
||||
tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings
|
||||
}, 10);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (ed.getParam('fullscreen_new_window')) {
|
||||
win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
|
||||
try {
|
||||
win.resizeTo(screen.availWidth, screen.availHeight);
|
||||
} catch (e) {
|
||||
// Ignore
|
||||
}
|
||||
} else {
|
||||
tinyMCE.oldSettings = tinyMCE.settings; // Store old settings
|
||||
s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';
|
||||
s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);
|
||||
vp = DOM.getViewPort();
|
||||
s.fullscreen_scrollx = vp.x;
|
||||
s.fullscreen_scrolly = vp.y;
|
||||
|
||||
// Fixes an Opera bug where the scrollbars doesn't reappear
|
||||
if (tinymce.isOpera && s.fullscreen_overflow == 'visible')
|
||||
s.fullscreen_overflow = 'auto';
|
||||
|
||||
// Fixes an IE bug where horizontal scrollbars would appear
|
||||
if (tinymce.isIE && s.fullscreen_overflow == 'scroll')
|
||||
s.fullscreen_overflow = 'auto';
|
||||
|
||||
// Fixes an IE bug where the scrollbars doesn't reappear
|
||||
if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
|
||||
s.fullscreen_html_overflow = 'auto';
|
||||
|
||||
if (s.fullscreen_overflow == '0px')
|
||||
s.fullscreen_overflow = '';
|
||||
|
||||
DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');
|
||||
de.style.overflow = 'hidden'; //Fix for IE6/7
|
||||
vp = DOM.getViewPort();
|
||||
DOM.win.scrollTo(0, 0);
|
||||
|
||||
if (tinymce.isIE)
|
||||
vp.h -= 1;
|
||||
|
||||
n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:' + (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel) ? 'absolute' : 'fixed') + ';top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
|
||||
DOM.add(n, 'div', {id : 'mce_fullscreen'});
|
||||
|
||||
tinymce.each(ed.settings, function(v, n) {
|
||||
s[n] = v;
|
||||
});
|
||||
|
||||
s.id = 'mce_fullscreen';
|
||||
s.width = n.clientWidth;
|
||||
s.height = n.clientHeight - 15;
|
||||
s.fullscreen_is_enabled = true;
|
||||
s.fullscreen_editor_id = ed.id;
|
||||
s.theme_advanced_resizing = false;
|
||||
s.save_onsavecallback = function() {
|
||||
ed.setContent(tinyMCE.get(s.id).getContent({format : 'raw'}), {format : 'raw'});
|
||||
ed.execCommand('mceSave');
|
||||
};
|
||||
|
||||
tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {
|
||||
s[k] = v;
|
||||
});
|
||||
|
||||
if (s.theme_advanced_toolbar_location === 'external')
|
||||
s.theme_advanced_toolbar_location = 'top';
|
||||
|
||||
t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);
|
||||
t.fullscreenEditor.onInit.add(function() {
|
||||
t.fullscreenEditor.setContent(ed.getContent());
|
||||
t.fullscreenEditor.focus();
|
||||
});
|
||||
|
||||
t.fullscreenEditor.render();
|
||||
tinyMCE.add(t.fullscreenEditor);
|
||||
|
||||
t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');
|
||||
t.fullscreenElement.update();
|
||||
//document.body.overflow = 'hidden';
|
||||
|
||||
t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {
|
||||
var vp = tinymce.DOM.getViewPort();
|
||||
|
||||
t.fullscreenEditor.theme.resizeTo(vp.w, vp.h);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm) {
|
||||
cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Fullscreen',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/iespell/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/iespell/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.IESpell',{init:function(ed,url){var t=this,sp;if(!tinymce.isIE)return;t.editor=ed;ed.addCommand('mceIESpell',function(){try{sp=new ActiveXObject("ieSpell.ieSpellExtension");sp.CheckDocumentNode(ed.getDoc().documentElement);}catch(e){if(e.number==-2146827859){ed.windowManager.confirm(ed.getLang("iespell.download"),function(s){if(s)window.open('http://www.iespell.com/download.php','ieSpellDownload','');});}else ed.windowManager.alert("Error Loading ieSpell: Exception "+e.number);}});ed.addButton('iespell',{title:'iespell.iespell_desc',cmd:'mceIESpell'});},getInfo:function(){return{longname:'IESpell (IE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('iespell',tinymce.plugins.IESpell);})();
|
||||
51
include/javascript/tiny_mce/plugins/iespell/editor_plugin_src.js
vendored
Executable file
51
include/javascript/tiny_mce/plugins/iespell/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.IESpell', {
|
||||
init : function(ed, url) {
|
||||
var t = this, sp;
|
||||
|
||||
if (!tinymce.isIE)
|
||||
return;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceIESpell', function() {
|
||||
try {
|
||||
sp = new ActiveXObject("ieSpell.ieSpellExtension");
|
||||
sp.CheckDocumentNode(ed.getDoc().documentElement);
|
||||
} catch (e) {
|
||||
if (e.number == -2146827859) {
|
||||
ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) {
|
||||
if (s)
|
||||
window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');
|
||||
});
|
||||
} else
|
||||
ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number);
|
||||
}
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'IESpell (IE Only)',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/inlinepopups/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/inlinepopups/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
632
include/javascript/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
vendored
Executable file
632
include/javascript/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,632 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;
|
||||
|
||||
tinymce.create('tinymce.plugins.InlinePopups', {
|
||||
init : function(ed, url) {
|
||||
// Replace window manager
|
||||
ed.onBeforeRenderUI.add(function() {
|
||||
ed.windowManager = new tinymce.InlineWindowManager(ed);
|
||||
DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css");
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'InlinePopups',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', {
|
||||
InlineWindowManager : function(ed) {
|
||||
var t = this;
|
||||
|
||||
t.parent(ed);
|
||||
t.zIndex = 300000;
|
||||
t.count = 0;
|
||||
t.windows = {};
|
||||
},
|
||||
|
||||
open : function(f, p) {
|
||||
var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u;
|
||||
|
||||
f = f || {};
|
||||
p = p || {};
|
||||
|
||||
// Run native windows
|
||||
if (!f.inline)
|
||||
return t.parent(f, p);
|
||||
|
||||
// Only store selection if the type is a normal window
|
||||
if (!f.type)
|
||||
t.bookmark = ed.selection.getBookmark('simple');
|
||||
|
||||
id = DOM.uniqueId();
|
||||
vp = DOM.getViewPort();
|
||||
f.width = parseInt(f.width || 320);
|
||||
f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0);
|
||||
f.min_width = parseInt(f.min_width || 150);
|
||||
f.min_height = parseInt(f.min_height || 100);
|
||||
f.max_width = parseInt(f.max_width || 2000);
|
||||
f.max_height = parseInt(f.max_height || 2000);
|
||||
f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0)));
|
||||
f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0)));
|
||||
f.movable = f.resizable = true;
|
||||
p.mce_width = f.width;
|
||||
p.mce_height = f.height;
|
||||
p.mce_inline = true;
|
||||
p.mce_window_id = id;
|
||||
p.mce_auto_focus = f.auto_focus;
|
||||
|
||||
// Transpose
|
||||
// po = DOM.getPos(ed.getContainer());
|
||||
// f.left -= po.x;
|
||||
// f.top -= po.y;
|
||||
|
||||
t.features = f;
|
||||
t.params = p;
|
||||
t.onOpen.dispatch(t, f, p);
|
||||
|
||||
if (f.type) {
|
||||
opt += ' mceModal';
|
||||
|
||||
if (f.type)
|
||||
opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1);
|
||||
|
||||
f.resizable = false;
|
||||
}
|
||||
|
||||
if (f.statusbar)
|
||||
opt += ' mceStatusbar';
|
||||
|
||||
if (f.resizable)
|
||||
opt += ' mceResizable';
|
||||
|
||||
if (f.minimizable)
|
||||
opt += ' mceMinimizable';
|
||||
|
||||
if (f.maximizable)
|
||||
opt += ' mceMaximizable';
|
||||
|
||||
if (f.movable)
|
||||
opt += ' mceMovable';
|
||||
|
||||
// Create DOM objects
|
||||
t._addAll(DOM.doc.body,
|
||||
['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', style : 'width:100px;height:100px'},
|
||||
['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},
|
||||
['div', {id : id + '_top', 'class' : 'mceTop'},
|
||||
['div', {'class' : 'mceLeft'}],
|
||||
['div', {'class' : 'mceCenter'}],
|
||||
['div', {'class' : 'mceRight'}],
|
||||
['span', {id : id + '_title'}, f.title || '']
|
||||
],
|
||||
|
||||
['div', {id : id + '_middle', 'class' : 'mceMiddle'},
|
||||
['div', {id : id + '_left', 'class' : 'mceLeft'}],
|
||||
['span', {id : id + '_content'}],
|
||||
['div', {id : id + '_right', 'class' : 'mceRight'}]
|
||||
],
|
||||
|
||||
['div', {id : id + '_bottom', 'class' : 'mceBottom'},
|
||||
['div', {'class' : 'mceLeft'}],
|
||||
['div', {'class' : 'mceCenter'}],
|
||||
['div', {'class' : 'mceRight'}],
|
||||
['span', {id : id + '_status'}, 'Content']
|
||||
],
|
||||
|
||||
['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
|
||||
['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
|
||||
['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
|
||||
['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
|
||||
['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}],
|
||||
['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}]
|
||||
]
|
||||
]
|
||||
);
|
||||
|
||||
DOM.setStyles(id, {top : -10000, left : -10000});
|
||||
|
||||
// Fix gecko rendering bug, where the editors iframe messed with window contents
|
||||
if (tinymce.isGecko)
|
||||
DOM.setStyle(id, 'overflow', 'auto');
|
||||
|
||||
// Measure borders
|
||||
if (!f.type) {
|
||||
dw += DOM.get(id + '_left').clientWidth;
|
||||
dw += DOM.get(id + '_right').clientWidth;
|
||||
dh += DOM.get(id + '_top').clientHeight;
|
||||
dh += DOM.get(id + '_bottom').clientHeight;
|
||||
}
|
||||
|
||||
// Resize window
|
||||
DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});
|
||||
|
||||
u = f.url || f.file;
|
||||
if (u) {
|
||||
if (tinymce.relaxedDomain)
|
||||
u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;
|
||||
|
||||
u = tinymce._addVer(u);
|
||||
}
|
||||
|
||||
if (!f.type) {
|
||||
DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});
|
||||
DOM.setStyles(id + '_ifr', {width : f.width, height : f.height});
|
||||
DOM.setAttrib(id + '_ifr', 'src', u);
|
||||
} else {
|
||||
DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok');
|
||||
|
||||
if (f.type == 'confirm')
|
||||
DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel');
|
||||
|
||||
DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'});
|
||||
DOM.setHTML(id + '_content', f.content.replace('\n', '<br />'));
|
||||
}
|
||||
|
||||
// Register events
|
||||
mdf = Event.add(id, 'mousedown', function(e) {
|
||||
var n = e.target, w, vp;
|
||||
|
||||
w = t.windows[id];
|
||||
t.focus(id);
|
||||
|
||||
if (n.nodeName == 'A' || n.nodeName == 'a') {
|
||||
if (n.className == 'mceMax') {
|
||||
w.oldPos = w.element.getXY();
|
||||
w.oldSize = w.element.getSize();
|
||||
|
||||
vp = DOM.getViewPort();
|
||||
|
||||
// Reduce viewport size to avoid scrollbars
|
||||
vp.w -= 2;
|
||||
vp.h -= 2;
|
||||
|
||||
w.element.moveTo(vp.x, vp.y);
|
||||
w.element.resizeTo(vp.w, vp.h);
|
||||
DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight});
|
||||
DOM.addClass(id + '_wrapper', 'mceMaximized');
|
||||
} else if (n.className == 'mceMed') {
|
||||
// Reset to old size
|
||||
w.element.moveTo(w.oldPos.x, w.oldPos.y);
|
||||
w.element.resizeTo(w.oldSize.w, w.oldSize.h);
|
||||
w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight);
|
||||
|
||||
DOM.removeClass(id + '_wrapper', 'mceMaximized');
|
||||
} else if (n.className == 'mceMove')
|
||||
return t._startDrag(id, e, n.className);
|
||||
else if (DOM.hasClass(n, 'mceResize'))
|
||||
return t._startDrag(id, e, n.className.substring(13));
|
||||
}
|
||||
});
|
||||
|
||||
clf = Event.add(id, 'click', function(e) {
|
||||
var n = e.target;
|
||||
|
||||
t.focus(id);
|
||||
|
||||
if (n.nodeName == 'A' || n.nodeName == 'a') {
|
||||
switch (n.className) {
|
||||
case 'mceClose':
|
||||
t.close(null, id);
|
||||
return Event.cancel(e);
|
||||
|
||||
case 'mceButton mceOk':
|
||||
case 'mceButton mceCancel':
|
||||
f.button_func(n.className == 'mceButton mceOk');
|
||||
return Event.cancel(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Add window
|
||||
w = t.windows[id] = {
|
||||
id : id,
|
||||
mousedown_func : mdf,
|
||||
click_func : clf,
|
||||
element : new Element(id, {blocker : 1, container : ed.getContainer()}),
|
||||
iframeElement : new Element(id + '_ifr'),
|
||||
features : f,
|
||||
deltaWidth : dw,
|
||||
deltaHeight : dh
|
||||
};
|
||||
|
||||
w.iframeElement.on('focus', function() {
|
||||
t.focus(id);
|
||||
});
|
||||
|
||||
// Setup blocker
|
||||
if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {
|
||||
DOM.add(DOM.doc.body, 'div', {
|
||||
id : 'mceModalBlocker',
|
||||
'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',
|
||||
style : {zIndex : t.zIndex - 1}
|
||||
});
|
||||
|
||||
DOM.show('mceModalBlocker'); // Reduces flicker in IE
|
||||
} else
|
||||
DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);
|
||||
|
||||
if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel))
|
||||
DOM.setStyles('mceModalBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});
|
||||
|
||||
t.focus(id);
|
||||
t._fixIELayout(id, 1);
|
||||
|
||||
// Focus ok button
|
||||
if (DOM.get(id + '_ok'))
|
||||
DOM.get(id + '_ok').focus();
|
||||
|
||||
t.count++;
|
||||
|
||||
return w;
|
||||
},
|
||||
|
||||
focus : function(id) {
|
||||
var t = this, w;
|
||||
|
||||
if (w = t.windows[id]) {
|
||||
w.zIndex = this.zIndex++;
|
||||
w.element.setStyle('zIndex', w.zIndex);
|
||||
w.element.update();
|
||||
|
||||
id = id + '_wrapper';
|
||||
DOM.removeClass(t.lastId, 'mceFocus');
|
||||
DOM.addClass(id, 'mceFocus');
|
||||
t.lastId = id;
|
||||
}
|
||||
},
|
||||
|
||||
_addAll : function(te, ne) {
|
||||
var i, n, t = this, dom = tinymce.DOM;
|
||||
|
||||
if (is(ne, 'string'))
|
||||
te.appendChild(dom.doc.createTextNode(ne));
|
||||
else if (ne.length) {
|
||||
te = te.appendChild(dom.create(ne[0], ne[1]));
|
||||
|
||||
for (i=2; i<ne.length; i++)
|
||||
t._addAll(te, ne[i]);
|
||||
}
|
||||
},
|
||||
|
||||
_startDrag : function(id, se, ac) {
|
||||
var t = this, mu, mm, d = DOM.doc, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;
|
||||
|
||||
// Get positons and sizes
|
||||
// cp = DOM.getPos(t.editor.getContainer());
|
||||
cp = {x : 0, y : 0};
|
||||
vp = DOM.getViewPort();
|
||||
|
||||
// Reduce viewport size to avoid scrollbars while dragging
|
||||
vp.w -= 2;
|
||||
vp.h -= 2;
|
||||
|
||||
sex = se.screenX;
|
||||
sey = se.screenY;
|
||||
dx = dy = dw = dh = 0;
|
||||
|
||||
// Handle mouse up
|
||||
mu = Event.add(d, 'mouseup', function(e) {
|
||||
Event.remove(d, 'mouseup', mu);
|
||||
Event.remove(d, 'mousemove', mm);
|
||||
|
||||
if (eb)
|
||||
eb.remove();
|
||||
|
||||
we.moveBy(dx, dy);
|
||||
we.resizeBy(dw, dh);
|
||||
sz = we.getSize();
|
||||
DOM.setStyles(id + '_ifr', {width : sz.w - w.deltaWidth, height : sz.h - w.deltaHeight});
|
||||
t._fixIELayout(id, 1);
|
||||
|
||||
return Event.cancel(e);
|
||||
});
|
||||
|
||||
if (ac != 'Move')
|
||||
startMove();
|
||||
|
||||
function startMove() {
|
||||
if (eb)
|
||||
return;
|
||||
|
||||
t._fixIELayout(id, 0);
|
||||
|
||||
// Setup event blocker
|
||||
DOM.add(d.body, 'div', {
|
||||
id : 'mceEventBlocker',
|
||||
'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),
|
||||
style : {zIndex : t.zIndex + 1}
|
||||
});
|
||||
|
||||
if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))
|
||||
DOM.setStyles('mceEventBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});
|
||||
|
||||
eb = new Element('mceEventBlocker');
|
||||
eb.update();
|
||||
|
||||
// Setup placeholder
|
||||
p = we.getXY();
|
||||
sz = we.getSize();
|
||||
sx = cp.x + p.x - vp.x;
|
||||
sy = cp.y + p.y - vp.y;
|
||||
DOM.add(eb.get(), 'div', {id : 'mcePlaceHolder', 'class' : 'mcePlaceHolder', style : {left : sx, top : sy, width : sz.w, height : sz.h}});
|
||||
ph = new Element('mcePlaceHolder');
|
||||
};
|
||||
|
||||
// Handle mouse move/drag
|
||||
mm = Event.add(d, 'mousemove', function(e) {
|
||||
var x, y, v;
|
||||
|
||||
startMove();
|
||||
|
||||
x = e.screenX - sex;
|
||||
y = e.screenY - sey;
|
||||
|
||||
switch (ac) {
|
||||
case 'ResizeW':
|
||||
dx = x;
|
||||
dw = 0 - x;
|
||||
break;
|
||||
|
||||
case 'ResizeE':
|
||||
dw = x;
|
||||
break;
|
||||
|
||||
case 'ResizeN':
|
||||
case 'ResizeNW':
|
||||
case 'ResizeNE':
|
||||
if (ac == "ResizeNW") {
|
||||
dx = x;
|
||||
dw = 0 - x;
|
||||
} else if (ac == "ResizeNE")
|
||||
dw = x;
|
||||
|
||||
dy = y;
|
||||
dh = 0 - y;
|
||||
break;
|
||||
|
||||
case 'ResizeS':
|
||||
case 'ResizeSW':
|
||||
case 'ResizeSE':
|
||||
if (ac == "ResizeSW") {
|
||||
dx = x;
|
||||
dw = 0 - x;
|
||||
} else if (ac == "ResizeSE")
|
||||
dw = x;
|
||||
|
||||
dh = y;
|
||||
break;
|
||||
|
||||
case 'mceMove':
|
||||
dx = x;
|
||||
dy = y;
|
||||
break;
|
||||
}
|
||||
|
||||
// Boundary check
|
||||
if (dw < (v = w.features.min_width - sz.w)) {
|
||||
if (dx !== 0)
|
||||
dx += dw - v;
|
||||
|
||||
dw = v;
|
||||
}
|
||||
|
||||
if (dh < (v = w.features.min_height - sz.h)) {
|
||||
if (dy !== 0)
|
||||
dy += dh - v;
|
||||
|
||||
dh = v;
|
||||
}
|
||||
|
||||
dw = Math.min(dw, w.features.max_width - sz.w);
|
||||
dh = Math.min(dh, w.features.max_height - sz.h);
|
||||
dx = Math.max(dx, vp.x - (sx + vp.x));
|
||||
dy = Math.max(dy, vp.y - (sy + vp.y));
|
||||
dx = Math.min(dx, (vp.w + vp.x) - (sx + sz.w + vp.x));
|
||||
dy = Math.min(dy, (vp.h + vp.y) - (sy + sz.h + vp.y));
|
||||
|
||||
// Move if needed
|
||||
if (dx + dy !== 0) {
|
||||
if (sx + dx < 0)
|
||||
dx = 0;
|
||||
|
||||
if (sy + dy < 0)
|
||||
dy = 0;
|
||||
|
||||
ph.moveTo(sx + dx, sy + dy);
|
||||
}
|
||||
|
||||
// Resize if needed
|
||||
if (dw + dh !== 0)
|
||||
ph.resizeTo(sz.w + dw, sz.h + dh);
|
||||
|
||||
return Event.cancel(e);
|
||||
});
|
||||
|
||||
return Event.cancel(se);
|
||||
},
|
||||
|
||||
resizeBy : function(dw, dh, id) {
|
||||
var w = this.windows[id];
|
||||
|
||||
if (w) {
|
||||
w.element.resizeBy(dw, dh);
|
||||
w.iframeElement.resizeBy(dw, dh);
|
||||
}
|
||||
},
|
||||
|
||||
close : function(win, id) {
|
||||
var t = this, w, d = DOM.doc, ix = 0, fw, id;
|
||||
|
||||
id = t._findId(id || win);
|
||||
|
||||
// Probably not inline
|
||||
if (!t.windows[id]) {
|
||||
t.parent(win);
|
||||
return;
|
||||
}
|
||||
|
||||
t.count--;
|
||||
|
||||
if (t.count == 0)
|
||||
DOM.remove('mceModalBlocker');
|
||||
|
||||
if (w = t.windows[id]) {
|
||||
t.onClose.dispatch(t);
|
||||
Event.remove(d, 'mousedown', w.mousedownFunc);
|
||||
Event.remove(d, 'click', w.clickFunc);
|
||||
Event.clear(id);
|
||||
Event.clear(id + '_ifr');
|
||||
|
||||
DOM.setAttrib(id + '_ifr', 'src', 'javascript:""'); // Prevent leak
|
||||
w.element.remove();
|
||||
delete t.windows[id];
|
||||
|
||||
// Find front most window and focus that
|
||||
each (t.windows, function(w) {
|
||||
if (w.zIndex > ix) {
|
||||
fw = w;
|
||||
ix = w.zIndex;
|
||||
}
|
||||
});
|
||||
|
||||
if (fw)
|
||||
t.focus(fw.id);
|
||||
}
|
||||
},
|
||||
|
||||
setTitle : function(w, ti) {
|
||||
var e;
|
||||
|
||||
w = this._findId(w);
|
||||
|
||||
if (e = DOM.get(w + '_title'))
|
||||
e.innerHTML = DOM.encode(ti);
|
||||
},
|
||||
|
||||
alert : function(txt, cb, s) {
|
||||
var t = this, w;
|
||||
|
||||
w = t.open({
|
||||
title : t,
|
||||
type : 'alert',
|
||||
button_func : function(s) {
|
||||
if (cb)
|
||||
cb.call(s || t, s);
|
||||
|
||||
t.close(null, w.id);
|
||||
},
|
||||
content : DOM.encode(t.editor.getLang(txt, txt)),
|
||||
inline : 1,
|
||||
width : 400,
|
||||
height : 130
|
||||
});
|
||||
},
|
||||
|
||||
confirm : function(txt, cb, s) {
|
||||
var t = this, w;
|
||||
|
||||
w = t.open({
|
||||
title : t,
|
||||
type : 'confirm',
|
||||
button_func : function(s) {
|
||||
if (cb)
|
||||
cb.call(s || t, s);
|
||||
|
||||
t.close(null, w.id);
|
||||
},
|
||||
content : DOM.encode(t.editor.getLang(txt, txt)),
|
||||
inline : 1,
|
||||
width : 400,
|
||||
height : 130
|
||||
});
|
||||
},
|
||||
|
||||
// Internal functions
|
||||
|
||||
_findId : function(w) {
|
||||
var t = this;
|
||||
|
||||
if (typeof(w) == 'string')
|
||||
return w;
|
||||
|
||||
each(t.windows, function(wo) {
|
||||
var ifr = DOM.get(wo.id + '_ifr');
|
||||
|
||||
if (ifr && w == ifr.contentWindow) {
|
||||
w = wo.id;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return w;
|
||||
},
|
||||
|
||||
_fixIELayout : function(id, s) {
|
||||
var w, img;
|
||||
|
||||
if (!tinymce.isIE6)
|
||||
return;
|
||||
|
||||
// Fixes the bug where hover flickers and does odd things in IE6
|
||||
each(['n','s','w','e','nw','ne','sw','se'], function(v) {
|
||||
var e = DOM.get(id + '_resize_' + v);
|
||||
|
||||
DOM.setStyles(e, {
|
||||
width : s ? e.clientWidth : '',
|
||||
height : s ? e.clientHeight : '',
|
||||
cursor : DOM.getStyle(e, 'cursor', 1)
|
||||
});
|
||||
|
||||
DOM.setStyle(id + "_bottom", 'bottom', '-1px');
|
||||
|
||||
e = 0;
|
||||
});
|
||||
|
||||
// Fixes graphics glitch
|
||||
if (w = this.windows[id]) {
|
||||
// Fixes rendering bug after resize
|
||||
w.element.hide();
|
||||
w.element.show();
|
||||
|
||||
// Forced a repaint of the window
|
||||
//DOM.get(id).style.filter = '';
|
||||
|
||||
// IE has a bug where images used in CSS won't get loaded
|
||||
// sometimes when the cache in the browser is disabled
|
||||
// This fix tries to solve it by loading the images using the image object
|
||||
each(DOM.select('div,a', id), function(e, i) {
|
||||
if (e.currentStyle.backgroundImage != 'none') {
|
||||
img = new Image();
|
||||
img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1');
|
||||
}
|
||||
});
|
||||
|
||||
DOM.get(id).style.filter = '';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups);
|
||||
})();
|
||||
|
||||
1
include/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.InsertDateTime',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertDate',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_dateFormat",ed.getLang('insertdatetime.date_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addCommand('mceInsertTime',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_timeFormat",ed.getLang('insertdatetime.time_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addButton('insertdate',{title:'insertdatetime.insertdate_desc',cmd:'mceInsertDate'});ed.addButton('inserttime',{title:'insertdatetime.inserttime_desc',cmd:'mceInsertTime'});},getInfo:function(){return{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getDateTime:function(d,fmt){var ed=this.editor;function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value;}return value;};fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('insertdatetime',tinymce.plugins.InsertDateTime);})();
|
||||
80
include/javascript/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
vendored
Executable file
80
include/javascript/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.InsertDateTime', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
ed.addCommand('mceInsertDate', function() {
|
||||
var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_dateFormat", ed.getLang('insertdatetime.date_fmt')));
|
||||
|
||||
ed.execCommand('mceInsertContent', false, str);
|
||||
});
|
||||
|
||||
ed.addCommand('mceInsertTime', function() {
|
||||
var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_timeFormat", ed.getLang('insertdatetime.time_fmt')));
|
||||
|
||||
ed.execCommand('mceInsertContent', false, str);
|
||||
});
|
||||
|
||||
ed.addButton('insertdate', {title : 'insertdatetime.insertdate_desc', cmd : 'mceInsertDate'});
|
||||
ed.addButton('inserttime', {title : 'insertdatetime.inserttime_desc', cmd : 'mceInsertTime'});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Insert date/time',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_getDateTime : function(d, fmt) {
|
||||
var ed = this.editor;
|
||||
|
||||
function addZeros(value, len) {
|
||||
value = "" + value;
|
||||
|
||||
if (value.length < len) {
|
||||
for (var i=0; i<(len-value.length); i++)
|
||||
value = "0" + value;
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
fmt = fmt.replace("%D", "%m/%d/%y");
|
||||
fmt = fmt.replace("%r", "%I:%M:%S %p");
|
||||
fmt = fmt.replace("%Y", "" + d.getFullYear());
|
||||
fmt = fmt.replace("%y", "" + d.getYear());
|
||||
fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
|
||||
fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
|
||||
fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
|
||||
fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
|
||||
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
|
||||
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
|
||||
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
|
||||
fmt = fmt.replace("%B", "" + ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%b", "" + ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%A", "" + ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%a", "" + ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%%", "%");
|
||||
|
||||
return fmt;
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('insertdatetime', tinymce.plugins.InsertDateTime);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/layer/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/layer/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.Layer',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertLayer',t._insertLayer,t);ed.addCommand('mceMoveForward',function(){t._move(1);});ed.addCommand('mceMoveBackward',function(){t._move(-1);});ed.addCommand('mceMakeAbsolute',function(){t._toggleAbsolute();});ed.addButton('moveforward',{title:'layer.forward_desc',cmd:'mceMoveForward'});ed.addButton('movebackward',{title:'layer.backward_desc',cmd:'mceMoveBackward'});ed.addButton('absolute',{title:'layer.absolute_desc',cmd:'mceMakeAbsolute'});ed.addButton('insertlayer',{title:'layer.insertlayer_desc',cmd:'mceInsertLayer'});ed.onInit.add(function(){if(tinymce.isIE)ed.getDoc().execCommand('2D-Position',false,true);});ed.onNodeChange.add(t._nodeChange,t);ed.onVisualAid.add(t._visualAid,t);},getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var le,p;le=this._getParentLayer(n);p=ed.dom.getParent(n,'DIV,P,IMG');if(!p){cm.setDisabled('absolute',1);cm.setDisabled('moveforward',1);cm.setDisabled('movebackward',1);}else{cm.setDisabled('absolute',0);cm.setDisabled('moveforward',!le);cm.setDisabled('movebackward',!le);cm.setActive('absolute',le&&le.style.position.toLowerCase()=="absolute");}},_visualAid:function(ed,e,s){var dom=ed.dom;tinymce.each(dom.select('div,p',e),function(e){if(/^(absolute|relative|static)$/i.test(e.style.position)){if(s)dom.addClass(e,'mceItemVisualAid');else dom.removeClass(e,'mceItemVisualAid');}});},_move:function(d){var ed=this.editor,i,z=[],le=this._getParentLayer(ed.selection.getNode()),ci=-1,fi=-1,nl;nl=[];tinymce.walk(ed.getBody(),function(n){if(n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position))nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci<0&&nl[i]==le)ci=i;}if(d<0){for(i=0;i<z.length;i++){if(z[i]<z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else{if(z[ci]>0)nl[ci].style.zIndex=z[ci]-1;}}else{for(i=0;i<z.length;i++){if(z[i]>z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else nl[ci].style.zIndex=z[ci]+1;}ed.execCommand('mceRepaint');},_getParentLayer:function(n){return this.editor.dom.getParent(n,function(n){return n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position);});},_insertLayer:function(){var ed=this.editor,p=ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(),'*'));ed.dom.add(ed.getBody(),'div',{style:{position:'absolute',left:p.x,top:(p.y>20?p.y:20),width:100,height:100},'class':'mceItemVisualAid'},ed.selection.getContent()||ed.getLang('layer.content'));},_toggleAbsolute:function(){var ed=this.editor,le=this._getParentLayer(ed.selection.getNode());if(!le)le=ed.dom.getParent(ed.selection.getNode(),'DIV,P,IMG');if(le){if(le.style.position.toLowerCase()=="absolute"){ed.dom.setStyles(le,{position:'',left:'',top:'',width:'',height:''});ed.dom.removeClass(le,'mceItemVisualAid');}else{if(le.style.left=="")le.style.left=20+'px';if(le.style.top=="")le.style.top=20+'px';if(le.style.width=="")le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height=="")le.style.height=le.height?(le.height+'px'):'100px';le.style.position="absolute";ed.addVisual(ed.getBody());}ed.execCommand('mceRepaint');ed.nodeChanged();}}});tinymce.PluginManager.add('layer',tinymce.plugins.Layer);})();
|
||||
209
include/javascript/tiny_mce/plugins/layer/editor_plugin_src.js
vendored
Executable file
209
include/javascript/tiny_mce/plugins/layer/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,209 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.Layer', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceInsertLayer', t._insertLayer, t);
|
||||
|
||||
ed.addCommand('mceMoveForward', function() {
|
||||
t._move(1);
|
||||
});
|
||||
|
||||
ed.addCommand('mceMoveBackward', function() {
|
||||
t._move(-1);
|
||||
});
|
||||
|
||||
ed.addCommand('mceMakeAbsolute', function() {
|
||||
t._toggleAbsolute();
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});
|
||||
ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});
|
||||
ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});
|
||||
ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
if (tinymce.isIE)
|
||||
ed.getDoc().execCommand('2D-Position', false, true);
|
||||
});
|
||||
|
||||
ed.onNodeChange.add(t._nodeChange, t);
|
||||
ed.onVisualAid.add(t._visualAid, t);
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Layer',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_nodeChange : function(ed, cm, n) {
|
||||
var le, p;
|
||||
|
||||
le = this._getParentLayer(n);
|
||||
p = ed.dom.getParent(n, 'DIV,P,IMG');
|
||||
|
||||
if (!p) {
|
||||
cm.setDisabled('absolute', 1);
|
||||
cm.setDisabled('moveforward', 1);
|
||||
cm.setDisabled('movebackward', 1);
|
||||
} else {
|
||||
cm.setDisabled('absolute', 0);
|
||||
cm.setDisabled('moveforward', !le);
|
||||
cm.setDisabled('movebackward', !le);
|
||||
cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");
|
||||
}
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_visualAid : function(ed, e, s) {
|
||||
var dom = ed.dom;
|
||||
|
||||
tinymce.each(dom.select('div,p', e), function(e) {
|
||||
if (/^(absolute|relative|static)$/i.test(e.style.position)) {
|
||||
if (s)
|
||||
dom.addClass(e, 'mceItemVisualAid');
|
||||
else
|
||||
dom.removeClass(e, 'mceItemVisualAid');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_move : function(d) {
|
||||
var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl;
|
||||
|
||||
nl = [];
|
||||
tinymce.walk(ed.getBody(), function(n) {
|
||||
if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position))
|
||||
nl.push(n);
|
||||
}, 'childNodes');
|
||||
|
||||
// Find z-indexes
|
||||
for (i=0; i<nl.length; i++) {
|
||||
z[i] = nl[i].style.zIndex ? parseInt(nl[i].style.zIndex) : 0;
|
||||
|
||||
if (ci < 0 && nl[i] == le)
|
||||
ci = i;
|
||||
}
|
||||
|
||||
if (d < 0) {
|
||||
// Move back
|
||||
|
||||
// Try find a lower one
|
||||
for (i=0; i<z.length; i++) {
|
||||
if (z[i] < z[ci]) {
|
||||
fi = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (fi > -1) {
|
||||
nl[ci].style.zIndex = z[fi];
|
||||
nl[fi].style.zIndex = z[ci];
|
||||
} else {
|
||||
if (z[ci] > 0)
|
||||
nl[ci].style.zIndex = z[ci] - 1;
|
||||
}
|
||||
} else {
|
||||
// Move forward
|
||||
|
||||
// Try find a higher one
|
||||
for (i=0; i<z.length; i++) {
|
||||
if (z[i] > z[ci]) {
|
||||
fi = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (fi > -1) {
|
||||
nl[ci].style.zIndex = z[fi];
|
||||
nl[fi].style.zIndex = z[ci];
|
||||
} else
|
||||
nl[ci].style.zIndex = z[ci] + 1;
|
||||
}
|
||||
|
||||
ed.execCommand('mceRepaint');
|
||||
},
|
||||
|
||||
_getParentLayer : function(n) {
|
||||
return this.editor.dom.getParent(n, function(n) {
|
||||
return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position);
|
||||
});
|
||||
},
|
||||
|
||||
_insertLayer : function() {
|
||||
var ed = this.editor, p = ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(), '*'));
|
||||
|
||||
ed.dom.add(ed.getBody(), 'div', {
|
||||
style : {
|
||||
position : 'absolute',
|
||||
left : p.x,
|
||||
top : (p.y > 20 ? p.y : 20),
|
||||
width : 100,
|
||||
height : 100
|
||||
},
|
||||
'class' : 'mceItemVisualAid'
|
||||
}, ed.selection.getContent() || ed.getLang('layer.content'));
|
||||
},
|
||||
|
||||
_toggleAbsolute : function() {
|
||||
var ed = this.editor, le = this._getParentLayer(ed.selection.getNode());
|
||||
|
||||
if (!le)
|
||||
le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG');
|
||||
|
||||
if (le) {
|
||||
if (le.style.position.toLowerCase() == "absolute") {
|
||||
ed.dom.setStyles(le, {
|
||||
position : '',
|
||||
left : '',
|
||||
top : '',
|
||||
width : '',
|
||||
height : ''
|
||||
});
|
||||
|
||||
ed.dom.removeClass(le, 'mceItemVisualAid');
|
||||
} else {
|
||||
if (le.style.left == "")
|
||||
le.style.left = 20 + 'px';
|
||||
|
||||
if (le.style.top == "")
|
||||
le.style.top = 20 + 'px';
|
||||
|
||||
if (le.style.width == "")
|
||||
le.style.width = le.width ? (le.width + 'px') : '100px';
|
||||
|
||||
if (le.style.height == "")
|
||||
le.style.height = le.height ? (le.height + 'px') : '100px';
|
||||
|
||||
le.style.position = "absolute";
|
||||
ed.addVisual(ed.getBody());
|
||||
}
|
||||
|
||||
ed.execCommand('mceRepaint');
|
||||
ed.nodeChanged();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('layer', tinymce.plugins.Layer);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/media/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/media/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
400
include/javascript/tiny_mce/plugins/media/editor_plugin_src.js
vendored
Executable file
400
include/javascript/tiny_mce/plugins/media/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,400 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var each = tinymce.each;
|
||||
|
||||
tinymce.create('tinymce.plugins.MediaPlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
t.url = url;
|
||||
|
||||
function isMediaElm(n) {
|
||||
return /^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);
|
||||
};
|
||||
|
||||
ed.onPreInit.add(function() {
|
||||
// Force in _value parameter this extra parameter is required for older Opera versions
|
||||
ed.serializer.addRules('param[name|value|_mce_value]');
|
||||
});
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceMedia', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/media.htm',
|
||||
width : 430 + parseInt(ed.getLang('media.delta_width', 0)),
|
||||
height : 470 + parseInt(ed.getLang('media.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('media', {title : 'media.desc', cmd : 'mceMedia'});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
cm.setActive('media', n.nodeName == 'IMG' && isMediaElm(n));
|
||||
});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
var lo = {
|
||||
mceItemFlash : 'flash',
|
||||
mceItemShockWave : 'shockwave',
|
||||
mceItemWindowsMedia : 'windowsmedia',
|
||||
mceItemQuickTime : 'quicktime',
|
||||
mceItemRealMedia : 'realmedia'
|
||||
};
|
||||
|
||||
ed.selection.onSetContent.add(function() {
|
||||
t._spansToImgs(ed.getBody());
|
||||
});
|
||||
|
||||
ed.selection.onBeforeSetContent.add(t._objectsToSpans, t);
|
||||
|
||||
if (ed.settings.content_css !== false)
|
||||
ed.dom.loadCSS(url + "/css/content.css");
|
||||
|
||||
if (ed.theme.onResolveName) {
|
||||
ed.theme.onResolveName.add(function(th, o) {
|
||||
if (o.name == 'img') {
|
||||
each(lo, function(v, k) {
|
||||
if (ed.dom.hasClass(o.node, k)) {
|
||||
o.name = v;
|
||||
o.title = ed.dom.getAttrib(o.node, 'title');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (ed && ed.plugins.contextmenu) {
|
||||
ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
|
||||
if (e.nodeName == 'IMG' && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)) {
|
||||
m.add({title : 'media.edit', icon : 'media', cmd : 'mceMedia'});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ed.onBeforeSetContent.add(t._objectsToSpans, t);
|
||||
|
||||
ed.onSetContent.add(function() {
|
||||
t._spansToImgs(ed.getBody());
|
||||
});
|
||||
|
||||
ed.onPreProcess.add(function(ed, o) {
|
||||
var dom = ed.dom;
|
||||
|
||||
if (o.set) {
|
||||
t._spansToImgs(o.node);
|
||||
|
||||
each(dom.select('IMG', o.node), function(n) {
|
||||
var p;
|
||||
|
||||
if (isMediaElm(n)) {
|
||||
p = t._parse(n.title);
|
||||
dom.setAttrib(n, 'width', dom.getAttrib(n, 'width', p.width || 100));
|
||||
dom.setAttrib(n, 'height', dom.getAttrib(n, 'height', p.height || 100));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (o.get) {
|
||||
each(dom.select('IMG', o.node), function(n) {
|
||||
var ci, cb, mt;
|
||||
|
||||
if (ed.getParam('media_use_script')) {
|
||||
if (isMediaElm(n))
|
||||
n.className = n.className.replace(/mceItem/g, 'mceTemp');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
switch (n.className) {
|
||||
case 'mceItemFlash':
|
||||
ci = 'd27cdb6e-ae6d-11cf-96b8-444553540000';
|
||||
cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
|
||||
mt = 'application/x-shockwave-flash';
|
||||
break;
|
||||
|
||||
case 'mceItemShockWave':
|
||||
ci = '166b1bca-3f9c-11cf-8075-444553540000';
|
||||
cb = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';
|
||||
mt = 'application/x-director';
|
||||
break;
|
||||
|
||||
case 'mceItemWindowsMedia':
|
||||
ci = ed.getParam('media_wmp6_compatible') ? '05589fa1-c356-11ce-bf01-00aa0055595a' : '6bf52a52-394a-11d3-b153-00c04f79faa6';
|
||||
cb = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
|
||||
mt = 'application/x-mplayer2';
|
||||
break;
|
||||
|
||||
case 'mceItemQuickTime':
|
||||
ci = '02bf25d5-8c17-4b23-bc80-d3488abddc6b';
|
||||
cb = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';
|
||||
mt = 'video/quicktime';
|
||||
break;
|
||||
|
||||
case 'mceItemRealMedia':
|
||||
ci = 'cfcdaa03-8be4-11cf-b84b-0020afbbccfa';
|
||||
cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
|
||||
mt = 'audio/x-pn-realaudio-plugin';
|
||||
break;
|
||||
}
|
||||
|
||||
if (ci) {
|
||||
dom.replace(t._buildObj({
|
||||
classid : ci,
|
||||
codebase : cb,
|
||||
type : mt
|
||||
}, n), n);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
o.content = o.content.replace(/_mce_value=/g, 'value=');
|
||||
});
|
||||
|
||||
if (ed.getParam('media_use_script')) {
|
||||
function getAttr(s, n) {
|
||||
n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);
|
||||
|
||||
return n ? ed.dom.decode(n[1]) : '';
|
||||
};
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
o.content = o.content.replace(/<img[^>]+>/g, function(im) {
|
||||
var cl = getAttr(im, 'class');
|
||||
|
||||
if (/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)) {
|
||||
at = t._parse(getAttr(im, 'title'));
|
||||
at.width = getAttr(im, 'width');
|
||||
at.height = getAttr(im, 'height');
|
||||
im = '<script type="text/javascript">write' + cl.substring(7) + '({' + t._serialize(at) + '});</script>';
|
||||
}
|
||||
|
||||
return im;
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Media',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
_objectsToSpans : function(ed, o) {
|
||||
var t = this, h = o.content;
|
||||
|
||||
h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {
|
||||
var o = t._parse(c);
|
||||
|
||||
return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + t.url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'
|
||||
});
|
||||
|
||||
h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');
|
||||
h = h.replace(/<embed([^>]*)\/?>/gi, '<span class="mceItemEmbed" $1></span>');
|
||||
h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');
|
||||
h = h.replace(/<\/(object)([^>]*)>/gi, '</span>');
|
||||
h = h.replace(/<\/embed>/gi, '');
|
||||
h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_mce_value=') + ' class="mceItemParam"></span>'});
|
||||
h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');
|
||||
|
||||
o.content = h;
|
||||
},
|
||||
|
||||
_buildObj : function(o, n) {
|
||||
var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title), stc;
|
||||
|
||||
stc = ed.getParam('media_strict', true) && o.type == 'application/x-shockwave-flash';
|
||||
|
||||
p.width = o.width = dom.getAttrib(n, 'width') || 100;
|
||||
p.height = o.height = dom.getAttrib(n, 'height') || 100;
|
||||
|
||||
if (p.src)
|
||||
p.src = ed.convertURL(p.src, 'src', n);
|
||||
|
||||
if (stc) {
|
||||
ob = dom.create('span', {
|
||||
mce_name : 'object',
|
||||
type : 'application/x-shockwave-flash',
|
||||
data : p.src,
|
||||
width : o.width,
|
||||
height : o.height
|
||||
});
|
||||
} else {
|
||||
ob = dom.create('span', {
|
||||
mce_name : 'object',
|
||||
classid : "clsid:" + o.classid,
|
||||
codebase : o.codebase,
|
||||
width : o.width,
|
||||
height : o.height
|
||||
});
|
||||
}
|
||||
|
||||
each (p, function(v, k) {
|
||||
if (!/^(width|height|codebase|classid|_cx|_cy)$/.test(k)) {
|
||||
// Use url instead of src in IE for Windows media
|
||||
if (o.type == 'application/x-mplayer2' && k == 'src')
|
||||
k = 'url';
|
||||
|
||||
if (v)
|
||||
dom.add(ob, 'span', {mce_name : 'param', name : k, '_mce_value' : v});
|
||||
}
|
||||
});
|
||||
|
||||
if (!stc)
|
||||
dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));
|
||||
|
||||
return ob;
|
||||
},
|
||||
|
||||
_spansToImgs : function(p) {
|
||||
var t = this, dom = t.editor.dom, im, ci;
|
||||
|
||||
each(dom.select('span', p), function(n) {
|
||||
// Convert object into image
|
||||
if (dom.getAttrib(n, 'class') == 'mceItemObject') {
|
||||
ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, '');
|
||||
|
||||
switch (ci) {
|
||||
case 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':
|
||||
dom.replace(t._createImg('mceItemFlash', n), n);
|
||||
break;
|
||||
|
||||
case 'clsid:166b1bca-3f9c-11cf-8075-444553540000':
|
||||
dom.replace(t._createImg('mceItemShockWave', n), n);
|
||||
break;
|
||||
|
||||
case 'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':
|
||||
case 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':
|
||||
case 'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':
|
||||
dom.replace(t._createImg('mceItemWindowsMedia', n), n);
|
||||
break;
|
||||
|
||||
case 'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':
|
||||
dom.replace(t._createImg('mceItemQuickTime', n), n);
|
||||
break;
|
||||
|
||||
case 'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':
|
||||
dom.replace(t._createImg('mceItemRealMedia', n), n);
|
||||
break;
|
||||
|
||||
default:
|
||||
dom.replace(t._createImg('mceItemFlash', n), n);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Convert embed into image
|
||||
if (dom.getAttrib(n, 'class') == 'mceItemEmbed') {
|
||||
switch (dom.getAttrib(n, 'type')) {
|
||||
case 'application/x-shockwave-flash':
|
||||
dom.replace(t._createImg('mceItemFlash', n), n);
|
||||
break;
|
||||
|
||||
case 'application/x-director':
|
||||
dom.replace(t._createImg('mceItemShockWave', n), n);
|
||||
break;
|
||||
|
||||
case 'application/x-mplayer2':
|
||||
dom.replace(t._createImg('mceItemWindowsMedia', n), n);
|
||||
break;
|
||||
|
||||
case 'video/quicktime':
|
||||
dom.replace(t._createImg('mceItemQuickTime', n), n);
|
||||
break;
|
||||
|
||||
case 'audio/x-pn-realaudio-plugin':
|
||||
dom.replace(t._createImg('mceItemRealMedia', n), n);
|
||||
break;
|
||||
|
||||
default:
|
||||
dom.replace(t._createImg('mceItemFlash', n), n);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_createImg : function(cl, n) {
|
||||
var im, dom = this.editor.dom, pa = {}, ti = '', args;
|
||||
|
||||
args = ['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode', 'allowfullscreen', 'quality'];
|
||||
|
||||
// Create image
|
||||
im = dom.create('img', {
|
||||
src : this.url + '/img/trans.gif',
|
||||
width : dom.getAttrib(n, 'width') || 100,
|
||||
height : dom.getAttrib(n, 'height') || 100,
|
||||
'class' : cl
|
||||
});
|
||||
|
||||
// Setup base parameters
|
||||
each(args, function(na) {
|
||||
var v = dom.getAttrib(n, na);
|
||||
|
||||
if (v)
|
||||
pa[na] = v;
|
||||
});
|
||||
|
||||
// Add optional parameters
|
||||
each(dom.select('span', n), function(n) {
|
||||
if (dom.hasClass(n, 'mceItemParam'))
|
||||
pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_mce_value');
|
||||
});
|
||||
|
||||
// Use src not movie
|
||||
if (pa.movie) {
|
||||
pa.src = pa.movie;
|
||||
delete pa.movie;
|
||||
}
|
||||
|
||||
// Merge with embed args
|
||||
n = dom.select('.mceItemEmbed', n)[0];
|
||||
if (n) {
|
||||
each(args, function(na) {
|
||||
var v = dom.getAttrib(n, na);
|
||||
|
||||
if (v && !pa[na])
|
||||
pa[na] = v;
|
||||
});
|
||||
}
|
||||
|
||||
delete pa.width;
|
||||
delete pa.height;
|
||||
|
||||
im.title = this._serialize(pa);
|
||||
|
||||
return im;
|
||||
},
|
||||
|
||||
_parse : function(s) {
|
||||
return tinymce.util.JSON.parse('{' + s + '}');
|
||||
},
|
||||
|
||||
_serialize : function(o) {
|
||||
return tinymce.util.JSON.serialize(o).replace(/[{}]/g, '');
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin);
|
||||
})();
|
||||
73
include/javascript/tiny_mce/plugins/media/js/embed.js
vendored
Executable file
73
include/javascript/tiny_mce/plugins/media/js/embed.js
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
|
||||
*/
|
||||
|
||||
function writeFlash(p) {
|
||||
writeEmbed(
|
||||
'D27CDB6E-AE6D-11cf-96B8-444553540000',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
||||
'application/x-shockwave-flash',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeShockWave(p) {
|
||||
writeEmbed(
|
||||
'166B1BCA-3F9C-11CF-8075-444553540000',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
|
||||
'application/x-director',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeQuickTime(p) {
|
||||
writeEmbed(
|
||||
'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
|
||||
'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
|
||||
'video/quicktime',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeRealMedia(p) {
|
||||
writeEmbed(
|
||||
'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
||||
'audio/x-pn-realaudio-plugin',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeWindowsMedia(p) {
|
||||
p.url = p.src;
|
||||
writeEmbed(
|
||||
'6BF52A52-394A-11D3-B153-00C04F79FAA6',
|
||||
'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
|
||||
'application/x-mplayer2',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeEmbed(cls, cb, mt, p) {
|
||||
var h = '', n;
|
||||
|
||||
h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
|
||||
h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
|
||||
h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
|
||||
h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
|
||||
h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
|
||||
h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
|
||||
h += '>';
|
||||
|
||||
for (n in p)
|
||||
h += '<param name="' + n + '" value="' + p[n] + '">';
|
||||
|
||||
h += '<embed type="' + mt + '"';
|
||||
|
||||
for (n in p)
|
||||
h += n + '="' + p[n] + '" ';
|
||||
|
||||
h += '></embed></object>';
|
||||
|
||||
document.write(h);
|
||||
}
|
||||
630
include/javascript/tiny_mce/plugins/media/js/media.js
vendored
Executable file
630
include/javascript/tiny_mce/plugins/media/js/media.js
vendored
Executable file
@@ -0,0 +1,630 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var oldWidth, oldHeight, ed, url;
|
||||
|
||||
if (url = tinyMCEPopup.getParam("media_external_list_url"))
|
||||
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
|
||||
|
||||
function init() {
|
||||
var pl = "", f, val;
|
||||
var type = "flash", fe, i;
|
||||
|
||||
ed = tinyMCEPopup.editor;
|
||||
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
f = document.forms[0]
|
||||
|
||||
fe = ed.selection.getNode();
|
||||
if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {
|
||||
pl = fe.title;
|
||||
|
||||
switch (ed.dom.getAttrib(fe, 'class')) {
|
||||
case 'mceItemFlash':
|
||||
type = 'flash';
|
||||
break;
|
||||
|
||||
case 'mceItemFlashVideo':
|
||||
type = 'flv';
|
||||
break;
|
||||
|
||||
case 'mceItemShockWave':
|
||||
type = 'shockwave';
|
||||
break;
|
||||
|
||||
case 'mceItemWindowsMedia':
|
||||
type = 'wmp';
|
||||
break;
|
||||
|
||||
case 'mceItemQuickTime':
|
||||
type = 'qt';
|
||||
break;
|
||||
|
||||
case 'mceItemRealMedia':
|
||||
type = 'rmp';
|
||||
break;
|
||||
}
|
||||
|
||||
document.forms[0].insert.value = ed.getLang('update', 'Insert', true);
|
||||
}
|
||||
|
||||
document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
|
||||
document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
|
||||
|
||||
var html = getMediaListHTML('medialist','src','media','media');
|
||||
if (html == "")
|
||||
document.getElementById("linklistrow").style.display = 'none';
|
||||
else
|
||||
document.getElementById("linklistcontainer").innerHTML = html;
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('filebrowser'))
|
||||
document.getElementById('src').style.width = '230px';
|
||||
|
||||
// Setup form
|
||||
if (pl != "") {
|
||||
pl = tinyMCEPopup.editor.plugins.media._parse(pl);
|
||||
|
||||
switch (type) {
|
||||
case "flash":
|
||||
setBool(pl, 'flash', 'play');
|
||||
setBool(pl, 'flash', 'loop');
|
||||
setBool(pl, 'flash', 'menu');
|
||||
setBool(pl, 'flash', 'swliveconnect');
|
||||
setStr(pl, 'flash', 'quality');
|
||||
setStr(pl, 'flash', 'scale');
|
||||
setStr(pl, 'flash', 'salign');
|
||||
setStr(pl, 'flash', 'wmode');
|
||||
setStr(pl, 'flash', 'base');
|
||||
setStr(pl, 'flash', 'flashvars');
|
||||
break;
|
||||
|
||||
case "qt":
|
||||
setBool(pl, 'qt', 'loop');
|
||||
setBool(pl, 'qt', 'autoplay');
|
||||
setBool(pl, 'qt', 'cache');
|
||||
setBool(pl, 'qt', 'controller');
|
||||
setBool(pl, 'qt', 'correction');
|
||||
setBool(pl, 'qt', 'enablejavascript');
|
||||
setBool(pl, 'qt', 'kioskmode');
|
||||
setBool(pl, 'qt', 'autohref');
|
||||
setBool(pl, 'qt', 'playeveryframe');
|
||||
setBool(pl, 'qt', 'tarsetcache');
|
||||
setStr(pl, 'qt', 'scale');
|
||||
setStr(pl, 'qt', 'starttime');
|
||||
setStr(pl, 'qt', 'endtime');
|
||||
setStr(pl, 'qt', 'tarset');
|
||||
setStr(pl, 'qt', 'qtsrcchokespeed');
|
||||
setStr(pl, 'qt', 'volume');
|
||||
setStr(pl, 'qt', 'qtsrc');
|
||||
break;
|
||||
|
||||
case "shockwave":
|
||||
setBool(pl, 'shockwave', 'sound');
|
||||
setBool(pl, 'shockwave', 'progress');
|
||||
setBool(pl, 'shockwave', 'autostart');
|
||||
setBool(pl, 'shockwave', 'swliveconnect');
|
||||
setStr(pl, 'shockwave', 'swvolume');
|
||||
setStr(pl, 'shockwave', 'swstretchstyle');
|
||||
setStr(pl, 'shockwave', 'swstretchhalign');
|
||||
setStr(pl, 'shockwave', 'swstretchvalign');
|
||||
break;
|
||||
|
||||
case "wmp":
|
||||
setBool(pl, 'wmp', 'autostart');
|
||||
setBool(pl, 'wmp', 'enabled');
|
||||
setBool(pl, 'wmp', 'enablecontextmenu');
|
||||
setBool(pl, 'wmp', 'fullscreen');
|
||||
setBool(pl, 'wmp', 'invokeurls');
|
||||
setBool(pl, 'wmp', 'mute');
|
||||
setBool(pl, 'wmp', 'stretchtofit');
|
||||
setBool(pl, 'wmp', 'windowlessvideo');
|
||||
setStr(pl, 'wmp', 'balance');
|
||||
setStr(pl, 'wmp', 'baseurl');
|
||||
setStr(pl, 'wmp', 'captioningid');
|
||||
setStr(pl, 'wmp', 'currentmarker');
|
||||
setStr(pl, 'wmp', 'currentposition');
|
||||
setStr(pl, 'wmp', 'defaultframe');
|
||||
setStr(pl, 'wmp', 'playcount');
|
||||
setStr(pl, 'wmp', 'rate');
|
||||
setStr(pl, 'wmp', 'uimode');
|
||||
setStr(pl, 'wmp', 'volume');
|
||||
break;
|
||||
|
||||
case "rmp":
|
||||
setBool(pl, 'rmp', 'autostart');
|
||||
setBool(pl, 'rmp', 'loop');
|
||||
setBool(pl, 'rmp', 'autogotourl');
|
||||
setBool(pl, 'rmp', 'center');
|
||||
setBool(pl, 'rmp', 'imagestatus');
|
||||
setBool(pl, 'rmp', 'maintainaspect');
|
||||
setBool(pl, 'rmp', 'nojava');
|
||||
setBool(pl, 'rmp', 'prefetch');
|
||||
setBool(pl, 'rmp', 'shuffle');
|
||||
setStr(pl, 'rmp', 'console');
|
||||
setStr(pl, 'rmp', 'controls');
|
||||
setStr(pl, 'rmp', 'numloop');
|
||||
setStr(pl, 'rmp', 'scriptcallbacks');
|
||||
break;
|
||||
}
|
||||
|
||||
setStr(pl, null, 'src');
|
||||
setStr(pl, null, 'id');
|
||||
setStr(pl, null, 'name');
|
||||
setStr(pl, null, 'vspace');
|
||||
setStr(pl, null, 'hspace');
|
||||
setStr(pl, null, 'bgcolor');
|
||||
setStr(pl, null, 'align');
|
||||
setStr(pl, null, 'width');
|
||||
setStr(pl, null, 'height');
|
||||
|
||||
if ((val = ed.dom.getAttrib(fe, "width")) != "")
|
||||
pl.width = f.width.value = val;
|
||||
|
||||
if ((val = ed.dom.getAttrib(fe, "height")) != "")
|
||||
pl.height = f.height.value = val;
|
||||
|
||||
oldWidth = pl.width ? parseInt(pl.width) : 0;
|
||||
oldHeight = pl.height ? parseInt(pl.height) : 0;
|
||||
} else
|
||||
oldWidth = oldHeight = 0;
|
||||
|
||||
selectByValue(f, 'media_type', type);
|
||||
changedType(type);
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
|
||||
TinyMCE_EditableSelects.init();
|
||||
generatePreview();
|
||||
}
|
||||
|
||||
function insertMedia() {
|
||||
var fe, f = document.forms[0], h;
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
if (!AutoValidator.validate(f)) {
|
||||
tinyMCEPopup.alert(ed.getLang('invalid_data'));
|
||||
return false;
|
||||
}
|
||||
|
||||
f.width.value = f.width.value == "" ? 100 : f.width.value;
|
||||
f.height.value = f.height.value == "" ? 100 : f.height.value;
|
||||
|
||||
fe = ed.selection.getNode();
|
||||
if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {
|
||||
switch (f.media_type.options[f.media_type.selectedIndex].value) {
|
||||
case "flash":
|
||||
fe.className = "mceItemFlash";
|
||||
break;
|
||||
|
||||
case "flv":
|
||||
fe.className = "mceItemFlashVideo";
|
||||
break;
|
||||
|
||||
case "shockwave":
|
||||
fe.className = "mceItemShockWave";
|
||||
break;
|
||||
|
||||
case "qt":
|
||||
fe.className = "mceItemQuickTime";
|
||||
break;
|
||||
|
||||
case "wmp":
|
||||
fe.className = "mceItemWindowsMedia";
|
||||
break;
|
||||
|
||||
case "rmp":
|
||||
fe.className = "mceItemRealMedia";
|
||||
break;
|
||||
}
|
||||
|
||||
if (fe.width != f.width.value || fe.height != f.height.height)
|
||||
ed.execCommand('mceRepaint');
|
||||
|
||||
fe.title = serializeParameters();
|
||||
fe.width = f.width.value;
|
||||
fe.height = f.height.value;
|
||||
fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');
|
||||
fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');
|
||||
fe.align = f.align.options[f.align.selectedIndex].value;
|
||||
} else {
|
||||
h = '<img src="' + tinyMCEPopup.getWindowArg("plugin_url") + '/img/trans.gif"' ;
|
||||
|
||||
switch (f.media_type.options[f.media_type.selectedIndex].value) {
|
||||
case "flash":
|
||||
h += ' class="mceItemFlash"';
|
||||
break;
|
||||
|
||||
case "flv":
|
||||
h += ' class="mceItemFlashVideo"';
|
||||
break;
|
||||
|
||||
case "shockwave":
|
||||
h += ' class="mceItemShockWave"';
|
||||
break;
|
||||
|
||||
case "qt":
|
||||
h += ' class="mceItemQuickTime"';
|
||||
break;
|
||||
|
||||
case "wmp":
|
||||
h += ' class="mceItemWindowsMedia"';
|
||||
break;
|
||||
|
||||
case "rmp":
|
||||
h += ' class="mceItemRealMedia"';
|
||||
break;
|
||||
}
|
||||
|
||||
h += ' title="' + serializeParameters() + '"';
|
||||
h += ' width="' + f.width.value + '"';
|
||||
h += ' height="' + f.height.value + '"';
|
||||
h += ' align="' + f.align.options[f.align.selectedIndex].value + '"';
|
||||
|
||||
h += ' />';
|
||||
|
||||
ed.execCommand('mceInsertContent', false, h);
|
||||
}
|
||||
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function updatePreview() {
|
||||
var f = document.forms[0], type;
|
||||
|
||||
f.width.value = f.width.value || '320';
|
||||
f.height.value = f.height.value || '240';
|
||||
|
||||
type = getType(f.src.value);
|
||||
selectByValue(f, 'media_type', type);
|
||||
changedType(type);
|
||||
generatePreview();
|
||||
}
|
||||
|
||||
function getMediaListHTML() {
|
||||
if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
|
||||
var html = "";
|
||||
|
||||
html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;updatePreview();">';
|
||||
html += '<option value="">---</option>';
|
||||
|
||||
for (var i=0; i<tinyMCEMediaList.length; i++)
|
||||
html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';
|
||||
|
||||
html += '</select>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function getType(v) {
|
||||
var fo, i, c, el, x, f = document.forms[0];
|
||||
|
||||
fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');
|
||||
|
||||
// YouTube
|
||||
if (v.match(/watch\?v=(.+)(.*)/)) {
|
||||
f.width.value = '425';
|
||||
f.height.value = '350';
|
||||
f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];
|
||||
return 'flash';
|
||||
}
|
||||
|
||||
// Google video
|
||||
if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {
|
||||
f.width.value = '425';
|
||||
f.height.value = '326';
|
||||
f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';
|
||||
return 'flash';
|
||||
}
|
||||
|
||||
for (i=0; i<fo.length; i++) {
|
||||
c = fo[i].split('=');
|
||||
|
||||
el = c[1].split(',');
|
||||
for (x=0; x<el.length; x++)
|
||||
if (v.indexOf('.' + el[x]) != -1)
|
||||
return c[0];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function switchType(v) {
|
||||
var t = getType(v), d = document, f = d.forms[0];
|
||||
|
||||
if (!t)
|
||||
return;
|
||||
|
||||
selectByValue(d.forms[0], 'media_type', t);
|
||||
changedType(t);
|
||||
|
||||
// Update qtsrc also
|
||||
if (t == 'qt' && f.src.value.toLowerCase().indexOf('rtsp://') != -1) {
|
||||
alert(ed.getLang("media_qt_stream_warn"));
|
||||
|
||||
if (f.qt_qtsrc.value == '')
|
||||
f.qt_qtsrc.value = f.src.value;
|
||||
}
|
||||
}
|
||||
|
||||
function changedType(t) {
|
||||
var d = document;
|
||||
|
||||
d.getElementById('flash_options').style.display = 'none';
|
||||
d.getElementById('flv_options').style.display = 'none';
|
||||
d.getElementById('qt_options').style.display = 'none';
|
||||
d.getElementById('shockwave_options').style.display = 'none';
|
||||
d.getElementById('wmp_options').style.display = 'none';
|
||||
d.getElementById('rmp_options').style.display = 'none';
|
||||
|
||||
if (t)
|
||||
d.getElementById(t + '_options').style.display = 'block';
|
||||
}
|
||||
|
||||
function serializeParameters() {
|
||||
var d = document, f = d.forms[0], s = '';
|
||||
|
||||
switch (f.media_type.options[f.media_type.selectedIndex].value) {
|
||||
case "flash":
|
||||
s += getBool('flash', 'play', true);
|
||||
s += getBool('flash', 'loop', true);
|
||||
s += getBool('flash', 'menu', true);
|
||||
s += getBool('flash', 'swliveconnect', false);
|
||||
s += getStr('flash', 'quality');
|
||||
s += getStr('flash', 'scale');
|
||||
s += getStr('flash', 'salign');
|
||||
s += getStr('flash', 'wmode');
|
||||
s += getStr('flash', 'base');
|
||||
s += getStr('flash', 'flashvars');
|
||||
break;
|
||||
|
||||
case "qt":
|
||||
s += getBool('qt', 'loop', false);
|
||||
s += getBool('qt', 'autoplay', true);
|
||||
s += getBool('qt', 'cache', false);
|
||||
s += getBool('qt', 'controller', true);
|
||||
s += getBool('qt', 'correction', false, 'none', 'full');
|
||||
s += getBool('qt', 'enablejavascript', false);
|
||||
s += getBool('qt', 'kioskmode', false);
|
||||
s += getBool('qt', 'autohref', false);
|
||||
s += getBool('qt', 'playeveryframe', false);
|
||||
s += getBool('qt', 'targetcache', false);
|
||||
s += getStr('qt', 'scale');
|
||||
s += getStr('qt', 'starttime');
|
||||
s += getStr('qt', 'endtime');
|
||||
s += getStr('qt', 'target');
|
||||
s += getStr('qt', 'qtsrcchokespeed');
|
||||
s += getStr('qt', 'volume');
|
||||
s += getStr('qt', 'qtsrc');
|
||||
break;
|
||||
|
||||
case "shockwave":
|
||||
s += getBool('shockwave', 'sound');
|
||||
s += getBool('shockwave', 'progress');
|
||||
s += getBool('shockwave', 'autostart');
|
||||
s += getBool('shockwave', 'swliveconnect');
|
||||
s += getStr('shockwave', 'swvolume');
|
||||
s += getStr('shockwave', 'swstretchstyle');
|
||||
s += getStr('shockwave', 'swstretchhalign');
|
||||
s += getStr('shockwave', 'swstretchvalign');
|
||||
break;
|
||||
|
||||
case "wmp":
|
||||
s += getBool('wmp', 'autostart', true);
|
||||
s += getBool('wmp', 'enabled', false);
|
||||
s += getBool('wmp', 'enablecontextmenu', true);
|
||||
s += getBool('wmp', 'fullscreen', false);
|
||||
s += getBool('wmp', 'invokeurls', true);
|
||||
s += getBool('wmp', 'mute', false);
|
||||
s += getBool('wmp', 'stretchtofit', false);
|
||||
s += getBool('wmp', 'windowlessvideo', false);
|
||||
s += getStr('wmp', 'balance');
|
||||
s += getStr('wmp', 'baseurl');
|
||||
s += getStr('wmp', 'captioningid');
|
||||
s += getStr('wmp', 'currentmarker');
|
||||
s += getStr('wmp', 'currentposition');
|
||||
s += getStr('wmp', 'defaultframe');
|
||||
s += getStr('wmp', 'playcount');
|
||||
s += getStr('wmp', 'rate');
|
||||
s += getStr('wmp', 'uimode');
|
||||
s += getStr('wmp', 'volume');
|
||||
break;
|
||||
|
||||
case "rmp":
|
||||
s += getBool('rmp', 'autostart', false);
|
||||
s += getBool('rmp', 'loop', false);
|
||||
s += getBool('rmp', 'autogotourl', true);
|
||||
s += getBool('rmp', 'center', false);
|
||||
s += getBool('rmp', 'imagestatus', true);
|
||||
s += getBool('rmp', 'maintainaspect', false);
|
||||
s += getBool('rmp', 'nojava', false);
|
||||
s += getBool('rmp', 'prefetch', false);
|
||||
s += getBool('rmp', 'shuffle', false);
|
||||
s += getStr('rmp', 'console');
|
||||
s += getStr('rmp', 'controls');
|
||||
s += getStr('rmp', 'numloop');
|
||||
s += getStr('rmp', 'scriptcallbacks');
|
||||
break;
|
||||
}
|
||||
|
||||
s += getStr(null, 'id');
|
||||
s += getStr(null, 'name');
|
||||
s += getStr(null, 'src');
|
||||
s += getStr(null, 'align');
|
||||
s += getStr(null, 'bgcolor');
|
||||
s += getInt(null, 'vspace');
|
||||
s += getInt(null, 'hspace');
|
||||
s += getStr(null, 'width');
|
||||
s += getStr(null, 'height');
|
||||
|
||||
s = s.length > 0 ? s.substring(0, s.length - 1) : s;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
function setBool(pl, p, n) {
|
||||
if (typeof(pl[n]) == "undefined")
|
||||
return;
|
||||
|
||||
document.forms[0].elements[p + "_" + n].checked = pl[n];
|
||||
}
|
||||
|
||||
function setStr(pl, p, n) {
|
||||
var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];
|
||||
|
||||
if (typeof(pl[n]) == "undefined")
|
||||
return;
|
||||
|
||||
if (e.type == "text")
|
||||
e.value = pl[n];
|
||||
else
|
||||
selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);
|
||||
}
|
||||
|
||||
function getBool(p, n, d, tv, fv) {
|
||||
var v = document.forms[0].elements[p + "_" + n].checked;
|
||||
|
||||
tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";
|
||||
fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";
|
||||
|
||||
return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');
|
||||
}
|
||||
|
||||
function getStr(p, n, d) {
|
||||
var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
|
||||
var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
|
||||
|
||||
if (n == 'src')
|
||||
v = tinyMCEPopup.editor.convertURL(v, 'src', null);
|
||||
|
||||
return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");
|
||||
}
|
||||
|
||||
function getInt(p, n, d) {
|
||||
var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
|
||||
var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
|
||||
|
||||
return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");
|
||||
}
|
||||
|
||||
function jsEncode(s) {
|
||||
s = s.replace(new RegExp('\\\\', 'g'), '\\\\');
|
||||
s = s.replace(new RegExp('"', 'g'), '\\"');
|
||||
s = s.replace(new RegExp("'", 'g'), "\\'");
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
function generatePreview(c) {
|
||||
var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;
|
||||
|
||||
p.innerHTML = '<!-- x --->';
|
||||
|
||||
nw = parseInt(f.width.value);
|
||||
nh = parseInt(f.height.value);
|
||||
|
||||
if (f.width.value != "" && f.height.value != "") {
|
||||
if (f.constrain.checked) {
|
||||
if (c == 'width' && oldWidth != 0) {
|
||||
wp = nw / oldWidth;
|
||||
nh = Math.round(wp * nh);
|
||||
f.height.value = nh;
|
||||
} else if (c == 'height' && oldHeight != 0) {
|
||||
hp = nh / oldHeight;
|
||||
nw = Math.round(hp * nw);
|
||||
f.width.value = nw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (f.width.value != "")
|
||||
oldWidth = nw;
|
||||
|
||||
if (f.height.value != "")
|
||||
oldHeight = nh;
|
||||
|
||||
// After constrain
|
||||
pl = serializeParameters();
|
||||
|
||||
switch (f.media_type.options[f.media_type.selectedIndex].value) {
|
||||
case "flash":
|
||||
cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
|
||||
codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
|
||||
type = 'application/x-shockwave-flash';
|
||||
break;
|
||||
|
||||
case "shockwave":
|
||||
cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';
|
||||
codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';
|
||||
type = 'application/x-director';
|
||||
break;
|
||||
|
||||
case "qt":
|
||||
cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
|
||||
codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';
|
||||
type = 'video/quicktime';
|
||||
break;
|
||||
|
||||
case "wmp":
|
||||
cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';
|
||||
codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
|
||||
type = 'application/x-mplayer2';
|
||||
break;
|
||||
|
||||
case "rmp":
|
||||
cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
|
||||
codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
|
||||
type = 'audio/x-pn-realaudio-plugin';
|
||||
break;
|
||||
}
|
||||
|
||||
if (pl == '') {
|
||||
p.innerHTML = '';
|
||||
return;
|
||||
}
|
||||
|
||||
pl = tinyMCEPopup.editor.plugins.media._parse(pl);
|
||||
|
||||
if (!pl.src) {
|
||||
p.innerHTML = '';
|
||||
return;
|
||||
}
|
||||
|
||||
pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src);
|
||||
pl.width = !pl.width ? 100 : pl.width;
|
||||
pl.height = !pl.height ? 100 : pl.height;
|
||||
pl.id = !pl.id ? 'obj' : pl.id;
|
||||
pl.name = !pl.name ? 'eobj' : pl.name;
|
||||
pl.align = !pl.align ? '' : pl.align;
|
||||
|
||||
// Avoid annoying warning about insecure items
|
||||
if (!tinymce.isIE || document.location.protocol != 'https:') {
|
||||
h += '<object classid="' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';
|
||||
|
||||
for (n in pl) {
|
||||
h += '<param name="' + n + '" value="' + pl[n] + '">';
|
||||
|
||||
// Add extra url parameter if it's an absolute URL
|
||||
if (n == 'src' && pl[n].indexOf('://') != -1)
|
||||
h += '<param name="url" value="' + pl[n] + '" />';
|
||||
}
|
||||
}
|
||||
|
||||
h += '<embed type="' + type + '" ';
|
||||
|
||||
for (n in pl)
|
||||
h += n + '="' + pl[n] + '" ';
|
||||
|
||||
h += '></embed>';
|
||||
|
||||
// Avoid annoying warning about insecure items
|
||||
if (!tinymce.isIE || document.location.protocol != 'https:')
|
||||
h += '</object>';
|
||||
|
||||
p.innerHTML = "<!-- x --->" + h;
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
103
include/javascript/tiny_mce/plugins/media/langs/en_dlg.js
vendored
Executable file
103
include/javascript/tiny_mce/plugins/media/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,103 @@
|
||||
tinyMCE.addI18n('en.media_dlg',{
|
||||
title:"Insert / edit embedded media",
|
||||
general:"General",
|
||||
advanced:"Advanced",
|
||||
file:"File/URL",
|
||||
list:"List",
|
||||
size:"Dimensions",
|
||||
preview:"Preview",
|
||||
constrain_proportions:"Constrain proportions",
|
||||
type:"Type",
|
||||
id:"Id",
|
||||
name:"Name",
|
||||
class_name:"Class",
|
||||
vspace:"V-Space",
|
||||
hspace:"H-Space",
|
||||
play:"Auto play",
|
||||
loop:"Loop",
|
||||
menu:"Show menu",
|
||||
quality:"Quality",
|
||||
scale:"Scale",
|
||||
align:"Align",
|
||||
salign:"SAlign",
|
||||
wmode:"WMode",
|
||||
bgcolor:"Background",
|
||||
base:"Base",
|
||||
flashvars:"Flashvars",
|
||||
liveconnect:"SWLiveConnect",
|
||||
autohref:"AutoHREF",
|
||||
cache:"Cache",
|
||||
hidden:"Hidden",
|
||||
controller:"Controller",
|
||||
kioskmode:"Kiosk mode",
|
||||
playeveryframe:"Play every frame",
|
||||
targetcache:"Target cache",
|
||||
correction:"No correction",
|
||||
enablejavascript:"Enable JavaScript",
|
||||
starttime:"Start time",
|
||||
endtime:"End time",
|
||||
href:"Href",
|
||||
qtsrcchokespeed:"Choke speed",
|
||||
target:"Target",
|
||||
volume:"Volume",
|
||||
autostart:"Auto start",
|
||||
enabled:"Enabled",
|
||||
fullscreen:"Fullscreen",
|
||||
invokeurls:"Invoke URLs",
|
||||
mute:"Mute",
|
||||
stretchtofit:"Stretch to fit",
|
||||
windowlessvideo:"Windowless video",
|
||||
balance:"Balance",
|
||||
baseurl:"Base URL",
|
||||
captioningid:"Captioning id",
|
||||
currentmarker:"Current marker",
|
||||
currentposition:"Current position",
|
||||
defaultframe:"Default frame",
|
||||
playcount:"Play count",
|
||||
rate:"Rate",
|
||||
uimode:"UI Mode",
|
||||
flash_options:"Flash options",
|
||||
qt_options:"Quicktime options",
|
||||
wmp_options:"Windows media player options",
|
||||
rmp_options:"Real media player options",
|
||||
shockwave_options:"Shockwave options",
|
||||
autogotourl:"Auto goto URL",
|
||||
center:"Center",
|
||||
imagestatus:"Image status",
|
||||
maintainaspect:"Maintain aspect",
|
||||
nojava:"No java",
|
||||
prefetch:"Prefetch",
|
||||
shuffle:"Shuffle",
|
||||
console:"Console",
|
||||
numloop:"Num loops",
|
||||
controls:"Controls",
|
||||
scriptcallbacks:"Script callbacks",
|
||||
swstretchstyle:"Stretch style",
|
||||
swstretchhalign:"Stretch H-Align",
|
||||
swstretchvalign:"Stretch V-Align",
|
||||
sound:"Sound",
|
||||
progress:"Progress",
|
||||
qtsrc:"QT Src",
|
||||
qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",
|
||||
align_top:"Top",
|
||||
align_right:"Right",
|
||||
align_bottom:"Bottom",
|
||||
align_left:"Left",
|
||||
align_center:"Center",
|
||||
align_top_left:"Top left",
|
||||
align_top_right:"Top right",
|
||||
align_bottom_left:"Bottom left",
|
||||
align_bottom_right:"Bottom right",
|
||||
flv_options:"Flash video options",
|
||||
flv_scalemode:"Scale mode",
|
||||
flv_buffer:"Buffer",
|
||||
flv_startimage:"Start image",
|
||||
flv_starttime:"Start time",
|
||||
flv_defaultvolume:"Default volumne",
|
||||
flv_hiddengui:"Hidden GUI",
|
||||
flv_autostart:"Auto start",
|
||||
flv_loop:"Loop",
|
||||
flv_showscalemodes:"Show scale modes",
|
||||
flv_smoothvideo:"Smooth video",
|
||||
flv_jscallback:"JS Callback"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/nonbreaking/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/nonbreaking/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.Nonbreaking',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceNonBreaking',function(){ed.execCommand('mceInsertContent',false,(ed.plugins.visualchars&&ed.plugins.visualchars.state)?'<span class="mceItemHidden mceVisualNbsp">·</span>':' ');});ed.addButton('nonbreaking',{title:'nonbreaking.nonbreaking_desc',cmd:'mceNonBreaking'});if(ed.getParam('nonbreaking_force_tab')){ed.onKeyDown.add(function(ed,e){if(tinymce.isIE&&e.keyCode==9){ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');tinymce.dom.Event.cancel(e);}});}},getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('nonbreaking',tinymce.plugins.Nonbreaking);})();
|
||||
50
include/javascript/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
vendored
Executable file
50
include/javascript/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.Nonbreaking', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceNonBreaking', function() {
|
||||
ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '<span class="mceItemHidden mceVisualNbsp">·</span>' : ' ');
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});
|
||||
|
||||
if (ed.getParam('nonbreaking_force_tab')) {
|
||||
ed.onKeyDown.add(function(ed, e) {
|
||||
if (tinymce.isIE && e.keyCode == 9) {
|
||||
ed.execCommand('mceNonBreaking');
|
||||
ed.execCommand('mceNonBreaking');
|
||||
ed.execCommand('mceNonBreaking');
|
||||
tinymce.dom.Event.cancel(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Nonbreaking space',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
|
||||
// Private methods
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/noneditable/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/noneditable/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.NonEditablePlugin',{init:function(ed,url){var t=this,editClass,nonEditClass;t.editor=ed;editClass=ed.getParam("noneditable_editable_class","mceEditable");nonEditClass=ed.getParam("noneditable_noneditable_class","mceNonEditable");ed.onNodeChange.addToTop(function(ed,cm,n){var sc,ec;sc=ed.dom.getParent(ed.selection.getStart(),function(n){return ed.dom.hasClass(n,nonEditClass);});ec=ed.dom.getParent(ed.selection.getEnd(),function(n){return ed.dom.hasClass(n,nonEditClass);});if(sc||ec){t._setDisabled(1);return false;}else t._setDisabled(0);});},getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_block:function(ed,e){var k=e.keyCode;if((k>32&&k<41)||(k>111&&k<124))return;return Event.cancel(e);},_setDisabled:function(s){var t=this,ed=t.editor;tinymce.each(ed.controlManager.controls,function(c){c.setDisabled(s);});if(s!==t.disabled){if(s){ed.onKeyDown.addToTop(t._block);ed.onKeyPress.addToTop(t._block);ed.onKeyUp.addToTop(t._block);ed.onPaste.addToTop(t._block);}else{ed.onKeyDown.remove(t._block);ed.onKeyPress.remove(t._block);ed.onKeyUp.remove(t._block);ed.onPaste.remove(t._block);}t.disabled=s;}}});tinymce.PluginManager.add('noneditable',tinymce.plugins.NonEditablePlugin);})();
|
||||
87
include/javascript/tiny_mce/plugins/noneditable/editor_plugin_src.js
vendored
Executable file
87
include/javascript/tiny_mce/plugins/noneditable/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var Event = tinymce.dom.Event;
|
||||
|
||||
tinymce.create('tinymce.plugins.NonEditablePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this, editClass, nonEditClass;
|
||||
|
||||
t.editor = ed;
|
||||
editClass = ed.getParam("noneditable_editable_class", "mceEditable");
|
||||
nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable");
|
||||
|
||||
ed.onNodeChange.addToTop(function(ed, cm, n) {
|
||||
var sc, ec;
|
||||
|
||||
// Block if start or end is inside a non editable element
|
||||
sc = ed.dom.getParent(ed.selection.getStart(), function(n) {
|
||||
return ed.dom.hasClass(n, nonEditClass);
|
||||
});
|
||||
|
||||
ec = ed.dom.getParent(ed.selection.getEnd(), function(n) {
|
||||
return ed.dom.hasClass(n, nonEditClass);
|
||||
});
|
||||
|
||||
// Block or unblock
|
||||
if (sc || ec) {
|
||||
t._setDisabled(1);
|
||||
return false;
|
||||
} else
|
||||
t._setDisabled(0);
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Non editable elements',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
_block : function(ed, e) {
|
||||
var k = e.keyCode;
|
||||
|
||||
// Don't block arrow keys, pg up/down, and F1-F12
|
||||
if ((k > 32 && k < 41) || (k > 111 && k < 124))
|
||||
return;
|
||||
|
||||
return Event.cancel(e);
|
||||
},
|
||||
|
||||
_setDisabled : function(s) {
|
||||
var t = this, ed = t.editor;
|
||||
|
||||
tinymce.each(ed.controlManager.controls, function(c) {
|
||||
c.setDisabled(s);
|
||||
});
|
||||
|
||||
if (s !== t.disabled) {
|
||||
if (s) {
|
||||
ed.onKeyDown.addToTop(t._block);
|
||||
ed.onKeyPress.addToTop(t._block);
|
||||
ed.onKeyUp.addToTop(t._block);
|
||||
ed.onPaste.addToTop(t._block);
|
||||
} else {
|
||||
ed.onKeyDown.remove(t._block);
|
||||
ed.onKeyPress.remove(t._block);
|
||||
ed.onKeyUp.remove(t._block);
|
||||
ed.onPaste.remove(t._block);
|
||||
}
|
||||
|
||||
t.disabled = s;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/pagebreak/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/pagebreak/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.PageBreakPlugin',{init:function(ed,url){var pb='<img src="'+url+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',cls='mcePageBreak',sep=ed.getParam('pagebreak_separator','<!-- pagebreak -->'),pbRE;pbRE=new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return'\\'+a;}),'g');ed.addCommand('mcePageBreak',function(){ed.execCommand('mceInsertContent',0,pb);});ed.addButton('pagebreak',{title:'pagebreak.desc',cmd:cls});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName=='IMG'&&ed.dom.hasClass(o.node,cls))o.name='pagebreak';});}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&&ed.dom.hasClass(e,cls))ed.selection.select(e);});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('pagebreak',n.nodeName==='IMG'&&ed.dom.hasClass(n,cls));});ed.onBeforeSetContent.add(function(ed,o){o.content=o.content.replace(pbRE,pb);});ed.onPostProcess.add(function(ed,o){if(o.get)o.content=o.content.replace(/<img[^>]+>/g,function(im){if(im.indexOf('class="mcePageBreak')!==-1)im=sep;return im;});});},getInfo:function(){return{longname:'PageBreak',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('pagebreak',tinymce.plugins.PageBreakPlugin);})();
|
||||
74
include/javascript/tiny_mce/plugins/pagebreak/editor_plugin_src.js
vendored
Executable file
74
include/javascript/tiny_mce/plugins/pagebreak/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.PageBreakPlugin', {
|
||||
init : function(ed, url) {
|
||||
var pb = '<img src="' + url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;
|
||||
|
||||
pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mcePageBreak', function() {
|
||||
ed.execCommand('mceInsertContent', 0, pb);
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
if (ed.settings.content_css !== false)
|
||||
ed.dom.loadCSS(url + "/css/content.css");
|
||||
|
||||
if (ed.theme.onResolveName) {
|
||||
ed.theme.onResolveName.add(function(th, o) {
|
||||
if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))
|
||||
o.name = 'pagebreak';
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ed.onClick.add(function(ed, e) {
|
||||
e = e.target;
|
||||
|
||||
if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))
|
||||
ed.selection.select(e);
|
||||
});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));
|
||||
});
|
||||
|
||||
ed.onBeforeSetContent.add(function(ed, o) {
|
||||
o.content = o.content.replace(pbRE, pb);
|
||||
});
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
if (o.get)
|
||||
o.content = o.content.replace(/<img[^>]+>/g, function(im) {
|
||||
if (im.indexOf('class="mcePageBreak') !== -1)
|
||||
im = sep;
|
||||
|
||||
return im;
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'PageBreak',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/paste/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/paste/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
394
include/javascript/tiny_mce/plugins/paste/editor_plugin_src.js
vendored
Executable file
394
include/javascript/tiny_mce/plugins/paste/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,394 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var Event = tinymce.dom.Event;
|
||||
|
||||
tinymce.create('tinymce.plugins.PastePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mcePasteText', function(ui, v) {
|
||||
if (ui) {
|
||||
if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {
|
||||
ed.windowManager.open({
|
||||
file : url + '/pastetext.htm',
|
||||
width : 450,
|
||||
height : 400,
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
} else
|
||||
t._insertText(clipboardData.getData("Text"), true);
|
||||
} else
|
||||
t._insertText(v.html, v.linebreaks);
|
||||
});
|
||||
|
||||
ed.addCommand('mcePasteWord', function(ui, v) {
|
||||
if (ui) {
|
||||
if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {
|
||||
ed.windowManager.open({
|
||||
file : url + '/pasteword.htm',
|
||||
width : 450,
|
||||
height : 400,
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
} else
|
||||
t._insertText(t._clipboardHTML());
|
||||
} else
|
||||
t._insertWordContent(v);
|
||||
});
|
||||
|
||||
ed.addCommand('mceSelectAll', function() {
|
||||
ed.execCommand('selectall');
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText', ui : true});
|
||||
ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord', ui : true});
|
||||
ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'mceSelectAll'});
|
||||
|
||||
if (ed.getParam("paste_auto_cleanup_on_paste", false)) {
|
||||
ed.onPaste.add(function(ed, e) {
|
||||
return t._handlePasteEvent(e)
|
||||
});
|
||||
}
|
||||
|
||||
if (!tinymce.isIE && ed.getParam("paste_auto_cleanup_on_paste", false)) {
|
||||
// Force paste dialog if non IE browser
|
||||
ed.onKeyDown.add(function(ed, e) {
|
||||
if (e.ctrlKey && e.keyCode == 86) {
|
||||
window.setTimeout(function() {
|
||||
ed.execCommand("mcePasteText", true);
|
||||
}, 1);
|
||||
|
||||
Event.cancel(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Paste text/word',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_handlePasteEvent : function(e) {
|
||||
var html = this._clipboardHTML(), ed = this.editor, sel = ed.selection, r;
|
||||
|
||||
// Removes italic, strong etc, the if was needed due to bug #1437114
|
||||
if (ed && (r = sel.getRng()) && r.text.length > 0)
|
||||
ed.execCommand('delete');
|
||||
|
||||
if (html && html.length > 0)
|
||||
ed.execCommand('mcePasteWord', false, html);
|
||||
|
||||
return Event.cancel(e);
|
||||
},
|
||||
|
||||
_insertText : function(content, bLinebreaks) {
|
||||
content = this.editor.dom.encode(content);
|
||||
|
||||
if (content && content.length > 0) {
|
||||
// Delete any highlighted text before pasting
|
||||
if (!this.editor.selection.isCollapsed())
|
||||
this.editor.execCommand("Delete");
|
||||
|
||||
if (bLinebreaks) {
|
||||
// Special paragraph treatment
|
||||
if (this.editor.getParam("paste_create_paragraphs", true)) {
|
||||
var rl = this.editor.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
|
||||
for (var i=0; i<rl.length; i+=2)
|
||||
content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
|
||||
|
||||
content = content.replace(/\r\n\r\n/g, '</p><p>');
|
||||
content = content.replace(/\r\r/g, '</p><p>');
|
||||
content = content.replace(/\n\n/g, '</p><p>');
|
||||
|
||||
// Has paragraphs
|
||||
if ((pos = content.indexOf('</p><p>')) != -1) {
|
||||
this.editor.execCommand("Delete");
|
||||
|
||||
var node = this.editor.selection.getNode();
|
||||
|
||||
// Get list of elements to break
|
||||
var breakElms = [];
|
||||
|
||||
do {
|
||||
if (node.nodeType == 1) {
|
||||
// Don't break tables and break at body
|
||||
if (node.nodeName == "TD" || node.nodeName == "BODY")
|
||||
break;
|
||||
|
||||
breakElms[breakElms.length] = node;
|
||||
}
|
||||
} while(node = node.parentNode);
|
||||
|
||||
var before = "", after = "</p>";
|
||||
before += content.substring(0, pos);
|
||||
|
||||
for (var i=0; i<breakElms.length; i++) {
|
||||
before += "</" + breakElms[i].nodeName + ">";
|
||||
after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">";
|
||||
}
|
||||
|
||||
before += "<p>";
|
||||
content = before + content.substring(pos+7) + after;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.editor.getParam("paste_create_linebreaks", true)) {
|
||||
content = content.replace(/\r\n/g, '<br />');
|
||||
content = content.replace(/\r/g, '<br />');
|
||||
content = content.replace(/\n/g, '<br />');
|
||||
}
|
||||
}
|
||||
|
||||
this.editor.execCommand("mceInsertRawHTML", false, content);
|
||||
}
|
||||
},
|
||||
|
||||
_insertWordContent : function(content) {
|
||||
var t = this, ed = t.editor;
|
||||
|
||||
if (content && content.length > 0) {
|
||||
// Cleanup Word content
|
||||
var bull = String.fromCharCode(8226);
|
||||
var middot = String.fromCharCode(183);
|
||||
|
||||
if (ed.getParam('paste_insert_word_content_callback'))
|
||||
content = ed.execCallback('paste_insert_word_content_callback', 'before', content);
|
||||
|
||||
var rl = ed.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\x93|\x94|\u201c|\u201d,",\x60|\x91|\x92|\u2018|\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
|
||||
for (var i=0; i<rl.length; i+=2)
|
||||
content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
|
||||
|
||||
if (this.editor.getParam("paste_convert_headers_to_strong", false)) {
|
||||
content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');
|
||||
}
|
||||
|
||||
content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");
|
||||
content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");
|
||||
content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list
|
||||
content = content.replace(/<o:p><\/o:p>/gi, "");
|
||||
content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks
|
||||
content = content.replace(/<!--([\s\S]*?)-->|<style>[\s\S]*?<\/style>/g, ""); // Word comments
|
||||
content = content.replace(/<(meta|link)[^>]+>/g, ""); // Header elements
|
||||
|
||||
if (this.editor.getParam("paste_remove_spans", true))
|
||||
content = content.replace(/<\/?span[^>]*>/gi, "");
|
||||
|
||||
if (this.editor.getParam("paste_remove_styles", true))
|
||||
content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");
|
||||
|
||||
content = content.replace(/<\/?font[^>]*>/gi, "");
|
||||
|
||||
// Strips class attributes.
|
||||
switch (this.editor.getParam("paste_strip_class_attributes", "all")) {
|
||||
case "all":
|
||||
content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
|
||||
break;
|
||||
|
||||
case "mso":
|
||||
content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");
|
||||
break;
|
||||
}
|
||||
|
||||
content = content.replace(new RegExp('href="?' + this._reEscape("" + document.location) + '', 'gi'), 'href="' + this.editor.documentBaseURI.getURI());
|
||||
content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
|
||||
content = content.replace(/<\\?\?xml[^>]*>/gi, "");
|
||||
content = content.replace(/<\/?\w+:[^>]*>/gi, "");
|
||||
content = content.replace(/-- page break --\s*<p> <\/p>/gi, ""); // Remove pagebreaks
|
||||
content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks
|
||||
|
||||
// content = content.replace(/\/? */gi, "");
|
||||
// content = content.replace(/<p> <\/p>/gi, '');
|
||||
|
||||
if (!this.editor.getParam('force_p_newlines')) {
|
||||
content = content.replace('', '' ,'gi');
|
||||
content = content.replace('</p>', '<br /><br />' ,'gi');
|
||||
}
|
||||
|
||||
if (!tinymce.isIE && !this.editor.getParam('force_p_newlines')) {
|
||||
content = content.replace(/<\/?p[^>]*>/gi, "");
|
||||
}
|
||||
|
||||
content = content.replace(/<\/?div[^>]*>/gi, "");
|
||||
|
||||
// Convert all middlot lists to UL lists
|
||||
if (this.editor.getParam("paste_convert_middot_lists", true)) {
|
||||
var div = ed.dom.create("div", null, content);
|
||||
|
||||
// Convert all middot paragraphs to li elements
|
||||
var className = this.editor.getParam("paste_unindented_list_class", "unIndentedList");
|
||||
|
||||
while (this._convertMiddots(div, "--list--")) ; // bull
|
||||
while (this._convertMiddots(div, middot, className)) ; // Middot
|
||||
while (this._convertMiddots(div, bull)) ; // bull
|
||||
|
||||
content = div.innerHTML;
|
||||
}
|
||||
|
||||
// Replace all headers with strong and fix some other issues
|
||||
if (this.editor.getParam("paste_convert_headers_to_strong", false)) {
|
||||
content = content.replace(/<h[1-6]> <\/h[1-6]>/gi, '<p> </p>');
|
||||
content = content.replace(/<h[1-6]>/gi, '<p><b>');
|
||||
content = content.replace(/<\/h[1-6]>/gi, '</b></p>');
|
||||
content = content.replace(/<b> <\/b>/gi, '<b> </b>');
|
||||
content = content.replace(/^( )*/gi, '');
|
||||
}
|
||||
|
||||
content = content.replace(/--list--/gi, ""); // Remove --list--
|
||||
|
||||
if (ed.getParam('paste_insert_word_content_callback'))
|
||||
content = ed.execCallback('paste_insert_word_content_callback', 'after', content);
|
||||
|
||||
// Insert cleaned content
|
||||
this.editor.execCommand("mceInsertContent", false, content);
|
||||
|
||||
if (this.editor.getParam('paste_force_cleanup_wordpaste', true)) {
|
||||
var ed = this.editor;
|
||||
|
||||
window.setTimeout(function() {
|
||||
ed.execCommand("mceCleanup");
|
||||
}, 1); // Do normal cleanup detached from this thread
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_reEscape : function(s) {
|
||||
var l = "?.\\*[](){}+^$:";
|
||||
var o = "";
|
||||
|
||||
for (var i=0; i<s.length; i++) {
|
||||
var c = s.charAt(i);
|
||||
|
||||
if (l.indexOf(c) != -1)
|
||||
o += '\\' + c;
|
||||
else
|
||||
o += c;
|
||||
}
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
_convertMiddots : function(div, search, class_name) {
|
||||
var ed = this.editor, mdot = String.fromCharCode(183), bull = String.fromCharCode(8226);
|
||||
var nodes, prevul, i, p, ul, li, np, cp, li;
|
||||
|
||||
nodes = div.getElementsByTagName("p");
|
||||
for (i=0; i<nodes.length; i++) {
|
||||
p = nodes[i];
|
||||
|
||||
// Is middot
|
||||
if (p.innerHTML.indexOf(search) == 0) {
|
||||
ul = ed.dom.create("ul");
|
||||
|
||||
if (class_name)
|
||||
ul.className = class_name;
|
||||
|
||||
// Add the first one
|
||||
li = ed.dom.create("li");
|
||||
li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');
|
||||
ul.appendChild(li);
|
||||
|
||||
// Add the rest
|
||||
np = p.nextSibling;
|
||||
while (np) {
|
||||
// If the node is whitespace, then
|
||||
// ignore it and continue on.
|
||||
if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {
|
||||
np = np.nextSibling;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (search == mdot) {
|
||||
if (np.nodeType == 1 && new RegExp('^o(\\s+| )').test(np.innerHTML)) {
|
||||
// Second level of nesting
|
||||
if (!prevul) {
|
||||
prevul = ul;
|
||||
ul = ed.dom.create("ul");
|
||||
prevul.appendChild(ul);
|
||||
}
|
||||
np.innerHTML = np.innerHTML.replace(/^o/, '');
|
||||
} else {
|
||||
// Pop the stack if we're going back up to the first level
|
||||
if (prevul) {
|
||||
ul = prevul;
|
||||
prevul = null;
|
||||
}
|
||||
// Not element or middot paragraph
|
||||
if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// Not element or middot paragraph
|
||||
if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
cp = np.nextSibling;
|
||||
li = ed.dom.create("li");
|
||||
li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');
|
||||
np.parentNode.removeChild(np);
|
||||
ul.appendChild(li);
|
||||
np = cp;
|
||||
}
|
||||
|
||||
p.parentNode.replaceChild(ul, p);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
_clipboardHTML : function() {
|
||||
var div = document.getElementById('_TinyMCE_clipboardHTML');
|
||||
|
||||
if (!div) {
|
||||
var div = document.createElement('DIV');
|
||||
div.id = '_TinyMCE_clipboardHTML';
|
||||
|
||||
with (div.style) {
|
||||
visibility = 'hidden';
|
||||
overflow = 'hidden';
|
||||
position = 'absolute';
|
||||
width = 1;
|
||||
height = 1;
|
||||
}
|
||||
|
||||
document.body.appendChild(div);
|
||||
}
|
||||
|
||||
div.innerHTML = '';
|
||||
var rng = document.body.createTextRange();
|
||||
rng.moveToElementText(div);
|
||||
rng.execCommand('Paste');
|
||||
var html = div.innerHTML;
|
||||
div.innerHTML = '';
|
||||
return html;
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('paste', tinymce.plugins.PastePlugin);
|
||||
})();
|
||||
42
include/javascript/tiny_mce/plugins/paste/js/pastetext.js
vendored
Executable file
42
include/javascript/tiny_mce/plugins/paste/js/pastetext.js
vendored
Executable file
@@ -0,0 +1,42 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
function saveContent() {
|
||||
if (document.forms[0].htmlSource.value == '') {
|
||||
tinyMCEPopup.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
tinyMCEPopup.execCommand('mcePasteText', false, {
|
||||
html : document.forms[0].htmlSource.value,
|
||||
linebreaks : document.forms[0].linebreaks.checked
|
||||
});
|
||||
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function onLoadInit() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
// Remove Gecko spellchecking
|
||||
if (tinymce.isGecko)
|
||||
document.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");
|
||||
|
||||
resizeInputs();
|
||||
}
|
||||
|
||||
var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
|
||||
|
||||
function resizeInputs() {
|
||||
if (!tinymce.isIE) {
|
||||
wHeight = self.innerHeight-80;
|
||||
wWidth = self.innerWidth-17;
|
||||
} else {
|
||||
wHeight = document.body.clientHeight-80;
|
||||
wWidth = document.body.clientWidth-17;
|
||||
}
|
||||
|
||||
document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
|
||||
document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(onLoadInit);
|
||||
56
include/javascript/tiny_mce/plugins/paste/js/pasteword.js
vendored
Executable file
56
include/javascript/tiny_mce/plugins/paste/js/pasteword.js
vendored
Executable file
@@ -0,0 +1,56 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
function saveContent() {
|
||||
var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;
|
||||
|
||||
if (html == ''){
|
||||
tinyMCEPopup.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
tinyMCEPopup.execCommand('mcePasteWord', false, html);
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function onLoadInit() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
// Fix for endless reloading in FF
|
||||
window.setTimeout(createIFrame, 10);
|
||||
}
|
||||
|
||||
function createIFrame() {
|
||||
document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';
|
||||
}
|
||||
|
||||
var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
|
||||
|
||||
function initIframe(doc) {
|
||||
var dir = tinyMCEPopup.editor.settings.directionality;
|
||||
|
||||
doc.body.dir = dir;
|
||||
|
||||
// Remove Gecko spellchecking
|
||||
if (tinymce.isGecko)
|
||||
doc.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");
|
||||
|
||||
resizeInputs();
|
||||
}
|
||||
|
||||
function resizeInputs() {
|
||||
if (!tinymce.isIE) {
|
||||
wHeight = self.innerHeight - 80;
|
||||
wWidth = self.innerWidth - 18;
|
||||
} else {
|
||||
wHeight = document.body.clientHeight - 80;
|
||||
wWidth = document.body.clientWidth - 18;
|
||||
}
|
||||
|
||||
var elm = document.getElementById('frmData');
|
||||
if (elm) {
|
||||
elm.style.height = Math.abs(wHeight) + 'px';
|
||||
elm.style.width = Math.abs(wWidth) + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(onLoadInit);
|
||||
5
include/javascript/tiny_mce/plugins/paste/langs/en_dlg.js
vendored
Executable file
5
include/javascript/tiny_mce/plugins/paste/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
tinyMCE.addI18n('en.paste_dlg',{
|
||||
text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
|
||||
text_linebreaks:"Keep linebreaks",
|
||||
word_title:"Use CTRL+V on your keyboard to paste the text into the window."
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/preview/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/preview/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.Preview',{init:function(ed,url){var t=this,css=tinymce.explode(ed.settings.content_css);t.editor=ed;tinymce.each(css,function(u,k){css[k]=ed.documentBaseURI.toAbsolute(u);});ed.addCommand('mcePreview',function(){ed.windowManager.open({file:ed.getParam("plugin_preview_pageurl",url+"/preview.html"),width:parseInt(ed.getParam("plugin_preview_width","550")),height:parseInt(ed.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:css.join(','),inline:ed.getParam("plugin_preview_inline",1)},{base:ed.documentBaseURI.getURI()});});ed.addButton('preview',{title:'preview.preview_desc',cmd:'mcePreview'});},getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('preview',tinymce.plugins.Preview);})();
|
||||
50
include/javascript/tiny_mce/plugins/preview/editor_plugin_src.js
vendored
Executable file
50
include/javascript/tiny_mce/plugins/preview/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.Preview', {
|
||||
init : function(ed, url) {
|
||||
var t = this, css = tinymce.explode(ed.settings.content_css);
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Force absolute CSS urls
|
||||
tinymce.each(css, function(u, k) {
|
||||
css[k] = ed.documentBaseURI.toAbsolute(u);
|
||||
});
|
||||
|
||||
ed.addCommand('mcePreview', function() {
|
||||
ed.windowManager.open({
|
||||
file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"),
|
||||
width : parseInt(ed.getParam("plugin_preview_width", "550")),
|
||||
height : parseInt(ed.getParam("plugin_preview_height", "600")),
|
||||
resizable : "yes",
|
||||
scrollbars : "yes",
|
||||
popup_css : css.join(','),
|
||||
inline : ed.getParam("plugin_preview_inline", 1)
|
||||
}, {
|
||||
base : ed.documentBaseURI.getURI()
|
||||
});
|
||||
});
|
||||
|
||||
ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Preview',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('preview', tinymce.plugins.Preview);
|
||||
})();
|
||||
73
include/javascript/tiny_mce/plugins/preview/jscripts/embed.js
vendored
Executable file
73
include/javascript/tiny_mce/plugins/preview/jscripts/embed.js
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
|
||||
*/
|
||||
|
||||
function writeFlash(p) {
|
||||
writeEmbed(
|
||||
'D27CDB6E-AE6D-11cf-96B8-444553540000',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
||||
'application/x-shockwave-flash',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeShockWave(p) {
|
||||
writeEmbed(
|
||||
'166B1BCA-3F9C-11CF-8075-444553540000',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
|
||||
'application/x-director',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeQuickTime(p) {
|
||||
writeEmbed(
|
||||
'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
|
||||
'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
|
||||
'video/quicktime',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeRealMedia(p) {
|
||||
writeEmbed(
|
||||
'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
|
||||
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
||||
'audio/x-pn-realaudio-plugin',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeWindowsMedia(p) {
|
||||
p.url = p.src;
|
||||
writeEmbed(
|
||||
'6BF52A52-394A-11D3-B153-00C04F79FAA6',
|
||||
'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
|
||||
'application/x-mplayer2',
|
||||
p
|
||||
);
|
||||
}
|
||||
|
||||
function writeEmbed(cls, cb, mt, p) {
|
||||
var h = '', n;
|
||||
|
||||
h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
|
||||
h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
|
||||
h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
|
||||
h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
|
||||
h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
|
||||
h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
|
||||
h += '>';
|
||||
|
||||
for (n in p)
|
||||
h += '<param name="' + n + '" value="' + p[n] + '">';
|
||||
|
||||
h += '<embed type="' + mt + '"';
|
||||
|
||||
for (n in p)
|
||||
h += n + '="' + p[n] + '" ';
|
||||
|
||||
h += '></embed></object>';
|
||||
|
||||
document.write(h);
|
||||
}
|
||||
1
include/javascript/tiny_mce/plugins/print/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/print/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
|
||||
31
include/javascript/tiny_mce/plugins/print/editor_plugin_src.js
vendored
Executable file
31
include/javascript/tiny_mce/plugins/print/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.Print', {
|
||||
init : function(ed, url) {
|
||||
ed.addCommand('mcePrint', function() {
|
||||
ed.getWin().print();
|
||||
});
|
||||
|
||||
ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Print',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('print', tinymce.plugins.Print);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/safari/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/safari/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
514
include/javascript/tiny_mce/plugins/safari/editor_plugin_src.js
vendored
Executable file
514
include/javascript/tiny_mce/plugins/safari/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,514 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;
|
||||
|
||||
function isEmpty(d, e, f) {
|
||||
var w, n;
|
||||
|
||||
w = d.createTreeWalker(e, NodeFilter.SHOW_ALL, null, false);
|
||||
while (n = w.nextNode()) {
|
||||
// Filter func
|
||||
if (f) {
|
||||
if (!f(n))
|
||||
return false;
|
||||
}
|
||||
|
||||
// Non whitespace text node
|
||||
if (n.nodeType == 3 && n.nodeValue && /[^\s\u00a0]+/.test(n.nodeValue))
|
||||
return false;
|
||||
|
||||
// Is non text element byt still content
|
||||
if (n.nodeType == 1 && /^(HR|IMG|TABLE)$/.test(n.nodeName))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
tinymce.create('tinymce.plugins.Safari', {
|
||||
init : function(ed) {
|
||||
var t = this, dom;
|
||||
|
||||
// Ignore on non webkit
|
||||
if (!tinymce.isWebKit)
|
||||
return;
|
||||
|
||||
t.editor = ed;
|
||||
t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];
|
||||
t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];
|
||||
|
||||
// Safari CreateLink command will not work correctly on images that is aligned
|
||||
ed.addCommand('CreateLink', function(u, v) {
|
||||
var n = ed.selection.getNode(), dom = ed.dom, a;
|
||||
|
||||
if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {
|
||||
a = dom.create('a', {href : v}, n.cloneNode());
|
||||
n.parentNode.replaceChild(a, n);
|
||||
ed.selection.select(a);
|
||||
} else
|
||||
ed.getDoc().execCommand("CreateLink", false, v);
|
||||
});
|
||||
|
||||
ed.onPaste.add(function(ed, e) {
|
||||
function removeStyles(e) {
|
||||
e = e.target;
|
||||
|
||||
if (e.nodeType == 1) {
|
||||
e.style.cssText = '';
|
||||
|
||||
each(ed.dom.select('*', e), function(e) {
|
||||
e.style.cssText = '';
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles);
|
||||
|
||||
window.setTimeout(function() {
|
||||
Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);
|
||||
}, 0);
|
||||
});
|
||||
|
||||
ed.onKeyUp.add(function(ed, e) {
|
||||
var h, b, r, n, s;
|
||||
|
||||
// If backspace or delete key
|
||||
if (e.keyCode == 46 || e.keyCode == 8) {
|
||||
b = ed.getBody();
|
||||
h = b.innerHTML;
|
||||
s = ed.selection;
|
||||
|
||||
// If there is no text content or images or hr elements then remove everything
|
||||
if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0) {
|
||||
// Inject paragrah and bogus br
|
||||
ed.setContent('<p><br mce_bogus="1" /></p>', {format : 'raw'});
|
||||
|
||||
// Move caret before bogus br
|
||||
n = b.firstChild;
|
||||
r = s.getRng();
|
||||
r.setStart(n, 0);
|
||||
r.setEnd(n, 0);
|
||||
s.setRng(r);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004
|
||||
ed.addCommand('FormatBlock', function(u, v) {
|
||||
var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);
|
||||
|
||||
if (e)
|
||||
dom.replace(dom.create(v), e, 1);
|
||||
else
|
||||
ed.getDoc().execCommand("FormatBlock", false, v);
|
||||
});
|
||||
|
||||
// Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382
|
||||
ed.addCommand('mceInsertContent', function(u, v) {
|
||||
ed.getDoc().execCommand("InsertText", false, 'mce_marker');
|
||||
ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, ed.dom.processHTML(v) + '<span id="_mce_tmp">XX</span>');
|
||||
ed.selection.select(ed.dom.get('_mce_tmp'));
|
||||
ed.getDoc().execCommand("Delete", false, ' ');
|
||||
});
|
||||
|
||||
ed.onKeyPress.add(function(ed, e) {
|
||||
var se, li, lic, r1, r2, n, sel, doc, be, af, pa;
|
||||
|
||||
if (e.keyCode == 13) {
|
||||
sel = ed.selection;
|
||||
se = sel.getNode();
|
||||
|
||||
// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
|
||||
if (e.shiftKey || ed.settings.force_br_newlines && se.nodeName != 'LI') {
|
||||
t._insertBR(ed);
|
||||
Event.cancel(e);
|
||||
}
|
||||
|
||||
// Workaround for DIV elements produced by Safari
|
||||
if (li = dom.getParent(se, 'LI')) {
|
||||
lic = dom.getParent(li, 'OL,UL');
|
||||
doc = ed.getDoc();
|
||||
|
||||
pa = dom.create('p');
|
||||
dom.add(pa, 'br', {mce_bogus : "1"});
|
||||
|
||||
if (isEmpty(doc, li)) {
|
||||
// If list in list then use browser default behavior
|
||||
if (n = dom.getParent(lic.parentNode, 'LI,OL,UL'))
|
||||
return;
|
||||
|
||||
n = dom.getParent(lic, 'p,h1,h2,h3,h4,h5,h6,div') || lic;
|
||||
|
||||
// Create range from the start of block element to the list item
|
||||
r1 = doc.createRange();
|
||||
r1.setStartBefore(n);
|
||||
r1.setEndBefore(li);
|
||||
|
||||
// Create range after the list to the end of block element
|
||||
r2 = doc.createRange();
|
||||
r2.setStartAfter(li);
|
||||
r2.setEndAfter(n);
|
||||
|
||||
be = r1.cloneContents();
|
||||
af = r2.cloneContents();
|
||||
|
||||
if (!isEmpty(doc, af))
|
||||
dom.insertAfter(af, n);
|
||||
|
||||
dom.insertAfter(pa, n);
|
||||
|
||||
if (!isEmpty(doc, be))
|
||||
dom.insertAfter(be, n);
|
||||
|
||||
dom.remove(n);
|
||||
|
||||
n = pa.firstChild;
|
||||
r1 = doc.createRange();
|
||||
r1.setStartBefore(n);
|
||||
r1.setEndBefore(n);
|
||||
sel.setRng(r1);
|
||||
|
||||
return Event.cancel(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Safari doesn't place lists outside block elements
|
||||
ed.onExecCommand.add(function(ed, cmd) {
|
||||
var sel, dom, bl, bm;
|
||||
|
||||
if (cmd == 'InsertUnorderedList' || cmd == 'InsertOrderedList') {
|
||||
sel = ed.selection;
|
||||
dom = ed.dom;
|
||||
|
||||
if (bl = dom.getParent(sel.getNode(), function(n) {return /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName);})) {
|
||||
bm = sel.getBookmark();
|
||||
dom.remove(bl, 1);
|
||||
sel.moveToBookmark(bm);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
|
||||
ed.onClick.add(function(ed, e) {
|
||||
e = e.target;
|
||||
|
||||
if (e.nodeName == 'IMG') {
|
||||
t.selElm = e;
|
||||
ed.selection.select(e);
|
||||
} else
|
||||
t.selElm = null;
|
||||
});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
t._fixWebKitSpans();
|
||||
|
||||
if (isOldWebKit)
|
||||
t._patchSafari2x(ed);
|
||||
});
|
||||
|
||||
ed.onSetContent.add(function() {
|
||||
dom = ed.dom;
|
||||
|
||||
// Convert strong,b,em,u,strike to spans
|
||||
each(['strong','b','em','u','strike','sub','sup','a'], function(v) {
|
||||
each(grep(dom.select(v)).reverse(), function(n) {
|
||||
var nn = n.nodeName.toLowerCase(), st;
|
||||
|
||||
// Convert anchors into images
|
||||
if (nn == 'a') {
|
||||
if (n.name)
|
||||
dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
switch (nn) {
|
||||
case 'b':
|
||||
case 'strong':
|
||||
if (nn == 'b')
|
||||
nn = 'strong';
|
||||
|
||||
st = 'font-weight: bold;';
|
||||
break;
|
||||
|
||||
case 'em':
|
||||
st = 'font-style: italic;';
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
st = 'text-decoration: underline;';
|
||||
break;
|
||||
|
||||
case 'sub':
|
||||
st = 'vertical-align: sub;';
|
||||
break;
|
||||
|
||||
case 'sup':
|
||||
st = 'vertical-align: super;';
|
||||
break;
|
||||
|
||||
case 'strike':
|
||||
st = 'text-decoration: line-through;';
|
||||
break;
|
||||
}
|
||||
|
||||
dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
ed.onPreProcess.add(function(ed, o) {
|
||||
dom = ed.dom;
|
||||
|
||||
each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {
|
||||
var v, bg;
|
||||
|
||||
if (o.get) {
|
||||
if (dom.hasClass(n, 'Apple-style-span')) {
|
||||
bg = n.style.backgroundColor;
|
||||
|
||||
switch (dom.getAttrib(n, 'mce_name')) {
|
||||
case 'font':
|
||||
if (!ed.settings.convert_fonts_to_spans)
|
||||
dom.setAttrib(n, 'style', '');
|
||||
break;
|
||||
|
||||
case 'strong':
|
||||
case 'em':
|
||||
case 'sub':
|
||||
case 'sup':
|
||||
dom.setAttrib(n, 'style', '');
|
||||
break;
|
||||
|
||||
case 'strike':
|
||||
case 'u':
|
||||
if (!ed.settings.inline_styles)
|
||||
dom.setAttrib(n, 'style', '');
|
||||
else
|
||||
dom.setAttrib(n, 'mce_name', '');
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
if (!ed.settings.inline_styles)
|
||||
dom.setAttrib(n, 'style', '');
|
||||
}
|
||||
|
||||
|
||||
if (bg)
|
||||
n.style.backgroundColor = bg;
|
||||
}
|
||||
}
|
||||
|
||||
if (dom.hasClass(n, 'mceItemRemoved'))
|
||||
dom.remove(n, 1);
|
||||
});
|
||||
});
|
||||
|
||||
ed.onPostProcess.add(function(ed, o) {
|
||||
// Safari adds BR at end of all block elements
|
||||
o.content = o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g, '</$1>');
|
||||
|
||||
// Safari adds id="undefined" to HR elements
|
||||
o.content = o.content.replace(/ id=\"undefined\"/g, '');
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Safari compatibility',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Internal methods
|
||||
|
||||
_fixWebKitSpans : function() {
|
||||
var t = this, ed = t.editor;
|
||||
|
||||
if (!isOldWebKit) {
|
||||
// Use mutator events on new WebKit
|
||||
Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
|
||||
e = e.target;
|
||||
|
||||
if (e && e.nodeType == 1)
|
||||
t._fixAppleSpan(e);
|
||||
});
|
||||
} else {
|
||||
// Do post command processing in old WebKit since the browser crashes on Mutator events :(
|
||||
ed.onExecCommand.add(function() {
|
||||
each(ed.dom.select('span'), function(n) {
|
||||
t._fixAppleSpan(n);
|
||||
});
|
||||
|
||||
ed.nodeChanged();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
_fixAppleSpan : function(e) {
|
||||
var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;
|
||||
|
||||
if (dom.getAttrib(e, 'mce_fixed'))
|
||||
return;
|
||||
|
||||
// Handle Apple style spans
|
||||
if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {
|
||||
st = e.style;
|
||||
|
||||
if (!s.convert_fonts_to_spans) {
|
||||
if (st.fontSize) {
|
||||
dom.setAttrib(e, 'mce_name', 'font');
|
||||
dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);
|
||||
}
|
||||
|
||||
if (st.fontFamily) {
|
||||
dom.setAttrib(e, 'mce_name', 'font');
|
||||
dom.setAttrib(e, 'face', st.fontFamily);
|
||||
}
|
||||
|
||||
if (st.color) {
|
||||
dom.setAttrib(e, 'mce_name', 'font');
|
||||
dom.setAttrib(e, 'color', dom.toHex(st.color));
|
||||
}
|
||||
|
||||
if (st.backgroundColor) {
|
||||
dom.setAttrib(e, 'mce_name', 'font');
|
||||
dom.setStyle(e, 'background-color', st.backgroundColor);
|
||||
}
|
||||
} else {
|
||||
if (st.fontSize)
|
||||
dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);
|
||||
}
|
||||
|
||||
if (st.fontWeight == 'bold')
|
||||
dom.setAttrib(e, 'mce_name', 'strong');
|
||||
|
||||
if (st.fontStyle == 'italic')
|
||||
dom.setAttrib(e, 'mce_name', 'em');
|
||||
|
||||
if (st.textDecoration == 'underline')
|
||||
dom.setAttrib(e, 'mce_name', 'u');
|
||||
|
||||
if (st.textDecoration == 'line-through')
|
||||
dom.setAttrib(e, 'mce_name', 'strike');
|
||||
|
||||
if (st.verticalAlign == 'super')
|
||||
dom.setAttrib(e, 'mce_name', 'sup');
|
||||
|
||||
if (st.verticalAlign == 'sub')
|
||||
dom.setAttrib(e, 'mce_name', 'sub');
|
||||
|
||||
dom.setAttrib(e, 'mce_fixed', '1');
|
||||
}
|
||||
},
|
||||
|
||||
_patchSafari2x : function(ed) {
|
||||
var t = this, setContent, getNode, dom = ed.dom, lr;
|
||||
|
||||
// Inline dialogs
|
||||
if (ed.windowManager.onBeforeOpen) {
|
||||
ed.windowManager.onBeforeOpen.add(function() {
|
||||
r = ed.selection.getRng();
|
||||
});
|
||||
}
|
||||
|
||||
// Fake select on 2.x
|
||||
ed.selection.select = function(n) {
|
||||
this.getSel().setBaseAndExtent(n, 0, n, 1);
|
||||
};
|
||||
|
||||
getNode = ed.selection.getNode;
|
||||
ed.selection.getNode = function() {
|
||||
return t.selElm || getNode.call(this);
|
||||
};
|
||||
|
||||
// Fake range on Safari 2.x
|
||||
ed.selection.getRng = function() {
|
||||
var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;
|
||||
|
||||
// Fake range on Safari 2.x
|
||||
if (s.anchorNode) {
|
||||
r = d.createRange();
|
||||
|
||||
try {
|
||||
// Setup before range
|
||||
rb = d.createRange();
|
||||
rb.setStart(s.anchorNode, s.anchorOffset);
|
||||
rb.collapse(1);
|
||||
|
||||
// Setup after range
|
||||
ra = d.createRange();
|
||||
ra.setStart(s.focusNode, s.focusOffset);
|
||||
ra.collapse(1);
|
||||
|
||||
// Setup start/end points by comparing locations
|
||||
di = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;
|
||||
r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);
|
||||
r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);
|
||||
|
||||
lr = r;
|
||||
} catch (ex) {
|
||||
// Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!
|
||||
}
|
||||
}
|
||||
|
||||
return r || lr;
|
||||
};
|
||||
|
||||
// Fix setContent so it works
|
||||
setContent = ed.selection.setContent;
|
||||
ed.selection.setContent = function(h, s) {
|
||||
var r = this.getRng(), b;
|
||||
|
||||
try {
|
||||
setContent.call(this, h, s);
|
||||
} catch (ex) {
|
||||
// Workaround for Safari 2.x
|
||||
b = dom.create('body');
|
||||
b.innerHTML = h;
|
||||
|
||||
each(b.childNodes, function(n) {
|
||||
r.insertNode(n.cloneNode(true));
|
||||
});
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
_insertBR : function(ed) {
|
||||
var dom = ed.dom, s = ed.selection, r = s.getRng(), br;
|
||||
|
||||
// Insert BR element
|
||||
r.insertNode(br = dom.create('br'));
|
||||
|
||||
// Place caret after BR
|
||||
r.setStartAfter(br);
|
||||
r.setEndAfter(br);
|
||||
s.setRng(r);
|
||||
|
||||
// Could not place caret after BR then insert an nbsp entity and move the caret
|
||||
if (s.getSel().focusNode == br.previousSibling) {
|
||||
s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));
|
||||
s.collapse(1);
|
||||
}
|
||||
|
||||
// Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117
|
||||
ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('safari', tinymce.plugins.Safari);
|
||||
})();
|
||||
|
||||
1
include/javascript/tiny_mce/plugins/save/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/save/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.Save',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceSave',t._save,t);ed.addCommand('mceCancel',t._cancel,t);ed.addButton('save',{title:'save.save_desc',cmd:'mceSave'});ed.addButton('cancel',{title:'save.cancel_desc',cmd:'mceCancel'});ed.onNodeChange.add(t._nodeChange,t);ed.addShortcut('ctrl+s',ed.getLang('save.save_desc'),'mceSave');},getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var ed=this.editor;if(ed.getParam('save_enablewhendirty')){cm.setDisabled('save',!ed.isDirty());cm.setDisabled('cancel',!ed.isDirty());}},_save:function(){var ed=this.editor,formObj,os,i,elementId;formObj=tinymce.DOM.get(ed.id).form||tinymce.DOM.getParent(ed.id,'form');if(ed.getParam("save_enablewhendirty")&&!ed.isDirty())return;tinyMCE.triggerSave();if(os=ed.getParam("save_onsavecallback")){if(ed.execCallback('save_onsavecallback',ed)){ed.startContent=tinymce.trim(ed.getContent({format:'raw'}));ed.nodeChanged();}return;}if(formObj){ed.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)formObj.submit();ed.nodeChanged();}else ed.windowManager.alert("Error: No form element found.");},_cancel:function(){var ed=this.editor,os,h=tinymce.trim(ed.startContent);if(os=ed.getParam("save_oncancelcallback")){ed.execCallback('save_oncancelcallback',ed);return;}ed.setContent(h);ed.undoManager.clear();ed.nodeChanged();}});tinymce.PluginManager.add('save',tinymce.plugins.Save);})();
|
||||
98
include/javascript/tiny_mce/plugins/save/editor_plugin_src.js
vendored
Executable file
98
include/javascript/tiny_mce/plugins/save/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.Save', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceSave', t._save, t);
|
||||
ed.addCommand('mceCancel', t._cancel, t);
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});
|
||||
ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});
|
||||
|
||||
ed.onNodeChange.add(t._nodeChange, t);
|
||||
ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Save',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_nodeChange : function(ed, cm, n) {
|
||||
var ed = this.editor;
|
||||
|
||||
if (ed.getParam('save_enablewhendirty')) {
|
||||
cm.setDisabled('save', !ed.isDirty());
|
||||
cm.setDisabled('cancel', !ed.isDirty());
|
||||
}
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_save : function() {
|
||||
var ed = this.editor, formObj, os, i, elementId;
|
||||
|
||||
formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
|
||||
|
||||
if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
|
||||
return;
|
||||
|
||||
tinyMCE.triggerSave();
|
||||
|
||||
// Use callback instead
|
||||
if (os = ed.getParam("save_onsavecallback")) {
|
||||
if (ed.execCallback('save_onsavecallback', ed)) {
|
||||
ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));
|
||||
ed.nodeChanged();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (formObj) {
|
||||
ed.isNotDirty = true;
|
||||
|
||||
if (formObj.onsubmit == null || formObj.onsubmit() != false)
|
||||
formObj.submit();
|
||||
|
||||
ed.nodeChanged();
|
||||
} else
|
||||
ed.windowManager.alert("Error: No form element found.");
|
||||
},
|
||||
|
||||
_cancel : function() {
|
||||
var ed = this.editor, os, h = tinymce.trim(ed.startContent);
|
||||
|
||||
// Use callback instead
|
||||
if (os = ed.getParam("save_oncancelcallback")) {
|
||||
ed.execCallback('save_oncancelcallback', ed);
|
||||
return;
|
||||
}
|
||||
|
||||
ed.setContent(h);
|
||||
ed.undoManager.clear();
|
||||
ed.nodeChanged();
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('save', tinymce.plugins.Save);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/searchreplace/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/searchreplace/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.SearchReplacePlugin',{init:function(ed,url){function open(m){ed.windowManager.open({file:url+'/searchreplace.htm',width:420+parseInt(ed.getLang('searchreplace.delta_width',0)),height:160+parseInt(ed.getLang('searchreplace.delta_height',0)),inline:1,auto_focus:0},{mode:m,search_string:ed.selection.getContent({format:'text'}),plugin_url:url});};ed.addCommand('mceSearch',function(){open('search');});ed.addCommand('mceReplace',function(){open('replace');});ed.addButton('search',{title:'searchreplace.search_desc',cmd:'mceSearch'});ed.addButton('replace',{title:'searchreplace.replace_desc',cmd:'mceReplace'});ed.addShortcut('ctrl+f','searchreplace.search_desc','mceSearch');},getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('searchreplace',tinymce.plugins.SearchReplacePlugin);})();
|
||||
54
include/javascript/tiny_mce/plugins/searchreplace/editor_plugin_src.js
vendored
Executable file
54
include/javascript/tiny_mce/plugins/searchreplace/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.SearchReplacePlugin', {
|
||||
init : function(ed, url) {
|
||||
function open(m) {
|
||||
ed.windowManager.open({
|
||||
file : url + '/searchreplace.htm',
|
||||
width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)),
|
||||
height : 160 + parseInt(ed.getLang('searchreplace.delta_height', 0)),
|
||||
inline : 1,
|
||||
auto_focus : 0
|
||||
}, {
|
||||
mode : m,
|
||||
search_string : ed.selection.getContent({format : 'text'}),
|
||||
plugin_url : url
|
||||
});
|
||||
};
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceSearch', function() {
|
||||
open('search');
|
||||
});
|
||||
|
||||
ed.addCommand('mceReplace', function() {
|
||||
open('replace');
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'});
|
||||
ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'});
|
||||
|
||||
ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch');
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Search/Replace',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin);
|
||||
})();
|
||||
126
include/javascript/tiny_mce/plugins/searchreplace/js/searchreplace.js
vendored
Executable file
126
include/javascript/tiny_mce/plugins/searchreplace/js/searchreplace.js
vendored
Executable file
@@ -0,0 +1,126 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var SearchReplaceDialog = {
|
||||
init : function(ed) {
|
||||
var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");
|
||||
|
||||
this.switchMode(m);
|
||||
|
||||
f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");
|
||||
|
||||
// Focus input field
|
||||
f[m + '_panel_searchstring'].focus();
|
||||
},
|
||||
|
||||
switchMode : function(m) {
|
||||
var f, lm = this.lastMode;
|
||||
|
||||
if (lm != m) {
|
||||
f = document.forms[0];
|
||||
|
||||
if (lm) {
|
||||
f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;
|
||||
f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;
|
||||
f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;
|
||||
f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;
|
||||
}
|
||||
|
||||
mcTabs.displayTab(m + '_tab', m + '_panel');
|
||||
document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";
|
||||
document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";
|
||||
this.lastMode = m;
|
||||
}
|
||||
},
|
||||
|
||||
searchNext : function(a) {
|
||||
var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;
|
||||
|
||||
// Get input
|
||||
f = document.forms[0];
|
||||
s = f[m + '_panel_searchstring'].value;
|
||||
b = f[m + '_panel_backwardsu'].checked;
|
||||
ca = f[m + '_panel_casesensitivebox'].checked;
|
||||
rs = f['replace_panel_replacestring'].value;
|
||||
|
||||
if (s == '')
|
||||
return;
|
||||
|
||||
function fix() {
|
||||
// Correct Firefox graphics glitches
|
||||
r = se.getRng().cloneRange();
|
||||
ed.getDoc().execCommand('SelectAll', false, null);
|
||||
se.setRng(r);
|
||||
};
|
||||
|
||||
function replace() {
|
||||
if (tinymce.isIE)
|
||||
ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE
|
||||
else
|
||||
ed.getDoc().execCommand('InsertHTML', false, rs);
|
||||
};
|
||||
|
||||
// IE flags
|
||||
if (ca)
|
||||
fl = fl | 4;
|
||||
|
||||
switch (a) {
|
||||
case 'all':
|
||||
// Move caret to beginning of text
|
||||
ed.execCommand('SelectAll');
|
||||
ed.selection.collapse(true);
|
||||
|
||||
if (tinymce.isIE) {
|
||||
while (r.findText(s, b ? -1 : 1, fl)) {
|
||||
r.scrollIntoView();
|
||||
r.select();
|
||||
replace();
|
||||
fo = 1;
|
||||
}
|
||||
|
||||
tinyMCEPopup.storeSelection();
|
||||
} else {
|
||||
while (w.find(s, ca, b, false, false, false, false)) {
|
||||
replace();
|
||||
fo = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (fo)
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));
|
||||
else
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
|
||||
return;
|
||||
|
||||
case 'current':
|
||||
if (!ed.selection.isCollapsed())
|
||||
replace();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
se.collapse(b);
|
||||
r = se.getRng();
|
||||
|
||||
// Whats the point
|
||||
if (!s)
|
||||
return;
|
||||
|
||||
if (tinymce.isIE) {
|
||||
if (r.findText(s, b ? -1 : 1, fl)) {
|
||||
r.scrollIntoView();
|
||||
r.select();
|
||||
} else
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
|
||||
tinyMCEPopup.storeSelection();
|
||||
} else {
|
||||
if (!w.find(s, ca, b, false, false, false, false))
|
||||
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
|
||||
else
|
||||
fix();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);
|
||||
16
include/javascript/tiny_mce/plugins/searchreplace/langs/en_dlg.js
vendored
Executable file
16
include/javascript/tiny_mce/plugins/searchreplace/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
tinyMCE.addI18n('en.searchreplace_dlg',{
|
||||
searchnext_desc:"Find again",
|
||||
notfound:"The search has been completed. The search string could not be found.",
|
||||
search_title:"Find",
|
||||
replace_title:"Find/Replace",
|
||||
allreplaced:"All occurrences of the search string were replaced.",
|
||||
findwhat:"Find what",
|
||||
replacewith:"Replace with",
|
||||
direction:"Direction",
|
||||
up:"Up",
|
||||
down:"Down",
|
||||
mcase:"Match case",
|
||||
findnext:"Find next",
|
||||
replace:"Replace",
|
||||
replaceall:"Replace all"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/spellchecker/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/spellchecker/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
338
include/javascript/tiny_mce/plugins/spellchecker/editor_plugin_src.js
vendored
Executable file
338
include/javascript/tiny_mce/plugins/spellchecker/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,338 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;
|
||||
|
||||
tinymce.create('tinymce.plugins.SpellcheckerPlugin', {
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Spellchecker',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
init : function(ed, url) {
|
||||
var t = this, cm;
|
||||
|
||||
t.url = url;
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceSpellCheck', function() {
|
||||
if (!t.active) {
|
||||
ed.setProgressState(1);
|
||||
t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {
|
||||
if (r.length > 0) {
|
||||
t.active = 1;
|
||||
t._markWords(r);
|
||||
ed.setProgressState(0);
|
||||
ed.nodeChanged();
|
||||
} else {
|
||||
ed.setProgressState(0);
|
||||
ed.windowManager.alert('spellchecker.no_mpell');
|
||||
}
|
||||
});
|
||||
} else
|
||||
t._done();
|
||||
});
|
||||
|
||||
ed.onInit.add(function() {
|
||||
if (ed.settings.content_css !== false)
|
||||
ed.dom.loadCSS(url + '/css/content.css');
|
||||
});
|
||||
|
||||
ed.onClick.add(t._showMenu, t);
|
||||
ed.onContextMenu.add(t._showMenu, t);
|
||||
ed.onBeforeGetContent.add(function() {
|
||||
if (t.active)
|
||||
t._removeWords();
|
||||
});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm) {
|
||||
cm.setActive('spellchecker', t.active);
|
||||
});
|
||||
|
||||
ed.onSetContent.add(function() {
|
||||
t._done();
|
||||
});
|
||||
|
||||
ed.onBeforeGetContent.add(function() {
|
||||
t._done();
|
||||
});
|
||||
|
||||
ed.onBeforeExecCommand.add(function(ed, cmd) {
|
||||
if (cmd == 'mceFullScreen')
|
||||
t._done();
|
||||
});
|
||||
|
||||
// Find selected language
|
||||
t.languages = {};
|
||||
each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {
|
||||
if (k.indexOf('+') === 0) {
|
||||
k = k.substring(1);
|
||||
t.selectedLang = v;
|
||||
}
|
||||
|
||||
t.languages[k] = v;
|
||||
});
|
||||
},
|
||||
|
||||
createControl : function(n, cm) {
|
||||
var t = this, c, ed = t.editor;
|
||||
|
||||
if (n == 'spellchecker') {
|
||||
c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
|
||||
|
||||
c.onRenderMenu.add(function(c, m) {
|
||||
m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
|
||||
each(t.languages, function(v, k) {
|
||||
var o = {icon : 1}, mi;
|
||||
|
||||
o.onclick = function() {
|
||||
mi.setSelected(1);
|
||||
t.selectedItem.setSelected(0);
|
||||
t.selectedItem = mi;
|
||||
t.selectedLang = v;
|
||||
};
|
||||
|
||||
o.title = k;
|
||||
mi = m.add(o);
|
||||
mi.setSelected(v == t.selectedLang);
|
||||
|
||||
if (v == t.selectedLang)
|
||||
t.selectedItem = mi;
|
||||
})
|
||||
});
|
||||
|
||||
return c;
|
||||
}
|
||||
},
|
||||
|
||||
// Internal functions
|
||||
|
||||
_walk : function(n, f) {
|
||||
var d = this.editor.getDoc(), w;
|
||||
|
||||
if (d.createTreeWalker) {
|
||||
w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
|
||||
|
||||
while ((n = w.nextNode()) != null)
|
||||
f.call(this, n);
|
||||
} else
|
||||
tinymce.walk(n, f, 'childNodes');
|
||||
},
|
||||
|
||||
_getSeparators : function() {
|
||||
var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\u201d\u201c');
|
||||
|
||||
// Build word separator regexp
|
||||
for (i=0; i<str.length; i++)
|
||||
re += '\\' + str.charAt(i);
|
||||
|
||||
return re;
|
||||
},
|
||||
|
||||
_getWords : function() {
|
||||
var ed = this.editor, wl = [], tx = '', lo = {};
|
||||
|
||||
// Get area text
|
||||
this._walk(ed.getBody(), function(n) {
|
||||
if (n.nodeType == 3)
|
||||
tx += n.nodeValue + ' ';
|
||||
});
|
||||
|
||||
// Split words by separator
|
||||
tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');
|
||||
tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));
|
||||
|
||||
// Build word array and remove duplicates
|
||||
each(tx.split(' '), function(v) {
|
||||
if (!lo[v]) {
|
||||
wl.push(v);
|
||||
lo[v] = 1;
|
||||
}
|
||||
});
|
||||
|
||||
return wl;
|
||||
},
|
||||
|
||||
_removeWords : function(w) {
|
||||
var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();
|
||||
|
||||
each(dom.select('span').reverse(), function(n) {
|
||||
if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {
|
||||
if (!w || dom.decode(n.innerHTML) == w)
|
||||
dom.remove(n, 1);
|
||||
}
|
||||
});
|
||||
|
||||
se.moveToBookmark(b);
|
||||
},
|
||||
|
||||
_markWords : function(wl) {
|
||||
var r1, r2, r3, r4, r5, w = '', ed = this.editor, re = this._getSeparators(), dom = ed.dom, nl = [];
|
||||
var se = ed.selection, b = se.getBookmark();
|
||||
|
||||
each(wl, function(v) {
|
||||
w += (w ? '|' : '') + v;
|
||||
});
|
||||
|
||||
r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');
|
||||
r2 = new RegExp('^(' + w + ')', 'g');
|
||||
r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');
|
||||
r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');
|
||||
r5 = new RegExp('(' + w + ')([' + re + '])', 'g');
|
||||
|
||||
// Collect all text nodes
|
||||
this._walk(this.editor.getBody(), function(n) {
|
||||
if (n.nodeType == 3) {
|
||||
nl.push(n);
|
||||
}
|
||||
});
|
||||
|
||||
// Wrap incorrect words in spans
|
||||
each(nl, function(n) {
|
||||
var v;
|
||||
|
||||
if (n.nodeType == 3) {
|
||||
v = n.nodeValue;
|
||||
|
||||
if (r1.test(v) || r2.test(v) || r3.test(v) || r4.test(v)) {
|
||||
v = dom.encode(v);
|
||||
v = v.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');
|
||||
v = v.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');
|
||||
|
||||
dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
se.moveToBookmark(b);
|
||||
},
|
||||
|
||||
_showMenu : function(ed, e) {
|
||||
var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());
|
||||
|
||||
if (!m) {
|
||||
p1 = DOM.getPos(ed.getContentAreaContainer());
|
||||
//p2 = DOM.getPos(ed.getContainer());
|
||||
|
||||
m = ed.controlManager.createDropMenu('spellcheckermenu', {
|
||||
offset_x : p1.x,
|
||||
offset_y : p1.y,
|
||||
'class' : 'mceNoIcons'
|
||||
});
|
||||
|
||||
t._menu = m;
|
||||
}
|
||||
|
||||
if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {
|
||||
m.removeAll();
|
||||
m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
|
||||
|
||||
t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {
|
||||
m.removeAll();
|
||||
|
||||
if (r.length > 0) {
|
||||
m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
|
||||
each(r, function(v) {
|
||||
m.add({title : v, onclick : function() {
|
||||
dom.replace(ed.getDoc().createTextNode(v), e.target);
|
||||
t._checkDone();
|
||||
}});
|
||||
});
|
||||
|
||||
m.addSeparator();
|
||||
} else
|
||||
m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
|
||||
|
||||
m.add({
|
||||
title : 'spellchecker.ignore_word',
|
||||
onclick : function() {
|
||||
dom.remove(e.target, 1);
|
||||
t._checkDone();
|
||||
}
|
||||
});
|
||||
|
||||
m.add({
|
||||
title : 'spellchecker.ignore_words',
|
||||
onclick : function() {
|
||||
t._removeWords(dom.decode(e.target.innerHTML));
|
||||
t._checkDone();
|
||||
}
|
||||
});
|
||||
|
||||
m.update();
|
||||
});
|
||||
|
||||
ed.selection.select(e.target);
|
||||
p1 = dom.getPos(e.target);
|
||||
m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);
|
||||
|
||||
return tinymce.dom.Event.cancel(e);
|
||||
} else
|
||||
m.hideMenu();
|
||||
},
|
||||
|
||||
_checkDone : function() {
|
||||
var t = this, ed = t.editor, dom = ed.dom, o;
|
||||
|
||||
each(dom.select('span'), function(n) {
|
||||
if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {
|
||||
o = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (!o)
|
||||
t._done();
|
||||
},
|
||||
|
||||
_done : function() {
|
||||
var t = this, la = t.active;
|
||||
|
||||
if (t.active) {
|
||||
t.active = 0;
|
||||
t._removeWords();
|
||||
|
||||
if (t._menu)
|
||||
t._menu.hideMenu();
|
||||
|
||||
if (la)
|
||||
t.editor.nodeChanged();
|
||||
}
|
||||
},
|
||||
|
||||
_sendRPC : function(m, p, cb) {
|
||||
var t = this, url = t.editor.getParam("spellchecker_rpc_url", "{backend}");
|
||||
|
||||
if (url == '{backend}') {
|
||||
t.editor.setProgressState(0);
|
||||
alert('Please specify: spellchecker_rpc_url');
|
||||
return;
|
||||
}
|
||||
|
||||
JSONRequest.sendRPC({
|
||||
url : url,
|
||||
method : m,
|
||||
params : p,
|
||||
success : cb,
|
||||
error : function(e, x) {
|
||||
t.editor.setProgressState(0);
|
||||
t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/style/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/style/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.StylePlugin',{init:function(ed,url){ed.addCommand('mceStyleProps',function(){ed.windowManager.open({file:url+'/props.htm',width:480+parseInt(ed.getLang('style.delta_width',0)),height:320+parseInt(ed.getLang('style.delta_height',0)),inline:1},{plugin_url:url,style_text:ed.selection.getNode().style.cssText});});ed.addCommand('mceSetElementStyle',function(ui,v){if(e=ed.selection.getNode()){ed.dom.setAttrib(e,'style',v);ed.execCommand('mceRepaint');}});ed.onNodeChange.add(function(ed,cm,n){cm.setDisabled('styleprops',n.nodeName==='BODY');});ed.addButton('styleprops',{title:'style.desc',cmd:'mceStyleProps'});},getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('style',tinymce.plugins.StylePlugin);})();
|
||||
52
include/javascript/tiny_mce/plugins/style/editor_plugin_src.js
vendored
Executable file
52
include/javascript/tiny_mce/plugins/style/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.StylePlugin', {
|
||||
init : function(ed, url) {
|
||||
// Register commands
|
||||
ed.addCommand('mceStyleProps', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/props.htm',
|
||||
width : 480 + parseInt(ed.getLang('style.delta_width', 0)),
|
||||
height : 320 + parseInt(ed.getLang('style.delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url,
|
||||
style_text : ed.selection.getNode().style.cssText
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceSetElementStyle', function(ui, v) {
|
||||
if (e = ed.selection.getNode()) {
|
||||
ed.dom.setAttrib(e, 'style', v);
|
||||
ed.execCommand('mceRepaint');
|
||||
}
|
||||
});
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n) {
|
||||
cm.setDisabled('styleprops', n.nodeName === 'BODY');
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Style',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin);
|
||||
})();
|
||||
641
include/javascript/tiny_mce/plugins/style/js/props.js
vendored
Executable file
641
include/javascript/tiny_mce/plugins/style/js/props.js
vendored
Executable file
@@ -0,0 +1,641 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var defaultFonts = "" +
|
||||
"Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" +
|
||||
"Times New Roman, Times, serif=Times New Roman, Times, serif;" +
|
||||
"Courier New, Courier, mono=Courier New, Courier, mono;" +
|
||||
"Times New Roman, Times, serif=Times New Roman, Times, serif;" +
|
||||
"Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" +
|
||||
"Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" +
|
||||
"Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";
|
||||
|
||||
var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";
|
||||
var defaultMeasurement = "+pixels=px;points=pt;em;in;cm;mm;picas;ems;exs;%";
|
||||
var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%";
|
||||
var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%";
|
||||
var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
|
||||
var defaultTextStyle = "normal;italic;oblique";
|
||||
var defaultVariant = "normal;small-caps";
|
||||
var defaultLineHeight = "normal";
|
||||
var defaultAttachment = "fixed;scroll";
|
||||
var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";
|
||||
var defaultPosH = "left;center;right";
|
||||
var defaultPosV = "top;center;bottom";
|
||||
var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";
|
||||
var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";
|
||||
var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";
|
||||
var defaultBorderWidth = "thin;medium;thick";
|
||||
var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";
|
||||
|
||||
function init() {
|
||||
var ce = document.getElementById('container'), h;
|
||||
|
||||
ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');
|
||||
|
||||
h = getBrowserHTML('background_image_browser','background_image','image','advimage');
|
||||
document.getElementById("background_image_browser").innerHTML = h;
|
||||
|
||||
document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');
|
||||
document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');
|
||||
document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');
|
||||
document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');
|
||||
document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');
|
||||
document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');
|
||||
|
||||
fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);
|
||||
fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);
|
||||
fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);
|
||||
fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);
|
||||
fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);
|
||||
fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);
|
||||
fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);
|
||||
fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);
|
||||
|
||||
fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);
|
||||
fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);
|
||||
|
||||
fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);
|
||||
|
||||
fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);
|
||||
fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);
|
||||
|
||||
fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);
|
||||
fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);
|
||||
fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);
|
||||
fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);
|
||||
fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);
|
||||
fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);
|
||||
fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);
|
||||
fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);
|
||||
fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);
|
||||
|
||||
fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);
|
||||
fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);
|
||||
fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);
|
||||
|
||||
fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);
|
||||
fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);
|
||||
fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);
|
||||
fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);
|
||||
|
||||
fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);
|
||||
fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);
|
||||
fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);
|
||||
fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);
|
||||
|
||||
fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);
|
||||
|
||||
fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);
|
||||
fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);
|
||||
|
||||
fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);
|
||||
fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);
|
||||
|
||||
fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);
|
||||
|
||||
fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);
|
||||
|
||||
fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);
|
||||
fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);
|
||||
|
||||
TinyMCE_EditableSelects.init();
|
||||
setupFormData();
|
||||
showDisabledControls();
|
||||
}
|
||||
|
||||
function setupFormData() {
|
||||
var ce = document.getElementById('container'), f = document.forms[0], s, b, i;
|
||||
|
||||
// Setup text fields
|
||||
|
||||
selectByValue(f, 'text_font', ce.style.fontFamily, true, true);
|
||||
selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);
|
||||
selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));
|
||||
selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);
|
||||
selectByValue(f, 'text_style', ce.style.fontStyle, true, true);
|
||||
selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);
|
||||
selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));
|
||||
selectByValue(f, 'text_case', ce.style.textTransform, true, true);
|
||||
selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);
|
||||
f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);
|
||||
updateColor('text_color_pick', 'text_color');
|
||||
f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');
|
||||
f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');
|
||||
f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');
|
||||
f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');
|
||||
|
||||
// Setup background fields
|
||||
|
||||
f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);
|
||||
updateColor('background_color_pick', 'background_color');
|
||||
f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);
|
||||
selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);
|
||||
selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);
|
||||
selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));
|
||||
selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);
|
||||
selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));
|
||||
|
||||
// Setup block fields
|
||||
|
||||
selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);
|
||||
selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));
|
||||
selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);
|
||||
selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));
|
||||
selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);
|
||||
selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);
|
||||
f.block_text_indent.value = getNum(ce.style.textIndent);
|
||||
selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));
|
||||
selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);
|
||||
selectByValue(f, 'block_display', ce.style.display, true, true);
|
||||
|
||||
// Setup box fields
|
||||
|
||||
f.box_width.value = getNum(ce.style.width);
|
||||
selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));
|
||||
|
||||
f.box_height.value = getNum(ce.style.height);
|
||||
selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));
|
||||
|
||||
if (tinymce.isGecko)
|
||||
selectByValue(f, 'box_float', ce.style.cssFloat, true, true);
|
||||
else
|
||||
selectByValue(f, 'box_float', ce.style.styleFloat, true, true);
|
||||
|
||||
selectByValue(f, 'box_clear', ce.style.clear, true, true);
|
||||
|
||||
setupBox(f, ce, 'box_padding', 'padding', '');
|
||||
setupBox(f, ce, 'box_margin', 'margin', '');
|
||||
|
||||
// Setup border fields
|
||||
|
||||
setupBox(f, ce, 'border_style', 'border', 'Style');
|
||||
setupBox(f, ce, 'border_width', 'border', 'Width');
|
||||
setupBox(f, ce, 'border_color', 'border', 'Color');
|
||||
|
||||
updateColor('border_color_top_pick', 'border_color_top');
|
||||
updateColor('border_color_right_pick', 'border_color_right');
|
||||
updateColor('border_color_bottom_pick', 'border_color_bottom');
|
||||
updateColor('border_color_left_pick', 'border_color_left');
|
||||
|
||||
f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);
|
||||
f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);
|
||||
f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);
|
||||
f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);
|
||||
|
||||
// Setup list fields
|
||||
|
||||
selectByValue(f, 'list_type', ce.style.listStyleType, true, true);
|
||||
selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);
|
||||
f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
|
||||
// Setup box fields
|
||||
|
||||
selectByValue(f, 'positioning_type', ce.style.position, true, true);
|
||||
selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);
|
||||
selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);
|
||||
f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";
|
||||
|
||||
f.positioning_width.value = getNum(ce.style.width);
|
||||
selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));
|
||||
|
||||
f.positioning_height.value = getNum(ce.style.height);
|
||||
selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));
|
||||
|
||||
setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);
|
||||
|
||||
s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
s = s.replace(/,/g, ' ');
|
||||
|
||||
if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {
|
||||
f.positioning_clip_top.value = getNum(getVal(s, 0));
|
||||
selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
|
||||
f.positioning_clip_right.value = getNum(getVal(s, 1));
|
||||
selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));
|
||||
f.positioning_clip_bottom.value = getNum(getVal(s, 2));
|
||||
selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));
|
||||
f.positioning_clip_left.value = getNum(getVal(s, 3));
|
||||
selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));
|
||||
} else {
|
||||
f.positioning_clip_top.value = getNum(getVal(s, 0));
|
||||
selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
|
||||
f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;
|
||||
}
|
||||
|
||||
// setupBox(f, ce, '', 'border', 'Color');
|
||||
}
|
||||
|
||||
function getMeasurement(s) {
|
||||
return s.replace(/^([0-9]+)(.*)$/, "$2");
|
||||
}
|
||||
|
||||
function getNum(s) {
|
||||
if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))
|
||||
return s.replace(/[^0-9]/g, '');
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
function inStr(s, n) {
|
||||
return new RegExp(n, 'gi').test(s);
|
||||
}
|
||||
|
||||
function getVal(s, i) {
|
||||
var a = s.split(' ');
|
||||
|
||||
if (a.length > 1)
|
||||
return a[i];
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function setValue(f, n, v) {
|
||||
if (f.elements[n].type == "text")
|
||||
f.elements[n].value = v;
|
||||
else
|
||||
selectByValue(f, n, v, true, true);
|
||||
}
|
||||
|
||||
function setupBox(f, ce, fp, pr, sf, b) {
|
||||
if (typeof(b) == "undefined")
|
||||
b = ['Top', 'Right', 'Bottom', 'Left'];
|
||||
|
||||
if (isSame(ce, pr, sf, b)) {
|
||||
f.elements[fp + "_same"].checked = true;
|
||||
|
||||
setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
|
||||
f.elements[fp + "_top"].disabled = false;
|
||||
|
||||
f.elements[fp + "_right"].value = "";
|
||||
f.elements[fp + "_right"].disabled = true;
|
||||
f.elements[fp + "_bottom"].value = "";
|
||||
f.elements[fp + "_bottom"].disabled = true;
|
||||
f.elements[fp + "_left"].value = "";
|
||||
f.elements[fp + "_left"].disabled = true;
|
||||
|
||||
if (f.elements[fp + "_top_measurement"]) {
|
||||
selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
|
||||
f.elements[fp + "_left_measurement"].disabled = true;
|
||||
f.elements[fp + "_bottom_measurement"].disabled = true;
|
||||
f.elements[fp + "_right_measurement"].disabled = true;
|
||||
}
|
||||
} else {
|
||||
f.elements[fp + "_same"].checked = false;
|
||||
|
||||
setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
|
||||
f.elements[fp + "_top"].disabled = false;
|
||||
|
||||
setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));
|
||||
f.elements[fp + "_right"].disabled = false;
|
||||
|
||||
setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));
|
||||
f.elements[fp + "_bottom"].disabled = false;
|
||||
|
||||
setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));
|
||||
f.elements[fp + "_left"].disabled = false;
|
||||
|
||||
if (f.elements[fp + "_top_measurement"]) {
|
||||
selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
|
||||
selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));
|
||||
selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));
|
||||
selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));
|
||||
f.elements[fp + "_left_measurement"].disabled = false;
|
||||
f.elements[fp + "_bottom_measurement"].disabled = false;
|
||||
f.elements[fp + "_right_measurement"].disabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function isSame(e, pr, sf, b) {
|
||||
var a = [], i, x;
|
||||
|
||||
if (typeof(b) == "undefined")
|
||||
b = ['Top', 'Right', 'Bottom', 'Left'];
|
||||
|
||||
if (typeof(sf) == "undefined" || sf == null)
|
||||
sf = "";
|
||||
|
||||
a[0] = e.style[pr + b[0] + sf];
|
||||
a[1] = e.style[pr + b[1] + sf];
|
||||
a[2] = e.style[pr + b[2] + sf];
|
||||
a[3] = e.style[pr + b[3] + sf];
|
||||
|
||||
for (i=0; i<a.length; i++) {
|
||||
if (a[i] == null)
|
||||
return false;
|
||||
|
||||
for (x=0; x<a.length; x++) {
|
||||
if (a[x] != a[i])
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
function hasEqualValues(a) {
|
||||
var i, x;
|
||||
|
||||
for (i=0; i<a.length; i++) {
|
||||
if (a[i] == null)
|
||||
return false;
|
||||
|
||||
for (x=0; x<a.length; x++) {
|
||||
if (a[x] != a[i])
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function applyAction() {
|
||||
var ce = document.getElementById('container'), ed = tinyMCEPopup.editor;
|
||||
|
||||
generateCSS();
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
ed.dom.setAttrib(ed.selection.getNode(), 'style', tinyMCEPopup.editor.dom.serializeStyle(tinyMCEPopup.editor.dom.parseStyle(ce.style.cssText)));
|
||||
}
|
||||
|
||||
function updateAction() {
|
||||
applyAction();
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function generateCSS() {
|
||||
var ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;
|
||||
|
||||
ce.style.cssText = "";
|
||||
|
||||
// Build text styles
|
||||
ce.style.fontFamily = f.text_font.value;
|
||||
ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? (f.text_size_measurement.value || 'px') : "");
|
||||
ce.style.fontStyle = f.text_style.value;
|
||||
ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");
|
||||
ce.style.textTransform = f.text_case.value;
|
||||
ce.style.fontWeight = f.text_weight.value;
|
||||
ce.style.fontVariant = f.text_variant.value;
|
||||
ce.style.color = f.text_color.value;
|
||||
|
||||
s = "";
|
||||
s += f.text_underline.checked ? " underline" : "";
|
||||
s += f.text_overline.checked ? " overline" : "";
|
||||
s += f.text_linethrough.checked ? " line-through" : "";
|
||||
s += f.text_blink.checked ? " blink" : "";
|
||||
s = s.length > 0 ? s.substring(1) : s;
|
||||
|
||||
if (f.text_none.checked)
|
||||
s = "none";
|
||||
|
||||
ce.style.textDecoration = s;
|
||||
|
||||
// Build background styles
|
||||
|
||||
ce.style.backgroundColor = f.background_color.value;
|
||||
ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";
|
||||
ce.style.backgroundRepeat = f.background_repeat.value;
|
||||
ce.style.backgroundAttachment = f.background_attachment.value;
|
||||
|
||||
if (f.background_hpos.value != "") {
|
||||
s = "";
|
||||
s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";
|
||||
s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");
|
||||
ce.style.backgroundPosition = s;
|
||||
}
|
||||
|
||||
// Build block styles
|
||||
|
||||
ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");
|
||||
ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");
|
||||
ce.style.verticalAlign = f.block_vertical_alignment.value;
|
||||
ce.style.textAlign = f.block_text_align.value;
|
||||
ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");
|
||||
ce.style.whiteSpace = f.block_whitespace.value;
|
||||
ce.style.display = f.block_display.value;
|
||||
|
||||
// Build box styles
|
||||
|
||||
ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");
|
||||
ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");
|
||||
ce.style.styleFloat = f.box_float.value;
|
||||
|
||||
if (tinymce.isGecko)
|
||||
ce.style.cssFloat = f.box_float.value;
|
||||
|
||||
ce.style.clear = f.box_clear.value;
|
||||
|
||||
if (!f.box_padding_same.checked) {
|
||||
ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
|
||||
ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");
|
||||
ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");
|
||||
ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");
|
||||
} else
|
||||
ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
|
||||
|
||||
if (!f.box_margin_same.checked) {
|
||||
ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
|
||||
ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");
|
||||
ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");
|
||||
ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");
|
||||
} else
|
||||
ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
|
||||
|
||||
// Build border styles
|
||||
|
||||
if (!f.border_style_same.checked) {
|
||||
ce.style.borderTopStyle = f.border_style_top.value;
|
||||
ce.style.borderRightStyle = f.border_style_right.value;
|
||||
ce.style.borderBottomStyle = f.border_style_bottom.value;
|
||||
ce.style.borderLeftStyle = f.border_style_left.value;
|
||||
} else
|
||||
ce.style.borderStyle = f.border_style_top.value;
|
||||
|
||||
if (!f.border_width_same.checked) {
|
||||
ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
|
||||
ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");
|
||||
ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");
|
||||
ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");
|
||||
} else
|
||||
ce.style.borderWidth = f.border_width_top.value;
|
||||
|
||||
if (!f.border_color_same.checked) {
|
||||
ce.style.borderTopColor = f.border_color_top.value;
|
||||
ce.style.borderRightColor = f.border_color_right.value;
|
||||
ce.style.borderBottomColor = f.border_color_bottom.value;
|
||||
ce.style.borderLeftColor = f.border_color_left.value;
|
||||
} else
|
||||
ce.style.borderColor = f.border_color_top.value;
|
||||
|
||||
// Build list styles
|
||||
|
||||
ce.style.listStyleType = f.list_type.value;
|
||||
ce.style.listStylePosition = f.list_position.value;
|
||||
ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";
|
||||
|
||||
// Build positioning styles
|
||||
|
||||
ce.style.position = f.positioning_type.value;
|
||||
ce.style.visibility = f.positioning_visibility.value;
|
||||
|
||||
if (ce.style.width == "")
|
||||
ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");
|
||||
|
||||
if (ce.style.height == "")
|
||||
ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");
|
||||
|
||||
ce.style.zIndex = f.positioning_zindex.value;
|
||||
ce.style.overflow = f.positioning_overflow.value;
|
||||
|
||||
if (!f.positioning_placement_same.checked) {
|
||||
ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
|
||||
ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");
|
||||
ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");
|
||||
ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");
|
||||
} else {
|
||||
s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
|
||||
ce.style.top = s;
|
||||
ce.style.right = s;
|
||||
ce.style.bottom = s;
|
||||
ce.style.left = s;
|
||||
}
|
||||
|
||||
if (!f.positioning_clip_same.checked) {
|
||||
s = "rect(";
|
||||
s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";
|
||||
s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";
|
||||
s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";
|
||||
s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");
|
||||
s += ")";
|
||||
|
||||
if (s != "rect(auto auto auto auto)")
|
||||
ce.style.clip = s;
|
||||
} else {
|
||||
s = "rect(";
|
||||
t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";
|
||||
s += t + " ";
|
||||
s += t + " ";
|
||||
s += t + " ";
|
||||
s += t + ")";
|
||||
|
||||
if (s != "rect(auto auto auto auto)")
|
||||
ce.style.clip = s;
|
||||
}
|
||||
|
||||
ce.style.cssText = ce.style.cssText;
|
||||
}
|
||||
|
||||
function isNum(s) {
|
||||
return new RegExp('[0-9]+', 'g').test(s);
|
||||
}
|
||||
|
||||
function showDisabledControls() {
|
||||
var f = document.forms, i, a;
|
||||
|
||||
for (i=0; i<f.length; i++) {
|
||||
for (a=0; a<f[i].elements.length; a++) {
|
||||
if (f[i].elements[a].disabled)
|
||||
tinyMCEPopup.editor.dom.addClass(f[i].elements[a], "disabled");
|
||||
else
|
||||
tinyMCEPopup.editor.dom.removeClass(f[i].elements[a], "disabled");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fillSelect(f, s, param, dval, sep, em) {
|
||||
var i, ar, p, se;
|
||||
|
||||
f = document.forms[f];
|
||||
sep = typeof(sep) == "undefined" ? ";" : sep;
|
||||
|
||||
if (em)
|
||||
addSelectValue(f, s, "", "");
|
||||
|
||||
ar = tinyMCEPopup.getParam(param, dval).split(sep);
|
||||
for (i=0; i<ar.length; i++) {
|
||||
se = false;
|
||||
|
||||
if (ar[i].charAt(0) == '+') {
|
||||
ar[i] = ar[i].substring(1);
|
||||
se = true;
|
||||
}
|
||||
|
||||
p = ar[i].split('=');
|
||||
|
||||
if (p.length > 1) {
|
||||
addSelectValue(f, s, p[0], p[1]);
|
||||
|
||||
if (se)
|
||||
selectByValue(f, s, p[1]);
|
||||
} else {
|
||||
addSelectValue(f, s, p[0], p[0]);
|
||||
|
||||
if (se)
|
||||
selectByValue(f, s, p[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function toggleSame(ce, pre) {
|
||||
var el = document.forms[0].elements, i;
|
||||
|
||||
if (ce.checked) {
|
||||
el[pre + "_top"].disabled = false;
|
||||
el[pre + "_right"].disabled = true;
|
||||
el[pre + "_bottom"].disabled = true;
|
||||
el[pre + "_left"].disabled = true;
|
||||
|
||||
if (el[pre + "_top_measurement"]) {
|
||||
el[pre + "_top_measurement"].disabled = false;
|
||||
el[pre + "_right_measurement"].disabled = true;
|
||||
el[pre + "_bottom_measurement"].disabled = true;
|
||||
el[pre + "_left_measurement"].disabled = true;
|
||||
}
|
||||
} else {
|
||||
el[pre + "_top"].disabled = false;
|
||||
el[pre + "_right"].disabled = false;
|
||||
el[pre + "_bottom"].disabled = false;
|
||||
el[pre + "_left"].disabled = false;
|
||||
|
||||
if (el[pre + "_top_measurement"]) {
|
||||
el[pre + "_top_measurement"].disabled = false;
|
||||
el[pre + "_right_measurement"].disabled = false;
|
||||
el[pre + "_bottom_measurement"].disabled = false;
|
||||
el[pre + "_left_measurement"].disabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
showDisabledControls();
|
||||
}
|
||||
|
||||
function synch(fr, to) {
|
||||
var f = document.forms[0];
|
||||
|
||||
f.elements[to].value = f.elements[fr].value;
|
||||
|
||||
if (f.elements[fr + "_measurement"])
|
||||
selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
63
include/javascript/tiny_mce/plugins/style/langs/en_dlg.js
vendored
Executable file
63
include/javascript/tiny_mce/plugins/style/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,63 @@
|
||||
tinyMCE.addI18n('en.style_dlg',{
|
||||
title:"Edit CSS Style",
|
||||
apply:"Apply",
|
||||
text_tab:"Text",
|
||||
background_tab:"Background",
|
||||
block_tab:"Block",
|
||||
box_tab:"Box",
|
||||
border_tab:"Border",
|
||||
list_tab:"List",
|
||||
positioning_tab:"Positioning",
|
||||
text_props:"Text",
|
||||
text_font:"Font",
|
||||
text_size:"Size",
|
||||
text_weight:"Weight",
|
||||
text_style:"Style",
|
||||
text_variant:"Variant",
|
||||
text_lineheight:"Line height",
|
||||
text_case:"Case",
|
||||
text_color:"Color",
|
||||
text_decoration:"Decoration",
|
||||
text_overline:"overline",
|
||||
text_underline:"underline",
|
||||
text_striketrough:"strikethrough",
|
||||
text_blink:"blink",
|
||||
text_none:"none",
|
||||
background_color:"Background color",
|
||||
background_image:"Background image",
|
||||
background_repeat:"Repeat",
|
||||
background_attachment:"Attachment",
|
||||
background_hpos:"Horizontal position",
|
||||
background_vpos:"Vertical position",
|
||||
block_wordspacing:"Word spacing",
|
||||
block_letterspacing:"Letter spacing",
|
||||
block_vertical_alignment:"Vertical alignment",
|
||||
block_text_align:"Text align",
|
||||
block_text_indent:"Text indent",
|
||||
block_whitespace:"Whitespace",
|
||||
block_display:"Display",
|
||||
box_width:"Width",
|
||||
box_height:"Height",
|
||||
box_float:"Float",
|
||||
box_clear:"Clear",
|
||||
padding:"Padding",
|
||||
same:"Same for all",
|
||||
top:"Top",
|
||||
right:"Right",
|
||||
bottom:"Bottom",
|
||||
left:"Left",
|
||||
margin:"Margin",
|
||||
style:"Style",
|
||||
width:"Width",
|
||||
height:"Height",
|
||||
color:"Color",
|
||||
list_type:"Type",
|
||||
bullet_image:"Bullet image",
|
||||
position:"Position",
|
||||
positioning_type:"Type",
|
||||
visibility:"Visibility",
|
||||
zindex:"Z-index",
|
||||
overflow:"Overflow",
|
||||
placement:"Placement",
|
||||
clip:"Clip"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/table/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/table/editor_plugin.js
vendored
Executable file
File diff suppressed because one or more lines are too long
1136
include/javascript/tiny_mce/plugins/table/editor_plugin_src.js
vendored
Executable file
1136
include/javascript/tiny_mce/plugins/table/editor_plugin_src.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
269
include/javascript/tiny_mce/plugins/table/js/cell.js
vendored
Executable file
269
include/javascript/tiny_mce/plugins/table/js/cell.js
vendored
Executable file
@@ -0,0 +1,269 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var ed;
|
||||
|
||||
function init() {
|
||||
ed = tinyMCEPopup.editor;
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
|
||||
|
||||
var inst = ed;
|
||||
var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");
|
||||
var formObj = document.forms[0];
|
||||
var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
|
||||
|
||||
// Get table cell data
|
||||
var celltype = tdElm.nodeName.toLowerCase();
|
||||
var align = ed.dom.getAttrib(tdElm, 'align');
|
||||
var valign = ed.dom.getAttrib(tdElm, 'valign');
|
||||
var width = trimSize(getStyle(tdElm, 'width', 'width'));
|
||||
var height = trimSize(getStyle(tdElm, 'height', 'height'));
|
||||
var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
|
||||
var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
|
||||
var className = ed.dom.getAttrib(tdElm, 'class');
|
||||
var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
|
||||
var id = ed.dom.getAttrib(tdElm, 'id');
|
||||
var lang = ed.dom.getAttrib(tdElm, 'lang');
|
||||
var dir = ed.dom.getAttrib(tdElm, 'dir');
|
||||
var scope = ed.dom.getAttrib(tdElm, 'scope');
|
||||
|
||||
// Setup form
|
||||
addClassesToList('class', 'table_cell_styles');
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
formObj.bordercolor.value = bordercolor;
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.backgroundimage.value = backgroundimage;
|
||||
formObj.width.value = width;
|
||||
formObj.height.value = height;
|
||||
formObj.id.value = id;
|
||||
formObj.lang.value = lang;
|
||||
formObj.style.value = ed.dom.serializeStyle(st);
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'valign', valign);
|
||||
selectByValue(formObj, 'class', className, true, true);
|
||||
selectByValue(formObj, 'celltype', celltype);
|
||||
selectByValue(formObj, 'dir', dir);
|
||||
selectByValue(formObj, 'scope', scope);
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('backgroundimagebrowser'))
|
||||
document.getElementById('backgroundimage').style.width = '180px';
|
||||
|
||||
updateColor('bordercolor_pick', 'bordercolor');
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
}
|
||||
|
||||
function updateAction() {
|
||||
var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
el = ed.selection.getNode();
|
||||
tdElm = ed.dom.getParent(el, "td,th");
|
||||
trElm = ed.dom.getParent(el, "tr");
|
||||
tableElm = ed.dom.getParent(el, "table");
|
||||
|
||||
ed.execCommand('mceBeginUndoLevel');
|
||||
|
||||
switch (getSelectValue(formObj, 'action')) {
|
||||
case "cell":
|
||||
var celltype = getSelectValue(formObj, 'celltype');
|
||||
var scope = getSelectValue(formObj, 'scope');
|
||||
|
||||
function doUpdate(s) {
|
||||
if (s) {
|
||||
updateCell(tdElm);
|
||||
|
||||
ed.addVisual();
|
||||
ed.nodeChanged();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
};
|
||||
|
||||
if (ed.getParam("accessibility_warnings", 1)) {
|
||||
if (celltype == "th" && scope == "")
|
||||
tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
|
||||
else
|
||||
doUpdate(1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
updateCell(tdElm);
|
||||
break;
|
||||
|
||||
case "row":
|
||||
var cell = trElm.firstChild;
|
||||
|
||||
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
||||
cell = nextCell(cell);
|
||||
|
||||
do {
|
||||
cell = updateCell(cell, true);
|
||||
} while ((cell = nextCell(cell)) != null);
|
||||
|
||||
break;
|
||||
|
||||
case "all":
|
||||
var rows = tableElm.getElementsByTagName("tr");
|
||||
|
||||
for (var i=0; i<rows.length; i++) {
|
||||
var cell = rows[i].firstChild;
|
||||
|
||||
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
||||
cell = nextCell(cell);
|
||||
|
||||
do {
|
||||
cell = updateCell(cell, true);
|
||||
} while ((cell = nextCell(cell)) != null);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
ed.addVisual();
|
||||
ed.nodeChanged();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function nextCell(elm) {
|
||||
while ((elm = elm.nextSibling) != null) {
|
||||
if (elm.nodeName == "TD" || elm.nodeName == "TH")
|
||||
return elm;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function updateCell(td, skip_id) {
|
||||
var inst = ed;
|
||||
var formObj = document.forms[0];
|
||||
var curCellType = td.nodeName.toLowerCase();
|
||||
var celltype = getSelectValue(formObj, 'celltype');
|
||||
var doc = inst.getDoc();
|
||||
var dom = ed.dom;
|
||||
|
||||
if (!skip_id)
|
||||
td.setAttribute('id', formObj.id.value);
|
||||
|
||||
td.setAttribute('align', formObj.align.value);
|
||||
td.setAttribute('vAlign', formObj.valign.value);
|
||||
td.setAttribute('lang', formObj.lang.value);
|
||||
td.setAttribute('dir', getSelectValue(formObj, 'dir'));
|
||||
td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
|
||||
td.setAttribute('scope', formObj.scope.value);
|
||||
ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
|
||||
|
||||
// Clear deprecated attributes
|
||||
ed.dom.setAttrib(td, 'width', '');
|
||||
ed.dom.setAttrib(td, 'height', '');
|
||||
ed.dom.setAttrib(td, 'bgColor', '');
|
||||
ed.dom.setAttrib(td, 'borderColor', '');
|
||||
ed.dom.setAttrib(td, 'background', '');
|
||||
|
||||
// Set styles
|
||||
td.style.width = getCSSSize(formObj.width.value);
|
||||
td.style.height = getCSSSize(formObj.height.value);
|
||||
if (formObj.bordercolor.value != "") {
|
||||
td.style.borderColor = formObj.bordercolor.value;
|
||||
td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
|
||||
td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
|
||||
} else
|
||||
td.style.borderColor = '';
|
||||
|
||||
td.style.backgroundColor = formObj.bgcolor.value;
|
||||
|
||||
if (formObj.backgroundimage.value != "")
|
||||
td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
|
||||
else
|
||||
td.style.backgroundImage = '';
|
||||
|
||||
if (curCellType != celltype) {
|
||||
// changing to a different node type
|
||||
var newCell = doc.createElement(celltype);
|
||||
|
||||
for (var c=0; c<td.childNodes.length; c++)
|
||||
newCell.appendChild(td.childNodes[c].cloneNode(1));
|
||||
|
||||
for (var a=0; a<td.attributes.length; a++)
|
||||
ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
|
||||
|
||||
td.parentNode.replaceChild(newCell, td);
|
||||
td = newCell;
|
||||
}
|
||||
|
||||
dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
|
||||
|
||||
return td;
|
||||
}
|
||||
|
||||
function changedBackgroundImage() {
|
||||
var formObj = document.forms[0];
|
||||
var st = ed.dom.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
||||
|
||||
formObj.style.value = ed.dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedSize() {
|
||||
var formObj = document.forms[0];
|
||||
var st = ed.dom.parseStyle(formObj.style.value);
|
||||
|
||||
var width = formObj.width.value;
|
||||
if (width != "")
|
||||
st['width'] = getCSSSize(width);
|
||||
else
|
||||
st['width'] = "";
|
||||
|
||||
var height = formObj.height.value;
|
||||
if (height != "")
|
||||
st['height'] = getCSSSize(height);
|
||||
else
|
||||
st['height'] = "";
|
||||
|
||||
formObj.style.value = ed.dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedColor() {
|
||||
var formObj = document.forms[0];
|
||||
var st = ed.dom.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-color'] = formObj.bgcolor.value;
|
||||
st['border-color'] = formObj.bordercolor.value;
|
||||
|
||||
formObj.style.value = ed.dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedStyle() {
|
||||
var formObj = document.forms[0];
|
||||
var st = ed.dom.parseStyle(formObj.style.value);
|
||||
|
||||
if (st['background-image'])
|
||||
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
else
|
||||
formObj.backgroundimage.value = '';
|
||||
|
||||
if (st['width'])
|
||||
formObj.width.value = trimSize(st['width']);
|
||||
|
||||
if (st['height'])
|
||||
formObj.height.value = trimSize(st['height']);
|
||||
|
||||
if (st['background-color']) {
|
||||
formObj.bgcolor.value = st['background-color'];
|
||||
updateColor('bgcolor_pick','bgcolor');
|
||||
}
|
||||
|
||||
if (st['border-color']) {
|
||||
formObj.bordercolor.value = st['border-color'];
|
||||
updateColor('bordercolor_pick','bordercolor');
|
||||
}
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
29
include/javascript/tiny_mce/plugins/table/js/merge_cells.js
vendored
Executable file
29
include/javascript/tiny_mce/plugins/table/js/merge_cells.js
vendored
Executable file
@@ -0,0 +1,29 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
function init() {
|
||||
var f = document.forms[0], v;
|
||||
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
f.numcols.value = tinyMCEPopup.getWindowArg('numcols', 1);
|
||||
f.numrows.value = tinyMCEPopup.getWindowArg('numrows', 1);
|
||||
}
|
||||
|
||||
function mergeCells() {
|
||||
var args = [], f = document.forms[0];
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
if (!AutoValidator.validate(f)) {
|
||||
tinyMCEPopup.alert(tinyMCEPopup.getLang('invalid_data'));
|
||||
return false;
|
||||
}
|
||||
|
||||
args["numcols"] = f.numcols.value;
|
||||
args["numrows"] = f.numrows.value;
|
||||
|
||||
tinyMCEPopup.execCommand("mceTableMergeCells", false, args);
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
212
include/javascript/tiny_mce/plugins/table/js/row.js
vendored
Executable file
212
include/javascript/tiny_mce/plugins/table/js/row.js
vendored
Executable file
@@ -0,0 +1,212 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
|
||||
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var dom = inst.dom;
|
||||
var trElm = dom.getParent(inst.selection.getNode(), "tr");
|
||||
var formObj = document.forms[0];
|
||||
var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
|
||||
|
||||
// Get table row data
|
||||
var rowtype = trElm.parentNode.nodeName.toLowerCase();
|
||||
var align = dom.getAttrib(trElm, 'align');
|
||||
var valign = dom.getAttrib(trElm, 'valign');
|
||||
var height = trimSize(getStyle(trElm, 'height', 'height'));
|
||||
var className = dom.getAttrib(trElm, 'class');
|
||||
var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
|
||||
var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
|
||||
var id = dom.getAttrib(trElm, 'id');
|
||||
var lang = dom.getAttrib(trElm, 'lang');
|
||||
var dir = dom.getAttrib(trElm, 'dir');
|
||||
|
||||
// Setup form
|
||||
addClassesToList('class', 'table_row_styles');
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.backgroundimage.value = backgroundimage;
|
||||
formObj.height.value = height;
|
||||
formObj.id.value = id;
|
||||
formObj.lang.value = lang;
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'valign', valign);
|
||||
selectByValue(formObj, 'class', className, true, true);
|
||||
selectByValue(formObj, 'rowtype', rowtype);
|
||||
selectByValue(formObj, 'dir', dir);
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('backgroundimagebrowser'))
|
||||
document.getElementById('backgroundimage').style.width = '180px';
|
||||
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
}
|
||||
|
||||
function updateAction() {
|
||||
var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
|
||||
var action = getSelectValue(formObj, 'action');
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
trElm = dom.getParent(inst.selection.getNode(), "tr");
|
||||
tableElm = dom.getParent(inst.selection.getNode(), "table");
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
|
||||
switch (action) {
|
||||
case "row":
|
||||
updateRow(trElm);
|
||||
break;
|
||||
|
||||
case "all":
|
||||
var rows = tableElm.getElementsByTagName("tr");
|
||||
|
||||
for (var i=0; i<rows.length; i++)
|
||||
updateRow(rows[i], true);
|
||||
|
||||
break;
|
||||
|
||||
case "odd":
|
||||
case "even":
|
||||
var rows = tableElm.getElementsByTagName("tr");
|
||||
|
||||
for (var i=0; i<rows.length; i++) {
|
||||
if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
|
||||
updateRow(rows[i], true, true);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
inst.addVisual();
|
||||
inst.nodeChanged();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function updateRow(tr_elm, skip_id, skip_parent) {
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var formObj = document.forms[0];
|
||||
var dom = inst.dom;
|
||||
var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
|
||||
var rowtype = getSelectValue(formObj, 'rowtype');
|
||||
var doc = inst.getDoc();
|
||||
|
||||
// Update row element
|
||||
if (!skip_id)
|
||||
tr_elm.setAttribute('id', formObj.id.value);
|
||||
|
||||
tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
|
||||
tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
|
||||
tr_elm.setAttribute('lang', formObj.lang.value);
|
||||
tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
|
||||
tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));
|
||||
dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
|
||||
|
||||
// Clear deprecated attributes
|
||||
tr_elm.setAttribute('background', '');
|
||||
tr_elm.setAttribute('bgColor', '');
|
||||
tr_elm.setAttribute('height', '');
|
||||
|
||||
// Set styles
|
||||
tr_elm.style.height = getCSSSize(formObj.height.value);
|
||||
tr_elm.style.backgroundColor = formObj.bgcolor.value;
|
||||
|
||||
if (formObj.backgroundimage.value != "")
|
||||
tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
|
||||
else
|
||||
tr_elm.style.backgroundImage = '';
|
||||
|
||||
// Setup new rowtype
|
||||
if (curRowType != rowtype && !skip_parent) {
|
||||
// first, clone the node we are working on
|
||||
var newRow = tr_elm.cloneNode(1);
|
||||
|
||||
// next, find the parent of its new destination (creating it if necessary)
|
||||
var theTable = dom.getParent(tr_elm, "table");
|
||||
var dest = rowtype;
|
||||
var newParent = null;
|
||||
for (var i = 0; i < theTable.childNodes.length; i++) {
|
||||
if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
|
||||
newParent = theTable.childNodes[i];
|
||||
}
|
||||
|
||||
if (newParent == null) {
|
||||
newParent = doc.createElement(dest);
|
||||
|
||||
if (dest == "thead") {
|
||||
if (theTable.firstChild.nodeName == 'CAPTION')
|
||||
inst.dom.insertAfter(newParent, theTable.firstChild);
|
||||
else
|
||||
theTable.insertBefore(newParent, theTable.firstChild);
|
||||
} else
|
||||
theTable.appendChild(newParent);
|
||||
}
|
||||
|
||||
// append the row to the new parent
|
||||
newParent.appendChild(newRow);
|
||||
|
||||
// remove the original
|
||||
tr_elm.parentNode.removeChild(tr_elm);
|
||||
|
||||
// set tr_elm to the new node
|
||||
tr_elm = newRow;
|
||||
}
|
||||
|
||||
dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));
|
||||
}
|
||||
|
||||
function changedBackgroundImage() {
|
||||
var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedStyle() {
|
||||
var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
if (st['background-image'])
|
||||
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
else
|
||||
formObj.backgroundimage.value = '';
|
||||
|
||||
if (st['height'])
|
||||
formObj.height.value = trimSize(st['height']);
|
||||
|
||||
if (st['background-color']) {
|
||||
formObj.bgcolor.value = st['background-color'];
|
||||
updateColor('bgcolor_pick','bgcolor');
|
||||
}
|
||||
}
|
||||
|
||||
function changedSize() {
|
||||
var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
var height = formObj.height.value;
|
||||
if (height != "")
|
||||
st['height'] = getCSSSize(height);
|
||||
else
|
||||
st['height'] = "";
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedColor() {
|
||||
var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-color'] = formObj.bgcolor.value;
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
413
include/javascript/tiny_mce/plugins/table/js/table.js
vendored
Executable file
413
include/javascript/tiny_mce/plugins/table/js/table.js
vendored
Executable file
@@ -0,0 +1,413 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var action, orgTableWidth, orgTableHeight, dom = tinyMCEPopup.editor.dom;
|
||||
|
||||
function insertTable() {
|
||||
var formObj = document.forms[0];
|
||||
var inst = tinyMCEPopup.editor, dom = inst.dom;
|
||||
var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption, frame, rules;
|
||||
var html = '', capEl, elm;
|
||||
var cellLimit, rowLimit, colLimit;
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
if (!AutoValidator.validate(formObj)) {
|
||||
tinyMCEPopup.alert(inst.getLang('invalid_data'));
|
||||
return false;
|
||||
}
|
||||
|
||||
elm = dom.getParent(inst.selection.getNode(), 'table');
|
||||
|
||||
// Get form data
|
||||
cols = formObj.elements['cols'].value;
|
||||
rows = formObj.elements['rows'].value;
|
||||
border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;
|
||||
cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
|
||||
cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
|
||||
align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
|
||||
frame = formObj.elements['frame'].options[formObj.elements['frame'].selectedIndex].value;
|
||||
rules = formObj.elements['rules'].options[formObj.elements['rules'].selectedIndex].value;
|
||||
width = formObj.elements['width'].value;
|
||||
height = formObj.elements['height'].value;
|
||||
bordercolor = formObj.elements['bordercolor'].value;
|
||||
bgcolor = formObj.elements['bgcolor'].value;
|
||||
className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
|
||||
id = formObj.elements['id'].value;
|
||||
summary = formObj.elements['summary'].value;
|
||||
style = formObj.elements['style'].value;
|
||||
dir = formObj.elements['dir'].value;
|
||||
lang = formObj.elements['lang'].value;
|
||||
background = formObj.elements['backgroundimage'].value;
|
||||
caption = formObj.elements['caption'].checked;
|
||||
|
||||
cellLimit = tinyMCEPopup.getParam('table_cell_limit', false);
|
||||
rowLimit = tinyMCEPopup.getParam('table_row_limit', false);
|
||||
colLimit = tinyMCEPopup.getParam('table_col_limit', false);
|
||||
|
||||
// Validate table size
|
||||
if (colLimit && cols > colLimit) {
|
||||
tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
|
||||
return false;
|
||||
} else if (rowLimit && rows > rowLimit) {
|
||||
tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
|
||||
return false;
|
||||
} else if (cellLimit && cols * rows > cellLimit) {
|
||||
tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Update table
|
||||
if (action == "update") {
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
|
||||
dom.setAttrib(elm, 'cellPadding', cellpadding, true);
|
||||
dom.setAttrib(elm, 'cellSpacing', cellspacing, true);
|
||||
dom.setAttrib(elm, 'border', border);
|
||||
dom.setAttrib(elm, 'align', align);
|
||||
dom.setAttrib(elm, 'frame', frame);
|
||||
dom.setAttrib(elm, 'rules', rules);
|
||||
dom.setAttrib(elm, 'class', className);
|
||||
dom.setAttrib(elm, 'style', style);
|
||||
dom.setAttrib(elm, 'id', id);
|
||||
dom.setAttrib(elm, 'summary', summary);
|
||||
dom.setAttrib(elm, 'dir', dir);
|
||||
dom.setAttrib(elm, 'lang', lang);
|
||||
|
||||
capEl = inst.dom.select('caption', elm)[0];
|
||||
|
||||
if (capEl && !caption)
|
||||
capEl.parentNode.removeChild(capEl);
|
||||
|
||||
if (!capEl && caption) {
|
||||
capEl = elm.ownerDocument.createElement('caption');
|
||||
|
||||
if (!tinymce.isIE)
|
||||
capEl.innerHTML = '<br mce_bogus="1"/>';
|
||||
|
||||
elm.insertBefore(capEl, elm.firstChild);
|
||||
}
|
||||
|
||||
if (width && inst.settings.inline_styles) {
|
||||
dom.setStyle(elm, 'width', width);
|
||||
dom.setAttrib(elm, 'width', '');
|
||||
} else {
|
||||
dom.setAttrib(elm, 'width', width, true);
|
||||
dom.setStyle(elm, 'width', '');
|
||||
}
|
||||
|
||||
// Remove these since they are not valid XHTML
|
||||
dom.setAttrib(elm, 'borderColor', '');
|
||||
dom.setAttrib(elm, 'bgColor', '');
|
||||
dom.setAttrib(elm, 'background', '');
|
||||
|
||||
if (height && inst.settings.inline_styles) {
|
||||
dom.setStyle(elm, 'height', height);
|
||||
dom.setAttrib(elm, 'height', '');
|
||||
} else {
|
||||
dom.setAttrib(elm, 'height', height, true);
|
||||
dom.setStyle(elm, 'height', '');
|
||||
}
|
||||
|
||||
if (background != '')
|
||||
elm.style.backgroundImage = "url('" + background + "')";
|
||||
else
|
||||
elm.style.backgroundImage = '';
|
||||
|
||||
/* if (tinyMCEPopup.getParam("inline_styles")) {
|
||||
if (width != '')
|
||||
elm.style.width = getCSSSize(width);
|
||||
}*/
|
||||
|
||||
if (bordercolor != "") {
|
||||
elm.style.borderColor = bordercolor;
|
||||
elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
|
||||
elm.style.borderWidth = border == "" ? "1px" : border;
|
||||
} else
|
||||
elm.style.borderColor = '';
|
||||
|
||||
elm.style.backgroundColor = bgcolor;
|
||||
elm.style.height = getCSSSize(height);
|
||||
|
||||
inst.addVisual();
|
||||
|
||||
// Fix for stange MSIE align bug
|
||||
//elm.outerHTML = elm.outerHTML;
|
||||
|
||||
inst.nodeChanged();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
|
||||
// Repaint if dimensions changed
|
||||
if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
|
||||
inst.execCommand('mceRepaint');
|
||||
|
||||
tinyMCEPopup.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
// Create new table
|
||||
html += '<table';
|
||||
|
||||
html += makeAttrib('id', id);
|
||||
html += makeAttrib('border', border);
|
||||
html += makeAttrib('cellpadding', cellpadding);
|
||||
html += makeAttrib('cellspacing', cellspacing);
|
||||
|
||||
if (width && inst.settings.inline_styles) {
|
||||
if (style)
|
||||
style += '; ';
|
||||
|
||||
style += 'width: ' + width;
|
||||
} else
|
||||
html += makeAttrib('width', width);
|
||||
|
||||
/* if (height) {
|
||||
if (style)
|
||||
style += '; ';
|
||||
|
||||
style += 'height: ' + height;
|
||||
}*/
|
||||
|
||||
//html += makeAttrib('height', height);
|
||||
//html += makeAttrib('bordercolor', bordercolor);
|
||||
//html += makeAttrib('bgcolor', bgcolor);
|
||||
html += makeAttrib('align', align);
|
||||
html += makeAttrib('frame', frame);
|
||||
html += makeAttrib('rules', rules);
|
||||
html += makeAttrib('class', className);
|
||||
html += makeAttrib('style', style);
|
||||
html += makeAttrib('summary', summary);
|
||||
html += makeAttrib('dir', dir);
|
||||
html += makeAttrib('lang', lang);
|
||||
html += '>';
|
||||
|
||||
if (caption) {
|
||||
if (!tinymce.isIE)
|
||||
html += '<caption><br mce_bogus="1"/></caption>';
|
||||
else
|
||||
html += '<caption></caption>';
|
||||
}
|
||||
|
||||
for (var y=0; y<rows; y++) {
|
||||
html += "<tr>";
|
||||
|
||||
for (var x=0; x<cols; x++) {
|
||||
if (!tinymce.isIE)
|
||||
html += '<td><br mce_bogus="1"/></td>';
|
||||
else
|
||||
html += '<td></td>';
|
||||
}
|
||||
|
||||
html += "</tr>";
|
||||
}
|
||||
|
||||
html += "</table>";
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
inst.execCommand('mceInsertContent', false, html);
|
||||
inst.addVisual();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function makeAttrib(attrib, value) {
|
||||
var formObj = document.forms[0];
|
||||
var valueElm = formObj.elements[attrib];
|
||||
|
||||
if (typeof(value) == "undefined" || value == null) {
|
||||
value = "";
|
||||
|
||||
if (valueElm)
|
||||
value = valueElm.value;
|
||||
}
|
||||
|
||||
if (value == "")
|
||||
return "";
|
||||
|
||||
// XML encode it
|
||||
value = value.replace(/&/g, '&');
|
||||
value = value.replace(/\"/g, '"');
|
||||
value = value.replace(/</g, '<');
|
||||
value = value.replace(/>/g, '>');
|
||||
|
||||
return ' ' + attrib + '="' + value + '"';
|
||||
}
|
||||
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
|
||||
|
||||
var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');
|
||||
var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
|
||||
var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules, frame;
|
||||
var inst = tinyMCEPopup.editor, dom = inst.dom;
|
||||
var formObj = document.forms[0];
|
||||
var elm = dom.getParent(inst.selection.getNode(), "table");
|
||||
|
||||
action = tinyMCEPopup.getWindowArg('action');
|
||||
|
||||
if (!action)
|
||||
action = elm ? "update" : "insert";
|
||||
|
||||
if (elm && action != "insert") {
|
||||
var rowsAr = elm.rows;
|
||||
var cols = 0;
|
||||
for (var i=0; i<rowsAr.length; i++)
|
||||
if (rowsAr[i].cells.length > cols)
|
||||
cols = rowsAr[i].cells.length;
|
||||
|
||||
cols = cols;
|
||||
rows = rowsAr.length;
|
||||
|
||||
st = dom.parseStyle(dom.getAttrib(elm, "style"));
|
||||
border = trimSize(getStyle(elm, 'border', 'borderWidth'));
|
||||
cellpadding = dom.getAttrib(elm, 'cellpadding', "");
|
||||
cellspacing = dom.getAttrib(elm, 'cellspacing', "");
|
||||
width = trimSize(getStyle(elm, 'width', 'width'));
|
||||
height = trimSize(getStyle(elm, 'height', 'height'));
|
||||
bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
|
||||
bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
|
||||
align = dom.getAttrib(elm, 'align', align);
|
||||
frame = dom.getAttrib(elm, 'frame');
|
||||
rules = dom.getAttrib(elm, 'rules');
|
||||
className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));
|
||||
id = dom.getAttrib(elm, 'id');
|
||||
summary = dom.getAttrib(elm, 'summary');
|
||||
style = dom.serializeStyle(st);
|
||||
dir = dom.getAttrib(elm, 'dir');
|
||||
lang = dom.getAttrib(elm, 'lang');
|
||||
background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;
|
||||
|
||||
orgTableWidth = width;
|
||||
orgTableHeight = height;
|
||||
|
||||
action = "update";
|
||||
formObj.insert.value = inst.getLang('update');
|
||||
}
|
||||
|
||||
addClassesToList('class', "table_styles");
|
||||
TinyMCE_EditableSelects.init();
|
||||
|
||||
// Update form
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'frame', frame);
|
||||
selectByValue(formObj, 'rules', rules);
|
||||
selectByValue(formObj, 'class', className, true, true);
|
||||
formObj.cols.value = cols;
|
||||
formObj.rows.value = rows;
|
||||
formObj.border.value = border;
|
||||
formObj.cellpadding.value = cellpadding;
|
||||
formObj.cellspacing.value = cellspacing;
|
||||
formObj.width.value = width;
|
||||
formObj.height.value = height;
|
||||
formObj.bordercolor.value = bordercolor;
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.id.value = id;
|
||||
formObj.summary.value = summary;
|
||||
formObj.style.value = style;
|
||||
formObj.dir.value = dir;
|
||||
formObj.lang.value = lang;
|
||||
formObj.backgroundimage.value = background;
|
||||
|
||||
updateColor('bordercolor_pick', 'bordercolor');
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('backgroundimagebrowser'))
|
||||
document.getElementById('backgroundimage').style.width = '180px';
|
||||
|
||||
// Disable some fields in update mode
|
||||
if (action == "update") {
|
||||
formObj.cols.disabled = true;
|
||||
formObj.rows.disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
function changedSize() {
|
||||
var formObj = document.forms[0];
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
/* var width = formObj.width.value;
|
||||
if (width != "")
|
||||
st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";
|
||||
else
|
||||
st['width'] = "";*/
|
||||
|
||||
var height = formObj.height.value;
|
||||
if (height != "")
|
||||
st['height'] = getCSSSize(height);
|
||||
else
|
||||
st['height'] = "";
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedBackgroundImage() {
|
||||
var formObj = document.forms[0];
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedBorder() {
|
||||
var formObj = document.forms[0];
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
// Update border width if the element has a color
|
||||
if (formObj.border.value != "" && formObj.bordercolor.value != "")
|
||||
st['border-width'] = formObj.border.value + "px";
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedColor() {
|
||||
var formObj = document.forms[0];
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-color'] = formObj.bgcolor.value;
|
||||
|
||||
if (formObj.bordercolor.value != "") {
|
||||
st['border-color'] = formObj.bordercolor.value;
|
||||
|
||||
// Add border-width if it's missing
|
||||
if (!st['border-width'])
|
||||
st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";
|
||||
}
|
||||
|
||||
formObj.style.value = dom.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedStyle() {
|
||||
var formObj = document.forms[0];
|
||||
var st = dom.parseStyle(formObj.style.value);
|
||||
|
||||
if (st['background-image'])
|
||||
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
else
|
||||
formObj.backgroundimage.value = '';
|
||||
|
||||
if (st['width'])
|
||||
formObj.width.value = trimSize(st['width']);
|
||||
|
||||
if (st['height'])
|
||||
formObj.height.value = trimSize(st['height']);
|
||||
|
||||
if (st['background-color']) {
|
||||
formObj.bgcolor.value = st['background-color'];
|
||||
updateColor('bgcolor_pick','bgcolor');
|
||||
}
|
||||
|
||||
if (st['border-color']) {
|
||||
formObj.bordercolor.value = st['border-color'];
|
||||
updateColor('bordercolor_pick','bordercolor');
|
||||
}
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
74
include/javascript/tiny_mce/plugins/table/langs/en_dlg.js
vendored
Executable file
74
include/javascript/tiny_mce/plugins/table/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,74 @@
|
||||
tinyMCE.addI18n('en.table_dlg',{
|
||||
general_tab:"General",
|
||||
advanced_tab:"Advanced",
|
||||
general_props:"General properties",
|
||||
advanced_props:"Advanced properties",
|
||||
rowtype:"Row in table part",
|
||||
title:"Insert/Modify table",
|
||||
width:"Width",
|
||||
height:"Height",
|
||||
cols:"Cols",
|
||||
rows:"Rows",
|
||||
cellspacing:"Cellspacing",
|
||||
cellpadding:"Cellpadding",
|
||||
border:"Border",
|
||||
align:"Alignment",
|
||||
align_default:"Default",
|
||||
align_left:"Left",
|
||||
align_right:"Right",
|
||||
align_middle:"Center",
|
||||
row_title:"Table row properties",
|
||||
cell_title:"Table cell properties",
|
||||
cell_type:"Cell type",
|
||||
valign:"Vertical alignment",
|
||||
align_top:"Top",
|
||||
align_bottom:"Bottom",
|
||||
bordercolor:"Border color",
|
||||
bgcolor:"Background color",
|
||||
merge_cells_title:"Merge table cells",
|
||||
id:"Id",
|
||||
style:"Style",
|
||||
langdir:"Language direction",
|
||||
langcode:"Language code",
|
||||
mime:"Target MIME type",
|
||||
ltr:"Left to right",
|
||||
rtl:"Right to left",
|
||||
bgimage:"Background image",
|
||||
summary:"Summary",
|
||||
td:"Data",
|
||||
th:"Header",
|
||||
cell_cell:"Update current cell",
|
||||
cell_row:"Update all cells in row",
|
||||
cell_all:"Update all cells in table",
|
||||
row_row:"Update current row",
|
||||
row_odd:"Update odd rows in table",
|
||||
row_even:"Update even rows in table",
|
||||
row_all:"Update all rows in table",
|
||||
thead:"Table Head",
|
||||
tbody:"Table Body",
|
||||
tfoot:"Table Foot",
|
||||
scope:"Scope",
|
||||
rowgroup:"Row Group",
|
||||
colgroup:"Col Group",
|
||||
col_limit:"You've exceeded the maximum number of columns of {$cols}.",
|
||||
row_limit:"You've exceeded the maximum number of rows of {$rows}.",
|
||||
cell_limit:"You've exceeded the maximum number of cells of {$cells}.",
|
||||
missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",
|
||||
caption:"Table caption",
|
||||
frame:"Frame",
|
||||
frame_none:"none",
|
||||
frame_groups:"groups",
|
||||
frame_rows:"rows",
|
||||
frame_cols:"cols",
|
||||
frame_all:"all",
|
||||
rules:"Rules",
|
||||
rules_void:"void",
|
||||
rules_above:"above",
|
||||
rules_below:"below",
|
||||
rules_hsides:"hsides",
|
||||
rules_lhs:"lhs",
|
||||
rules_rhs:"rhs",
|
||||
rules_vsides:"vsides",
|
||||
rules_box:"box",
|
||||
rules_border:"border"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/template/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/template/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TemplatePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceTemplate',function(ui){ed.windowManager.open({file:url+'/template.htm',width:ed.getParam('template_popup_width',750),height:ed.getParam('template_popup_height',600),inline:1},{plugin_url:url});});ed.addCommand('mceInsertTemplate',t._insertTemplate,t);ed.addButton('template',{title:'template.desc',cmd:'mceTemplate'});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;each(dom.select('div',o.node),function(e){if(dom.hasClass(e,'mceTmpl')){each(dom.select('*',e),function(e){if(dom.hasClass(e,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))e.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));});t._replaceVals(e);}});});},getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_insertTemplate:function(ui,v){var t=this,ed=t.editor,h,el,dom=ed.dom,sel=ed.selection.getContent();h=v.content;each(t.editor.getParam('template_replace_values'),function(v,k){if(typeof(v)!='function')h=h.replace(new RegExp('\\{\\$'+k+'\\}','g'),v);});el=dom.create('div',null,h);n=dom.select('.mceTmpl',el);if(n&&n.length>0){el=dom.create('div',null);el.appendChild(n[0].cloneNode(true));}function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(dom.select('*',el),function(n){if(hasClass(n,ed.getParam('template_cdate_classes','cdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_cdate_format",ed.getLang("template.cdate_format")));if(hasClass(n,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));if(hasClass(n,ed.getParam('template_selected_content_classes','selcontent').replace(/\s+/g,'|')))n.innerHTML=sel;});t._replaceVals(el);ed.execCommand('mceInsertContent',false,el.innerHTML);ed.addVisual();},_replaceVals:function(e){var dom=this.editor.dom,vl=this.editor.getParam('template_replace_values');each(dom.select('*',e),function(e){each(vl,function(v,k){if(dom.hasClass(e,k)){if(typeof(vl[k])=='function')vl[k](e);}});});},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length<len){for(i=0;i<(len-value.length);i++)value="0"+value;}return value;}fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('template',tinymce.plugins.TemplatePlugin);})();
|
||||
156
include/javascript/tiny_mce/plugins/template/editor_plugin_src.js
vendored
Executable file
156
include/javascript/tiny_mce/plugins/template/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,156 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var each = tinymce.each;
|
||||
|
||||
tinymce.create('tinymce.plugins.TemplatePlugin', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceTemplate', function(ui) {
|
||||
ed.windowManager.open({
|
||||
file : url + '/template.htm',
|
||||
width : ed.getParam('template_popup_width', 750),
|
||||
height : ed.getParam('template_popup_height', 600),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceInsertTemplate', t._insertTemplate, t);
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});
|
||||
|
||||
ed.onPreProcess.add(function(ed, o) {
|
||||
var dom = ed.dom;
|
||||
|
||||
each(dom.select('div', o.node), function(e) {
|
||||
if (dom.hasClass(e, 'mceTmpl')) {
|
||||
each(dom.select('*', e), function(e) {
|
||||
if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
|
||||
e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
|
||||
});
|
||||
|
||||
t._replaceVals(e);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Template plugin',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://www.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
_insertTemplate : function(ui, v) {
|
||||
var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();
|
||||
|
||||
h = v.content;
|
||||
|
||||
each(t.editor.getParam('template_replace_values'), function(v, k) {
|
||||
if (typeof(v) != 'function')
|
||||
h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);
|
||||
});
|
||||
|
||||
el = dom.create('div', null, h);
|
||||
|
||||
// Find template element within div
|
||||
n = dom.select('.mceTmpl', el);
|
||||
if (n && n.length > 0) {
|
||||
el = dom.create('div', null);
|
||||
el.appendChild(n[0].cloneNode(true));
|
||||
}
|
||||
|
||||
function hasClass(n, c) {
|
||||
return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
|
||||
};
|
||||
|
||||
each(dom.select('*', el), function(n) {
|
||||
// Replace cdate
|
||||
if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))
|
||||
n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));
|
||||
|
||||
// Replace mdate
|
||||
if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
|
||||
n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
|
||||
|
||||
// Replace selection
|
||||
if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))
|
||||
n.innerHTML = sel;
|
||||
});
|
||||
|
||||
t._replaceVals(el);
|
||||
|
||||
ed.execCommand('mceInsertContent', false, el.innerHTML);
|
||||
ed.addVisual();
|
||||
},
|
||||
|
||||
_replaceVals : function(e) {
|
||||
var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');
|
||||
|
||||
each(dom.select('*', e), function(e) {
|
||||
each(vl, function(v, k) {
|
||||
if (dom.hasClass(e, k)) {
|
||||
if (typeof(vl[k]) == 'function')
|
||||
vl[k](e);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
_getDateTime : function(d, fmt) {
|
||||
if (!fmt)
|
||||
return "";
|
||||
|
||||
function addZeros(value, len) {
|
||||
var i;
|
||||
|
||||
value = "" + value;
|
||||
|
||||
if (value.length < len) {
|
||||
for (i=0; i<(len-value.length); i++)
|
||||
value = "0" + value;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
fmt = fmt.replace("%D", "%m/%d/%y");
|
||||
fmt = fmt.replace("%r", "%I:%M:%S %p");
|
||||
fmt = fmt.replace("%Y", "" + d.getFullYear());
|
||||
fmt = fmt.replace("%y", "" + d.getYear());
|
||||
fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
|
||||
fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
|
||||
fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
|
||||
fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
|
||||
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
|
||||
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
|
||||
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
|
||||
fmt = fmt.replace("%B", "" + tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%b", "" + tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);
|
||||
fmt = fmt.replace("%A", "" + tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%a", "" + tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);
|
||||
fmt = fmt.replace("%%", "%");
|
||||
|
||||
return fmt;
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);
|
||||
})();
|
||||
106
include/javascript/tiny_mce/plugins/template/js/template.js
vendored
Executable file
106
include/javascript/tiny_mce/plugins/template/js/template.js
vendored
Executable file
@@ -0,0 +1,106 @@
|
||||
tinyMCEPopup.requireLangPack();
|
||||
|
||||
var TemplateDialog = {
|
||||
preInit : function() {
|
||||
var url = tinyMCEPopup.getParam("template_external_list_url");
|
||||
|
||||
if (url != null)
|
||||
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
|
||||
},
|
||||
|
||||
init : function() {
|
||||
var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
|
||||
|
||||
tsrc = ed.getParam("template_templates", false);
|
||||
sel = document.getElementById('tpath');
|
||||
|
||||
// Setup external template list
|
||||
if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
|
||||
for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
|
||||
tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
|
||||
}
|
||||
|
||||
for (x=0; x<tsrc.length; x++)
|
||||
sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
|
||||
|
||||
this.resize();
|
||||
this.tsrc = tsrc;
|
||||
},
|
||||
|
||||
resize : function() {
|
||||
var w, h, e;
|
||||
|
||||
if (!self.innerWidth) {
|
||||
w = document.body.clientWidth - 50;
|
||||
h = document.body.clientHeight - 160;
|
||||
} else {
|
||||
w = self.innerWidth - 50;
|
||||
h = self.innerHeight - 170;
|
||||
}
|
||||
|
||||
e = document.getElementById('templatesrc');
|
||||
|
||||
if (e) {
|
||||
e.style.height = Math.abs(h) + 'px';
|
||||
e.style.width = Math.abs(w - 5) + 'px';
|
||||
}
|
||||
},
|
||||
|
||||
loadCSSFiles : function(d) {
|
||||
var ed = tinyMCEPopup.editor;
|
||||
|
||||
tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
|
||||
d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
|
||||
});
|
||||
},
|
||||
|
||||
selectTemplate : function(u, ti) {
|
||||
var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
|
||||
|
||||
if (!u)
|
||||
return;
|
||||
|
||||
d.body.innerHTML = this.templateHTML = this.getFileContents(u);
|
||||
|
||||
for (x=0; x<tsrc.length; x++) {
|
||||
if (tsrc[x].title == ti)
|
||||
document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
|
||||
}
|
||||
},
|
||||
|
||||
insert : function() {
|
||||
tinyMCEPopup.execCommand('mceInsertTemplate', false, {
|
||||
content : this.templateHTML,
|
||||
selection : tinyMCEPopup.editor.selection.getContent()
|
||||
});
|
||||
|
||||
tinyMCEPopup.close();
|
||||
},
|
||||
|
||||
getFileContents : function(u) {
|
||||
var x, d, t = 'text/plain';
|
||||
|
||||
function g(s) {
|
||||
x = 0;
|
||||
|
||||
try {
|
||||
x = new ActiveXObject(s);
|
||||
} catch (s) {
|
||||
}
|
||||
|
||||
return x;
|
||||
};
|
||||
|
||||
x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
|
||||
|
||||
// Synchronous AJAX load file
|
||||
x.overrideMimeType && x.overrideMimeType(t);
|
||||
x.open("GET", u, false);
|
||||
x.send(null);
|
||||
|
||||
return x.responseText;
|
||||
}
|
||||
};
|
||||
|
||||
TemplateDialog.preInit();
|
||||
tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);
|
||||
15
include/javascript/tiny_mce/plugins/template/langs/en_dlg.js
vendored
Executable file
15
include/javascript/tiny_mce/plugins/template/langs/en_dlg.js
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
tinyMCE.addI18n('en.template_dlg',{
|
||||
title:"Templates",
|
||||
label:"Template",
|
||||
desc_label:"Description",
|
||||
desc:"Insert predefined template content",
|
||||
select:"Select a template",
|
||||
preview:"Preview",
|
||||
warning:"Warning: Updating a template with a different one may cause data loss.",
|
||||
mdate_format:"%Y-%m-%d %H:%M:%S",
|
||||
cdate_format:"%Y-%m-%d %H:%M:%S",
|
||||
months_long:"January,February,March,April,May,June,July,August,September,October,November,December",
|
||||
months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
|
||||
day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",
|
||||
day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"
|
||||
});
|
||||
1
include/javascript/tiny_mce/plugins/visualchars/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/visualchars/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.VisualChars',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceVisualChars',t._toggleVisualChars,t);ed.addButton('visualchars',{title:'visualchars.desc',cmd:'mceVisualChars'});ed.onBeforeGetContent.add(function(ed,o){if(t.state){t.state=true;t._toggleVisualChars();}});},getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_toggleVisualChars:function(){var t=this,ed=t.editor,nl,i,h,d=ed.getDoc(),b=ed.getBody(),nv,s=ed.selection,bo;t.state=!t.state;ed.controlManager.setActive('visualchars',t.state);if(t.state){nl=[];tinymce.walk(b,function(n){if(n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1)nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'<span class="mceItemHidden mceVisualNbsp">$1</span>');nv=nv.replace(/\u00a0/g,'\u00b7');ed.dom.setOuterHTML(nl[i],nv,d);}}else{nl=tinymce.grep(ed.dom.select('span',b),function(n){return ed.dom.hasClass(n,'mceVisualNbsp');});for(i=0;i<nl.length;i++)ed.dom.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(·|\u00b7)/g,' '),d);}}});tinymce.PluginManager.add('visualchars',tinymce.plugins.VisualChars);})();
|
||||
73
include/javascript/tiny_mce/plugins/visualchars/editor_plugin_src.js
vendored
Executable file
73
include/javascript/tiny_mce/plugins/visualchars/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.VisualChars', {
|
||||
init : function(ed, url) {
|
||||
var t = this;
|
||||
|
||||
t.editor = ed;
|
||||
|
||||
// Register commands
|
||||
ed.addCommand('mceVisualChars', t._toggleVisualChars, t);
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'});
|
||||
|
||||
ed.onBeforeGetContent.add(function(ed, o) {
|
||||
if (t.state) {
|
||||
t.state = true;
|
||||
t._toggleVisualChars();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'Visual characters',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
},
|
||||
|
||||
// Private methods
|
||||
|
||||
_toggleVisualChars : function() {
|
||||
var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo;
|
||||
|
||||
t.state = !t.state;
|
||||
ed.controlManager.setActive('visualchars', t.state);
|
||||
|
||||
if (t.state) {
|
||||
nl = [];
|
||||
tinymce.walk(b, function(n) {
|
||||
if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1)
|
||||
nl.push(n);
|
||||
}, 'childNodes');
|
||||
|
||||
for (i=0; i<nl.length; i++) {
|
||||
nv = nl[i].nodeValue;
|
||||
nv = nv.replace(/(\u00a0+)/g, '<span class="mceItemHidden mceVisualNbsp">$1</span>');
|
||||
nv = nv.replace(/\u00a0/g, '\u00b7');
|
||||
ed.dom.setOuterHTML(nl[i], nv, d);
|
||||
}
|
||||
} else {
|
||||
nl = tinymce.grep(ed.dom.select('span', b), function(n) {
|
||||
return ed.dom.hasClass(n, 'mceVisualNbsp');
|
||||
});
|
||||
|
||||
for (i=0; i<nl.length; i++)
|
||||
ed.dom.setOuterHTML(nl[i], nl[i].innerHTML.replace(/(·|\u00b7)/g, ' '), d);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars);
|
||||
})();
|
||||
1
include/javascript/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
vendored
Executable file
1
include/javascript/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/<abbr([^>]+)>/gi,'<html:abbr $1>');o.content=o.content.replace(/<\/abbr>/gi,'</html:abbr>');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&&n.nodeName=='BODY');cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);if(n){do{cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}while(n=n.parentNode);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})();
|
||||
136
include/javascript/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
vendored
Executable file
136
include/javascript/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
vendored
Executable file
@@ -0,0 +1,136 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {
|
||||
init : function(ed, url) {
|
||||
// Register commands
|
||||
ed.addCommand('mceCite', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/cite.htm',
|
||||
width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),
|
||||
height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceAcronym', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/acronym.htm',
|
||||
width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
|
||||
height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceAbbr', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/abbr.htm',
|
||||
width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
|
||||
height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceDel', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/del.htm',
|
||||
width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
|
||||
height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceIns', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/ins.htm',
|
||||
width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
|
||||
height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
ed.addCommand('mceAttributes', function() {
|
||||
ed.windowManager.open({
|
||||
file : url + '/attributes.htm',
|
||||
width : 380,
|
||||
height : 370,
|
||||
inline : 1
|
||||
}, {
|
||||
plugin_url : url
|
||||
});
|
||||
});
|
||||
|
||||
// Register buttons
|
||||
ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});
|
||||
ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});
|
||||
ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});
|
||||
ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});
|
||||
ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});
|
||||
ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});
|
||||
|
||||
if (tinymce.isIE) {
|
||||
function fix(ed, o) {
|
||||
if (o.set) {
|
||||
o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');
|
||||
o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');
|
||||
}
|
||||
};
|
||||
|
||||
ed.onBeforeSetContent.add(fix);
|
||||
ed.onPostProcess.add(fix);
|
||||
}
|
||||
|
||||
ed.onNodeChange.add(function(ed, cm, n, co) {
|
||||
n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');
|
||||
|
||||
cm.setDisabled('cite', co);
|
||||
cm.setDisabled('acronym', co);
|
||||
cm.setDisabled('abbr', co);
|
||||
cm.setDisabled('del', co);
|
||||
cm.setDisabled('ins', co);
|
||||
cm.setDisabled('attribs', n && n.nodeName == 'BODY');
|
||||
cm.setActive('cite', 0);
|
||||
cm.setActive('acronym', 0);
|
||||
cm.setActive('abbr', 0);
|
||||
cm.setActive('del', 0);
|
||||
cm.setActive('ins', 0);
|
||||
|
||||
// Activate all
|
||||
if (n) {
|
||||
do {
|
||||
cm.setDisabled(n.nodeName.toLowerCase(), 0);
|
||||
cm.setActive(n.nodeName.toLowerCase(), 1);
|
||||
} while (n = n.parentNode);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getInfo : function() {
|
||||
return {
|
||||
longname : 'XHTML Xtras Plugin',
|
||||
author : 'Moxiecode Systems AB',
|
||||
authorurl : 'http://tinymce.moxiecode.com',
|
||||
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
|
||||
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Register plugin
|
||||
tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);
|
||||
})();
|
||||
25
include/javascript/tiny_mce/plugins/xhtmlxtras/js/abbr.js
vendored
Executable file
25
include/javascript/tiny_mce/plugins/xhtmlxtras/js/abbr.js
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode - based on work by Andrew Tetlaw
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
function init() {
|
||||
SXE.initElementDialog('abbr');
|
||||
if (SXE.currentAction == "update") {
|
||||
SXE.showRemoveButton();
|
||||
}
|
||||
}
|
||||
|
||||
function insertAbbr() {
|
||||
SXE.insertElement(tinymce.isIE ? 'html:abbr' : 'abbr');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function removeAbbr() {
|
||||
SXE.removeElement('abbr');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
25
include/javascript/tiny_mce/plugins/xhtmlxtras/js/acronym.js
vendored
Executable file
25
include/javascript/tiny_mce/plugins/xhtmlxtras/js/acronym.js
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode - based on work by Andrew Tetlaw
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
function init() {
|
||||
SXE.initElementDialog('acronym');
|
||||
if (SXE.currentAction == "update") {
|
||||
SXE.showRemoveButton();
|
||||
}
|
||||
}
|
||||
|
||||
function insertAcronym() {
|
||||
SXE.insertElement('acronym');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function removeAcronym() {
|
||||
SXE.removeElement('acronym');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
123
include/javascript/tiny_mce/plugins/xhtmlxtras/js/attributes.js
vendored
Executable file
123
include/javascript/tiny_mce/plugins/xhtmlxtras/js/attributes.js
vendored
Executable file
@@ -0,0 +1,123 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode - based on work by Andrew Tetlaw
|
||||
* @copyright Copyright <20> 2004-2006, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var dom = inst.dom;
|
||||
var elm = inst.selection.getNode();
|
||||
var f = document.forms[0];
|
||||
var onclick = dom.getAttrib(elm, 'onclick');
|
||||
|
||||
setFormValue('title', dom.getAttrib(elm, 'title'));
|
||||
setFormValue('id', dom.getAttrib(elm, 'id'));
|
||||
setFormValue('style', dom.getAttrib(elm, "style"));
|
||||
setFormValue('dir', dom.getAttrib(elm, 'dir'));
|
||||
setFormValue('lang', dom.getAttrib(elm, 'lang'));
|
||||
setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
|
||||
setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
|
||||
setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));
|
||||
setFormValue('onblur', dom.getAttrib(elm, 'onblur'));
|
||||
setFormValue('onclick', onclick);
|
||||
setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));
|
||||
setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));
|
||||
setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));
|
||||
setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));
|
||||
setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));
|
||||
setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));
|
||||
setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));
|
||||
setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));
|
||||
setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));
|
||||
className = dom.getAttrib(elm, 'class');
|
||||
|
||||
addClassesToList('classlist', 'advlink_styles');
|
||||
selectByValue(f, 'classlist', className, true);
|
||||
|
||||
TinyMCE_EditableSelects.init();
|
||||
}
|
||||
|
||||
function setFormValue(name, value) {
|
||||
if(value && document.forms[0].elements[name]){
|
||||
document.forms[0].elements[name].value = value;
|
||||
}
|
||||
}
|
||||
|
||||
function insertAction() {
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var elm = inst.selection.getNode();
|
||||
|
||||
tinyMCEPopup.execCommand("mceBeginUndoLevel");
|
||||
setAllAttribs(elm);
|
||||
tinyMCEPopup.execCommand("mceEndUndoLevel");
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function setAttrib(elm, attrib, value) {
|
||||
var formObj = document.forms[0];
|
||||
var valueElm = formObj.elements[attrib.toLowerCase()];
|
||||
var inst = tinyMCEPopup.editor;
|
||||
var dom = inst.dom;
|
||||
|
||||
if (typeof(value) == "undefined" || value == null) {
|
||||
value = "";
|
||||
|
||||
if (valueElm)
|
||||
value = valueElm.value;
|
||||
}
|
||||
|
||||
if (value != "") {
|
||||
dom.setAttrib(elm, attrib.toLowerCase(), value);
|
||||
|
||||
if (attrib == "style")
|
||||
attrib = "style.cssText";
|
||||
|
||||
if (attrib.substring(0, 2) == 'on')
|
||||
value = 'return true;' + value;
|
||||
|
||||
if (attrib == "class")
|
||||
attrib = "className";
|
||||
|
||||
elm[attrib]=value;
|
||||
} else
|
||||
elm.removeAttribute(attrib);
|
||||
}
|
||||
|
||||
function setAllAttribs(elm) {
|
||||
var f = document.forms[0];
|
||||
|
||||
setAttrib(elm, 'title');
|
||||
setAttrib(elm, 'id');
|
||||
setAttrib(elm, 'style');
|
||||
setAttrib(elm, 'class', getSelectValue(f, 'classlist'));
|
||||
setAttrib(elm, 'dir');
|
||||
setAttrib(elm, 'lang');
|
||||
setAttrib(elm, 'tabindex');
|
||||
setAttrib(elm, 'accesskey');
|
||||
setAttrib(elm, 'onfocus');
|
||||
setAttrib(elm, 'onblur');
|
||||
setAttrib(elm, 'onclick');
|
||||
setAttrib(elm, 'ondblclick');
|
||||
setAttrib(elm, 'onmousedown');
|
||||
setAttrib(elm, 'onmouseup');
|
||||
setAttrib(elm, 'onmouseover');
|
||||
setAttrib(elm, 'onmousemove');
|
||||
setAttrib(elm, 'onmouseout');
|
||||
setAttrib(elm, 'onkeypress');
|
||||
setAttrib(elm, 'onkeydown');
|
||||
setAttrib(elm, 'onkeyup');
|
||||
|
||||
// Refresh in old MSIE
|
||||
// if (tinyMCE.isMSIE5)
|
||||
// elm.outerHTML = elm.outerHTML;
|
||||
}
|
||||
|
||||
function insertAttribute() {
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
tinyMCEPopup.requireLangPack();
|
||||
25
include/javascript/tiny_mce/plugins/xhtmlxtras/js/cite.js
vendored
Executable file
25
include/javascript/tiny_mce/plugins/xhtmlxtras/js/cite.js
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Moxiecode - based on work by Andrew Tetlaw
|
||||
* @copyright Copyright <20> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
||||
*/
|
||||
|
||||
function init() {
|
||||
SXE.initElementDialog('cite');
|
||||
if (SXE.currentAction == "update") {
|
||||
SXE.showRemoveButton();
|
||||
}
|
||||
}
|
||||
|
||||
function insertCite() {
|
||||
SXE.insertElement('cite');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function removeCite() {
|
||||
SXE.removeElement('cite');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
tinyMCEPopup.onInit.add(init);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user