비회원 댓글 작성이 가능한 게시판에서 원글 작성자가 댓글을 남길 경우 댓글 닉네임옆에 (글쓴이)라고 표시를 하려고 합니다.

공개된 팁을 댓글 관련 페이지 댓글 닉네임을 표시하는 부분에서 아래 소스 코드를 적용했습니다.

 

<div class="ed comment-content">
        <div>
          <div class="ed flex flex-middle margin-bottom-xxsmall">
            <div class="ed inline-flex flex-middle margin-right-small">
              <h6 class="ed text-bold text-row-medium margin-right-xsmall margin-bottom-remove<!--@if(($comment->member_srl != 0 && ($comment->member_srl == $oDocument->variables[member_srl] || ($comment->member_srl * -1) == $oDocument->variables[member_srl])) || ($comment->member_srl == 0  && $comment->getIpaddress() == $oDocument->get('ipaddress')))--> text-primary<!--@end-->">
                <a class="ed link-reset" cond="!$comment->member_srl && $comment->homepage" href="{$comment->getHomepageUrl()}" target="_blank">{$comment->getNickName()}</a>
                 <span cond="!$comment->member_srl && !$comment->homepage">{$comment->getNickName()}</span>
                <a cond="$comment->member_srl" href="#popup_menu_area" class="ed link-reset member_{$comment->member_srl}" onclick="return false">{$comment->getNickName()}</a>
<!--// 댓글 작성자가 글 작성자인 경우 표시-->
<!--@if(($comment->member_srl != 0 && ($comment->member_srl == $oDocument->variables[member_srl] || ($comment->member_srl * -1) == $oDocument->variables[member_srl])) || ($comment->member_srl == 0  && $comment->getIpaddress() == $oDocument->get('ipaddress')))-->
<span style="font-weight: normal;">( 글쓴이 )</span>
<!--@end-->

 

정상적으로 잘 작동 ( 글작성자가 댓글을 남길경우 닉네임옆에 (글쓴이 )표시 )이 되는데요.

한가지 비회원이 댓글을 남길경우 해당 글작성자가 아님에도 불구하고 댓글 닉네임옆에 (글쓴이)가 표시되는 문제가 있습니다.

 

