Extra Form
PHP PHP 8.1
CMS Rhymix 2.x

댓글에 특정 문자열이 포함될 시에, 댓글 작성시 해당 부분을 체크해서

 

게시판에 존재하는 추천 버튼을 자동으로 함께 누르게 하고 싶습니다.

 

document, 또는 comment 모듈의 추천함수를 php에서 호출하면 구현이 간단해질 것 같으나

 

보드 스킨 자체에서 사용자가 추천 버튼을 누르면 예쁜효과가 발생되는 등 구현이 되어있어서

되도록이면 그냥 사용자가 마우스를 클릭했을때와 같이 구현하고 싶습니다.

 

    public function triggerAfterInsertComment($obj)
    {
        $config= $this->getConfig();
        if ($config->autovote_on == 'Y')
        {
            if(strpos($obj->content,"추천"))
            {
                Context::addHtmlFooter('<script type="text/javascript">$(".추천버튼").click();</script>');
                
                
            }else if(strpos($obj->content,"비추천")){
                
                Context::addHtmlFooter('<script type="text/javascript">$(".비추천버튼").click();</script>');
            }
        }
        return;    
    }

 

php는 서버 사이드 언어이기때문에, addHtmlFooter을 통해서 스크립트를 넣어주려는 시도를 해보았는데

잘 안되네요 ㅠㅠ

혹시 제가 잘못 이해한 부분이 있을까요?

  • profile

    댓글 작성 액션은 AJAX를 사용해서 POST로 전송하고 JSON으로 결과가 돌아옵니다.

    그 과정 어디에도 HTML을 출력하는 부분은 없기 때문에, HTML 푸터를 출력해도 의미가 없습니다.

     

    프론트단에서 어떤 효과를 주고 싶다면 프론트단에서 구현하셔야 합니다.

    즉, 순수하게 JS만으로 구현하셔야 하며, PHP에서 JS를 출력하는 방식은 타이밍이 맞지 않습니다.

  • profile profile
    이해하였습니다 감사합니다!
  • profile
    triggerAfterInsertComment 트리거 액션에서는 js를 호출할 수 없습니다.

    트리거를 건드릴게 아니라 댓글 입력 할때 작성버튼을 누를때 효과 + 추천에 대한 코드도 함께 실행되도록 하셔야 합니다.
  • profile profile
    순수 JS로 구현하기에는 버튼을 누르는 것은 가능하나,

    strpos 함수가 없어서 문자열 체크를 하지 못할것 같은데 혹시 js상에도 문자열 체크 함수가 있을까요?!

    구글링을 해보았으나 관련 자료는 없는것 같습니다 ㅠㅠ
  • profile profile
    https://xe1.xpressengine.com/index.php?mid=tip&search_target=title_content&search_keyword=%EC%B6%94%EC%B2%9C&document_srl=21205871

    의외로 간단한걸요?

    댓글 작성시 들어가는 버튼을 위의 핵심에 필요한 코드들을 넣어 만든다면요
  • profile profile
    감사합니다!!
  • profile profile
    https://www.google.com/search?q=js+strpos
  • profile profile
    감사합니다!!