Skrypt na autozapis postów dla Jcink v 1.0

Awatar użytkownika
O mnie
Jestem częścią układu, jedną z gwiazd w galaktyce. Zgubiłam duszę i mam dwie pomocne dłonie. W lewej ręce trzymam pióro tworzenia, a w prawej nożyczki niszczenia.
Pomógł(a) : 7 razy

 Noritoshi#2699
 6016244

#46253 06 mar 2019, 16:28

Skrypt na autozapis postów dla Jcink

Skrypt automatycznie zapisujący treść postu w danych przeglądarki, dostosowany do forów hostowanych na Jcink. Aby skorzystać ze skryptu, należy go dodać w Panel Administratora -> Skins & Templates -> Board Wrappers -> twój aktualny styl -> Edit.

Skrypt dodaje nad okienkiem postu (w PW, nowego tematu, odpowiedzi i szybkiej odpowiedzi) przycisk pozwalający na wstawienie w okno ostatniej zapisanej treści. Skrypt zapisuje treść postu osobno dla każdego subforum i tematu. Skrypt nie działa w trybie prywatnym przeglądarki.
Obrazek

Skrypt obecnie zainstalowany jest na San Jose.

Skrypt:

Kod: Zaznacz cały

<script type="text/javascript">
/* AUTOZAPISYWANIE POSTU DLA JCINK 1.0 */
/*************************************/
let forum_name = 'nazwa-forum';
var editor = $('textarea.textinput[name="Post"]');
var topic = '';
//znajdz textarea
if ( editor.length ) {
           if ( $( "input[name=t]" ).length ) {
        topic = 't-' + $('input[name=t]').val();
    } else if ( $( "input[name=f]" ).length ) {
        topic = 'f-' + $('input[name=f]').val();
    } else if ( $( "input[name=act]" ).length ) {
        topic = 'PW';
    }
    var form = $('form[name=REPLIER]');
    var storePostName = forum_name + '-Post-' + topic;
    var localPost = localStorage.getItem(storePostName);

    //odczytanie ostatniej tresci ze storage
    if (localPost) {
        var postToStore = editor.val();
        if ( (postToStore === "undefined") || (postToStore === null) || (postToStore === "") ) {
           editor.before($('<div style="color: #61A269">')
              .text('W pamięci przeglądarki zachowano ostatni post. ')
              .append($('<input type="button" id="btn-autosave-load" class="forminput" name="btn-autosave-load" value="załaduj post.">'))
           );
        }
    }
    //zapisywanie tresci do storage
    window.setInterval(function() {
        var postToStore = editor.val();
        if ((postToStore !== "undefined") && (postToStore !== null) && (postToStore !== "")) {
            localStorage.setItem(storePostName, postToStore);
        }
    }, 5000);
    //odczyanie z pamieci
    document.addEventListener('click',function(e) {
      if (e.target && e.target.id == 'btn-autosave-load') {
        editor.val(localPost);
      }
    });
}

</script>
PS: Polecam zmienić w linii: "let forum_name = 'nazwa-forum';" wyrażenie nazwa-forum na nazwę własnego forum
x x x x

ODPOWIEDZ ]