[TUTs] k.Mission v1.0.1

  Bài viết hay nhất1
Code: k.Missionv1.0.1
Written by: K. - KirigayaKazuto
Description: Mod được lấy ý tưởng từ Mod của vBulletin, nhằm cho các member lười post bài có hứng thú để post bài.
Phiên bản: Hiện giờ mới ứng dụng trên Invision, mình sẽ tiếp tục làm cho punBBphpBB3
Note:
Code chỉ post trên DEVs hoặc ChinhPhục, không sao chép bài viết đi nơi khác.

Những người đã tham gia phiên bản thử nghiệm: @NCat, @tanvking, @bucnong1

Show một vài hình ảnh của Mod:
Trước khi hoàn thành:
[You must be registered and logged in to see this image.]
Sau khi hoàn thành:
[You must be registered and logged in to see this image.]
Click để hiện nội dung:
[You must be registered and logged in to see this image.]
Bảng nhiệm vụ

[You must be registered and logged in to see this image.]
Khi mới đăng ký, chưa nhận làm nhiệm vụ hằng ngày

[You must be registered and logged in to see this image.]
Nhiệm vụ hôm nay là gì?

[You must be registered and logged in to see this image.]
Hôm nay bạn đã hoàn thành nhiệm vụ, chờ ngày mai nhé!
[/color]

Phiên bản hiện tại: Invision

--- Bài viết hướng dẫn chưa cụ thể ---

B1 APC > Display > Templates > Quản Lý Tổng Thể > overall_header
Chèn xuống dưới </body>
Code:
<div id="kMission_overlay">
  <div id="kMission">
    <h2>Nhiệm vụ hôm nay <img id="kMiss_Close" src="http://i.imgur.com/Ca5rZ51.png" title="Đóng" /></h2><br />
    <div id="kMission_row">
      <div class="missionrow" id="mission_post">
        Gửi <strong>3</strong> bài
        <div class="right"><strong></strong>/<strong></strong></div>
      </div>
      <div class="missionrow" id="mission_repu">
        Kiếm <strong>7</strong> vàng
        <div class="right"><strong></strong>/<strong></strong></div>
      </div>
    </div>
    <br />
    <div class="endmiss_wait endmiss" id="missioncheck"><strong>Hoàn thành!!</strong></div>
    <div id="kmdata"></div>
  </div>
</div>

B2 APC > Display > Pictures and Colors > Colors > CSS Stylesheet
Code:
/* k.Mission v1.0.1 by Kirigaya Kazuto - devs.forumvi.com */#kMission_overlay{position:fixed;z-index:999;left:0;top:0;width:100%;height:100%;display:none;background:rgba(0,0,0,0.7);}
#kMission{padding:10px;width:40%;background:#fff;box-shadow:0 0 0.5em #000;border:1px solid #aaa;margin:15% auto;min-width:500px;}
#kMission h2{font-size:15px;line-height:normal;font-weight:bold;padding:0 5px;color:#699;border-bottom:2px solid;}
#kMission .missionrow{padding:10px 2px;border-bottom:1px solid #aaa;font-size:13px;color:#ff0000;}
#kMission .endmiss{width:40%;text-align:center;margin:0 auto;font-size:14px;border:1px solid;padding:5px 5px 5px 30px;}
#kMission .endmiss_wait{color:#333;background:url(http://i.imgur.com/zEYqdjo.png) no-repeat left 15px center #ddd;}
#kMission .endmiss_ok{cursor:pointer;color:#363;background:url(http://i.imgur.com/8Fo4pLO.png) no-repeat left 15px center #DFC;}
#kMission .endmiss_give{cursor:pointer;color:#F90;background:url(http://i.imgur.com/D7uCD7k.png) no-repeat left 15px center #FDA;}
#kMission_new{position:fixed;top:100px;left:15px;cursor:pointer;}
#kMission img#kMiss_Close{cursor:pointer;float:right;}

