Skip to content

Instantly share code, notes, and snippets.

@gaurish
Created December 4, 2010 17:57
Show Gist options
  • Save gaurish/728356 to your computer and use it in GitHub Desktop.
Save gaurish/728356 to your computer and use it in GitHub Desktop.
(function() {
tinymce
.create(
"tinymce.plugins.wpGallery",
{
init : function(a, b) {
var c = this;
c.url = b;
c._createButtons();
a
.addCommand(
"WP_Gallery",
function() {
var h = a.selection.getNode(), f, e = tinymce.DOM
.getViewPort(), g = e.h - 80, d = (640 < e.w) ? 640
: e.w;
if (h.nodeName != "IMG") {
return
}
if (a.dom.getAttrib(h, "class")
.indexOf("wpGallery") == -1) {
return
}
f = tinymce.DOM.get("post_ID").value;
tb_show(
"",
tinymce.documentBaseURL
+ "/media-upload.php?post_id="
+ f
+ "&tab=gallery&TB_iframe=true&width="
+ d
+ "&height="
+ g);
tinymce.DOM.setStyle(
[ "TB_overlay",
"TB_window",
"TB_load" ],
"z-index", "999999")
});
a.onMouseDown
.add(function(d, f) {
if (f.target.nodeName == "IMG"
&& d.dom.hasClass(f.target,
"wpGallery")) {
d.plugins.wordpress._showButtons(
f.target, "wp_gallerybtns")
}
});
a.onBeforeSetContent.add(function(d, e) {
e.content = c._do_gallery(e.content)
});
a.onPostProcess.add(function(d, e) {
if (e.get) {
e.content = c._get_gallery(e.content)
}
})
},
_do_gallery : function(a) {
return a
.replace(
/\[gallery([^\]]*)\]/g,
function(d, c) {
return '<img src="'
+ tinymce.baseURL
+ '/plugins/wpgallery/img/t.gif" class="wpGallery mceItem" title="gallery'
+ tinymce.DOM.encode(c)
+ '" />'
})
},
_get_gallery : function(b) {
function a(c, d) {
d = new RegExp(d + '="([^"]+)"', "g").exec(c);
return d ? tinymce.DOM.decode(d[1]) : ""
}
return b
.replace(
/(?:<p[^>]*>)*(<img[^>]+>)(?:<\/p>)*/g,
function(e, d) {
var c = a(d, "class");
if (c.indexOf("wpGallery") != -1) {
return "<p>["
+ tinymce.trim(a(d,
"title"))
+ "]</p>"
}
return e
})
},
_createButtons : function() {
var b = this, a = tinyMCE.activeEditor, d = tinymce.DOM, e, c;
d.remove("wp_gallerybtns");
d.add(document.body, "div", {
id : "wp_gallerybtns",
style : "display:none;"
});
e = d.add("wp_gallerybtns", "img", {
src : b.url + "/img/edit.png",
id : "wp_editgallery",
width : "24",
height : "24",
title : a.getLang("wordpress.editgallery")
});
tinymce.dom.Event.add(e, "mousedown", function(g) {
var f = tinyMCE.activeEditor;
f.windowManager.bookmark = f.selection
.getBookmark("simple");
f.execCommand("WP_Gallery")
});
c = d.add("wp_gallerybtns", "img", {
src : b.url + "/img/delete.png",
id : "wp_delgallery",
width : "24",
height : "24",
title : a.getLang("wordpress.delgallery")
});
tinymce.dom.Event.add(c, "mousedown", function(h) {
var f = tinyMCE.activeEditor, g = f.selection
.getNode();
if (g.nodeName == "IMG"
&& f.dom.hasClass(g, "wpGallery")) {
f.dom.remove(g);
f.execCommand("mceRepaint");
return false
}
})
},
getInfo : function() {
return {
longname : "Gallery Settings",
author : "WordPress",
authorurl : "http://wordpress.org",
infourl : "",
version : "1.0"
}
}
});
tinymce.PluginManager.add("wpgallery", tinymce.plugins.wpGallery)
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment