Extra Form
PHP PHP 7.0
CMS XpressEngine1

1. 타 회원의 회원정보나 자신의 회원정보를 볼때 나타나는 항목명(첨부이미지에서 한글표기)은 어디에서 수정이 가능한가요?
2. 해당 항목중에서 사용자정의항목으로 추가된 항목을 관리자만 열람가능하도록 하려고 하는데 어디에서 수정해야 할까요?

 

미리 감사드립니다.

 

2222.jpg

  • profile
    1. 항목명을 단순히 바꾸고자 하신다면 /modules/member/lang/ko.php 에서 바꾸시면 될 겁니다.
    2. 회원 모듈에 따로 스킨을 적용하지 않으신 거라면 /modules/member/skins/default/member_info.html 에서 8~10번재 줄의 노출 조건을 바꾸면 되긴 합니다. 다만 "추가된 항목"이란 부분에 대해선 부연 설명이 필요할 듯합니다. 회원 모듈의 기본 스킨은 기본항목과 추가항목을 구분하지 않고 연동시키기 때문에 어떤 기준으로 나누느냐에 따라 부여하는 변수값이 달라질 것 같습니다.
  • profile profile
    1. 코어 수정은 되도록이면 안하는게 유지보수상에서 더 좋습니다.

    member/skins/default/member_info.html 파일역시 건드리지 않고 default 폴더를 새롭게 다른 폴더이름으로 복사하신다음 해당 폴더에서 고치신다음 고친 스킨을 디자인설정에서 선택하셔서 사용하시는게 더 좋습니다.

    해당 폴더안에

    <tr loop="$displayDatas => $item">

    이 태그 안에서 $item->title == '회원정보' 뭐 이런 조건문을 걸어서 해당 출력되는 값을 "스킨상"에서 구현하시는 것이 추후 유지보수에 도움이 될 수 있습니다.
  • profile profile
    감사합니다. 회원가입폼에 입력되는 항목 중 기본값이 아닌 추가로 생성된항목(확장변수?)에 대한 노출제어가 필요해서 입니다. 좋은주말 되세요
  • profile profile
    $displayDatas => $item 에서 뿌려주는 특정 한가지 항목()만 노출제어를 하고싶었습니다. 스킨상에서는 그게 불가능한것 같아서 코어를 수정해서라도 하고싶었지만 일단은 $displayDatas => $item 에서 뿌려주는 항목전체(이름,아이디,이메일주소, 프로필사진 등 전체를 cond 로 제어했습니다. 그 중 한가지만 가려주고싶은데 말이죠 ㅠㅠ
    답변해 주셔서 감사합니다.
  • profile

    출력을 원하지 않는 변수가 있는데, 당사자 회원과 관리자만 보게 하고 싶다면 이런 식으로 해보세요.

    사용하시는 스킨에서 반복문 태그명이 tr이라는 가정 하에

    <tr loop="$displayDatas => $item">
    <!--@if($item->name == '가리고 싶은 확장변수의 id' && ($memberInfo['member_srl'] != $logged_info->member_srl || $logged_info->is_admin != 'Y'))-->
    {@ continue;}
    <!--@endif-->
    ~~~~~
    </tr>

  • profile profile

    감사합니다. 윤삼님의 말씀대로 적용해보니 해당구문에서 뿌려줄 모든 항목들이 가려지게됩니다. 제가 PHP에 대해 무지하다보니 밥상차려주셔도 어렵네요. 아래처럼 적용했습니다.

    <block loop="$displayDatas => $item">
    <!--@if((($item->name == 'phone')||($item->name == 'address')) && ($memberInfo['member_srl'] != $logged_info->member_srl ||$logged_info->is_admin != 'Y'))-->
    {@ continue;}
    <dt><em cond="$item->required || $item->mustRequired">*</em> {$item->title}</dt>
    <dd cond="$item->value">{$item->value}</dd>
    <dd cond="!$item->value" style="color:#ccc">&hellip;</dd>

    <!--@endif-->
    </block>
    바쁘시겠지만 한번만 더 봐주시면 고맙겠습니다.

  • profile
    1. <!--@endif-->의 위치가 잘못되어 있습니다.
    2. 여러 개의 변수에 적용하려면 in_array 함수로 관리하는 게 좀 더 직관적일 겁니다.
    3. 다시 보니 제가 드렸던 조건문에서 or을 and로 해야 하는 게 맞는 것 같습니다.

    이렇게 해보면 어떨까 싶습니다.

    <block loop="$displayDatas => $item">
    <!--@if(in_array($item->name, ['phone', 'address']) && ($memberInfo['member_srl'] != $logged_info->member_srl && $logged_info->is_admin != 'Y'))-->
    {@ continue;}
    <!--@endif-->
    <dt><em cond="$item->required || $item->mustRequired">*</em> {$item->title}</dt>
    <dd cond="$item->value">{$item->value}</dd>
    <dd cond="!$item->value" style="color:#ccc">&hellip;</dd>
    </block>
  • profile profile
    정말 감사합니다. 원하는대로 적용이 잘 되었습니다,
    이메일주소가 안보여지긴한데 어차피 숨기려고 했던항목이라 원하는대로 된거같습니다.
    좋은 한주 시작하시고 늘 행운이 함께하시길 바라겠습니다.
  • profile profile
    근데 이게 제가 방금 보니까 관리자 페이지에서 회원설정 > 회원가입 쪽에서 (몇몇 필수 항목들을 제외하면) 항목마다 공개 여부 선택할 수 있지 않나요? 만약 그걸로 된다면 굳이 스킨 수정은 안 해도 될 것 같아요 :)
  • profile profile
    예, 그렇긴한데 위에 언급한 회원들 외에 특정회원(일정레벨 이상인회원)의 경우에도 열람이 가능하도록 하려구요.
  • profile profile
    아, 그럼 스킨 수정하셔야겠네요 :)
  • profile profile
    감사합니다. 하시는 일도 번창하시길 바랄께요^^