B3 Tạo 1 profield mới như sau:
Spoiler:
[You must be registered and logged in to see this image.]
Xem và ghi nhớ ID của field này.
Vd: Nguyên ID của field là profile_field_2_2
2 là ID của field

B4 Tạo 1 subforum mới và chỉnh số tiền nhận được như sau:
Spoiler:
[You must be registered and logged in to see this image.]

[You must be registered and logged in to see this image.]

[You must be registered and logged in to see this image.]

B4,5 Tạo 1 topic mới trong forum vừa tạo, ghi nhớ ID topic.
Vd: Link topic này là: [You must be registered and logged in to see this link.]
Thì 628 là ID topic.

B5 APC > Modules > HTML & JAVASCRIPT > Javascript codes management > Tạo 1 js mới
  • Title * : k.Mission
  • Placement : In all the pages
  • Javascript Code * :
    Code:
    /* kMission by K. (KirigayaKazuto) - devs.forumvi.com */
    function viTime(time) {
      var a = (new Date(time)).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]
    }
    $(function () {
      var endmiss_f = '0'; // ID topic nhận nhiệm vụ
      var today_post = '10'; // Số post nhiệm vụ hôm nay
      var today_repu = '4'; // Số thanks phải nhận để hoàn thành
      $('#kmdata').load('/u' + _userdata.user_id + ' #field_id2 .field_uneditable', function () {
        $(this).hide();
        var a = $('#kmdata .field_uneditable').text(); // Lấy data
        var b = a.split('|'); // Phân chia data
        var c = _userdata.user_posts; // Lấy số post
        var d = _userdata.point_reputation; // Lấy số repu
        var e = Math.round(c - b[0]); // Hôm nay đã làm bao nhiêu
        var f = Math.round(d - b[1]); // Hôm nay đã làm bao nhiêu
        $('#kMission').each(function () {
          $(this).find('#mission_post .right strong:first').append(e);
          $(this).find('#mission_repu .right strong:first').append(f);
          $(this).find('#mission_post .right strong:last').append(today_post);
          $(this).find('#mission_repu .right strong:last').append(today_repu);
          // Check nhiệm vụ
          if (e >= today_post) {
            $('#mission_post').css('color', '#363').append('<img src="http://i.imgur.com/8Fo4pLO.png" class="missionok" />');
          }
          if (f >= today_repu) {
            $('#mission_point').css('color', '#363').append('<img src="http://i.imgur.com/8Fo4pLO.png" class="missionok" />');
          }
          // Kiểm tra tiến độ
          var missok = $('#kMission').find('.missionok').length;
          // Xong nhiệm vụ
          if (missok == 2) {
            $('#missioncheck').removeClass('endmiss_wait').addClass('endmiss_ok');
          }
          // Xong/Chưa xong
          var kmissimg_new = 'http://i.imgur.com/d7W6Sti.gif',
               kmissimg = 'http://i.imgur.com/oi3s3Cj.png';
          if (_userdata.session_logged_in = "1") {
            $('#K-masthead').after('<div id="kMission_new"><img src="' + kmissimg_new + '" /></div>');
          }
          // Thời gian
          var nowtime = $('.current-time').text(), // Time hiện tại
            nowtimes = nowtime.split(': '), // Split time
            nowtimevi = viTime(nowtimes[1]), // Việt hóa time (by zzBaivong)
            nowtimevi0 = b[2], //Time đã làm của ngày hôm qua
            misstimes1 = nowtimevi.split(' '); // Split Time
          // Hôm nay đã xong
          if (misstimes1[0] == nowtimevi0) {
            $(this).html('<h2>Bạn đã hoàn thành nhiệm vụ<img id="kMiss_Close" src="http://i.imgur.com/Ca5rZ51.png" title="Đóng" /></h2><br /><br /><center><strong>Bạn đã hoàn thành nhiệm vụ hôm nay!<br />Hãy ghé lại vào ngày mai nhé!!</strong></center><br /><br />');
            $('#kMission_new').find('img').attr('src', kmissimg);
          }
          // Chưa có nhiệm vụ
          if (a == 0) {
            $('#missioncheck').removeClass('endmiss_wait');
            $('#missioncheck').addClass('endmiss_give');
            $('#missioncheck').find('strong').replaceWith('<strong>Nhận nhiệm vụ</strong>');
            $(this).find('h2').html('Bạn chưa nhận nhiệm vụ <img id="kMiss_Close" src="http://i.imgur.com/Ca5rZ51.png" title="Đóng" />');
            $('#kMission_row').html('<br /><br /><center><strong>Bạn chưa bắt đầu nhận nhiệm vụ!<br />Hãy nhận nhiệm vụ để có phần thưởng mỗi ngày nhé!</strong></center><br /><br />');
          }
          // Đóng / Mở nhiệm vụ
          $('#kMission_new').click(function () {
            $('body').addClass('kOvH');
            $('#kMission_overlay').show();
          });
          $('#kMiss_Close').click(function () {
            $('body').removeClass('kOvH');
            $('#kMission_overlay').hide();
          });
          // Nhận tiền nhiệm vụ
          $('#missioncheck.endmiss_give').click(function () {
            $.post("/ajax_profile.forum?jsoncallback=?", {
              id: "2",
              user: _userdata.user_id,
              active: "1",
              content: '[["profile_field_2_2", "' + c + '|' + d + '"]]',
              tid: $("#qjump input[name='tid']").val()
            }, {}, "json").done(function (data) {
              alert('Đã nhận');
            }).fail(function () {
              alert('Lỗi! Liên hệ với BQT để biết thêm thông tin hoặc báo lỗi!');
            }).always(function () {
              window.location.href = window.location;
            });
          });
          $('#missioncheck.endmiss_ok').click(function () {
            $.post("/ajax_profile.forum?jsoncallback=?", {
              id: "2", // ID của field
              user: _userdata.user_id,
              active: "1",
              content: '[["profile_field_2_2", "' + c + '|' + d + '|' + misstimes1[0] + '"]]', // ID của field
              tid: $("#qjump input[name='tid']").val()
            }, {}, "json").done(function (data) {
              alert('Bạn đã hoàn thành nhiệm vụ hôm nay!');
              alert('Đã nhận 500Gold, hãy quay lại vào ngày mai nhé!!');
            }).fail(function () {
              alert('Lỗi! Liên hệ với BQT để biết thêm thông tin hoặc báo lỗi!');
            }).always(function () {
              window.location.href = window.location;
            });
            $.post("/post", {
              mode: "reply",
              t: endmiss_f,
              message: "[Đã hoàn thành nhiệm vụ ngày]",
              post: "Send"
            });
          });
        });
      });
    });


