게시판 설정에서 $DAILYNUM을 사용하면 매일 닉네임이 변경되고  $DOCNUM을 사용하면 게시글마다 닉네임이 변경되는걸로 알고 있습니다

그러면 혹시 게시글마다 닉네임이 변경되는것과 동시에 하루가 지나면 닉네임이 다시 변경되는 기능도 가능한가요? 

  • profile
    한번 게시글에 올라가서 디비에 입력된 디비는 바뀌지 않아요.

    다만, 새로운 글일때 이전 게시글과 다르게 닉네임이 변경됩니다.
    "그러면 혹시 게시글마다 닉네임이 변경되는것과 동시에 하루가 지나면 닉네임이 다시 변경되는 기능도 가능한가요? " 정확히 어떻게 물어보신 것인지는 잘 이해가 안가는데.. 대충 제 생각으로는 기존의 게시글중에 닉네임을 변경된다는 것은 전혀 이루어지지 않고 매 12시 시간마다 새로운 닉네임을 부여해서 새로운 게시글일때 부여한다고 생각하시면 될 것 같아요.

    코드상으로 보니 기존게시글에 글쓴이가 댓글을 남겨도 글쓴이라고 나타나진 않을 수도 있겠네요..
  • profile
    아 다시 읽어보니.. 두기능 동시에 사용할 수 있냐고 물어보신것 같네요..
    해당 기능은 아무래도 코드상으로 보기엔 동시에 동작하지 않을것 같아요.
  • profile ?
    코어를 수정해서라도 동시에 작동되게 하는 방법이 있을까요? 아니면 의뢰를 따로 맡기는 방법밖에는 없나...
  • ? profile

    실행은 잠담못합니다.

     

    public function createAnonymousName($format, $member_srl, $document_srl)
    {
       if (strpos($format, '$NUM') !== false)
       {
          $num = hash_hmac('sha256', $member_srl ?: \RX_CLIENT_IP, config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$NUM' => $num));
       }
       elseif (strpos($format, '$DAILYNUM') !== false)
       {
          $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':date:' . date('Y-m-d'), config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$DAILYNUM' => $num));
       }
       elseif (strpos($format, '$DOCNUM') !== false)
       {
          $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':document_srl:' . $document_srl, config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$DOCNUM' => $num));
       }
       elseif (strpos($format, '$DOCDAILYNUM') !== false)
       {
          $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':date:' . date('Y-m-d') . ':document_srl:' . $document_srl, config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$DOCNUM' => $num));
       }
       else
       {
          return $format;
       }
    }

     

    위처럼 board.controller.php 파일의 createAnonymousName 메서드을 찾아서 다음과 같이 수정하시고(마지막 elseif부분이 추가되었습니다.)

    설정은 익명_$DOCDAILYNUM 으로 익명 닉네임을 설정해보세요.

     

     

  • profile

    아 추가한 댓글에서 elseif 뒤쪽의 && strpos($format, '$DAILYNUM') !== false는 제거해주세요.

    elseif (strpos($format, '$DOCDAILYNUM') !== false)
    {
       $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':date:' . date('Y-m-d') . ':document_srl:' . $document_srl, config('crypto.authentication_key'));
       $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
       return strtr($format, array('$DOCDAILYNUM' => $num));
    }


    추가된 코드 전문입니다.

  • profile ?
    닉네임에서 $DOCDAILYNUM가 그대로 뜨네요ㅠㅠ 혹시 몰라서 맨 아랫줄 DOCNUM를 DOCDAILYNUM으로 바꿔봤는데 그러면 게시글마다 닉네임이 동일하게 뜹니다
  • ? profile
    아.. 아래에도 있었네요. 제가 제거하라는 부분 제거해도 동일하던가요?(제거한다음 새로운게시글을 생성하셔야 합니다..)
  • ? profile
    일단 말씀하신대로 수정만 재대로 하셧다면 정상적으로 작동하는걸 제 서버에서는 확인했어요..
  • profile ?
    public function createAnonymousName($format, $member_srl, $document_srl)
    {
       if (strpos($format, '$NUM') !== false)
       {
          $num = hash_hmac('sha256', $member_srl ?: \RX_CLIENT_IP, config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$NUM' => $num));
       }
       elseif (strpos($format, '$DAILYNUM') !== false)
       {
          $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':date:' . date('Y-m-d'), config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$DAILYNUM' => $num));
       }
       elseif (strpos($format, '$DOCNUM') !== false)
       {
          $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':document_srl:' . $document_srl, config('crypto.authentication_key'));
          $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
          return strtr($format, array('$DOCNUM' => $num));
       }
    elseif (strpos($format, '$DOCDAILYNUM') !== false)
    {
       $num = hash_hmac('sha256', ($member_srl ?: \RX_CLIENT_IP) . ':date:' . date('Y-m-d') . ':document_srl:' . $document_srl, config('crypto.authentication_key'));
       $num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
       return strtr($format, array('$DOCDAILYNUM' => $num));
    }
       else
       {
          return $format;
       }
    }

    삭제해야하는 부분이 어디인가요? 위 코드처럼 수정했는데 닉네임을 익명_$DOCDAILYNUM로 설정하고 새 글을 쓰면 글쓴이가 같게 나옵니다ㅠ

  • ? profile
    코드는 재대로 고치신것 같은데요.. 그렇다면 다른 애드온이나 익명으로 닉네임을 변경하는 것이 있지 않는지를 확인해보세요..
  • profile ?
    한번 확인해보겠습니다! 도움주셔서 정말 감사합니다
  • profile
    아악!!! 내 눈!!! 왠지 모를 문자가 섞여있다!!!! >,.<