[OldEditor] Tự động lưu trữ nội dung soạn thảo

  Bài viết hay nhất1
Một chức năng mới cho OldEditor, cho phép tự động lưu trữ nội dung soạn thảo để phục hồi khi cần thiết.

Tự động cập nhật nội dung mỗi phút

Chức năng:
  • Tự động cập nhật nội dung soạn thảo mỗi phút.
  • Lưu trữ tối đa 5 nội dung khác nhau.
  • Thao tác sử dụng đơn giản:
    • Rê chuột để xem trước.
    • Nhấn chọn để khôi phục.
    • Xóa lưu trữ khi gửi bài viết.



Sử dụng:

Javascript:
Code:
var zzbaivongSave = {
   viTime: function (a) {
      a = (new Date(a)).toString().split(/\s/);
      return a[2] + "/" + {
         Jan: "01",
         Feb: "02",
         Mar: "03",
         Apr: "04",
         May: "05",
         Jun: "06",
         Jul: "07",
         Aug: "08",
         Sep: "09",
         Oct: "10",
         Nov: "11",
         Dec: "12"
      }[a[1]] + "/" + a[3] + " " + a[4]
   },
   upSave: function () {
      zzbaivongSave.update = setInterval(function () {
         var a = $("#text_editor_textarea").val(),
            c = Object.keys(zzbaivongSave.zzbv_AS);
         if (null !== a && "" !== a && a != zzbaivongSave.curr && -1 == localStorage.getItem("zzbv_AS").indexOf(JSON.stringify(a))) {
            $("#autoSave").hasClass("have") ||
               $("#autoSave").addClass("have");
            var b = (new Date).getTime();
            zzbaivongSave.zzbv_AS[b] = a;
            5 == c.length && delete zzbaivongSave.zzbv_AS[c[0]];
            localStorage.setItem("zzbv_AS", JSON.stringify(zzbaivongSave.zzbv_AS));
            zzbaivongSave.creatList(zzbaivongSave.zzbv_AS);
            $("#helpbox").text("\u0110\u00e3 l\u01b0u tr\u1eef l\u00fac " + zzbaivongSave.viTime(b));
            zzbaivongSave.curr = a
         }
      }, 6E4)
   },
   creatList: function (a) {
      $("#zzbv_auto_save").empty();
      $.each(a, function (a, b) {
         $("#zzbv_auto_save").prepend('<p><a data-save="' + a + '" href="javascript:;">' +
            zzbaivongSave.viTime(eval(a)) + "</a></p>")
      });
      var c, b = $("#text_editor_textarea");
      $("#zzbv_auto_save a").hover(function () {
         clearInterval(zzbaivongSave.update);
         c = b.val();
         b.val(zzbaivongSave.zzbv_AS[$(this).data("save")])
      }, function () {
         b.val(c);
         zzbaivongSave.upSave()
      }).click(function () {
         b.val(zzbaivongSave.zzbv_AS[$(this).data("save")]);
         c = b.val()
      })
   },
   zzbv_AS: {},
   curr: "",
   update: function () {},
   start: function () {
      var a = localStorage.getItem("zzbv_AS");
      null !== a && "{}" != a ? (zzbaivongSave.zzbv_AS = JSON.parse(a), zzbaivongSave.creatList(zzbaivongSave.zzbv_AS),
         $("#autoSave").addClass("have")) : localStorage.setItem("zzbv_AS", "{}");
      zzbaivongSave.upSave();
      $('input[name="post"]').click(function () {
         localStorage.removeItem("zzbv_AS")
      })
   }
};
zzbaivongSave.start();

Template:
Code:
<div style="visibility:hidden" class="select" id="zzbv_auto_save">
        <p><em>Không có dữ liệu</em></p>
</div>
<button id="autoSave" class="button2" onclick="selectWysiwyg(this,'zzbv_auto_save')" type="button" title="{L_BBCODE_HELP}">
        <img width="16" height="16" src="http://illiweb.com/fa/empty.gif" alt="Lưu nháp" />
</button>

CSS:
Code:
#autoSave img{background:url(http://i56.servimg.com/u/f56/18/59/49/93/icon_s10.png) no-repeat scroll right top rgba(0,0,0,0)}
#autoSave.have img{background-position:left top}


Zzbaivong
  Bài viết hay nhất2
Hic đang định làm cái này thì ông anh đã làm trước
  Bài viết hay nhất3
K liên quan lắm nhưng viết cái user script để dùng luôn cho khung soạn thảo trong ACp dc k bác :D
  Bài viết hay nhất4
@ligerv wrote:K liên quan lắm nhưng viết cái user script để dùng luôn cho khung soạn thảo trong ACp dc k bác :D

Tất nhiên là được, chỉ cần đổi lại selector tương ứng.
Một số addon Autosave, cài là dùng luôn, viết làm chi mất công.

@baivong wrote:Đôi khi bạn đang soạn thảo một bài dài chẳng hạn nhưng chẳng may nhấn nhầm nút đóng, hoặc xui xẻo trình duyệt bị lỗi tự động tắt, mất mạng internet, cúp điện... thế là bao nhiêu tâm huyết tan thành mây khói, phải viết lại trong ức chế, mất đi định hướng ban đầu.
Một số khung soạn thảo mới có chức năng tự lưu nội dung, còn trong Forumotion thì có khá ít ứng dụng, chủ yếu là lưu vào web storage, tuy nhiên chỉ hoạt động trên các trình duyệt hỗ trợ HTML5. Lúc này, một tiện ích mở rộng của trình duyệt(add-on) sẽ là lựa chọn tối ưu hơn cả.

Lazarus: Form Recovery

+ Chrome: Cài đặt tại đây
Sau khi cài đặt, mỗi khi bạn soạn thảo, nội dung sẽ tự động được lưu lại, nếu chẳng may gặp vấn đề khi soạn thảo hoặc cần phục hồi nội dung cũ, bạn nhấn vào ký hiệu thập giá (hay chìa khóa gì đấy) ở góc trên bên phải khung soạn thảo và chọn nội dung cần phục hồi.

+ Firefox: Cài đặt tại đây
Sau khi cài đặt bạn có thể bật add-on trong context menu hoặc từ add-on bar.



Chrome - Form AutoSave: Cài đặt tại đây



Firefox - Textarea Cache: Cài đặt tại đây


Viết bởi Zzbaivong
  Bài viết hay nhất5
You cannot reply to topics in this forum