묻고답하기
로그인 여부에 따라 페이지가 바뀌게 할 수 있나요?
2014.07.10 11:25
로그인을 하기전과 했을때 메뉴에 연결되어 있는 페이지를 다르게 하고 싶은데..
어느 부분을 바꿔야 할지 모르겠네요. 아시는 분 알려주시면 감사하겠습니다.
댓글 5
-
로이조52
2014.07.10 11:57
-
HSJI
2014.07.10 12:03
외부 페이지라면 아래와 같이 php파일을 작성하여 로그인 여부에 따라 각각 다르게 보여줄 수 있습니다.
간단한 내용이면 echo로 해결하고 길면 추가 페이지 작성해서 로드하시면 편합니다.
html파일도 cond를 쓰면 되겠지요.
외부페이지가 아닌 모듈(예를 들면 게시판)같은 경우 그 모듈 스킨에서 수정하셔야 합니다.
<?php $logged_info = Context::get('logged_info'); $user_name = $logged_info->user_name; if(Context::get('is_logged')) { echo("로그인 사용자만 보입니다.<br />"); echo("로그인 사용자 - $user_name <br />"); // require_once('login_page.php'); // 추가 페이지 로드 } else { echo("로그인 안한 사용자만 보입니다. <br />"); // require_once('logout_page.php'); // 추가 페이지 로드 } ?>
-
키시니쿠.
2014.07.10 14:08
답변 감사합니다.
그런데 제가 완전 XE는 완전 초보라서
저 부분을 고칠려면 해당 페이지를 가야 하는건가요? 아니면 메인 페이지에 추가 하면 되는건가요??
그리고
Context::get(
'is_logged'
) 이 부분이 로긴에 대한 세션 값 설정 여부를 가리키는거 맞나요??
-
HSJI
2014.07.10 15:15
관리자 페이지에서 사이트메뉴편집 > 메뉴 추가 > 외부페이지 로 메뉴를 만드시고
만들어진 메뉴 상세설정에서 위 댓글에 작성한 php파일이 있는 외부 문서 위치를 지정해주시면 됩니다.
이왕이면 루트폴더보다는 별도로 폴더를 만들어 외부문서들을 저장하시는게 관리하기에 좋습니다.
(ex 만든 kkk.php파일이 xe설치폴더\docu\에 있으면 => docu/kkk.php)
이러면 해당 메뉴를 눌렀을때 kkk.php파일을 보여줍니다.
말씀하신데로 Context::get('is_logged') 로 로긴여부를 판단하여 각 다른 내용을 구성하면 되겠지요.
위에
$logged_info = Context::get('logged_info');
$user_name = $logged_info->user_name; 는 이렇게 다른 정보도 변수로서 얻어올 수 있다고 보여주기 위해 썼을 뿐 로긴여부 판단에는 관계없는 사항입니다.(다른 xe템플릿은 api를 참조하시구요^^;;)
-
키시니쿠.
2014.07.10 16:02
답변 감사합니다. 어느 정도 의문점이 풀리기 시작하네요.
API를 참조해서 한번 해봐야겠네요.
로그인 후 해당 페이지로 가게 하기로 하고 메뉴 노출을 로그인유저로 하면 될 것 같은데요?