웹마스터 팁
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의 위젯이라든지는 사용이 안되구요^^;, 물론 관리자페이지를 복사해 새로 만들어두는것도 좋지만^^;
이리 한번 설정해두면은 그룹하나 생성시마다 링크를 새로 걸거나 하는 문제는 사라지고 자동으로 연결되니까^^;;
제목 | 글쓴이 | 날짜 |
---|---|---|
min.js min.css 정리해서 보기 | Happyphp | 2014.06.26 |
부트스트랩 css 팁 [3] | 돼지코구뇽 | 2014.04.05 |
추천과 추천포인트 관련 팁 [8] | 고진감래 | 2009.09.30 |
관리자가 글 쓸때는 분류를 선택 안 해도 등록되도록 (공지글을 쓸때를 위해) 개선 [2] | sejin7940 | 2014.06.21 |
템플릿 파일에서 일반 PHP 코드 사용 [3] | 화니군 | 2007.08.28 |
XE에서 신디케이션 제거하기 [1] | mAKEkr | 2014.06.20 |
에디터에서 나눔고딕 웹폰트, 기본글꼴로 적용하기(구글API이용)
[6]
![]() | 애니즌 | 2014.06.06 |
관리자페이지에서 콘텐츠->파일 에서 등록된 파일 전체 리스트에 이미지가 바로 나타나도록 [2] | sejin7940 | 2014.06.19 |
Apache .htaccess 작성요령 [10] | 컴매냐 | 2013.09.19 |
목록에서 이미지 팝업 이용하기 | Happyphp | 2014.06.19 |
include용 파일에는 닫는 php문이 없다?
![]() | YJSoft | 2014.04.14 |
레이아웃에 배경이미지 업로드 하고 적용시키기 [1] | 웹빌드ver2 | 2014.06.10 |
Windows 서버에서 XE 속도 대폭 개선 방법 [29] | StyleRoot | 2013.02.25 |
Google Public DNS 강제 Flush Cache 하기 | AJKJ | 2014.06.08 |
PHP에서 Socket.IO 서버로 요청 보내기 [3] | 이즈야 | 2014.06.01 |
윈도우7/8에서네임서버 운영 | POSTZI | 2014.06.08 |
XHTML 과 CSS 오류검사를 해주는 사이트 입니다. | 디테일 | 2014.06.07 |
회원정보에서 '서명' 수정이 반영되지 않을 경우 | Novelic | 2014.06.03 |
홈페이지에 접속한 장치의 너비 구하기 [3] | CosignStudio | 2014.05.28 |
익스플로러의 자동완성 기능 off 하기 [7] | WOWpc | 2001.10.23 |
ㅎㅎ 저는 그냥 관리자 페이지를 하나 만들어서 회원리스트 보기를 링크 시켰습니다~
각 그룹별도 마찬가지겠죠..
그 페이지를 각 그룹만 보도록 한 다음에 회원리스트 보기 위젯을 사용해서 각 그룹만 체크해 준다면..
이렇게 복잡한 코드 변경 없이.. 그냥 제로보드 xe 기본 기능만으로도 가능합니다..