Questo codice viene utilizzato per sostituire il modulo di caricamento dell'hosting di immagini su servimg, dal servizio di hosting di immagini di imgur.
Ciò comporta diversi vincoli:
- Non hai più la stabilità di servimg, ma quella di imgur (che fino ad ora sembra corretta),
- C'è un limite di base del numero massimo di alloggi al giorno, attualmente è intorno ai 1250 (vedi la pagina imgur con i suoi limiti),
- Non c'è modo di dare un url (per rehostare un'immagine), ma ad esempio su windows (e magari altrove) è sufficiente inserire l'url nella finestra di scelta dell'immagine da inviare
al contrario, usare questo trucco:
- può rendere più veloce l'invio di immagini,
- può anche inviare file in formato apng, pdf e xcf oltre a bmp, jpg, png, gif, tiff (i file tiff, bmp, pdf e xcf vengono convertiti in png e png più grandi di 756 kb automaticamente in jpg),
- permette prendendo l'url imgur e rimuovendo l'estensione (ad esempio .jpg, .png, .gif) di arrivare ad una pagina in cui vediamo il numero di visualizzazioni, statistiche oltre a diversi codici di differenti dimensioni del 'immagine
InstallazionePer utilizzare il trucco, è necessario inserire il seguente script in tutte le pagine (vedi gestione delle pagine javascript) e sostituire ## YOUR_CLIENT_ID ## in esso seguendo le istruzioni seguenti:
- Codice:
;window['FormData'] && $(function(){$(function(){ var imgur_client_id = '## YOUR_CLIENT_ID ##'; // sostituisci con quello creato da te come applicazione api all'indirizzo http://api.imgur.com/oauth2/addclient var current = 0, uploaded, xhrs, file_selector, button = $('.sceditor-button-servimg').off().click(function(){ if(current) return finish(); if(!file_selector) file_selector = $('<input type="file" multiple/ accept="image/*">').css({position:'absolute', top:-100}).appendTo('body').change(function (e) { var files = e.target.files, fd, len; uploaded = [], xhrs = []; for (var i = 0, len = files.length; i < len; i += 1) { if (files[i].type.indexOf('image/') && files[i].type !== 'application/pdf') continue; current++; fd = new FormData(); fd.append('image', files[i]); (function(xhr){ var num = i, xhr = jQuery.ajaxSettings.xhr(); xhrs.push(xhr); xhr.open('POST', 'https://api.imgur.com/3/image'); xhr.setRequestHeader('Authorization', 'Client-ID '+imgur_client_id); xhr.onreadystatechange = function () { if (xhr.readyState !== 4) return; current--; if (xhr.status === 200) { var res = JSON.parse(xhr.responseText); uploaded[num] = res.data.link; } if(!current) finish(); }; xhr.send(fd); })(); } if(current) button.css({background:'url(https://i.imgur.com/EMsOJtZ.gif) no-repeat'}); }); file_selector.click(); return false; }).children(); var finish = function(){ for(var i=0; i < xhrs.length; i++) { if(xhrs[i].readyState == 4) continue; xhrs[i].onreadystatechange = function(){}; xhrs[i].abort(); } for(var i=0; i < uploaded.length; i++) { if(uploaded[i] === undefined) continue; $('body').find('.sceditor-button-image').click().end().find('.sceditor-insertimage').find('#image').val(uploaded[i]).end().find('input.button').click(); $('#text_editor_textarea').sceditor('instance').insertText('\n'); } button.removeAttr('style'); current = 0; file_selector.wrap('<form>').closest('form').get(0).reset(); file_selector.unwrap(); return false; }; })});
Per poter sostituire ## YOUR_CLIENT_ID ##, devi andare a questo link per registrare una richiesta per utilizzare il servizio imgur. Se non hai ancora effettuato l'accesso a un account, dovrai prima farlo o registrarti, quindi dovrai tornare a http://api.imgur.com/oauth2/addclient.
Una volta effettuato l'accesso e sulla pagina "Registra un'applicazione", è necessario completare il modulo come segue:
Le due cose importanti da mettere sono:
- In "Tipo di autorizzazione" scegli "Utilizzo anonimo senza autorizzazione dell'utente",
- In "Authorization callback URL" inserisci l'indirizzo del tuo forum.
Una volta compilato e inviato il modulo, arriverete (e lo riceverete anche via e-mail) su una pagina che vi fornisce il vostro "ID cliente":
Questo è il codice che dovrà essere reinserito nello script sopra, quindi per questo esempio, dovrei modificare la riga dello script in questo modo:
- Codice:
var imgur_client_id = 'bb58c8c1e[caché]';
E il gioco è fatto, dovrebbe essere pronto per scrivere i tuoi messaggi e messaggi privati
|