외교부 틀 작성
This commit is contained in:
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
namespace sammo;
|
||||||
|
|
||||||
|
include "lib.php";
|
||||||
|
include "func.php";
|
||||||
|
//로그인 검사
|
||||||
|
$session = Session::requireGameLogin()->setReadOnly();
|
||||||
|
$userID = Session::getUserID();
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
|
$isSecretBoard = Util::getReq('isSecret', 'bool', false);
|
||||||
|
|
||||||
|
increaseRefresh("외교부", 1);
|
||||||
|
|
||||||
|
$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
|
||||||
|
|
||||||
|
|
||||||
|
$con = checkLimit($me['con']);
|
||||||
|
if ($con >= 2) {
|
||||||
|
Json::die([
|
||||||
|
'result'=>false,
|
||||||
|
'reason'=>'접속 제한입니다.'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$permission = checkSecretPermission($me);
|
||||||
|
if($permission < 0){
|
||||||
|
Json::die([
|
||||||
|
'result'=>false,
|
||||||
|
'reason'=>'국가에 소속되어있지 않습니다.'
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$letters = [];
|
||||||
|
|
||||||
|
foreach(
|
||||||
|
$db->query(
|
||||||
|
'SELECT * FROM ng_diplomacy WHERE src_nation_id = %i OR dest_nation_id = %i ORDER BY date desc',
|
||||||
|
$me['nation'], $me['nation']
|
||||||
|
) as $letter
|
||||||
|
){
|
||||||
|
|
||||||
|
if($permission < 3){
|
||||||
|
$letter['detail'] = '(권한이 부족합니다)';
|
||||||
|
}
|
||||||
|
$letter['comment'] = [];
|
||||||
|
$letter['aux'] = Json::decode($letter['aux']);
|
||||||
|
$letters[$letter['no']] = $letter;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nations = [];
|
||||||
|
foreach(getAllNationStaticInfo() as $nation){
|
||||||
|
if($nation['nation'] == 0 || $nation['nation'] == $me['nation']){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$nations[] = $nation;
|
||||||
|
}
|
||||||
|
|
||||||
|
Json::die([
|
||||||
|
'result'=>true,
|
||||||
|
'nations'=>$nations,
|
||||||
|
'letters'=>$letters,
|
||||||
|
'reason'=>'success'
|
||||||
|
]);
|
||||||
|
|
||||||
@@ -16,6 +16,10 @@ $textDetail = Util::getReq('textDetail');
|
|||||||
|
|
||||||
increaseRefresh("외교부", 1);
|
increaseRefresh("외교부", 1);
|
||||||
|
|
||||||
|
if($prevNo < 1){
|
||||||
|
$prevNo = null;
|
||||||
|
}
|
||||||
|
|
||||||
$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
|
$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
|
||||||
|
|
||||||
$con = checkLimit($me['con']);
|
$con = checkLimit($me['con']);
|
||||||
|
|||||||
@@ -0,0 +1,150 @@
|
|||||||
|
|
||||||
|
|
||||||
|
function submitLetter(){
|
||||||
|
var $letter = $('#newLetter');
|
||||||
|
var $brief = $letter.find('input.briefInput');
|
||||||
|
var $detail = $letter.find('input.detailInput');
|
||||||
|
var $prevNo = $letter.find('input.prevNo');
|
||||||
|
var $destNation = $letter.find('input.destNation');
|
||||||
|
var brief = $.trim($brief.val());
|
||||||
|
var detail = $.trim($detail.val());
|
||||||
|
var prevNo = parseInt($prevNo.val());
|
||||||
|
var destNation = parseInt($destNation.val());
|
||||||
|
|
||||||
|
if(prevNo !== null && prevNo < 1){
|
||||||
|
prevNo = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(!brief){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$brief.val('');
|
||||||
|
$detail.val('');
|
||||||
|
|
||||||
|
$.post({
|
||||||
|
url:'j_diplomacy_send_letter.php',
|
||||||
|
dataType:'json',
|
||||||
|
data:{
|
||||||
|
brief:brief,
|
||||||
|
detail:detail,
|
||||||
|
destNation:destNation,
|
||||||
|
prevNo:prevNo
|
||||||
|
}
|
||||||
|
}).then(function(data){
|
||||||
|
if(!data){
|
||||||
|
$title.val(title);
|
||||||
|
$text.val(text);
|
||||||
|
alert()
|
||||||
|
return quickReject('외교 서신을 보내는데 실패했습니다.');
|
||||||
|
}
|
||||||
|
if(!data.result){
|
||||||
|
$title.val(title);
|
||||||
|
$text.val(text);
|
||||||
|
return quickReject('외교 서신을 보내는데 실패했습니다. : '+data.reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
return loadLetters().done(drawLetters);
|
||||||
|
|
||||||
|
}, errUnknown)
|
||||||
|
.fail(function(reason){
|
||||||
|
alert(reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function repondLetter(isAgree){
|
||||||
|
var $this = $(this);
|
||||||
|
var $letter = $this.parents('.letter').eq(0);
|
||||||
|
var letterNo = $letter.data('no');
|
||||||
|
|
||||||
|
$.post({
|
||||||
|
url:'j_diplomacy_respond_letter.php',
|
||||||
|
dataType:'json',
|
||||||
|
data:{
|
||||||
|
letterNo:letterNo,
|
||||||
|
isAgree:isAgree,
|
||||||
|
reason:'', //TODO: reason 받기
|
||||||
|
}
|
||||||
|
}).then(function(data){
|
||||||
|
if(!data){
|
||||||
|
$text.val(text);
|
||||||
|
alert()
|
||||||
|
return quickReject('응답을 실패했습니다.');
|
||||||
|
}
|
||||||
|
if(!data.result){
|
||||||
|
$text.val(text);
|
||||||
|
return quickReject('응답을 실패했습니다. : '+data.reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
return loadArticles().done(drawLetters);
|
||||||
|
|
||||||
|
}, errUnknown)
|
||||||
|
.fail(function(reason){
|
||||||
|
alert(reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function drawLetter(letterObj){
|
||||||
|
var $letterFrame = $('#letterTemplate > .letterFrame');
|
||||||
|
|
||||||
|
var $letter = $letterFrame.clone();
|
||||||
|
$letter.addClass('letterObj')
|
||||||
|
.data('no', letterObj.no)
|
||||||
|
|
||||||
|
//TODO: 국가명, 수뇌명 입력
|
||||||
|
$letter.find('.date').text(letterObj.date);
|
||||||
|
$letter.find('.brief').html(nl2br(escapeHtml(letterObj.brief)));
|
||||||
|
$letter.find('.detail').html(nl2br(escapeHtml(letterObj.detail)));
|
||||||
|
//TODO: 바꿀 것
|
||||||
|
|
||||||
|
$('#board').append($letter);
|
||||||
|
}
|
||||||
|
|
||||||
|
function drawLetters(lettersObj){
|
||||||
|
var deferred = $.Deferred();
|
||||||
|
if(!lettersObj){
|
||||||
|
return quickReject('받아오는데 실패했습니다.');
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: 국가 리스트 출력
|
||||||
|
|
||||||
|
if(!lettersObj.result){
|
||||||
|
return quickReject('에러가 발생했습니다. : '+lettersObj.reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.letterObj').detach();//첫 버전이니까 일괄 삭제 일괄 로드
|
||||||
|
$.each(lettersObj.letters, drawLetter);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadLetters(){
|
||||||
|
return $.post({
|
||||||
|
url:'j_diplomacy_get_letters.php',
|
||||||
|
dataType:'json', //첫 버전이니까 전체 다 불러오자
|
||||||
|
data:{
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(function(){
|
||||||
|
|
||||||
|
$('#submitLetter').click(submitLetter);
|
||||||
|
$('.respondAgree').click(function(){
|
||||||
|
return repondLetter(true);
|
||||||
|
});
|
||||||
|
$('.respondDisagree').click(function(){
|
||||||
|
return repondLetter(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
loadLetters()
|
||||||
|
.then(drawLetters, errUnknown)
|
||||||
|
.fail(function(reason){
|
||||||
|
alert(reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user