Lưu ý Thông số:
Code:
  var endmiss_f = '0'; // ID topic nhận nhiệm vụ
  var today_post = '10'; // Số post nhiệm vụ hôm nay
  var today_repu = '4'; // Số thanks phải nhận để hoàn thành
Code:
        $.post("/ajax_profile.forum?jsoncallback=?", {
          id: "2", // ID của field
          user: _userdata.user_id,
          active: "1",
          content: '[["profile_field_2_2", "' + c + '|' + d + '"]]', // ID của field
          tid: $("#qjump input[name='tid']").val()
        }

Sửa 0 trong endmiss_f = '0' thành ID topic vừa tạo
10 là số post phải hoàn thành hôm nay
4 là số thanks phải nhận hôm nay.
Sửa 2 trong dòng:
Code:
          id: "2", // ID của field
thành ID field của bạn.

Sửa profile_field_2_2 trong đoạn
Code:
          content: '[["profile_field_2_2", "' + c + '|' + d + '"]]', // ID của field
thành nguyên id của field

© K. - devs.forumvi.com
  Bài viết hay nhất2
Like cho thớt, hóng hàng punbb, hàng hot hot hot quá :D

khoái mấy cái mod kiểu này, hehe
The author of this message was banned from the forum - See the message
  Bài viết hay nhất4
hoạt động tốt :)) nhưng phải out ra login lại nó mới cập nhật - tét trên trình duyệt Cốc Cốc -Thứ 4-Ngày 4-Tháng 6 -Năm 2014 - 14:53:00
  Bài viết hay nhất5
