글/댓글쓰기 시에 회원 로그인이 되었다고 체크되면 스팸필터가 아예 동작하지 않도록

 

아니면 스팸필터 모듈 작동시에 최초로 로그인이 되었나 안 되었나부터 체크하도록 해서 로그인이 되었을 경우 차단된 ip내역이나 금지어 등을 적용하지 않도록 할 수 없을까요?

 

간단하게 해결이 안 되는 부분인지... 제작을 맡겨야 하는건지 모르겠네요

 

뭐 저로서는 스팸필터 모듈을 살펴봤지만 뭐가 뭔지 하나도 모르겠더군요...

 

만약 제작을 맡긴다면 이건 모듈 제작으로 들어가나요?

 

근데 스팸필터 모듈을 개조하는 식으로 하는것보다는 애드온으로 하는게 더 유지보수에 있어서도 나을 거 같은데...

 

애드온이 실행되는 시점을 보니까 모듈 실행 전에 실행되도록 할 수도 있던데, 그럼 애드온을 통해서 로그인 체크시에 스팸필터 작동 안하도록 할 수도 있나요?

  • ?
    모듈까지는 필요없을 것 같고, 애드온 수준에서 충분히 구현 가능할 것 같네요.
  • ?
    스팸필터 모듈을 수정하면 간단하게 구현됩니다.
    만약 모듈 수정이 싫으시다면 별도로 애드온을 제작하시면 될것같네요
    spamfilter.controller.php를 수정합니다.
    triggerInsertDocument, triggerInsertComment에서
    if($is_logged)
    {
    if($logged_info->is_admin == 'Y') return new Object();
    if($grant->manager) return new Object();
    }
    부분을
    if($is_logged) return new Object();
    이렇게 수정하시면 말씀하신대로 로그인 되어있는 경우에는 스팸필터가 적용되지 않을겁니다.
    실제로 해본건 아니고 코드만보고 알려드린거니 혹시 안되면 말해주세요.
  • ? profile
    그렇게하면 is_logged가 두번 선언되니까..
    위쪽을 if($is_logged) return; 으로 return만 추가해주고 { } 부분을 지워주면 깔끔하지 않을까요?

    그냥 지나가다가 참견 해봅니다...^^;
  • profile ?

    위쪽에 is_logged가 선언된건
    // Check the login status, login information, and permission
    $is_logged = Context::get('is_logged');
    $logged_info = Context::get('logged_info');
    $grant = Context::get('grant');
    부분 말고는 없는데,
    굳이 저 부분까지 생략해서 깔끔하게 하려면
    권한체크를 안하니까 필요없어진 $logged_info, $grant 두 줄도 같이 제거하고
    if(Context::get('is_logged')) return new Object();로 바꿔주면 되겠네요.

  • profile ?
    아, 혹시 잘못 읽으신건 아닌가요?
    저는
    if($is_logged)
    {
    if($logged_info->is_admin == 'Y') return new Object();
    if($grant->manager) return new Object();
    }
    부분을
    if($is_logged) return new Object();
    으로 교체하면 되겠다는 댓글이였는데.. {}부분은 없어요
  • ? ?
    감사합니다. 아주 잘 작동하네요
  • ? ?
    다행이네요:)
  • ?
    헐 기븐님 아까 제 게시물에 답글달아주지 않으셨어요?? 그거 지우지 말아주세요 ㅜㅜㅜ
  • ? ?
    댓글 입력하고 나니까 이미 코노리님이 직접 답변주셨길래 필요 없는줄 알았습니다. 조금 있다가 다시 적을게요
  • profile
    좋은자료 감사합니다. ^^
  • ?
    이것만 하면 메세지 보낼 때는 막히니까 triggerSendMessage도 같이 수정해야 합니다.