Q&A

작성한 댓글이 추천을 받았을 경우, 본문의 확장변수가 보이는 방법 문의

2023.06.14 14:21
1,644
0
CMS/프레임워크 Rhymix 2.0
개발 언어 PHP 7.4

안녕하세요. 오랜만에 문의드립니다.

 

작성한 댓글이 누군가에 의하여 추천을 받았을 경우,

해당 댓글 작성자가 본문의 확장변수를 볼 수 있었으면 좋겠습니다.

날아라님의 애드온과 윤삼님의 올려주신 팁들을 보고 있는데요. 많이 어렵네요.

- 확장변수 선댓글 : https://xetown.com/tips/584416

- 회원의 게시글수, 댓글수, 그리고 추천/비추천/신고의 개수(count) 및 횟수(sum) : https://xetown.com/tips/1386849

 

댓글(_comment.html)에서의 추천받은 수($comment->get('voted_count'))가

본문(_read.html)에는 인식을 못하네요. ㅡ.ㅜ

 

열심히 검색을 하면서 수정해 보고 있는데, 개념이 많이 없다보니 시간만 낭비하고 있는 상황입니다.

가능한 방법이 있을지 대략적인 내용이라도 알려주시면 감사드리겠습니다.

 

 

댓글 6

  • 2023.06.14 15:50 #1768685
    게시판 스킨 상에서 작업이 가능할 거 같은데요.
    글보기에서 해당 확장변수는 가려주시고, 조건문에 의해서 해당 조건이 있을 경우 보여지게 하면 될거 같습니다.
    if else

    if조건문의 경우,
    해당 글의 해당 댓글 작성자에게 추천이 있을 경우로 하면 될텐데요.

    말씀하신 $comment의 경우에는 해당 댓글에 한해서만 동작이 될터라.
    별도의 sql문이 필요하지 않나 싶네요.
  • 2023.06.14 17:13 #1768694
    댓글 남겨주셔서 감사합니다.
    방법론적인 거는 알겠는데요. 소스 코딩까지는 제 수준이 아닌 것 같습니다.
    이온디님께서 남기신 팁들에도 도움이 될 것 같은데... 저에게는 많이 어렵네요.
  • 2023.06.15 01:22 #1768708

    링크하신 애드온을 개조해서 쓰시면 될 텐데요.
    해당 문서에 딸린 댓글에서 추천을 받은 경우를 의미하시는 거죠?

    $oDB = DB::getInstance();
    $stmt = $oDB->prepare('SELECT SUM(voted_count) AS user_voted_count FROM comments WHERE document_srl = ? AND member_srl = ?');
    $stmt->execute([$oDocument->document_srl, $logged_info->member_srl]);
    $result = $stmt->fetchAll();
    $user_voted_count = $result[0]->user_voted_count;

    이렇게 해서 $user_voted_count가 0 이상일 경우에 확장변수 블라인드를 해제해주면 되지 않을까 싶습니다.
    스킨상으로 테스트해봤을 땐 카운트가 잘 수집이 되는 것 같긴 한데,
    애드온에서는 $oDocument와 $logged_info를 따로 불러오거나 호출 시점에 따라 새로 생성해야 할 수 있으니 그 점 유의하시면 될 듯합니다.

    그리고 댓글 목록에 댓글이 하나도 없다든지, 로그인한 본인이 작성한 댓글이 아예 없는 경우라든지 등에 따라 쿼리 실행 및 결과값에 오류가 생기지 않도록 잘 회피해야겠구요.

  • 2023.06.15 03:48 #1768746
    윤삼님. 안녕하세요. 우와~ 말씀하신 것처럼 카운터 수집이 바로 되네요. 애드온 수정해서 쓰지 않고 바로 본문 파일에 넣었습니다. 쉽게 해결하실 정도로 능력이 대단하십니다. 관리자와 본문 작성자도 볼 수 있게 할 수 있겠죠? 암튼 정말 감사합니다.^^
  • 2023.06.15 03:54 #1768750

    조건을 덧씌워야 할 것 같아요.
    - 관리자 및 작성자인 경우

            -> 그냥 바로 블라인드 해제
    - 그렇지 않은 경우

            -> 문서에 댓글이 하나도 없다면? => 블라인드 유지

            -> 문서에 댓글이 하나 이상 있다면? => 위의 쿼리 실행 후에 조건에 따라 블라인드 해제
    이런 식으로 되겠죠.

  • 2023.06.15 03:56 #1768754
    아~ 무슨 말씀인지 이해가 될 것 같습니다. 잘 적용해 보겠습니다. 감사합니다^^