Get Over
[Share][Mod] Giao dịch gửi tiền nhanh
on 28/07/2013Get Over
#:-S thấy có vài người thích cái chuyển tiền hướng là khi điền thông tin thì sẽ gửi tin nhắn lên tường của BQT và chờ BQT xét duyệt . Nhưng cách này thì cũng tốn thời gian cho BQT để vào ACP rồi chỉnh ... Giờ mình xin được viết mod Giao dịch gửi tiền nhanh
Demo :
Giao diện mod :
Nếu không phải người kiểm giao dịch sẽ không thể vào :
Đối với người kiểm duyệt giao dịch thì sẽ có chức năng thêm ở wall kiểm duyệt
Sau khi click hệ thống sẽ tự động kiểm duyệt cộng tiền cho người được nhận, trừ tiền cho người gửi với số tiền tương ứng
Chức năng nổi bật :
- Giao diện gửi tiền
- Gửi thông báo lên wall lưu trữ giao dịch
- Chưc năng chấp nhận giao dịch nhanh không phải vào ACP làm gì cho tốn công
- Tự động cộng, trừ tiền cho người tương ứng
- Tự động xóa giao dịch thành công không chuyển trang
Chú ý : giao dịch sẽ chuyển lên tường của tài khoản WallPoints (bước 1) nên chỉ có ai được ủy quyền mới có thể kiểm duyệt đơn
Hướng dẫn : Mình mới làm Punbb các phiên bản khác đợi nhé
Bước 1 : Tạo 1 tài khoản mới để lưu trữ các giao dịch . Đặt tên là WallPoints và bạn hãy nhớ số id của tài khoản đó VD : /u4 , /u5 ,.. thì 4 ,5 là id của tài khoản
Bước 2 : Truy cập vào tài khoản đó và tìm đến đường dẫn sau : /profile?mode=editprofile&page_profil=preferences
Chỉnh :
Allow visitor messages on my profile : Tất cả thành viên
Lưu lại
Bước 3 : Chỉnh trong ACP :
ACP --> QLTT --> Forum --> Cấu hình diễn đàn --> Thiết Lập Tổng Quát Diễn Đàn :
Mô Tả * : <span id=useraccess style=display:none>{USER-LINK}</span>
(Chú ý bỏ - trong thẻ { } đi nhé vì mình đưa lên đây là bị lỗi nên phải đưa theo kiểu đó)
ACP --> QLTT --> Forum --> Security --> Security Administration
Unauthorize unofficial forms to post messages and private messages on the forum : Không
Lưu lại
Bước 4 : ACP --> Display --> CSS :
- Code:
/*************Point send system********/
a[href*="/u3wall?d"] {
font-size:0px;}
a[href*="/u3wall?d"]:after {
content:"Chấp nhận giao dịch";
font-size : 12px;
}
#pointopen {
text-align :center;
position: fixed;
bottom: 10px;
left: 10px;
min-height: 20px;
width: 120px ;
z-index: 999;
-moz-box-shadow: 0 2px 2px rgba(0,0,0,0.1);
-webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.1);
background: #000000;
font-weight: bold;
color:white
}
.pointuser, .erroraccess {
-moz-box-shadow: 0 2px 2px rgba(0,0,0,0.1);
-webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.1);
background: #fff;
border: 1.5px solid #D5D5D5;
box-shadow: 0 2px 2px rgba(0,0,0,0.1);
padding: 12px ;
border-radius: 3px;
margin-top: 100px;
margin-left: 600;
width : auto;
color:black;
position: fixed;
}
.notepass {
background-position: 10px center;
border-radius: 4px 4px 4px;
background-color: #d1e4f3;
background-image: url("http://cdn1.iconfinder.com/data/icons/musthave/24/Information.png");
background-repeat: no-repeat;
color: #073561;
border: 1px solid #175fa3;
margin: 10px 0px;
padding: 15px 10px 15px 50px;
}
.pointuser .button {
background-image:url(http://2img.net/i/fa/admin/icon_ok.gif);
background-repeat:no-repeat;
color: #6C0;
border: 1px solid #8FD534;
margin: 2px 0 2px 20px;
padding:0 5px 0 16px;
cursor:pointer;
background-repeat:no-repeat;
direction:ltr;
margin-left: 170;
}
.pointuser .button:hover {
border-color:#66CC00;
background-color: #eeeeee;
background-image:url(http://2img.net/i/fa/admin/icon_ok.gif);
background-repeat:no-repeat;
text-decoration: none;
}
.notifi {color : green; font-weight:bold }
/*************Point send system********/
Tìm trong code [href*="/u3wall?d"] sửa 3 thành id bạn của WallPoints ở bước 1
Bước 5 : Thêm HTML : ACP --> Display --> Templates --> Overall_header thêm đoạn code sau dưới cùng
- Code:
<div id ="panelpoint">
<div id="pointopen" style ="cursor:pointer;" onclick="if($('.pointuser').css('display')=='none'){$('.pointuser').show()}else{$('.pointuser').hide()}">Chuyển points</div>
<div class="pointuser" style ="display:none;">
<div class ="notepass">Hãy nhập tên người bạn muốn chuyển tiền và số tiền phía dưới. Giao dịch sẽ được gửi tới BQT</div>
<label for="usersend" style="text-align:left; color : red; font-weight:bold;margin-left: 2px;">User : </label>
<input type="text" id="usersend" placeholder="Tên người nhận..."/>
<br>
<br>
<label for="pointsend" style="text-align:left; color : blue; font-weight:bold">Point : </label>
<input type="text" id="pointsend" placeholder="Tiền muốn gửi..."/>
<br>
<br>
<input type="submit" name="pointsubmit" style="float:left; " value="Chấp nhận" class="button"/>
<div class="notifi">
<span class="loadajax" style="display:none;margin-left:80px;">
<img src ="http://i35.servimg.com/u/f35/15/64/85/86/ajax-l10.gif" /></span></div>
</div>
</div>
Bước 6 : ACP --> Modules --> Javascript codes management --> Tạo 1 file javascript mới :
Title * : Points System
Placement : In all the page
Code :
- Code:
var copyrightVi = "Points System được viết bởi doannamthai - diendan.chinhphuc.info . Vui lòng không xóa dòng bản quyền này" ;
var copyrightEn = "Points System was written by doannamthai - diendan.chinhphuc.info . Please don't remove this copyright";
var id = 3; //ID của tài khoản chứa giao dịch
var wallp = "WallPoints"; // Tên tài khoản chứ giao dịch
var user_access = "Admin" ; //Tên người có thể truy cập vào wall giao dịch
$(function(){
$(".pointuser .button").click(function(){
var d = $("#usersend").val();
var e = Number($("#pointsend").val());
if(e < 1 || isNaN(e) == true){
alert("Bạn phải nhập số tiền (Số tiền > 0 ) vào phía dưới");
}
else if(d.length < 1) {
alert("Vui lòng nhập tên người nhận ở phía dưới");
}
else{
$.get("/profile?mode=viewprofile&u="+$("#useraccess").text() , function(a) {
var pt = Number($(a).find("#field_id-13 .field_uneditable").text());
if(pt < e) {
alert("Bạn không đủ points trong tài khoản. Hiện giờ bạn có : "+pt+" points")
}
else{
$.post("/privmsg", {
subject: "Giao dịch chuyển tiền",
message: "Tôi muốn chuyển [b]"+e+"[/b] points cho [b]"+d+"[/b]" ,
username : wallp,
u : id,
mode: "post_profile",
folder: "profile",
"auth[]": $("input[name='auth[]']:last").val(),
post: "Send"
}, function(z){
if($(z).find(".message a[href*='wall']").length){
alert("Gửi giao dịch thành công . Hãy chờ BQT kiểm duyệt giao dịch của bạn");
}
else{
alert("Gửi giao dịch thất bại. Vui lòng thử lại");
}
});
}
});
}
});
});
$(function(){
prehref = RegExp("u"+id+"wall");
if ($("#useraccess").text() != user_access){
prehref.test(window.location.pathname.substr(1))&&($("body").html('<style>body {z-index: 9999; opacity: 1; background-color: #a1a1a1;" }</style><div class="passforum"><div class ="notepass">Xin lỗi bạn! Bạn không được phép truy cập vào trang này</div></div>'));
}
var acplink = $('a[href*="/admin"]').attr("href").slice($('a[href*="/admin"]').attr("href").lastIndexOf("=")+1);
$('a[href*="/u'+id+'wall?d"]').click(function(v){
v.preventDefault();
$(this).after('<div class="loadpoint">Hệ thống đang gửi dữ liệu vui lòng chờ ..</div>');
var a = $(this).parents(".message-block").find(".message-text strong:last").text();
var b = Number($(this).parents(".message-block").find(".message-text strong:first").text());
var f = $(this).parents(".message-block").find("a[href*='/u']:first").text();
var h = $(this).attr("href");
var g = $(this);
$.get("/memberlist?username="+a ,function(c){
var n = $(c).find('a[href*="/u"]').attr("href").slice($(c).find('a[href*="/u"]').attr("href").indexOf("u")+1);
$.get("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+a+"&submit_search_user=ok" , function(q) {
var pointdef = Number($(q).find("form:first td:last input").attr("value"));
$.post("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+a+"&submit_search_user=ok&points_new_value["+n+"]="+(pointdef + b)+"&submit=Chấp nhận", function(a) {
if($(a).find(".successbox").length){
$.get(h , function (j){
var delid = $(j).find('input[name="tid"]').val();
$.post(h , {
"tid" : delid ,
"confirm" : "Có"
});
$(g).parents("li").slideUp();
});
alert("Đã gửi giao dịch thành công");
$(".loadpoint").remove();
}
else {
alert("Lỗi khi gửi giao dịch");
$(".loadpoint").remove();
}
});
});
});
$.get("/memberlist?username="+f ,function(c){
var n = $(c).find('a[href*="/u"]').attr("href").slice($(c).find('a[href*="/u"]').attr("href").indexOf("u")+1);
$.get("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+f+"&submit_search_user=ok" , function(q) {
var pointdef = Number($(q).find("form:first td:last input").attr("value"));
$.post("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+f+"&submit_search_user=ok&points_new_value["+n+"]="+(pointdef - b)+"&submit=Chấp nhận");
});
});
});
});
Chỉnh code :
Tìm
var id = 3; thay con số 3 thành id của WallPoints ở bước 1
var user_access = "Admin" ; thay Admin thành tên tài khoản là người duyệt giao dịch (Giữ nguyên dấu " ")
(Chú ý người này phải là admin phụ hoặc chính , miễn là có thể truy cập vào được ACP )
Sau đó save lại
Bước 7 : ACP --> Quản lý người dùng & Quản lý nhóm --> Profiles --> Points*
Click vào của hàng Points*
Display : Tích vào Lý lịch và Messages
----------------------------------------------------------------------------------------
Chú ý : với nhưng ai không làm được thì làm như sau
Các bạn sẽ bỏ Bước 3 phần 1 đi tức là bỏ
ACP --> QLTT --> Forum --> Cấu hình diễn đàn --> Thiết Lập Tổng Quát Diễn Đàn :
Mô Tả * : <span id=useraccess style=display:none>{USER-LINK}</span>
(Chú ý bỏ - trong thẻ { } đi nhé vì mình đưa lên đây là bị lỗi nên phải đưa theo kiểu đó)
Và thay Javascript ở bước 6 thành :
- Code:
var copyrightVi = "Points System được viết bởi doannamthai - diendan.chinhphuc.info . Vui lòng không xóa dòng bản quyền này" ;
var copyrightEn = "Points System was written by doannamthai - diendan.chinhphuc.info . Please don't remove this copyright";
var id = 3; //ID của tài khoản chứa giao dịch
var wallp = "WallPoints"; // Tên tài khoản chứ giao dịch
$(function(){
$(".pointuser .button").click(function(){
$("#pointsend").after('<div class="loadpoint"><br>Hệ thống đang gửi giao dịch lòng chờ ..</div>');
var d = $("#usersend").val();
var e = Number($("#pointsend").val());
if(e < 1 || isNaN(e) == true){
alert("Bạn phải nhập số tiền (Số tiền > 0 ) vào phía dưới");
$(".loadpoint").remove();
}
else if(d.length < 1) {
alert("Vui lòng nhập tên người nhận ở phía dưới");
$(".loadpoint").remove();
}
else{
$.get("/popup_help.forum?l=miscvars" , function(a){
var userlink = $(a).find("a[href*='mode=viewprofile']:last").attr("href");
$.get(userlink , function(a) {
var pt = Number($(a).find("#field_id-13 .field_uneditable").text());
if(pt < e) {
alert("Bạn không đủ points trong tài khoản. Hiện giờ bạn có : "+pt+" points");
$(".loadpoint").remove();
}
else{
$.post("/privmsg", {
subject: "Giao dịch chuyển tiền",
message: "Tôi muốn chuyển [b]"+e+"[/b] points cho [b]"+d+"[/b]" ,
username : wallp,
u : id,
mode: "post_profile",
folder: "profile",
"auth[]": $("input[name='auth[]']:last").val(),
post: "Send"
}, function(z){
if($(z).find(".message a[href*='wall']").length){
alert("Gửi giao dịch thành công . Hãy chờ BQT kiểm duyệt giao dịch của bạn");
$(".loadpoint").remove();
}
else{
alert("Gửi giao dịch thất bại. Vui lòng thử lại");
$(".loadpoint").remove();
}
});
}
});
});
}
});
});
$(function(){
prehref = RegExp("u"+id+"wall");
var acplink = $('a[href*="/admin"]').attr("href").slice($('a[href*="/admin"]').attr("href").lastIndexOf("=")+1);
$('a[href*="/u'+id+'wall?d"]').click(function(v){
v.preventDefault();
$(this).after('<div class="loadpoint">Hệ thống đang gửi dữ liệu vui lòng chờ ..</div>');
var a = $(this).parents(".message-block").find(".message-text strong:last").text();
var b = Number($(this).parents(".message-block").find(".message-text strong:first").text());
var f = $(this).parents(".message-block").find("a[href*='/u']:first").text();
var h = $(this).attr("href");
var g = $(this);
$.get("/memberlist?username="+a ,function(c){
var n = $(c).find('a[href*="/u"]').attr("href").slice($(c).find('a[href*="/u"]').attr("href").indexOf("u")+1);
$.get("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+a+"&submit_search_user=ok" , function(q) {
var pointdef = Number($(q).find("form:first td:last input").attr("value"));
$.post("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+a+"&submit_search_user=ok&points_new_value["+n+"]="+(pointdef + b)+"&submit=Chấp nhận", function(a) {
if($(a).find(".successbox").length){
$.get(h , function (j){
var delid = $(j).find('input[name="tid"]').val();
$.post(h , {
"tid" : delid ,
"confirm" : "Có"
});
$(g).parents("li").slideUp();
});
alert("Đã gửi giao dịch thành công");
$(".loadpoint").remove();
}
else {
alert("Lỗi khi gửi giao dịch");
$(".loadpoint").remove();
}
});
});
});
$.get("/memberlist?username="+f ,function(c){
var n = $(c).find('a[href*="/u"]').attr("href").slice($(c).find('a[href*="/u"]').attr("href").indexOf("u")+1);
$.get("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+f+"&submit_search_user=ok" , function(q) {
var pointdef = Number($(q).find("form:first td:last input").attr("value"));
$.post("admin/index.forum?part=modules&sub=point&mode=don&extended_admin=1&tid="+acplink+"&action=add_points_for_user&search_user="+f+"&submit_search_user=ok&points_new_value["+n+"]="+(pointdef - b)+"&submit=Chấp nhận");
});
});
});
});
Bạn sẽ thấy : Chuyển Points ở góc màn hình bên trái
Chúc các bạn thành công @};-
Vui lòng ghi rõ nguồn http://diendan.chinhphuc.info/ khi sao chép bài viết