여러가지 시도를 해봤는데 해결이 안되는데요. 혹시 도움 좀 받을 수 있을까요?

 

  • profile

    1. member_srl 비교시 abs(절댓값)를 사용하시면 비교 한번에 익명/비익명 두 경우에 모두 대응 가능합니다.
    2. 아이피 주소는 글 작성자와 댓글 작성자가 모두 비로그인시에만 비교해야 합니다.(현재는 댓글 작성자 로그인여부만 체크하는것 같네요) 아이피주소 자체는 로그인한 경우에도 저장되기 때문입니다.

  • profile ?
    답변감사합니다. 해당 내용으로 검색 우선 해보도록 하겠습니다.
  • ?
    [ 댓글이 달려서 수정이 불가능하네요. 아래 내용 수정했습니다. ]

    비회원 글작성이 불가능하고 비회원 댓글 작성만 가능한 게시판을 운영중입니다.

    게시판에서 원글 작성자가 댓글을 남길 경우 댓글 닉네임옆에 (글쓴이)라고 표시를 하려고 공개된 팁을 댓글 관련 페이지 댓글 닉네임을 표시하는 부분에서 아래 소스 코드를 적용했습니다.
  • ? profile

    abs($comment->get('member_srl')) === abs($oDocument->get('member_srl'))
    로 확인이 되지 않을까요?

  • profile profile
    비회원까지 검사해야한다고... 질문에 있으니.. 저게 만사는 아니죠
  • profile profile
    저도 비회원이 자꾸 언급돼서 헷갈리긴 했는데 비회원은 글 작성이 불가능하니 애초에 원글 작성자는 회원번호가 있을 수밖에 없지 않나요오..
  • profile profile
    글작성이 회원만 작성가능하다는 조건이 본문에 나타나지 않아 그렇지 않다라는 가정도 생각해볼 필요는 있어보입니다.
  • profile ?

    알려주신 팁 대로 적용을 해보니 정상작동이 됩니다. 감사합니다.^^

     

    [ 기존 코드 ]

    <!--// 마트몬 댓글 작성자가 글 작성자인 경우 표시-->
    <!--@if(($comment->member_srl != 0 && ($comment->member_srl == $oDocument->variables[member_srl] || ($comment->member_srl * -1) == $oDocument->variables[member_srl])) || ($comment->member_srl == 0  && $comment->getIpaddress() == $oDocument->get('ipaddress') ||))-->
    <span style="font-weight: normal;">( 글쓴이 )</span>
    <!--@end-->

     

    [ 대체 적용코드 ]

    <!--@if( abs($comment->get('member_srl')) === abs($oDocument->get('member_srl')) )-->
    <span style="font-weight: normal;">( 글쓴이 )</span>
    <!--@end-->

  • profile profile

    아 어쩌면, 같은 스킨을 공유하는 다른 게시판에서 비회원 글쓰기가 가능하다면(그리고 지금 게시판이 향후에 비회원 글쓰기를 허용하는 쪽으로 운영 방침이 변경된다면) 거기서는 비회원 모두가 글쓴이로 나올 수 있겠네요.

    아래에서 언급하신 것처럼 비회원을 아예 제외시켜두는 게 바람직한 것 같습니다 :)

  • profile
    깔끔하게 코드 분리해서 생각하면 로직이 쉬워집니다.
    <!--@if(abs($oDocument->get('member_srl') >0 || $comment->member_srl > 0)-->
    <!--@if(abs($comment->get('member_srl') === abs($oDocument->get('member_srl'))-->
    글쓴이
    <!--@end-->
    <!--@else-->
    <!--@if(($comment->getIpaddress() == $oDocument->get('ipaddress')))-->
    글쓴이
    <!--@end-->
    <!--@end-->
  • profile ?

    [ 기존 코드 ]

    <!--// 마트몬 댓글 작성자가 글 작성자인 경우 표시-->
    <!--@if(($comment->member_srl != 0 && ($comment->member_srl == $oDocument->variables[member_srl] || ($comment->member_srl * -1) == $oDocument->variables[member_srl])) || ($comment->member_srl == 0 && $comment->getIpaddress() == $oDocument->get('ipaddress') ||))-->
    <span style="font-weight: normal;">( 글쓴이 )</span>
    <!--@end-->

    를 알려주신 코드 로 대체해서 적용을 해보니 서버 오류가 발생이 되는데요. ^^;; 오류 내용을 한번 확인 해보도록 하겠습니다. 감사합니다.

  • profile ?
    괄호 몇개를 추가 해보니 정상 작동됩니다. 감사합니다. ^^

    <!--@if( abs($oDocument->get('member_srl')) >0 || $comment->member_srl > 0 )-->
    <!--@if( abs($comment->get('member_srl')) === abs($oDocument->get('member_srl')) )-->
    글쓴이
    <!--@end-->
    <!--@else-->
    <!--@if( ($comment->getIpaddress() == $oDocument->get('ipaddress') ))-->
    글쓴이
    <!--@end-->
    <!--@end-->
  • ? profile
    첫줄 $comment->member_srl 에서도 abs함수로 감싸주세요.
  • profile ?

    감사합니다.

    알려주신 내용을  아래처럼 적용을 했는데요 에러는 발생하지 않는데 제대로 맞게 한거죠?

    [전]

    <!--@if( abs($oDocument->get('member_srl')) >0 || $comment->member_srl > 0 )-->

     

    [후]

    <!--@if( abs($oDocument->get('member_srl')) > 0 || abs($comment->member_srl ) > 0 )-->

  • ? profile

    붙여넣은_이미지_2022_3_25_오후_3_42.png


    다크 모드를 쓰는지라.. 노랑색 바탕은 자제부탁드립니다.ㅠㅠ