웹마스터 팁
로그인 후 그룹별로 다른 페이지로 가기 - 업데이트판 v1.5
2009.06.24 01:24
제것보다 더 좋은 것이 나왔습니다. - 소스 수정없이 외부페이지를 하나 만드는 것입니다.
http://www.xpressengine.com/?mid=tip&page=2&document_srl=18718631
참고로 하세요.
그래도 계속 뭐가 어떻게 돌아가는 알고 싶으신 분은 계속 보시고 사용하시기 바람니다.
공부를 좀 해서 완전 업데이트를 합니다. 쪼그만 수정으로 깔끔하게 작동합니다.
전번 허접 버젼에서 제공했던 것은 다 버리시고 이것만 하시면 됩니다.
최종판입니다. 테스트도 했는데 지금 껏 문제는 없는 것 같습니다.
v 1.0 : 누더기판 - 로그인 위젯부분 수정
v 1.1 : 로그인 위젯 변경없이 바로 ModuleObject.class를 직접수정
v 1.2 : 버그수정 (로그 아웃 후 페이지 이동문제)
v 1.3 : 버그수정 - 빨간색 부분 (페이지 이동후 메뉴 작동안됨)
v 1.4 : XE124 버그수정 - 갈색부분 (XE114 와 XE124 차이점 수정. 두 번전에 모두 사용가능)
v 1.5 : XE124, XE131 검정됨 : 관리자가 그룹에 속해 있을때 그룹 페이지로 이동하는 것 수정
예전글 (일부수정) ---------------------------------------------------------------------------------------------------------------
게시판에 찾아보면 종종 문의 하는 사람을 봤습니다. 그래서 아주 허접합지만 도움이 될까 해서 올립니다.
고수님들 수정 부탁드립니다.
적용대상 : 초보를 벗어난 제로보드 사용자중 그룹 관리를 원하는 사람
만든이유 : 한 회사에 사장, 부장, 과장, 대리, 말단 등 여러그룹의 사람들에게 각자의 홈페이지를 따로 보여줄때
따로 만들면 회원 아이디와 패스 공유문제가 생기는데 이것은 그냥 한의 홈페이지를 분류만 합니다.
작동원리 : 로그인 후 그룹을 확인 해서 지정된 페이지로 보낸다.
사장 페이지 - 프로젝트 승인, 자금융자, 부장 괴롭히기, 과장 괴롭히기
부장 페이지 - 기획, 승인, 결재, 말단직원 괴롭히기
말단 페이지 - 커피심부름, 담배심부름
의 페이지가 있을때 그룹에 따라 그 페이지로 자동이동합니다.
1. 관리자 페이지로 가서 회원들의 그룹을 설정한다. (사장그룹, 부장그룹, 과장그룹, 말딴그룹 - 주로 회원 가입시 바로됨)
2. 그룹별 페이지를 만든다. 물론 레이아웃, 메뉴도 따로 만든다. (기본 메뉴얼 참조)
3. 아래것을 짜집기 한다.
3-1 \classes\module\ModuleHandler.class.php 를 수정합니다.
대략 76번째줄
function init() {
$oModuleModel = &getModel('module');
$site_module_info = Context::get('site_module_info');
$logged_info = Context::get('logged_info');
if(($logged_info->is_admin=="N" && $logged_info && $this->mid=='')||($logged_info->is_admin=="N" && $logged_info && $this->mid==시작페이지))
{
foreach($logged_info->group_list as $g)
{
if($g=='사장그룹') { $this->mid = 사장페이지; }
elseif($g=='부장그룹') { $this->mid = 부장페이지; }
else{ $this->mid = 쫄따구페이지; }
}
}
추가 조치 요구사항
1. 첫 로그인 페이지를 하나 만듭니다. 두번다시 돌아오지 않을 페이지입니다.
- 이유 : 저의 기술적인 모자람때문 (공부중인데 끝이 보입니다.)
프로그램은 첫페이지와 회원의 로그인 상태만 확인합니다.
첫페이지에서 로그인만 되면 무조건 지정된 페이지로 자동이동합니다.
관리자는 제외입니다.
2. 로그아웃 후 첫 페이지로 돌아가도록 설정해야합니다.
관리자 => 회원 => 로그아웃 후 에서 설정하시면 됩니다.
- 이유 : 로그아웃후 현재 페이지에서 다른 사람이 로그인 할 경우
그룹 페이지로 가지 못합니다.
프로그램인 첫페이지와 로그인 상태를 확인하기 때문입니다
임시 해결법 그래서 두개의 첫페이지를 만듭니다. 하나는 로그인용 두번째는 전 회원을 위한 페이지.
많이 허접합니다 만 혹시나 하는 사람들에게 필요할지 모르겠습니다.
질문에는 답변할 실력이 안됩니다. 그래도 혹시 제가 알면 연락드리겠습니다.
* 혹시 문제가 발생하면 연락바람니다.
댓글 19
-
착한악마
2009.06.24 10:03
-
무대포2
2009.06.24 23:51
제가 실력이 모자라 아직도 옛날 스타일로 PHP를 사용합니다. 이 기능을 요청하는 사람들을 봤고 나도 답을 찾았지만 답을 찾을 수가 없었습니다. 그래서 궁리끝에 코드에 거의 손안대고 만들 수 있는 방법을 생각한 것입니다. 정신없이 글을 써 놓았는데 그래도 이해를 하셨고 도움이 되셨다니 다행입니다. 제가 공부중인데 알아내면 게정판 다시 올리겠습니다.
-
착한악마
2009.06.25 09:59
감사합니다. 이렇게 좋은 자료를 공유 해주신것도 감사한데...계정판까지..약속해 주시니....그 약속믿고 기다려봅니다..ㅎㅎㅎ
개인적으로는 애드온으로 나왔으면..하는 바램이.ㅎㅎㅎㅎㅎ
최고!!!!
-
yohan666
2009.06.25 12:14
음.. .아주 괜찮은 팁이네요 ^^;; 나중에 적용을 생각하고 있는데 아주 좋은 정보 감사드립니다.
-
무대포2
2009.07.03 00:12
게시판에 찾아보면 생각보다 많은 사람들이 이 기능을 원하고 있습니다. 저도 처음에는 필요는 했지만 꼭 만들필요는 없었는데 이번에 꼭 필요한 일이 생겨서 만들게 되었습니다. 이기능을 사용하시면 관리하는 사람으로서는 한 서브에 여러가지 홈페이지를 두고 쉽게 관리가 됩니다. 그리고 같은 그룹내에서 여러가지 작은 그룹으로 나누고 그에 맞는 홈페이지를 만들어도 관리가 됩니다. 별것 아니지만 보딩에 도움되었으면 합니다.
-
착한악마
2009.07.03 09:47
감사합니다..^^굿입니다....^^ xe업데이트떄 다시 설정해야하지만..그래도...좋습니다...
무대포2님 수고많으셨습니다.
-
착한악마
2009.07.03 10:10
그런데 xe 버전이 어떻게 되시는지요....1.2.3과 1.2.4에서는 해당 파일을 보니 유사한곳(78라인)은
/**
* @brief module, mid, document_srl을 이용하여 모듈을 찾고 act를 실행하기 위한 준비를 함
**/
function init() {
// ModuleModel 객체 생성
$oModuleModel = &getModel('module');$site_module_info = Context::get('site_module_info');
if(!$this->document_srl && $this->mid && $this->entry) {
$oDocumentModel = &getModel('document');
$this->document_srl = $oDocumentModel->getDocumentSrlByAlias($this->mid, $this->entry);
if($this->document_srl) Context::set('document_srl', $this->document_srl);
}
입니다...이곳을...
/**
* @brief module, mid, document_srl을 이용하여 모듈을 찾고 act를 실행하기 위한 준비를 함
**/
function init() {
// ModuleModel 객체 생성
$oModuleModel = &getModel('module');$site_module_info = Context::get('site_module_info');
$logged_info = Context::get('logged_info');
if($logged_info && $this->mid=='')
{
foreach($logged_info->group_list as $g)
{
if($g=='a 그룹') { $this->mid = 'admin_page'; }
elseif($g=='b 협력업체') { $this->mid = 'cooperation'; }
else{ }
}
}
이런식으로 고치면 되는지요... 현재 이렇게 하니..작동을 안하네요..ㅜ,.ㅜ;;저 또한 허접한지라.. -
착한악마
2009.07.03 10:19
앗 되는 군요...ㅎㅎㅎㅎ 죄송합니다..
그런데 레이아웃에 연결된 부분 로그인은 로그인시 작동합니다.
하지만 페이지를 만들어서 로그인위젯을 한곳에서 작동이 안하더군요...
그리고 그룹으로 로그인 후 그 페이지로 가지만 그 페이지가 메인 페이지가 되여버리네요.(로그아웃하면 메인페이지가 원상태로 돌아가지만요..
헉...그리고 관리 페이지 버튼 누르면 그룹에 지정한 페이지로 만 가는군요.....ㅡㅡ;;이것저것 문제가....ㅜ,.ㅜ
그래도 대단한 발전인 듯 합니다...
수고 많으셨습니다..^^ 감사합니다.
-
무대포2
2009.07.07 01:30
제가 사용하는 것은 XE 114 버전 입니다. 제 것에서는 별 문제가 없는 것 같은데...
제가 1.2x 로 업그레이드 했다가 몇번 혼이나고서 이제는 안정화 될때까지 업그레이드는 미루기로 했습니다.
게다가 소스 곳곳에 수정본 것이 많아서 조금 힘들지만
제가 곧 1.24를 한번 테스트 해보도록 하겠습니다.
전역변수 사용법을 알아니면 한나의 로그인 폼으로 다 해결이 될 것 같은데 발견하면 연락드리겠습니다.
어쨋거나 아직도 불편이 많으시다니 안타깝습니다. 해결이 되도록 개선방법을 알아보겠습니다. (시간은 미정)
-
착한악마
2009.07.09 10:38
ㅎㅎ 이렇게 노력해 주시니 곧 해결될듯합니다.^^ 노력해 주셔서 감사합니다..화이팅 입니다..^^ -
무대포2
2009.07.11 01:48
기다리시니 약간의 시간을 내서 문제를 해결했습니다. 기본적인 원리는 똑 같은데 XE114 와 XE124 가 처리 방식이 조금 틀리더군요. 그래서 조건문을 약간 바꾸었습니다. 마지막 로그아웃 되어서 가는 페이지처리도 약간 바뀌어서 처리했습니다.
제가 대충 확인해 보았는데 별 문제없이 되는 것 같습니다. 도움이 되었으면 합니다.
-
위크니
2009.07.22 12:06
설명부터 재미있네요.^^ 좋은 팁 감사합니다.
조만간에 사용해보겠습니다.
-
위크니
2009.07.26 20:30
관리자가 특정 그룹에 속해있을 경우 관리페이지 접속이 안되고 강제로 지정한 페이지로 넘어가버리네요...
-
무대포2
2009.12.30 03:36
관리자가 강제페이지로 넘어가는 것 수정했습니다. XE131에서도 작동이 됩니다.
-
무대포2
2009.08.15 04:51
제가 좀 바빳습니다. 답장이 늦었습니다. 관리자를 검색에서 빼면 되는데 제가 1.24 로 업데이트 했으니까. 조만간에 올려놓겠습니다. 어려운 문제 같이 보이지는 않습니다. 가장 쉬운 방법은 관리자를 그 그룹에 빼면 될 것 도 같은데 관리자 그 그룹에 꼭 들어가야 한다면 관리자를 검색하지 않은 방법을 넣어드리겠습니다.
-
위크니
2010.02.21 14:58
감사합니다. :)
-
poko
2010.01.30 14:25
if(($logged_info->is_admin=="N" && $logged_info && $this->mid=='')||($logged_info->is_admin=="N" && $logged_info && $this->mid==시작페이지))
1.위에 써준 소스중 따옴표 표시가 맞는지요?
2. 시작페이지라 함은 무엇을 말씀하시는 것인지요? 만약 제의 메인홈 주소가 mid=home이라면 "시작페이지"라는 글자대신 home을 써주라는 말씀인가요?
-
무대포2
2010.02.11 17:32
위의 코드는 사용하고 있는 것을 그대로 복사 했기때문에 그대로 사용하시면 되고요. 파란색 부분만 바꾸시면 됩니다.
시작 페이지는 말씀하신데로 하시면 됩니다. 혹시 안되시면 XE 버전하고 어떻게 사용이 안되는지 알려주시면 한번 살펴보겠습니다.
-
mindpainter
2010.05.29 14:56
저는 일단은 무대포님 글솜씨가 뛰어나시다는 생각이..
작동원리 : 로그인 후 그룹을 확인 해서 지정된 페이지로 보낸다.
사장 페이지 - 프로젝트 승인, 자금융자, 부장 괴롭히기, 과장 괴롭히기
부장 페이지 - 기획, 승인, 결재, 말단직원 괴롭히기
말단 페이지 - 커피심부름, 담배심부름
저 너무 웃엇어요..ㅋㅋㅋㅋㅋ 여러모로 이바지 하심을 감사드립니다. 개발 잘 되시길 바랍니다~
제목 | 글쓴이 | 날짜 |
---|---|---|
XE 최근 업데이트후 CSS background이 안먹히는 현상 해결. | 소렌트. | 2010.06.02 |
xe를 업데잇 하며 얻은 중대한 경험담. [4] | Blue Apple | 2010.06.01 |
게시글 조회수 바꾸기 [4] | 지B | 2009.08.15 |
XpressEngine 공식 매뉴얼(한글 파일) #2 [6] | 자이제로 | 2008.11.21 |
1.4.2 버전 업데이트 이후 발생하는 문제들과 대응 [10] | Gekkou | 2010.05.18 |
IE의 특정 도메인 인터넷 임시 파일 Cache만 삭제하기 [3] | NetEagle | 2008.10.22 |
로그인 후 그룹별로 다른 페이지로 가기 - 업데이트판 v1.5 [19] | 무대포2 | 2009.06.24 |
나의 웹사이트가 어떻게 보이는지 보여 줍니다. [2] | 레미짱 | 2010.05.21 |
xe_official_v2 xe공식레이아웃v2 관리자메뉴 나타나게 하기. [11] | Habile | 2009.07.24 |
XE 저장할때 팁 [4] | 멀티하자 | 2010.04.05 |
게시글볼때 댓글 입력폼 색상넣어서 구분짓기 | 유리가면™ | 2010.05.18 |
레이아웃 삽입 후 최근 설문조사 가져오기 | ilovesyr | 2010.05.18 |
Zend Optimizer + eAccelerator + Suhosin [1] | 김 무건 | 2010.05.12 |
XE 로그인이 안될때 확인해 보세요. [7] | 똑디 | 2008.12.11 |
회원이 이름, 닉네임등 정보 변경 못하도록 하기 [8] | 지연아빠 | 2007.12.22 |
드림위버에서 제로보드 XE 레이아웃 편집하기 [4] | 샤릉해 | 2009.02.10 |
Apache 설치 | 김 무건 | 2010.05.12 |
PHP 설치 | 김 무건 | 2010.05.12 |
MySQL 설치 | 김 무건 | 2010.05.12 |
conditional comment 을 이용한MS Internet Explorer 6이하 접속시 안내 페이지 유도 [접속 차단] 예제 [3] | 게임나라 | 2010.02.26 |
감사합니다. 저에게 꼭필요한 기능이였습니다..^^
헉 설치해 보니 진짜 무한 리플래쉬 하는군요..ㅎㅎㅎ
일단 말씀하신대로 레이아웃과 로그인셋을 따로 해서 무한리플래쉬를 막긴했지만...
ㅡㅡ;;; 더 좋은 방법은 없는 걸까요....
그룹별 로그인 페이지 지정하는 기능이 추가 되었으면 좋겠지만..ㅎㅎㅎ