summaryrefslogtreecommitdiffstats
path: root/extensions/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js')
-rw-r--r--extensions/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js142
1 files changed, 142 insertions, 0 deletions
diff --git a/extensions/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js b/extensions/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
new file mode 100644
index 0000000..019682d
--- /dev/null
+++ b/extensions/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
@@ -0,0 +1,142 @@
+/**
+ * $Id: editor_plugin_src.js 920 2008-09-09 14:05:33Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 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);
+})(); \ No newline at end of file