웹마스터 팁

제로보드는 PHP로 이루어져 아주 뛰어난 기능을 가지고 있습니다.
if(조건문)만을 사용하여도 기능을 더욱 편리하게 이용할 수 있습니다.
"여기에서 설명하고자 하는 대상은 제로보드관리자모드 회원리스트를 관리자그룹만 타그룹의 회원을 포함해 모든 
회원을 볼수 있도록 하는것입니다."


-----------------------------------------------------
1번이 맞을경우 다음메세지를 출력한다.
"안녕하세요."
1번이 아닐경우 다음메세지를 출력한다.
"다음에 또뵈요"
----------------------------------------------------------
▼ 위 예제를 if(조건문)로 표현해보겠습니다. 

if ($q=="1"){
 echo "안녕하세요";
} else {
 echo "다음에 또뵈요"
}

!! ) 여기서 $q는 mysql 테이블에 있는 1이 들어가 있는 테이블을 예제로 적은것입니다. 즉.
mysql 테이블에 있는 q라는 필드 안에 값이 1일경우 옳다고 표현하게 됩니다.

여기서 테이블안의 필드값만 쓴다고 무조건 if문을 사용할 수 있는 것은 아닙니다.

$q=mysql_fetch_array(mysql_query("select q  from number_table"));

이걸 해석하면

$q[q라는 이름으로 다음 sql필드를 불러온다]=mysql_fetch_array(mysql_query("select q[가져올 필드값]  from number_table[q 필드가 들어있는 테이블]"));

와 같이 sql문을 적어주어 q의 값을 불러들이는 것입니다.



이제 본론으로 제로보드에 응용해보겠습니다.

먼저 제로보드 루트에 있는 파일중 admin_setup.php와 admin폴더에 있는 admin_view_member.php 파일을 편집기로 가져옵니다.

그중 admin_view_member.php 파일은 복사하여 이름을 admin_view_member_m.php 로 해둡니다.
원본의  admin_view_member.php 파일에서 다음과 같이 수정합니다.

최 상위 11번째 줄
$temp=mysql_fetch_array(mysql_query("select count(*) from $member_table where group_no='$group_no'"));

를 $temp=mysql_fetch_array(mysql_query("select count(*) from $member_table")); 로 바꾸어줍니다.

즉.  where group_no='$group_no'"부분을 뺀것이지요


다음 //검색어에 대해서 처리 부분에서
if($total_group_num>1) $s_que = " where group_no = '$group_no' ";
가 있습니다. 이것또한
if($total_group_num>1) $s_que = " ";  로 바꾸어 주세요.

저장후  복사본인 admin_view_member_m.php을 ftp를 이용해 admin폴더안에 같이 업로드 하고

회원리스트를 클릭하면 그룹상관없이 모든 회원리스트가 나오게 됩니다.

하지만, 아무그룹이나 전부 모든 회원리스트가 나오면 좀 문제가 되겠지요?

여기서 admin_setup.php 파일을 수정하여 관리자그룹만 전체리스트가 나오도록 하겠습니다.



admin_setup.php 파일 최하단쪽에 보면
 
//최고관리자 일때   라는 항목을 살펴보시면
  elseif($exec=="view_member") {
   if($exec2=="sendmail") {include "admin/admin_sendmail.php";}
   elseif($exec2=="modify") {include "admin/admin_modify_member.php";}
   else {include "admin/admin_view_member.php";}
  }

라는 부분에 이어서

 elseif($exec=="view_member_m") { 
   elseif($exec2=="modify_m") {include "admin/admin_modify_member_m.php";}
   else {include "admin/admin_view_member_m.php";}
  }

를 삽입해줍니다.


다시 중간정도에 보시면

// 현재 선택된 그룹과 루핑되는 그룹과 매치될때;; 항목 아래쪽에

<a href=$PHP_SELF?exec=view_member&group_no=$group_data[no]><img src=images/m_manage.gif border=0 alt='회원 관리'></a><a href=$PHP_SELF?exec=modify_member_join&group_no=$group_data[no]><img src=images/m_joinform.gif border=0 alt='가입양식 설정'></a>

부분이 있습니다. 이부분은 관리자모드에서 "왼쪽에 회원 관리라는 항목입니다"

여기에 if문을 응용합니다. 부분을

  <?
    if($group_data[no]=="1"){
     echo "<a href=$PHP_SELF?exec=view_member&group_no=$group_data[no]><img src=images/m_manage.gif border=0 alt='회원 관리'></a><a href=$PHP_SELF?exec=modify_member_join&group_no=$group_data[no]><img src=images/m_joinform.gif border=0 alt='가입양식 설정'></a>";
    }else {
     echo "<a href=$PHP_SELF?exec=view_member_m&group_no=$group_data[no]>맴버관리</a>";
    }
     ?>

이렇게 바꾸어 주세요.

풀이하면 그룹넘어가 1일경우 전체리스트 회원목록을 볼수 있다.
1이 아닌 그룹들은 해당 그룹의 등록된 회원리스트만 나오도록.

입니다.
echo "<a href=$PHP_SELF?exec=view_member_m&group_no=$group_data[no]>맴버관리</a>";
부분에서 view_member_m을 주시해주세요.
이 파일은 위에서 최하단에서 추가한부분을 연관지어 보면 admin_view_member_m.php를 불러오는걸 알수 있습니다.

이걸로 최고관리자가 로그인했을 경우 최고그룹만 그룹상관없이 풀리스트를 볼수 있고 검색을 하여 쉽게 회원을 찾을수 있습니다.

하지만 그룹관리자가 로그인했을 경우에는 당연 문제가 생기겟지요?
그룹회원뿐만 아니고 전체 회원리스트가 나올테니.

// 최고관리자가아닐때;; 라는 항목안에
//메뉴출력이라는 항목 부분에서
<a href=<?=$PHP_SELF?>?exec=view_member&group_no=<?=$group_data[no]?>><img src=images/m_manage.gif width=73 height=12 border=0 alt="회원 관리"></a>

라는 부분을

<a href=<?=$PHP_SELF?>?exec=view_member_m&group_no=<?=$group_data[no]?>><img src=images/m_manage.gif width=73 height=12 border=0 alt="회원 관리"></a><br>

으로 view_member에 _m을 추가해줍니다.

그리고 당연히 admin_view_member_m.php 파일에서 회원정보를 수정하는 링크를 찾아서
modify에 _m을 붙여줍니다. (그래야 admin_view_member_m.php 파일로 바꾼후에도 수정이 가능하도록 되니..)

애초에 admin_view_member_m.php 과 admin_view_member.php 에서 admin_view_member_m.php 파일을 수정했다면
더욱 쉽게 하겠지요...(실수로 admin_view_member.php 로 수정한걸 적었더니 아까워서 다시 못쓰겠습니다.;;)

이리하면 결과물은

최고관리자가 로그인했을 경우 최고그룹(1)을 선택하면 그룹상관없이 모든 회원리스트가.
다른 그룹의 회원리스트를 선택하면 해당 그룹의 맴버만 나오도록.