Вход Регистрация
Файл: Kagao-v3.0/upload/tpl/tiny_mce/themes/advanced/js/image.js
Строк: 182
<?php
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() {
        var 
f = document.forms[0], ed = tinyMCEPopup.editor;

        
// Setup browse button
        
document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
        if (
isVisible('srcbrowser'))
            
document.getElementById('src').style.width = '180px';

        
e = ed.selection.getNode();

        
this.fillFileList('image_list', tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList'));

        if (
e.nodeName == 'IMG') {
            
f.src.value = ed.dom.getAttrib(e, 'src');
            
f.alt.value = ed.dom.getAttrib(e, 'alt');
            
f.border.value = this.getAttrib(e, 'border');
            
f.vspace.value = this.getAttrib(e, 'vspace');
            
f.hspace.value = this.getAttrib(e, 'hspace');
            
f.width.value = ed.dom.getAttrib(e, 'width');
            
f.height.value = ed.dom.getAttrib(e, 'height');
            
f.insert.value = ed.getLang('update');
            
this.styleVal = ed.dom.getAttrib(e, 'style');
            
selectByValue(f, 'image_list', f.src.value);
            
selectByValue(f, 'align', this.getAttrib(e, 'align'));
            
this.updateStyle();
        }
    },

    
fillFileList : function(id, l) {
        var 
dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;

        
l = typeof(l) === 'function' ? 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'));
    },

    
update : function() {
        var 
f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;

        
tinyMCEPopup.restoreSelection();

        if (
f.src.value === '') {
            if (
ed.selection.getNode().nodeName == 'IMG') {
                
ed.dom.remove(ed.selection.getNode());
                
ed.execCommand('mceRepaint');
            }

            
tinyMCEPopup.close();
            return;
        }

        if (!
ed.settings.inline_styles) {
            
args = tinymce.extend(args, {
                
vspace : nl.vspace.value,
                
hspace : nl.hspace.value,
                
border : nl.border.value,
                
align : getSelectValue(f, 'align')
            });
        } else
            
args.style = this.styleVal;

        
tinymce.extend(args, {
            
src : f.src.value.replace(/ /g, '%20'),
            
alt : f.alt.value,
            
width : f.width.value,
            
height : f.height.value
        
});

        
el = ed.selection.getNode();

        if (
el && el.nodeName == 'IMG') {
            
ed.dom.setAttribs(el, args);
            
tinyMCEPopup.editor.execCommand('mceRepaint');
            
tinyMCEPopup.editor.focus();
        } else {
            
tinymce.each(args, function(value, name) {
                if (
value === "") {
                    
delete args[name];
                }
            });

            
ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1});
            
ed.undoManager.add();
        }

        
tinyMCEPopup.close();
    },

    
updateStyle : function() {
        var 
dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0];

        if (
tinyMCEPopup.editor.settings.inline_styles) {
            
tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) {
                
st[key] = value;
            });

            
// Handle align
            
v = getSelectValue(f, 'align');
            if (
v) {
                if (
v == 'left' || v == 'right') {
                    
st['float'] = v;
                    
delete st['vertical-align'];
                } else {
                    
st['vertical-align'] = v;
                    
delete st['float'];
                }
            } else {
                
delete st['float'];
                
delete st['vertical-align'];
            }

            
// Handle border
            
v = f.border.value;
            if (
v || v == '0') {
                if (
v == '0')
                    
st['border'] = '0';
                else
                    
st['border'] = v + 'px solid black';
            } else
                
delete st['border'];

            
// Handle hspace
            
v = f.hspace.value;
            if (
v) {
                
delete st['margin'];
                
st['margin-left'] = v + 'px';
                
st['margin-right'] = v + 'px';
            } else {
                
delete st['margin-left'];
                
delete st['margin-right'];
            }

            
// Handle vspace
            
v = f.vspace.value;
            if (
v) {
                
delete st['margin'];
                
st['margin-top'] = v + 'px';
                
st['margin-bottom'] = v + 'px';
            } else {
                
delete st['margin-top'];
                
delete st['margin-bottom'];
            }

            
// Merge
            
st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img');
            
this.styleVal = dom.serializeStyle(st, 'img');
        }
    },

    
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 
'';
    },

    
resetImageData : function() {
        var 
f = document.forms[0];

        
f.width.value = f.height.value = "";    
    },

    
updateImageData : function() {
        var 
f = document.forms[0], t = ImageDialog;

        if (
f.width.value == "")
            
f.width.value = t.preloadImg.width;

        if (
f.height.value == "")
            
f.height.value = t.preloadImg.height;
    },

    
getImageData : function() {
        var 
f = document.forms[0];

        
this.preloadImg = new Image();
        
this.preloadImg.onload = this.updateImageData;
        
this.preloadImg.onerror = this.resetImageData;
        
this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);
    }
};

ImageDialog.preInit();
tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
?>
Онлайн: 2
Реклама