묻고답하기
1.7] 닉네임, 메일 등 수정,변경 금지
2013.04.26 03:47
안녕하세요.
회원가입 후 회원정보 수정에서 다음 정보들을 수정하지 못하게 하려고 합니다.
이메일주소, 이름, 닉네임
열심히 검색해보고 여러 방법이 있길래 다 사용해봤지만 대개 내용이 1.5 버전에 맞춰져 있어서 1.7에서는 적용이 안되더군요.
가장 근접한 방법이
==============
5. 회원가입 후 닉네임은 관리자만 변경 가능하게 하기
(1) 4. 의 방법을 응용하여
xe - modules - member - skins - default / modify_info.html
<div class="controls" cond="$formTag->name != 'signature'">{$formTag->inputTag}</div> 을 ~
<div class="controls" cond="$formTag->name != 'signature'&&$formTag->name!='nick_name'">{$formTag->inputTag}</div> 로 변경
단점 : 닉네임 칸은 없어지지만 '닉네임'이라는 글자는 남음.
댓글 14
-
푸시아
2013.04.26 06:49
애드온으로 해결 가능합니다 -
크르릉33
2013.04.26 16:06
조언 감사합니다. 도저히 수정으로 안되면 애드온 사용하려 했는데 막판 삽질끝내 성공했습니다. ㅠ.ㅠ -
송동우
2013.04.26 08:38
http://www.xpressengine.com/qna/20457366
여기 보면 이해될겁니다....
email 부분은 답변 링크 페이지 적용하는 곳 몇 줄 위에 있습니다.
나머지들은 답변 이해하면 적용할 수 있을 겁니다.
좀 더 검색을 원하면 readonly 이것으로 검색해서
답변탭을 클릭해보세요.......
1.5.x 에서 되는 것은 1.7.x 에서도 됩니다.....
-
크르릉33
2013.04.26 16:07
답변 감사합니다. 위 답변도 검색을 통해 찾았던 답변인데 1.7에는 같은 내용이 없어서 적용 못했던 부분입니다... -
크르릉33
2013.04.26 16:07
설명이 줄 번호로 나와 있고 시작이 else로 시작해서 막막했는데... 이해를 해보라 하셔서 벼락치기 공부를 좀 했습니다. -_-;;; -
크르릉33
2013.04.26 16:08
1.7에서는 같은 문서 492번줄즈음 $inputTag='<input type="email"~~에 disabled="disabled" 추가 하고 닫아줘서 이메일은 해결했고 -
크르릉33
2013.04.26 16:09
이름은 없어서 무척 당황했는데 흐름을 열심히 찾아보니까 아래쪽에 있더군요.. 507번 줄 $inputTag=sprintf('<input type="text" name="%s"~~ 뒤에 disabled="disabled" 를 넣고 닫으니 이름도 적용되네요. -
크르릉33
2013.04.26 20:37
아니네요. 제 설명대로 하면 회원가입시에도 입력 불가가 되어버립니다 --;;; 이게 아닌데.. -
크르릉33
2013.04.26 21:17
혼자 띵똥띵똥 죄송합니다.;;; 찾았습니다! 으하하하! 내용은 본문 수정으로 올려뒀습니다. 혹시 나중에 필요하신분들 참고하시도록요.. 도움 감사합니다. -
크르릉33
2013.04.26 21:21
1. 닉네임, 이름 변경 금지 시키기
xe - modules - member - member.admin.view.php 파일을 열고
else
{
$formTag->type = 'text';
$inputTag = sprintf('<input type="text" name="%s" id="%s" value="%s"/>',
$formInfo->name,
$formInfo->name,
$memberInfo[$formInfo->name]);
요 내용 바로 위에
else if(($formInfo->name == 'user_name' || $formInfo->name == 'nick_name') && Context::get('logged_info') && Context::get('logged_info')->is_admin != 'Y'){
$inputTag = sprintf('<input type="text" name="%s" value="%s" disabled="disabled" readonly="readonly" />',
$formInfo->name,
$memberInfo[$formInfo->name]);}
이걸 추가해줍니다.
2. 이메일 수정 금지 시키기
같은 파일 조금 위에
else if($formInfo->name == 'email_address')
를 찾아 주석처리하고 바로 아래줄에 이렇게 넣어줍니다.
else if(($formInfo->name == 'email_address') && Context::get('logged_info') && Context::get('logged_info')->is_admin != 'Y')
그리고 그 아래아래 있는
$inputTag = '<input type="email" name="email_address" id="email_address" value="'.$memberInfo['email_address'].'" />';
를 찾아
$inputTag = '<input type="email" name="email_address" id="email_address" value="'.$memberInfo['email_address'].'" disabled="disabled" />';
로 수정해줍니다.
끝!@
-
크르릉33
2013.05.06 04:24
이렇게 할 경우 일반회원이 다른 정보도 수정하지 못하는 문제가 발생했습니다. --;; disabled="disabled" 요 부분을 빼야합니다. -
크르릉33
2013.05.06 04:25
멍청멍청 ㅠ.ㅠ -
여유와함께
2014.08.16 22:10
크르릉33님 감사해요 ㅜㅜ 덕분에 해결하고 싶던 문제가 해결되었습니다! 정말 감사합니다!^^
-
보보2
2017.07.16 08:06
disable이나 readonly로 바꿔도 css로 풀어버린다음에 수정하면 수정이 되버릴텐데.ㅠㅠ;;
저는 아예 안뜨게 하고 싶은데 modify_info.html 단 이전에 model.view.php에서 수정하고 싶은데 잘 안되네요.