:v like cho thớt ghiền mấy mod như này
  Bài viết hay nhất6
Đã liked!~ :v

Đáng lẽ ko like đó nhưng mà thớt thêm dòng

mình sẽ tiếp tục làm cho punBB và phpBB3

cho nên tớ like khuyến khích thớt làm =))
  Bài viết hay nhất7
hoàn thành nhiệm vụ có thưởng gì không?
  Bài viết hay nhất8
méo được 500 Points :v
  Bài viết hay nhất9
tanvking cũng dc 500 Points nè mod của anh K hoạt động rất tốt đáng để like đó :D
  Bài viết hay nhất10
[You must be registered and logged in to see this link.]
[You must be registered and logged in to see this link.] wrote:hoàn thành nhiệm vụ có thưởng gì không?

Được Point anh ạ :v
  Bài viết hay nhất11
mình thích kiểu mod này :v
  Bài viết hay nhất12
Mà cái này số Points được nhận là cố định hay mỗi ngày 1 giá trị khác???
  Bài viết hay nhất13
[You must be registered and logged in to see this link.]
[You must be registered and logged in to see this link.] wrote:Mà cái này số Points được nhận là cố định hay mỗi ngày 1 giá trị khác???
Cố định bạn nhé
  Bài viết hay nhất14
Hóng quá đi
  Bài viết hay nhất15
Đã update mod v1.0.1 ;)
Vì sửa gấp quá nên sẽ còn có lỗi.
Các bạn góp ý lỗi để hoàn thiện ver sau nhé ;)
  Bài viết hay nhất16
Mong nó hoạt động cho Punbb :)
  Bài viết hay nhất17
tks bác Kazuto nha :v có 1 sự trùng hợp là ở forum của em, em lấy tên là Kirito còn bác là Kazuto :D đều là Fan S.A.O cả :3
  Bài viết hay nhất18
Bạn đợi v2.0.4 tiếp theo nhé :v Mình sẽ nâng cấp cho all ver ;) (Tất nhiên là sau khi thi vào cấp 3 xong)
v1.0.1 này mình cũng quên mất không ẩn profield data.


[You must be registered and logged in to see this link.]
[You must be registered and logged in to see this link.] wrote:tks bác Kazuto nha :v có 1 sự trùng hợp là ở forum của em, em lấy tên là Kirito còn bác là Kazuto :D đều là Fan S.A.O cả :3
Vậy bạn có phải là Fan của A-M không :3
Mình đang hóng ss2 của S.A.O đây. Thi xong cấp 3 là có ngay ss2 để xem *me gusta*
  Bài viết hay nhất19
5/7 chiếu ss2 :D
  Bài viết hay nhất20
Tình hình là méo thử bên forum test:
- Nhiệm vụ giống nhau -_-
- Lỗi tiền bên forum test
  Bài viết hay nhất21
Ai cho cái demo cụ thể vs. test thử bên forum test mà không hiện @@~
The author of this message was banned from the forum - See the message
  Bài viết hay nhất23
[You must be registered and logged in to see this link.]
[You must be registered and logged in to see this link.] wrote:Tình hình là méo thử bên forum test:
- Nhiệm vụ giống nhau -_-
- Lỗi tiền bên forum test

Xin lỗi :v Vì ta chuyển từ point nhận được sang thành repupation nhận được *troll*
Tiếp tục nhận góp ý để fix :3
  Bài viết hay nhất24
Hóng Punbb :)
  Bài viết hay nhất25
Sao không có punBB nhở ??? Bác làm cho em 1 cái nhá
  Bài viết hay nhất26
You cannot reply to topics in this forum