질문/조언질답게시판

처음에 가입할 때 닉네임을 정하잖아요. 그 이후에는 회원들이 닉네임을 변경하지 못하게 할 수도 있나요?

관리자 페이지에서 찾아봐도 없는거 같아서요...ㅠ 혹시 제가 잘 못 찾은거라면 죄송합니다.. ㅠㅠ

  • profile

    스크립트보다 가장 확실한 방법
    --> 회원정보 수정 폼에서 닉네임 항목을 지워버리면 됩니다. 저희가 그렇게 하고 있습니다. 기존에 나온 자료가 스크립트가 동작이 원할하지 않을때 뚫리는 경우가 있어서... 저희는 아예 회원가입이 아닌 회원정보수정 폼에서 지워버렸습니다.

     

    <[email protected]($formTag->name=='nick_name')-->

    <[email protected]>

     

    또는

    cond="$formTag->name=='nick_name'"

     

    이런 조건으로 해당항목만 제어할 수 있습니다.

  • profile ?
    흠;; 제가 초보라서 어느 파일을 어떻게 수정해야 하는지 알려주실 수 있나요...? ㅠㅠ
  • ? profile
    그럼 그냥 모듈을 사용하세요.
    https://xe1.xpressengine.com/index.php?mid=download&package_id=22753388
  • profile ?
    혹시 회원정보수정폼 파일명을 알려주실 수 있나요? 답변 감사드립니다 ^^
  • ? profile

    아니요. 간단한게 아니라 설명을 처음부터 하기는 어렵겠어요. 모듈을 사용하시는게 편하실 듯 합니다.

    저희는 애드온을 사용해서 뚫렸던 것이라 모듈은 아마 뚫일일 없지 싶습니다.

  • profile ?
    세진7940님의 모듈을 다운받아서 설치했습니다. 괜찮은 모듈인거 같습니다. 조언 감사드립니다 ^^
  • profile

    * 닉네임, 이름 변경 금지 시키기
    xe - modules - member - member.admin.view.php 파일을 열고 508열~쯤?

    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]);}

    이 내용을 추가해 줍니다.

    ----------------------------------------------------

    ** 참고로 이메일 수정 금지 시키기

     

    위 같은 파일 조금 위에 ...?

     

    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" />';

     

    로 수정해줍니다.

  • profile ?
    오! 꿀팁이네요!! 한번 해보겠습니다. 감사합니다 ^^
  • ? ?
    좋은 팁입니다 ^^

    그런데 input 에 disabled 로 처리하는건, 사실 요소검사나 개발자모드 등을 조금 쓸 줄 아는 유저면 그걸 지워버리면 바로 변경처리가 다시 가능해지는 문제가 생기죠. ( 없을거 같은데 요즘은 의외로 쓸 줄 아는 사람이 정말 많더군요. 브라우저가 좋아진 부작용이죠 )
    결국 제대로 고치려면 Core 에서 실제 회원정보변경이 저장되는 controller 쪽에서 강제제거를 해줘야 될거예요
  • ? ?
    회원정보변경폼 소스에서 닉네임 변경부분을 아예 제거하는게 안정적이라는 말씀이시죠?