alecpl
2008-10-09 e70b3b24fc8ac7b54a820ae87ce8f4af4043125e
commit | author | age
d9344f 1 /**
S 2  * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
3  *
4  * @author Moxiecode
5  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6  */
7
8 (function() {
9     tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {
10         init : function(ed, url) {
11             // Register commands
12             ed.addCommand('mceCite', function() {
13                 ed.windowManager.open({
14                     file : url + '/cite.htm',
15                     width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),
16                     height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),
17                     inline : 1
18                 }, {
19                     plugin_url : url
20                 });
21             });
22
23             ed.addCommand('mceAcronym', function() {
24                 ed.windowManager.open({
25                     file : url + '/acronym.htm',
26                     width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
27                     height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
28                     inline : 1
29                 }, {
30                     plugin_url : url
31                 });
32             });
33
34             ed.addCommand('mceAbbr', function() {
35                 ed.windowManager.open({
36                     file : url + '/abbr.htm',
37                     width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
38                     height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
39                     inline : 1
40                 }, {
41                     plugin_url : url
42                 });
43             });
44
45             ed.addCommand('mceDel', function() {
46                 ed.windowManager.open({
47                     file : url + '/del.htm',
48                     width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
49                     height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
50                     inline : 1
51                 }, {
52                     plugin_url : url
53                 });
54             });
55
56             ed.addCommand('mceIns', function() {
57                 ed.windowManager.open({
58                     file : url + '/ins.htm',
59                     width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
60                     height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
61                     inline : 1
62                 }, {
63                     plugin_url : url
64                 });
65             });
66
67             ed.addCommand('mceAttributes', function() {
68                 ed.windowManager.open({
69                     file : url + '/attributes.htm',
70                     width : 380,
71                     height : 370,
72                     inline : 1
73                 }, {
74                     plugin_url : url
75                 });
76             });
77
78             // Register buttons
79             ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});
80             ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});
81             ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});
82             ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});
83             ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});
84             ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});
85
86             if (tinymce.isIE) {
87                 function fix(ed, o) {
88                     if (o.set) {
89                         o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');
90                         o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');
91                     }
92                 };
93
94                 ed.onBeforeSetContent.add(fix);
95                 ed.onPostProcess.add(fix);
96             }
97
98             ed.onNodeChange.add(function(ed, cm, n, co) {
99                 n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');
100
101                 cm.setDisabled('cite', co);
102                 cm.setDisabled('acronym', co);
103                 cm.setDisabled('abbr', co);
104                 cm.setDisabled('del', co);
105                 cm.setDisabled('ins', co);
106                 cm.setDisabled('attribs', n && n.nodeName == 'BODY');
107
108                 if (n) {
109                     cm.setDisabled(n.nodeName.toLowerCase(), 0);
110                     cm.setActive(n.nodeName.toLowerCase(), 1);
111                 } else {
112                     cm.setActive('cite', 0);
113                     cm.setActive('acronym', 0);
114                     cm.setActive('abbr', 0);
115                     cm.setActive('del', 0);
116                     cm.setActive('ins', 0);
117                 }
118             });
119         },
120
121         getInfo : function() {
122             return {
123                 longname : 'XHTML Xtras Plugin',
124                 author : 'Moxiecode Systems AB',
125                 authorurl : 'http://tinymce.moxiecode.com',
126                 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
127                 version : tinymce.majorVersion + "." + tinymce.minorVersion
128             };
129         }
130     });
131
132     // Register plugin
133     tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);
134 })();