고수님들~~, 관리자모드 생성인데, 이런건 어케 하지요? 정보
고수님들~~, 관리자모드 생성인데, 이런건 어케 하지요?
본문
안녕하세요. 고수님들, 언제나 도움받고 잇는 중발이입니다 꾸벅.
그누보드를 설치해서 잘 쓰고 잇는데요.
설치하게 되면 관리자용으로 adm 디렉토리가 생기잖아요.
전 이걸 adm_new 디렉토리로 새로 만들어서 넣으려고 하거든요
그래서 서버에 adm 을 카피해서 adm_new 로 만들어서 넣엇습니다.
그런데, 관리자모드 가면,

이런 부분이 나오는데요. 빨간 글씨와 마찬가지로 회원관리만 남겨놓고 못들어가게 하려는 겁니다.
//////////////////////////////
왜 이런 기능이 필요하냐 하면요...
1. 저는 super 관리자니간, 그냥 adm 디렉토리로 가서 관리하면 되지만.
2. 클라이언트중에서 관리자를 따로 지정해서 회원들별 관리하는 부분을 따로 빼서 링크를 걸어드리려는 겁니다. adm_new 디렉토리로요
3. 그누 관리자모드에 있는 환경설정 - 관리권한설정으로 해도 되긴 합니다만, 지정한 아이디로 로그인하면 환경설정, 게시판관리 등의 아이콘은 그대로 떠서요(물론 기능은 안뇝니다만). 이게 문제입니다.
이게 뜨기때문에 암것도 모르는 시샵측에서는 이 기능이잇는지 알고 아이콘을 누르다가 기능이 안되면 클레임이 걸리기 때문이지요. - 실제로 잇었던 일입니다.ㅇ. - 그래서 기존 킴스보드에서는 제가 일일이 만들었다는... ㅠㅠ
즉, 일종의 시샵인데, 시샵이 그누보드 전체 환경,게시판관리를 하게 되면 뒷감당이 안돼서요.
킴스보드를 썼을때는, 제가 이 기능을 따로 만들어서 햇는데, 그누로 바꾸고 나서는 아직 여러 변수가 적응이 안돼다보니 어려움이 잇네요
여러 고수님들의 도움 부탁드릴게요. ㅠㅠ
댓글 전체
관리자 메뉴에 관련된것은 adm에 있는 다음 파일들을 공부해보세요
adm/admin.menuX00.php
adm/admin.menuX00.php
root 님처럼 배울 수 있는 방법을 제시하는 것이 가장 합당하다고 생각합니다.
하지만 때로는 쉽게 도움을 주는 것이 큰 도움이 되는 경우도 있기에
그냥 쉽게 설명드립니다.
adm/admin.menu100.php, admin.menu200.php 화일을 삭제하거나
admin.ymenu100.php등 이름을 변경해 주면 됩니다.
하지만 때로는 쉽게 도움을 주는 것이 큰 도움이 되는 경우도 있기에
그냥 쉽게 설명드립니다.
adm/admin.menu100.php, admin.menu200.php 화일을 삭제하거나
admin.ymenu100.php등 이름을 변경해 주면 됩니다.
음.. 저도 그 파일을 봤습니다만.. adm_new 에서 그 파일을 삭제해도 안되더라구요.
그냥 adm 에 잇는 admin.menuX00.php 들을 불러오길래.. ㅠㅠ
변수 설정을 다르게 하는게 아닌가 싶어서요.
즉, 저는 시샵에게 로그인할때 adm_new 로 가서 로그인하라고 할건데요
g4_path 등을 g4_path_new 등으로 바꿔서 했는데도, adm_new 에서 삭제한 admin.menuX00.php 파일들이 반영이 안된다는거지요.
그냥 adm 에 잇는 admin.menuX00.php 들을 불러오길래.. ㅠㅠ
변수 설정을 다르게 하는게 아닌가 싶어서요.
즉, 저는 시샵에게 로그인할때 adm_new 로 가서 로그인하라고 할건데요
g4_path 등을 g4_path_new 등으로 바꿔서 했는데도, adm_new 에서 삭제한 admin.menuX00.php 파일들이 반영이 안된다는거지요.
음. 그리고.. 또 한가지 궁금한게.. admin.lib.php 를 include 하는 파일이 어느 파일인지요? 그걸 알면 도움이 될거 같은데.. 찾기가 여의치가 않네요. ㅠㅠ
정상적인 방법이 아닌 편법입니다. 이 이외의 응용은 질문하신분의 몫으로 남겨 둡니다.
1. adm/admin.head.php의 187 ~ 199 줄을
<?
foreach($amenu as $key=>$value)
{
$href1 = $href2 = "";
if ($menu["menu{$key}"][0][2])
{
$href1 = "<a href='".$menu["menu{$key}"][0][2]."'>";
$href2 = "</a>";
}
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2} ";
echo print_menu1("menu{$key}", 1);
}
?>
아래와 같이 수정합니다.
<?
if($is_admin != "super") {
$key = 200;
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2} ";
echo print_menu1("menu{$key}", 1);
} else {
foreach($amenu as $key=>$value)
{
$href1 = $href2 = "";
if ($menu["menu{$key}"][0][2])
{
$href1 = "<a href='".$menu["menu{$key}"][0][2]."'>";
$href2 = "</a>";
}
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2} ";
echo print_menu1("menu{$key}", 1);
}
}
?>
2. adm/admin.lib.php의 295 ~ 304줄을
$tmp = dir($g4['admin_path']);
while ($entry = $tmp->read())
{
//if (!preg_match("/^admin.menu([0-9]{3}).php/", $entry, $m))
if (!preg_match("/^admin.menu([0-9]{3}).*\.php/", $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
$amenu[$m[1]] = $entry;
include_once($g4['admin_path']."/".$entry);
}
와 같이 수정합니다...
$tmp = dir($g4['admin_path']);
while ($entry = $tmp->read())
{
//if (!preg_match("/^admin.menu([0-9]{3}).php/", $entry, $m))
if (!preg_match("/^admin.menu([0-9]{3}).*\.php/", $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
if($is_admin != "super") {
$entry = "admin.menu200.php";
} else {
$amenu[$m[1]] = $entry;
}
include_once($g4['admin_path']."/".$entry);
}
위에 열거한 줄이 다를 수 있으므로 해당 소스와 같은 부분을 바꾸어 보세요...
1. adm/admin.head.php의 187 ~ 199 줄을
<?
foreach($amenu as $key=>$value)
{
$href1 = $href2 = "";
if ($menu["menu{$key}"][0][2])
{
$href1 = "<a href='".$menu["menu{$key}"][0][2]."'>";
$href2 = "</a>";
}
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2} ";
echo print_menu1("menu{$key}", 1);
}
?>
아래와 같이 수정합니다.
<?
if($is_admin != "super") {
$key = 200;
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2} ";
echo print_menu1("menu{$key}", 1);
} else {
foreach($amenu as $key=>$value)
{
$href1 = $href2 = "";
if ($menu["menu{$key}"][0][2])
{
$href1 = "<a href='".$menu["menu{$key}"][0][2]."'>";
$href2 = "</a>";
}
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2} ";
echo print_menu1("menu{$key}", 1);
}
}
?>
2. adm/admin.lib.php의 295 ~ 304줄을
$tmp = dir($g4['admin_path']);
while ($entry = $tmp->read())
{
//if (!preg_match("/^admin.menu([0-9]{3}).php/", $entry, $m))
if (!preg_match("/^admin.menu([0-9]{3}).*\.php/", $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
$amenu[$m[1]] = $entry;
include_once($g4['admin_path']."/".$entry);
}
와 같이 수정합니다...
$tmp = dir($g4['admin_path']);
while ($entry = $tmp->read())
{
//if (!preg_match("/^admin.menu([0-9]{3}).php/", $entry, $m))
if (!preg_match("/^admin.menu([0-9]{3}).*\.php/", $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
if($is_admin != "super") {
$entry = "admin.menu200.php";
} else {
$amenu[$m[1]] = $entry;
}
include_once($g4['admin_path']."/".$entry);
}
위에 열거한 줄이 다를 수 있으므로 해당 소스와 같은 부분을 바꾸어 보세요...
테스트 해 보았는데 잘 되는데요.
회원관리만 남고 나머지 메뉴는 모두 사라지네요.
경로설정이 잘 못 된것 아닌지요.
그리고 admin.lib.php는 adm/_common.php 에서 include 합니다.
회원관리만 남고 나머지 메뉴는 모두 사라지네요.
경로설정이 잘 못 된것 아닌지요.
그리고 admin.lib.php는 adm/_common.php 에서 include 합니다.
처녀 뱃사공님 굿~~~~~~! ^^
와우~~~ 짝짝짝...
쳐녀 뱃사공 님 감사 감사 합니다.
감동의 폭포수...
여러 파일을 삽질하다가.. adm_new 을 새로 안만들고 기존 adm 을 그대로 이용하는 님의 멋진 팁에 감동중.. ㅠㅠ
다시 한번 감사드립니다.!!!!
또한 다소 이상한 질문에 성의있게 답해주신 고수님들께 감사 ^^ 드립니당.
쳐녀 뱃사공 님 감사 감사 합니다.
감동의 폭포수...
여러 파일을 삽질하다가.. adm_new 을 새로 안만들고 기존 adm 을 그대로 이용하는 님의 멋진 팁에 감동중.. ㅠㅠ
다시 한번 감사드립니다.!!!!
또한 다소 이상한 질문에 성의있게 답해주신 고수님들께 감사 ^^ 드립니당.