제목처럼 "관리권한이 있는 사용자 (최고관리자, 모듈관리자, 게시판관리자 등) 가 작성한 게시물 (예, 공지사항 등) 내용에서 사용자 (예, 방문자, 로그인 사용자, 관리권한자 등) 에 따라 확장변수를 감추거나 다른 문구로 대체할 수 있는 방법"이 궁금합니다.

 

예를 들어, 일반 사용자에게 신청을 받는 게시판의 경우, 관리(권한)자가 공지사항 형식의 게시물을 작성한 경우, 굳이 필요없는 확장변수 (예를 들어 주문상품명, 수량 등) 를 숨기고 싶은데, 아무리 찾아봐도 해결법을 찾질 못하겠습니다.

 

생각으로는, 게시물의 작성자를 체크하여 관리권한 있는 경우에는 if함수를 이용하여 기존스킨에서 해당 부분을 안보이게 하면 될 것 같기는 합니다. 

즉, 해당 변수를 감추기 위해 게시물 작성자(이름) 추출 >> 작성자의 관리권한 체크(is_admin="Y") 하는 함수를 어떻게 작성해야 하는지 모르겠습니다.

 

실력 있는 분의 조언을 해주시면 정말 감사하겠습니다.

이것때문에 며칠을 고생하며 진도를 못나가고 있습니다.

 

감사합니다.

  • profile
    관리자가 작성한 공지사항의 확장변수의 출력을 감추는 것은 아니고, (이거는 좀 복잡할 것 같네요)
    관리자가 공지사항을 작성할 때는 확장변수를 입력하지 않아도 되는 팁은 있습니다만...
    https://xetown.com/tips/1725180
  • profile ?
    좋은 팁, 감사드립니다.
    이런 팁을 미리 알았다면 또다른 고생을 하지 않았을텐데....
    저도 이부분을 고민하다가 관리자인 경우에는 임의의 값을 넣고 숨김처리해서 허접하게 해결했습니다.
    이렇게 하다보니, 특히 위의 문제를 해결해야하는 상황이 되었습니다.

    다시 말하면, 어찌어찌하여 관리자가 글을 작성하는 경우에는 변수를 건너뛰게 했는데, 이렇게 작성된 글을 보려니(read) 건너뛴 항목이 보여서... 이걸 안보이게 해야 할 필요가 생기더라고요.

    답변에 감사드립니다.
  • profile
    <!--@if($oDocument->get('is_notice') !== 'Y' && getModel('member')->getMemberInfoByMemberSrl($oDocument->get('member_srl'))->is_admin !== 'Y')-->
    확장변수
    <!--@end-->

    이렇게 하면 게시글이 공지이고 글쓴이가 최고관리자일때 확장변수를 숨길 수 있습니다. 다만 게시판관리자의 경우 $checkGrant = getModel('module')->getGrant($module_info, getModel('member')->getMemberInfoByMemberSrl($oDocument->get('member_srl')) 넣고..

    <!--@if($oDocument->get('is_notice') !== 'Y' && !$checkGrant->manager)-->
    확장변수
    <!--@end-->

    이런식으로 활용할 수 있겠습니다.

    재대로 테스트 해본건 아니니까 디버깅하면서 테스트 충분히 하시면서 구현하시길 바랍니다 :)
  • profile ?
    람보님 조언대로 했더니, 관리자인 경우에 원하는대로 출력됩니다. 정말 감사합니다.

    그런데, 게시판관리자의 경우에 넣어야 하는 "$checkGrant = getModel('module') ......" 부분은 구체적으로 어디에 추가/삽입해야 하는 건가요?
  • ? profile
    if문 써야할 바로 윗줄이나 그 위에 먼저 호출되어있으면 어느곳이던 상관없습니다 .(if문 다음줄은 해당없음)

    {@
    // 여기에 알려드린 코드 작성
    }

    <!--@if(~~~~)-->
    <!--@end-->
  • profile ?
    람보님 덕분에 해결되었습니다.

    게시판관리자의 경우에 중간에 삽입되어야 하는 내용 중 마지막에 ")"가 하나 더 넣어야 하는 걸 알기까지 주말을 소비했지만, 결코 아깝지 않습니다. ^^

    다시 한 번 람보님께 정말정말 감사드립니다.
    그런데, 제가 아직 정회원이 아니라서 "좋은답변" 추천을 할 수가 없네요. 죄송합니다. ㅠㅠ
  • ? profile
    테스트를 하지 않은 코드이다보니.. 오타실수는 언제나 나타날수는 있어요..

    그때는 오류뜨는 에러내용을 번역기 돌려보면 잘알 수 있긴한데... 보통은 프로그램은 괄호에 대해서 아주 대칭을 선호한다는 패턴을 아시면 좋습니다.

    열리는 곳이 있으면 어디에나 닫히는 곳이 있습니다.
  • profile ?
    넵! ^^;;