수신자 지정하기(특정인+여러명가능) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

수신자 지정하기(특정인+여러명가능) 정보

수신자 지정하기(특정인+여러명가능)

본문

오래전에 플록님과 모? 프로젝트를 진행중 만들어본 것이며
질답게시판에 관련글이 언급이 되어 올리며 역시나 짜집퍼라
코드가 지저분 하므로 최적화를 해주시면 감사 하겠습니다.

우선 이기능을 사용하기 위해선 트랙백 제한(회원전용) , 검색사용 안함 으로
코멘트만 따로보기 안함으로 설정 바랍니다.

게시판 설정의 여유 8번에 on 이라고 넣어주면 작동하며 게시판의 여유필드
8 ,9번을 사용하며 이미 타용도로 사용중 이라면 필드를 변경 하세요.


적용방법

스킨/write.skin.php 최상단에 아래코드를 추가

//글쓰기시 답글일 경우 수신자가 지정이 되어 있다면 관리자 체크와 수신자를 전부 가져오고
if ($w == "r") {
if ($board[bo_8] =="on"){
if ($write[wr_8]) {
$user_id = $member[mb_id];
$view_wr3 = $write[wr_9];
function memc_receiver($view_wr3,$user_id) {
$view_wr3 =explode(",",$view_wr3);
$t_user_id=trim($user_id);
$flag=0;
for ($i=0; $i<count($view_wr3); $i++) {
$t_rcv_id=trim($view_wr3[$i]);
if (!strcasecmp($t_rcv_id, $t_user_id)) $flag=1;
 }
 return $flag;
}
//글작성와 관리자는 통과하고 이글에 지정된 수신자가 아니라면 에러
if ($write[wr_8]&& ! (memc_receiver($view_wr3, $member[mb_id])) && ! ($write[mb_id]==$member[mb_id]) && !$is_admin) {
 alert("안내: 이게시물은 수신자가 지정이 되어 있습니다.\\n\\n레벨 상관없이 수신자 리스트에 없으면 답글을 달수 없으며.\\n\\n아래의 지정된 수신자만 이게시물의 답글이 가능합니다.\\n\\답글가능 회원 : $write[wr_9]");
}
}
}


위코드 추가후 아래로 내려간후 글작성 부분의 적당곳에 아래코드를 추가

<?
if ($member[mb_id] and $board[bo_8] =="on"){
if($write[wr_8] =="1"){
    $ranskcheck33 ="(<b>지정됨</b>)";
  $ranskcheck3="checked";
}else {
  $ranskcheck33 ="(<b>미지정</b>)";
  $ranskcheck3="";
}

if ($w == "r"){
if($write[wr_8] =="1"){
  $secret_checks = "<input type='hidden' name='wr_8' value='1'> $ranskcheck33";
  $secret_checkm = "<input type='hidden' name='wr_9' value='$write[wr_9]'> 수신자: $write[wr_9]";
  $secret_checkc = "· 현재 원글에서 지정된 수신자 명단 입니다.";
  }
}else {
  $secret_checkm = "<input class=ed style=\"width:100%;\" name='wr_9' value='$write[wr_9]'>";
  $secret_checks = "<input type=checkbox name=wr_8 value='1' $ranskcheck3>· 이게시물을 수신자만 열람이 가능하게 합니다. $ranskcheck33";
  $secret_checkc = "· 여러명일 경우 구분자 , 로 공백없이 작성해 주세요.";
}

?>

 <tr>
    <td style='padding-left:20px; height:30px;'>· 수신자설정</td>
    <td><?=$secret_checks?></td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<tr>
    <td style='padding-left:20px; height:30px;'>· 수신자지정</td>
    <td> <?=$secret_checkc?><br>
<?=$secret_checkm?>

</td></tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<tr>

-------------------------------------------------------------


스킨/view.skin.php 의 최상단에 아래의 코드를 추가

if ($board[bo_8] =="on"){
$user_id = $member[mb_id];
$view_wr3 = $view[wr_9];
function mem_receiver($view_wr3,$user_id) {
$view_wr3 =explode(",",$view_wr3);
$t_user_id =trim($user_id);
$flag=0;
for ($i=0; $i<count($view_wr3); $i++) {
$t_rcv_id =trim($view_wr3[$i]);
if (!strcasecmp($t_rcv_id, $t_user_id)) $flag=1;
}
return $flag;
}
//글작성와 관리자는 통과하고 이글에 지정된 수신자가 아니라면 에러
if ($view[wr_8] && ! (mem_receiver($view_wr3, $member[mb_id])) && ! ($view[mb_id]==$member[mb_id]) && !$is_admin) {
 alert("안내: 이게시물은 수신자가 지정이 되어 있습니다.\\n\\n레벨 상관없이 수신자 리스트에 없으면 볼수가 없으며.\\n\\n아래의 지정된 수신자만 이게시물의 열람이 가능합니다.\\n\\n열람가능 회원 : $view[wr_9]");
}
}

------------------------------------------------------

스킨/list.skin.php 에 수신자가 지정된 경우 표시하기
if ($board[bo_8] =="on"){
if ($list[$i][wr_8] ==1){
 $list[$i][icon_secret_mem] = "<span style='cursor: pointer;'><img src='$board_skin_path/img/icon_secret.gif' align='absmiddle' border='0' title='수신자:".$list[$i][wr_9]." '></span>";
}
echo " " . $list[$i][icon_secret_mem];
}
추천
1
  • 복사

댓글 3개

추가사항 (글작성후 지정된 전체 수신자에게 쪽지로 통보 해주기)

<?
//스킨/view.skin.php 의 적당한곳에 코드를 추가

if ($board[bo_8] =="on"){
if ($view[mb_id]==$member[mb_id] or $is_admin) {
if ($view[wr_8] =="1"){
$su_board_url = "$g4[url]/bbs/board.php?bo_table=$bo_table&wr_id=$wr_id";
?>

<!-- le 와 불여우 호환 토글용 스크립트 - 헐랭이 -->
<script language="javascript">
function Displaytoggle_memo(index) {
for (i=1; i<=2; i++)
if (index == i) {
thisMenumo2 = eval(document.getElementById("toggle_memo" + i + "").style);
thisMenumo2.display = "none";
document.getElementById("toggle_memo").style.display = "none";
}
else {
otherMenumo2 = eval(document.getElementById("toggle_memo" + i + "").style);
otherMenumo2.display = "";
document.getElementById("toggle_memo").style.display = "";
}
}
</script>
<tr>
<td height=20 bgcolor=>
<div id="toggle_memo1" style="display:;">&nbsp; <a href="javascript:Displaytoggle_memo(1)" class="button" onfocus='this.blur()'><font color=red class=small>수신자에게 메모보내기</font></a>&nbsp; · 지정된 수신자 모두에게 메모를 보내어 현황을 알려줍니다.</div>
 <div id="toggle_memo2" style="display:none;">&nbsp; <a href="javascript:Displaytoggle_memo(2)" class="button" onfocus='this.blur()'><font color=#7A8FDB class=small>메모보내기 창닫기</font></a>
 &nbsp;&nbsp;<span style="cursor: pointer;" onclick="textarea_decrease('me_memo', 5);"><img src="<?=$board_skin_path?>/img/up.gif" align='absmiddle'></span>
<span style="cursor: pointer;" onclick="textarea_original('me_memo', 5);"><img src="<?=$board_skin_path?>/img/start.gif" align='absmiddle'></span>
<span style="cursor: pointer;" onclick="textarea_increase('me_memo', 5);"><img src="<?=$board_skin_path?>/img/down.gif" align='absmiddle'></span> &nbsp;&nbsp; · 메모보내기에서 관리자 아이디를 수신자로 추가 할수 있습니다.</div>
 
</td></tr>
<tr><td valign="top" id="toggle_memo" height="" style="display:none;padding:1;">

<form name=fmemoform method=post action="./memo_form_update.php" target="hiddenframe">

<table width="100%" height="" border="0" cellspacing="0" cellpadding="0">

<tr>
<td style='word-break:break-all; padding:10px; border:1px solid #BBBBBB;' bgcolor=#F8F8F9>

        <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td height="1">

</td>
        </tr>
        <tr>
            <td height="1" bgcolor="#808080"></td>
        </tr>
        <tr>
            <td width="100%" height="2" align="center" valign="top" bgcolor="#FFFFFF">
                <table width=100% cellpadding=1 cellspacing=1 border=0>
                <tr bgcolor=#E1E1E1 align=center>
                    <td width="30%" height="24" rowspan="2"><b>수신자 회원아이디</b></td>
                    <td width=70% align="center"><input type=text name="me_recv_mb_id" required itemname="받는 회원아이디" value="<?=$view[wr_9]?>" style='width:100%; word-break:break-all;' class=tx></td>
                </tr>
                <tr bgcolor=#E1E1E1 align=center>
                    <td>※ 여러 회원에게 보낼때는 반드시 컴마(,)로 구분해야 합니다.</td>
                </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td height="" align="center" valign="middle" bgcolor="#F6F6F6">
<textarea id=me_memo name=me_memo rows=10 required itemname='내용' style='width:100%; word-break:break-all;' class=tx>
<?=$view[wr_name]?> 님이 수신자가 지정된 게시물을 등록 하였습니다.
이메모는 열람이 지정된 수신자 모두에게 발송되는 메모이며
아래의 내용을 검토후 수신자 지정 게시물을 확인 하시기 바랍니다.
수신자:(회원 아이디)
<?=$view[wr_9]?>

제목:
<?=$view[wr_subject]?>

링크:
<?=$su_board_url?></textarea></td>
        </tr>
        </table></td>
</tr>
<tr>
    <td height="25" align="center" valign="bottom">
      <input type=submit value="수신자 모두에게 메모보내기" style="width:200;height:20;background-color:#dddddd;border:1 solid #c0c0c0;">
</td>
</tr>

</table>
  </form>
</td></tr>
<tr><td height=1 bgcolor=#E7E7E7></td></tr>
<?
 }
}
}
?>
현재 이기능에서 회원 아이디 찾기는 적용되지 않았으므로 참고하시고 적용 하실분은
스킨 자료실에 있는 스킨중 회원찾기 플러그인이 포함된 것을 참고하여 연동시키면 됩니다.
제가 1월말까지는 수주한 대형? 프로젝트 때문에 업그레이드할 시간적인 여유가 없습니다.^^
좋은 팁입니다.
일단 스크랩해두고 활용할 곳을 생각해보겠습니다.
추천~!

헐랭이님이 만드신 친구/팬 검색 같은 것으로 받을 사람을 선택할 수 있게 되었으면 좋을 것 같네요.
© SIRSOFT
현재 페이지 제일 처음으로