Skrypt na autozapis postów dla Forumotion 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.
Moje fora
San Jose, Shadow York, Caledonia i tworzę M.A.R.S!

 Noritoshi#2699
 6016244

#46309 11 mar 2019, 22:11

Skrypt na autozapis postów dla Forumotion

Skrypt automatycznie zapisujący treść postu w danych przeglądarki, dostosowany do forów hostowanych na Forumotion. Aby skorzystać ze skryptu, należy go dodać w Panel Administratora -> Modules -> HTML & JAVASCRIPT -> Javascript codes management. Klikamy wnew javascript, zaznaczamy opcję "In all the pages" i wklejamy skrypt w pole Javascript Code. Zapisujemy.

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:

Kod: Zaznacz cały

<script type="text/javascript">
/* AUTOZAPISYWANIE POSTU DLA FORUMOTION 1.0 */
/*************************************/
$(document).ready(function() {
  $(document).one('mouseover', '.sceditor-container > textarea', function(){
      initilize($(this));
  });

  function initilize(editor) {
      let forum_name = 'nazwa-forum';
      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 {
              topic = 'PW';
          }
          var form = $('form[name=post]');
          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="button2" name="btn-autosave-load" value="Załaduj post">'))
                 );
              }
          }
          //zapisywanie tresci do storage
          window.setInterval(function() {
              console.log(editor.val());
              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 ]