다중승인 게시판, 도와주세요
본문
승인게시판을 만드느라고 고심중입니다.
업무는 현실적으로 각 단계에서 검토와 승인을 거칠수 밖에 없기 때문에 권한에 따라 상급자가 승인을 하고 표시되도록 하고자 합니다.
게시판 여분필드 bo_3에 조장|팀장|부장|이사를 옵션으로 넣어 두고,
여분필드 wr_3에 '|'로 구분해서 explode해서 조장|팀장|부장|이사 4명 각각의 승인여부에 따라 해당 구분공간에 '조', '팀', '부', '이'로 기록되거나 공백으로 두고,
view 페이지에서 조장, 팀장, 부장, 이사 각각의 체크 상태를 승인버턴을 통해 승인/수정 하도록하고자 합니다.
list 페이지에서는 단순히 승인여부를 보여주도록 합니다.
write 페이지를 열어 승린자가 승인여부를 체크할 필요는 없지만, 아래와 같이 코드로 테스트해보니 잘 작동합니다.
write 화면
write.skin.php
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
// 승인
$wr3 = explode('|',$write['wr_3']);
$wr3_00 = $wr3[0];//팀장
$wr3_01 = $wr3[1];//부장
$wr3_02 = $wr3[2];//이사
$wr3_03 = $wr3[3];//법인장
?>
~~~~~~
<div class="bo_w_tit write_div">
<?php //shift1 로그인시 표시
if ($is_member && ($member['mb_level']>=6) ) { ?>
<label for="wr3"> 승인 <i class="fas fa-users-cog"></i> </label>
<?php } ?>
<?php //shift1 로그인시 표시
if ($is_member && ($member['mb_id']=="shift1") or ($is_member && ($member['mb_level']>=6)) ) { ?>
<input type="checkbox" name="wr3_00" value="조"<?php echo ($wr3_00 == "조") ? " checked" : "";?>> 조장
<?php } ?>
<?php //team1 로그인시 표시
if ($is_member && ($member['mb_id']=="team1") or ($is_member && ($member['mb_level']>=7)) ) { ?>
<input type="checkbox" name="wr3_01" value="팀"<?php echo ($wr3_01 == "팀") ? " checked" : "";?>> 팀장
<?php } ?>
<?php //hyun or level8 이상 로그인시 표시
if ($is_member && ($member['mb_id']=="hyun") or ($is_member && ($member['mb_level']>=8)) ) { ?>
<input type="checkbox" name="wr3_02" value="부"<?php echo ($wr3_02 == "부") ? " checked" : "";?>> 부장
<input type="checkbox" name="wr3_03" value="이"<?php echo ($wr3_03 == "이") ? " checked" : "";?>> 이사
<?php } ?>
</div>
~~~~
write_update.skin.php
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 승인
$wr_3 = "$wr3_00|$wr3_01|$wr3_02|$wr3_03";
$sql3 = " update {$write_table} set wr_3 = '{$wr_3}' where wr_id = '{$wr_id}' ";
sql_query($sql3);
?>
하지만 정작 필요한 것은 write 페이지를 승인자가 열어서 승인체크를 하는 것이아니라,
view 페이지에서 각 단계의 승인자가 승인 여부를 체크해야 할 것이기 때문에 view 페이지에서의 승인여부 체크를 처리하는 것이 되야 하는데,
write 페이지의 저 부분을 view 페이지에서 작동하도록 해야합니다.
가능하면 bo_3에 옵션으로 설정한 값을 view로 불러와서 체크박스를 구성해야 하는데, 이것도 잘 안되는군요.
조언 부탁드립니다.
view 화면
view.skin.php
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
// 승인
$wr3 = explode('|',$view['wr_3']);
$wr3_00 = $wr3[0];//팀장
$wr3_01 = $wr3[1];//부장
$wr3_02 = $wr3[2];//이사
$wr3_03 = $wr3[3];//법인장
?>
~~~~~
<?php if ($write_href) { ?>
<div class="write_div" style="border-top: 1px solid #fb3;">
<form name="fwrite" id="fwrite" action="<?php echo $board_skin_url?>/view_write.php" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
<div class="write_div" style="margin-top:12px;">
<?php //shift1 로그인시 표시
if ($is_member && ($member['mb_level']>=6) ) { ?>
<label for="wr3"> 승인 <i class="fas fa-users-cog"></i> </label>
<?php } ?>
<?php //shift1 로그인시 표시
if ($is_member && ($member['mb_id']=="shift1") or ($is_member && ($member['mb_level']>=6)) ) { ?>
<input type="checkbox" name="wr13_00" value="조"<?php echo ($wr3_00 == "조") ? " checked" : "";?>> 조장
<?php } ?>
<?php //team1 로그인시 표시
if ($is_member && ($member['mb_id']=="team1") or ($is_member && ($member['mb_level']>=7)) ) { ?>
<input type="checkbox" name="wr3_01" value="팀"<?php echo ($wr3_01 == "팀") ? " checked" : "";?>> 팀장
<?php } ?>
<?php //hyun or level8 이상 로그인시 표시
if ($is_member && ($member['mb_id']=="hyun") or ($is_member && ($member['mb_level']>=8)) ) { ?>
<input type="checkbox" name="wr3_02" value="부"<?php echo ($wr3_02 == "부") ? " checked" : "";?>> 부장
<input type="checkbox" name="wr3_03" value="이"<?php echo ($wr3_03 == "이") ? " checked" : "";?>> 이사
<?php } ?>
<button type='submit' id='btn_submit' accesskey='s' class='btn_submit btn' style='margin:-8px 0 0 5px'>승인완료</button>
</div>
</form>
<?php }?>
~~~~~~
view_write.php
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//include_once("./_common.php");
// 승인
$wr_3 = "$wr3_00|$wr3_01|$wr3_02|$wr3_03";
$sql3 = " update {$write_table} set wr_3 = '{$wr_3}' where wr_id = '{$wr_id}' ";
sql_query($sql3);
?>
아래는 승인여부를 단순히 표시해주는 리스트 화면입니다.
list 화면
!-->!-->!-->!-->
답변 1
단순히 view에서 승인 표시만 이라면 아래처럼하면됩니다.
view.skin.php 님 코드를 아래처럼 수정
<form name="fwrite" id="fwrite" action="<?php echo $board_skin_url?>/view_write.php" onsubmit="return fwrite_submit(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
<div class="write_div" style="margin-top:12px;">
<?php //shift1 로그인시 표시
if ($is_member && ($member['mb_level']>=6) ) { ?>
<label for="wr3"> 승인 <i class="fas fa-users-cog"></i> </label>
<?php } ?>
<?php //shift1 로그인시 표시
if ($is_member && ($member['mb_id']=="shift1") or ($is_member && ($member['mb_level']>=6)) ) { ?>
<input type="checkbox" name="wr3_00" value="Y"<?php echo ($wr3_00 == "Y") ? " checked" : "";?>> 조장
<?php } ?>
<?php //team1 로그인시 표시
if ($is_member && ($member['mb_id']=="team1") or ($is_member && ($member['mb_level']>=7)) ) { ?>
<input type="checkbox" name="wr3_01" value="Y"<?php echo ($wr3_01 == "Y") ? " checked" : "";?>> 팀장
<?php } ?>
<?php //hyun or level8 이상 로그인시 표시
if ($is_member && ($member['mb_id']=="hyun") or ($is_member && ($member['mb_level']>=8)) ) { ?>
<input type="checkbox" name="wr3_02" value="Y"<?php echo ($wr3_02 == "Y") ? " checked" : "";?>> 부장
<input type="checkbox" name="wr3_03" value="Y"<?php echo ($wr3_03 == "Y") ? " checked" : "";?>> 이사
<?php } ?>
<button type='submit' id='btn_submit' accesskey='s' class='btn_submit btn' style='margin:-8px 0 0 5px'>승인완료</button>
</div>
</form>
view_write.php 코드를 아래처럼 수정
<?php
// include_once('../../../../../common.php');
// 테마 폴더 스킨폴더 이용할때 위꺼 사용
include_once('../../../common.php');
$write_table = $_POST['bo_table'];
$wr_id = $_POST['wr_id'];
$wr3_00 = $_POST['wr3_00'];
$wr3_01 = $_POST['wr3_01'];
$wr3_02 = $_POST['wr3_02'];
$wr3_03 = $_POST['wr3_03'];
$wr_3 = "$wr3_00|$wr3_01|$wr3_02|$wr3_03";
$sql3 = " update g5_write_{$write_table} set wr_3 = '{$wr_3}' where wr_id = '{$wr_id}' ";
sql_query($sql3);
goto_url(G5_URL.'/'.$write_table.'/'.$wr_id);
?>
가능하면 bo_3에 옵션으로 설정한 값을 view로
불러와서 체크박스를 구성해야 하는데, 이것도 잘 안되는군요.
이건 무슨 말씀인지 이해 잘안되서....
참고로 bo_3은 이렇게 가져오면됩니다.
$bo3 = explode('|',$board['bo_3']);
$bo3_00 = $bo3[0];//팀장
$bo3_01 = $bo3[1];//부장
$bo3_02 = $bo3[2];//이사
$bo3_03 = $bo3[3];//법인장
// echo $bo3_00; // 결과 팀장
답변을 작성하시기 전에 로그인 해주세요.