묻고답하기
alertScript 가 에러는 안내는데 동작도 안하네요..
2012.12.24 05:57
회원가입을 하고 나면
[메일이 발송되었습니다] .. 와 같은 메시지를 띄우고 싶어서
xe - module - member - member.controller.php 336 줄 부근에 (버전 1.5.3.7) 아래와 같이 alertScript 를 삽입하였습니다.
if ($config->enable_confirm == 'Y') {
$msg = sprintf(Context::getLang('msg_confirm_mail_sent'), $args->email_address);
alertScript($msg); // added : show 'E-mail sent messege'
$this->setMessage($msg);
}
그런데 아무런 변화가 없습니다. 회원가입을 해도.. 차이가 없네요..
혹시 이 구문으로 안들어가는게 아닌가 싶어서
alertScript($msg);sdafjklsajf 와 같이 쓰레기 값을 넣고서 반복해보니
회원가입후 멋지게 에러가 나는것을 보니, 제대로 alertScipt를 지나고 있는것 같습니다.
원인이 뭘까요? 이 alertScript라는 놈은 어디에 정의가 되어 있나요? 가서 보면 알수 있으려나 ;;;;;
댓글 8
-
송동우
2012.12.24 06:58
-
커피메이트
2012.12.24 07:54
이런 이른 시간에도 답변을 달아주시는군요 ㄷㄷㄷ ... 글이 길어서 아래에 다른 답변처럼 말씀을 드렸습니다. 감사합니다. -
커피메이트
2012.12.24 08:27
layout.html 맨 위에 넣었는데 동작을 하지 않아서, 화면을 캡쳐했습니다. 한번만 봐주시고.. 문제가 없는데도 그런거면 일단은 포기해야겠습니다. 감사합니다. -
커피메이트
2012.12.24 07:53
이렇게 이른 아침부터 답변을 달아주셔서 감사합니다.
의견으로 글을 썼더니, 옆이 이상하게 잘려보여서 보기 좋게 답변처럼 글을 달아서 말씀을 드립니다.
방금 가르쳐주신대로 해봤는데, 잘 되지 않습니다.일단 setCookie 를 넣는 부분은 member.controller.php 330 라인 근처에 제대로 넣은것 같습니다.여기 위치는 유일하니까 위치를 찾기가 어렵지 않았습니다.그런데<block cond="$joined">
{alertScript($lang->cmd_signup.$lang->cmd_complete)}
{@ setCookie('joined', 0, 0)}
</block>
을 layout.html 상단에 넣으라는데, 정확한 위치를 모르겠네요.제 layout.html 기준으로 시작하자마다 주우욱 <style> 이 있고 위에서 250번째 줄쯤에서 </style> 끝나는데,끝나자 마자 여기다가 넣어봤는데 일단은 동작하지 않습니다.여기는 Top Menu 에 해당하는 <div> 가 시작되기 이전입니다. 이런데다 넣어도 되나요?.................... 앞에 생략<up_icon_left">!--@if($layout_info->up_icon_left)-->
.main_menu .up_bg { left:{$layout_info->up_icon_left}px; }
<!--@end-->
</style>
<block cond="$joined">
{alertScript($lang->cmd_signup.$lang->cmd_complete)}
{@ setCookie('joined', 0, 0)}
</block>
<!-- Top Menu -->
<topmenu">!--@if($layout_info->topmenu == "N")-->
<!--@else-->
<x_layout_type">!--@if($layout_info->x_layout_type == "main")-->
<div class="top_gnb bgTop">
<!--@else-->
<div class="top_gnb">
<!--@end-->.......................... 뒤에 생략감사합니다.. -
송동우
2012.12.24 07:59
링크답변에 얘기했듯이
그냥 사용하는 레이아웃 상단에 넣으면 됩니다....
어디에 넣을지 찾지 말고
그냥 제일 상단에 넣어보세요.......
-
커피메이트
2012.12.24 08:21
제일 위에 넣고 재도전 해보았으나 동작하지 않습니다.
혹시 alerScript 가 정상적으로 동작하지 않는 경우가 있을까요?
-
송동우
2012.12.24 08:46
php 파일 위치가 잘못 되었습니다.
왜 기존에 넣었던 곳에 안넣고
주석처리하고 로그인 부분에 넣었나요?
링크된 곳의 답변을 참고하라고 했는데
그대로 따라했네요.....
두개의 질문은 다른 겁니다.
하나는 이메일 인증안하고 그냥 로그인 했을때
경고창 띄우는 것이고
하나는 이메일 인증하고
가입하면 이메일 보냈다고 하는 경고창 띄우는 것입니다....
그러니 똑같이 따라하면 안되고
스크립트만
넣으려고 하는 위치에 대신 넣어야 합니다.......
-
커피메이트
2012.12.24 09:30
네, 저도 위치가 잘못되었다는 것을 방금 확인하였습니다. 쿠키 값 생성을 확인하다가 찾았네요.
일단 제가 한 삽질 및 노가다를 다른분들이 반복하지 않게 하기 위해서 여태까지 제가 깨달은점(?) 들을 적어보겠습니다.
1. 회원가입후 이메일이 발송되었다는 메시지를 보고 싶다... 어떻게 하는게 가장 편한가?
제가 오늘 업데이트한 버전 1.5.3.7 에서는
회원가입후 이동할 사이트에 http://yourdomain/index.php?mid=yourpage&act=dispMemberSignUpForm 으로 처리해주는 방법이 제일 간단한것 같습니다.
회원가입후 ~~~로 가입 인증 메일이 발송되었습니다... 라는 메시지가 맨 위에 보입니다. 소기의 목적은 이것으로 달성하면 될 것 같습니다.
2. 송동우님의 답변과 관련하여
(1) 무슨 이유인지 몰라도 alertScript 가 member.controller.php 에서는 동작을 안합니다.
(2) alertScript를 넣었던 자리에 setCookie 해주는 것은 정상적으로 쿠키를 잘 만듭니다. 즉 joined 값에 1이 잘 들어갑니다.
(3) layout.html 맨 윗줄에 <block> 구문을 넣는 것은 동작을 안하는것 같습니다. 원인은 모르겠습니다.
다음과 같이 테스트 코드를 layout.html 1번줄에 삽입하여 보았습니다.
<block cond="$joined">
{alertScript("123")}
{alertScript($lang->cmd_signup.$lang->cmd_complete)}
{@ setCookie('joined', 0, 0)}
</block>{alertScript("$joined")}
{alertScript($joined)}
{alertScript("456")}일단 layout.html 을 수정하게 되면 캐시파일 재생성을 여러번 실행시키고도... 좀 시간이 지나야 먹는 것 같습니다.
XE가 원래 이러한 변화를 늦게 적용하게 되어 있는지는 모르겠지만, 여튼 하나 바꾸고 바로 먹지 않아서 테스트할때 좀 헛갈립니다.
그런데 결과도 좀 황당합니다. 위와 같은 구문을 넣어두면 456만 뜹니다...
즉 alertScript는 동작을 한다는 의미인데,
123이 안떴으니 cond 구문도 안먹은거고 (쿠키에 joined 가 1인것은 수동 확인하였음)
그런데 왜 "$joined" 라고 화면에 안뜬건지도 이상하고, $joined 값도 안불려지고..
다만 456은 정상적으로 불려졌습니다.
전~혀 이해할수 없는 결과이지만... 다른 분들도 참고하시라고 적어둡니다.
그리고 답변 계속해주신 송동우님 감사합니다.
-
송동우
2012.12.24 17:54
백번 말로 설명할 필요없이
그냥 보여주는 것이 더 나을 듯 합니다.....
몇 번을 테스트 해봤지만
안되는 경우가 한 번도 없네요.....
혹시 다른 사람이 여기 질문과 답변을 보면
안되는 답변을 올렸다고 생각할 것 같아서
절대 그렇지 않고
적용만 제대로 하면
절대로 안될 이유가 없다는 것을 눈을 볼 수 있도록
증거를 올립니다.....
참고:
아무것도 한 것 없이 그냥 설명한 대로만 하면 됩니다.....
참고2:
로그인 후 이동할 주소 넣는 기능은 예전부터 있었습니다......
눈으로 보기.....
-
커피메이트
2012.12.24 21:07
음... 뭔가 분위기가 좀 이상하게 흘러가는 기운이 느껴지네요.
저는 송동우님의 답변에 믿음을 가지고 있는 사람입니다.
아마도 제가 뭔가 실수를 했으니 안되는 거겠지요.
보여주신 동영상은 링크따라서 저도 보았고, 제 사이트에서도 그렇게 되기를 바라고 있습니다.
현재의 글로 하는 대화에서는 제가 실수한 부분을 제가 모르기에 다른 분들께 못 보여드리고 있는 것이고
(그러니 질문을 효율적으로 하지 못하고 있는 것이고)
송동우님께서는 제가 삽질하고 있는 부분을 직접 보실수 없는 상황이기에
어쩌면 너무 초보적인 부분을 제가 놓치고 있는 것일수도 있습니다.
(게다가 저는 웹프로그래밍이란걸 해본지 아주 얼마 안되는 초보입니다)
저는 송동우님께 감사하는 마음을 가지고 있고,
저도 문제는 해결해야 하니까 자꾸 질문을 하지만, 질문 한번 할때마다 귀찮게 하는건 아닐까 부담도 느끼고 있는데,
사실 초보의 입장에서는 아주 어이없는 실수들도 자주 하기 때문에
(제 생각에는) 어쩌면 제가 제 소스를 늘어놓고 한줄한줄 봐달라고 떼쓰기 전에는 해결이 되지 않을수도 있다는 생각도 듭니다.
원래 고수에게는 너무 당연한 것이라도 하수에게는 이해가 안될 수 있으니까요.
이미 답변을 위해 여러번 시도해보셨고, 한번도 안된 적이 없다고 하셨으니
저도 그 옳은 방법을 배우고 싶은 것인데
안되는 답변을 달아놓은 것처럼 보이는 게 싫으셔서 되는 동영상을 링크해주셨지만...
저는 그 동영상을 보면서.. " 아..~ 나도 되게 하고 싶다.." 하는 생각이 더 간절해질 뿐입니다.
과연 뭐가 문제일지 저도 참 궁금합니다..
제 사이트에는 지금 문제가 많아서,
비슷하게라도 해결된 것처럼 보이기만 해도 그 문제를 제끼고 있는 상황입니다.
게다가 아침부터 너무 귀찮게 해드리는 것 같아서 미안하기도 하고 부담이 되기도 해서
일단은 글을 정리하면서 나름대로 제가 시도해본것들을 적어놓고 다른 분들도 참고하시라고 한건데
행여 제 글에 오해가 있었다면 사과드립니다.
앞으로도 (귀찮으실테지만) 좋은 답변 많이 부탁드립니다. 항상 감사하고 있습니다.......
세션이나 쿠키를 이용하는 방법을 사용해 보세요.....
http://www.xpressengine.com/qna/21049727
링크 참고해서
alertScript 넣은 자리에 대신
쿠키를 굽고..........(쿠키를 사용한 답변이 있으니 링크의 답변 참고)
방금 확인차
또 한번 테스트 했습니다만
확인 영상은
링크답변에 있어서
생략합니다......