Вход Регистрация
Файл: js/editor/jscripts/tiny_mce/plugins/template/editor_plugin_src.js
Строк: 167
<?php
/**
 * editor_plugin_src.js
 *
 * Copyright 2009, Moxiecode Systems AB
 * Released under LGPL License.
 *
 * License: http://tinymce.moxiecode.com/license
 * Contributing: http://tinymce.moxiecode.com/contributing
 */

(function() {
    var 
each tinymce.each;

    
tinymce.create('tinymce.plugins.TemplatePlugin', {
        
init : function(edurl) {
            var 
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._insertTemplatet);

            
// Register buttons
            
ed.addButton('template', {title 'template.desc'cmd 'mceTemplate'});

            
ed.onPreProcess.add(function(edo) {
                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(eed.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(uiv) {
            var 
thised t.editorheldom ed.domsel ed.selection.getContent();

            
v.content;

            
each(t.editor.getParam('template_replace_values'), function(vk) {
                if (
typeof(v) != 'function')
                    
h.replace(new RegExp('\{\$' '\}''g'), v);
            });

            
el dom.create('div'nullh);

            
// Find template element within div
            
dom.select('.mceTmpl'el);
            if (
&& n.length 0) {
                
el dom.create('div'null);
                
el.appendChild(n[0].cloneNode(true));
            }

            function 
hasClass(nc) {
                return new 
RegExp('\b' '\b''g').test(n.className);
            };

            
each(dom.select('*'el), function(n) {
                
// Replace cdate
                
if (hasClass(ned.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(ned.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(ned.getParam('template_selected_content_classes''selcontent').replace(/s+/g'|')))
                    
n.innerHTML sel;
            });

            
t._replaceVals(el);

            
ed.execCommand('mceInsertContent'falseel.innerHTML);
            
ed.addVisual();
        },

        
_replaceVals : function(e) {
            var 
dom this.editor.domvl this.editor.getParam('template_replace_values');

            
each(dom.select('*'e), function(e) {
                
each(vl, function(vk) {
                    if (
dom.hasClass(ek)) {
                        if (
typeof(vl[k]) == 'function')
                            
vl[k](e);
                    }
                });
            });
        },

        
_getDateTime : function(dfmt) {
                if (!
fmt)
                    return 
"";

                function 
addZeros(valuelen) {
                    var 
i;

                    
value "" value;

                    if (
value.length len) {
                        for (
i=0i<(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()+12));
                
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""" this.editor.getLang("template_months_long").split(',')[d.getMonth()]);
                
fmt fmt.replace("%b""" this.editor.getLang("template_months_short").split(',')[d.getMonth()]);
                
fmt fmt.replace("%A""" this.editor.getLang("template_day_long").split(',')[d.getDay()]);
                
fmt fmt.replace("%a""" this.editor.getLang("template_day_short").split(',')[d.getDay()]);
                
fmt fmt.replace("%%""%");

                return 
fmt;
        }
    });

    
// Register plugin
    
tinymce.PluginManager.add('template'tinymce.plugins.TemplatePlugin);
})();
?>
Онлайн: 1
Реклама