MyBB Community Forums

Full Version: [1.8] How add imgur upload button
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Add imgur upload button in editor


1 - Get imgur api key: https://imgur.com/register/api_anon (if you already has key, skip this step)

2 - Edit root/jscripts/sceditor/editor_themes/mybb.css

2.1 - Add after all

.sceditor-button-imgur div {

  background-image:url(imgur.png);

}
.sceditor-button-imgur div.imgurup {

  background-image:url(spinner.gif) !important;

}

2.2 - Repeat step 2.1 with all other themes of sceditor.

3 - Copy imgur.png [attachment=31915] and spinner.gif [attachment=31916] in root/jscripts/sceditor/editor_themes/

4 - Edit root/jscripts/bbcodes_sceditor.js (this used to add new command in sceditor)

4.1 - Find

tooltip: 'Insert a video'
 });

4.2 - Add after

/*********************
     * Add imgur command *
     *********************/
 $.sceditor.command.set("imgur", {
 _imgur: function () {
 document.querySelector('textarea').insertAdjacentHTML( 'afterEnd', '<input class="imgur" style="visibility:hidden;position:absolute;top:0;" type="file" onchange="upload(this.files[0])" accept="image/*">' );
 document.querySelector('input.imgur').click();
 },
 exec: function () 
 {
 $.sceditor.command.get('imgur')._imgur();
 },
 txtExec: function() 
 {
 $.sceditor.command.get('imgur')._imgur();
 },
 tooltip: 'Upload to Imgur'
 });

4.3 - Add after all

/*****************************
 * Add imgur upload function *
 *****************************/
 function upload(file) {

 /* Is the file an image? */
 if (!file || !file.type.match(/image.*/)) return;
 
 /* It is! */
 document.body.className = "uploading";
 var d = document.querySelector(".sceditor-button-imgur div");
 d.className = d.className + " imgurup";
 
 /* Lets build a FormData object*/
 var fd = new FormData(); // I wrote about it: https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/
 fd.append("image", file); // Append the file
 var xhr = new XMLHttpRequest(); // Create the XHR (Cross-Domain XHR FTW!!!) Thank you sooooo much imgur.com
 xhr.open("POST", "https://api.imgur.com/3/image.json"); // Boooom!
 xhr.onload = function() {
 var code = '[img]' + JSON.parse(xhr.responseText).data.link + '[/img]';
 $('#message, #signature, textarea[name*="value"]').data('sceditor').insert(code);
 var d = document.querySelector(".sceditor-button-imgur div.imgurup");
 d.className = d.className - " imgurup";
 document.querySelector('input.imgur').remove();
 }
 // Ok, I don't handle the errors. An exercice for the reader.
 xhr.setRequestHeader('Authorization', 'Client-ID your-key');
 /* And now, we send the formdata */
 xhr.send(fd);
 };

4.4 - Replace your-key in 4.3 with key obtained in 1

5 - Go to codebuttons template in ACP

5.1 - Find

{$basic2}image,{$email}

5.2 - Replace

{$basic2}image,imgur,{$email}


If you use Quick Advanced Editor (v 4.0.0 or newest) or Quick Advanced Editor Plus (v 0.6 or newest)

Repeat step 5.1 and 5.2 in Template Sets » Global Templates » codebutquick

Preview:

http://www.dailymotion.com/video/x212n03_tut-demo_tech
Thanks
03/09 - Tutorial updated to final version of Mybb 1.8
Thank you Big Grin
Good job (as always), martec! Will it be also available as a plugin?
(2014-09-04, 06:36 PM)Adriano Wrote: [ -> ]Good job (as always), martec! Will it be also available as a plugin?

unfortunately not.
this is better as a tutorial
http://freetexthost.com/rsw5givztt

I wanted to send this message but I received a warning:
Quote:The message you entered contained 2 videos, while only 1 videos per message are allowed. Please lower the video count in your message to meet the limit.
Hi,

Thank you,but There is a problem ?

How do fix ?

Screenshot :
[Image: ux4cMBt.png]
Hm, didn't seem to work with my custom theme.
how about others button bro?? like spoiler, hide, mentions etc...
Pages: 1 2 3 4 5