웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
관리자모드 - 관리자그룹만 모든 회원리스트보기
2007.10.23 14:17
제로보드는 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)을 선택하면 그룹상관없이 모든 회원리스트가.
다른 그룹의 회원리스트를 선택하면 해당 그룹의 맴버만 나오도록.
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)을 선택하면 그룹상관없이 모든 회원리스트가.
다른 그룹의 회원리스트를 선택하면 해당 그룹의 맴버만 나오도록.
댓글 2
-
사라
2007.11.03 22:31
-
이지혜
2007.11.19 14:29
이건 제로보드4를 기준으로 작성한거구요^^;
xe의 위젯이라든지는 사용이 안되구요^^;, 물론 관리자페이지를 복사해 새로 만들어두는것도 좋지만^^;
이리 한번 설정해두면은 그룹하나 생성시마다 링크를 새로 걸거나 하는 문제는 사라지고 자동으로 연결되니까^^;;
제목 | 글쓴이 | 날짜 |
---|---|---|
웹페이지 미리보기 snapshot 활용하기 [2] | 유창화 | 2008.02.15 |
OGIT STUDY 3 [1] | OGIT | 2008.02.01 |
OGIT STUDY 2 [1] | OGIT | 2008.02.01 |
OGIT STUDY 1 | OGIT | 2008.02.01 |
웹 계정에서 지워지지 않는 폴더 및 파일 삭제하는 방법 [3] | Rising.kr | 2008.01.24 |
php에서 exif소스이용하기 [5] | 최만순279 | 2007.11.18 |
관리자모드 - 관리자그룹만 모든 회원리스트보기 [2] | 이지혜609 | 2007.10.23 |
포인트부여시 ...회원로그인 [2] | 구본순 | 2007.08.28 |
간단한 칠판 모양 게시판 [9] | SoukoZ | 2007.08.19 |
[PDF 제작하기 동영상강좌] 3. 기존의 PDF파일 불러오기 [2] | 서기 | 2007.08.18 |
[PDF 제작하기 동영상강좌] 2. Hello PDF | 서기 | 2007.08.18 |
[PDF 제작하기 동영상강좌] 1. 기본환경 설정 [1] | 서기 | 2007.08.18 |
[zbXE 동영상강좌] 3. 레이아웃 완성하기 [13] | 서기 | 2007.08.16 |
[zbXE 동영상강좌] 2. 포토샵에서 레이아웃 만들기 [12] | 서기 | 2007.08.16 |
[zbXE 동영상강좌] 1. zbXE 설치하기 [2] | 서기 | 2007.08.16 |
[PHP 동영상강의] 51. db와 연동된 다중 셀렉트 제작하기 [7] | 서기 | 2007.08.08 |
[PHP 동영상강의] 50. 자바스크립트로 풀다운 메뉴제작 [2] | 서기 | 2007.08.08 |
[PHP 동영상강의] 49. 만년달력 제작해보기 [1] | 서기 | 2007.08.08 |
멀티플 파일 업로드 프로그래시브 - SWFUpload [1] | PHPer | 2007.07.19 |
mysql 관리하는 프로그램입니다. (7/26 13:03) 수정 [4] | 제로저아 | 2007.07.18 |
ㅎㅎ 저는 그냥 관리자 페이지를 하나 만들어서 회원리스트 보기를 링크 시켰습니다~
각 그룹별도 마찬가지겠죠..
그 페이지를 각 그룹만 보도록 한 다음에 회원리스트 보기 위젯을 사용해서 각 그룹만 체크해 준다면..
이렇게 복잡한 코드 변경 없이.. 그냥 제로보드 xe 기본 기능만으로도 가능합니다..