source: trunk/plugins/InsertSnippet/insert-snippet.js @ 893

Last change on this file since 893 was 893, checked in by ray, 11 years ago
  • #1079 Plugin DynamicCSS lists Xinha internal CSS
  • #1080 Some plugins leave behind stylesheet links in fullpage mode
  • Property svn:keywords set to LastChangedDate LastChangedRevision LastChangedBy HeadURL Id
File size: 2.6 KB
Line 
1/*------------------------------------------*\
2 InsertSnippet for Xinha
3 _______________________
4 
5 Insert HTML fragments or template variables
6 
7\*------------------------------------------*/
8
9function InsertSnippet(editor) {
10        this.editor = editor;
11
12        var cfg = editor.config;
13        var self = this;
14       
15
16        cfg.registerButton({
17        id       : "insertsnippet",
18        tooltip  : this._lc("Insert Snippet"),
19        image    : editor.imgURL("ed_snippet.gif", "InsertSnippet"),
20        textMode : false,
21        action   : function(editor) {
22                        self.buttonPress(editor);
23                }
24        });
25        cfg.addToolbarElement("insertsnippet", "insertimage", -1);
26        this.snippets = null;
27        var backend = cfg.InsertSnippet.snippets + '?';
28       
29        if(cfg.InsertSnippet.backend_data != null)
30    {
31        for ( var i in cfg.InsertSnippet.backend_data )
32        {
33            backend += '&' + i + '=' + encodeURIComponent(cfg.InsertSnippet.backend_data[i]);
34        }
35    }
36    Xinha._getback(backend,function (getback) {eval(getback); self.snippets = snippets;});
37}
38
39InsertSnippet.prototype.onUpdateToolbar = function() {
40        if (!this.snippets){
41                this.editor._toolbarObjects.insertsnippet.state("enabled", false);
42        }
43        else InsertSnippet.prototype.onUpdateToolbar = null;
44}
45
46InsertSnippet._pluginInfo = {
47  name          : "InsertSnippet",
48  version       : "1.2",
49  developer     : "Raimund Meyer",
50  developer_url : "http://rheinauf.de",
51  c_owner       : "Raimund Meyer",
52  sponsor       : "",
53  sponsor_url   : "",
54  license       : "htmlArea"
55};
56
57InsertSnippet.prototype._lc = function(string) {
58    return Xinha._lc(string, 'InsertSnippet');
59};
60
61InsertSnippet.prototype.onGenerate = function() {
62  this.editor.addEditorStylesheet(_editor_url + 'plugins/InsertSnippet/InsertSnippet.css');
63};
64
65Xinha.Config.prototype.InsertSnippet =
66{
67  'snippets' : _editor_url+"plugins/InsertSnippet/demosnippets.js", // purely demo purposes, you should change this
68  'css' : ['../InsertSnippet.css'], //deprecated, CSS is now pulled from xinha_config
69  'showInsertVariable': false,
70  'backend_data' : null
71};
72       
73InsertSnippet.prototype.buttonPress = function(editor) {
74                var args = editor.config;
75                        args.snippets = this.snippets;
76                var self = this;
77                editor._popupDialog( "plugin://InsertSnippet/insertsnippet", function( param ) {
78       
79                if ( !param ) {
80              return false;
81            }
82                                           
83               
84                editor.focusEditor();
85                if (param['how'] == 'variable') {
86                        editor.insertHTML('{'+self.snippets[param["snippetnum"]].id+'}');
87                } else {
88                        editor.insertHTML(self.snippets[param["snippetnum"]].HTML);
89                }
90 
91    }, args);
92  };
Note: See TracBrowser for help on using the repository browser.