게시글 본문에서 문서가 '스크랩된 횟수' 그리고 '스크랩한 회원 목록'을 가져오는 방법입니다.

이미 관련 팁이 있을지 모르겠는데 제가 찾아본 바로는 눈에 띄지 않더라구요.

 

* 게시글 본문 템플릿 파일(보통은 _read.html 파일) 적당한 곳에 다음의 소스를 삽입합니다.

{@
    $oDB = DB::getInstance();

    // 스크랩 카운트를 가져오는 쿼리 실행 => $scrap_count
    $query = 'SELECT count(*) AS count FROM member_scrap WHERE document_srl = ?';
    $stmt = $oDB->query($query, $document_srl);
    $result = $stmt->fetchAll();
    $scrapped_count = $result[0]->count;
 
    // 스크랩 회원 리스트를 가져오는 쿼리 실행 => $scrap_member_list
    $member_columns = preg_filter('/^/', 'member.', ['member_srl', 'user_id', 'email_address', 'phone_number', 'user_name', 'nick_name', 'extra_vars']);
    $query = 'SELECT '. implode(',', $member_columns) .' FROM member_scrap LEFT JOIN member ON member_scrap.member_srl = member.member_srl WHERE member_scrap.document_srl = ?';
    $stmt = $oDB->query($query, $document_srl);
    $result = $stmt->fetchAll();
    $scrap_member_list = $result;
}

 

이걸로 끝입니다. 위의 코드 다음부터 ...

- {$scrapped_count}는 스크랩된 횟수를 출력하고

- $scrap_member_list는 스크랩한 회원 목록을 가리킵니다. $scrap_member_list는 반복문을 사용해서 각자 구미에 맞는 적당한 방식으로 활용해야겠지요?

글쓴이 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile

    아, 스크랩된 횟수 구하기는 코어 develop 버전에서는 자체 쿼리로 되겠네요.
    https://github.com/rhymix/rhymix/commit/1312155aba8437924eed4fb4696e50f567530f75
    (심지어 제가 올린 이슈였는데 깜빡ㅜㅜ 하지만 스크랩 회원 리스트 구하기는 신박한 겁니다요)

  • profile

    어허... 쿼리명에 슬래시가 포함된 경로를 통째로 넣으셨다 이거죠? 막아야겠네요. ㅋㅋㅋ

  • profile profile

    보안 이슈가 생기는 건가요?
    스킨에서 쿼리 실행할 때 저렇게 하곤 했는데ㅜ 대안적인 방법이 있을까요?

    여기서 보고 따라한 거예요;;; http://chongmoa.com/xe/6826

  • profile profile
    애드온과 위젯은 공식적으로 지원하는 문법입니다만, 폴더 구분을 뜻하는 슬래시까지 들어가면 directory traversal 문제가 생길 수도 있어서 필터링을 좀 해야겠습니다.

    라이믹스 2.0 전용 자료라면 차라리 커스텀 쿼리를 사용하세요.^^
  • profile profile
    저 말고도 게시판 스킨에서 저런 방식으로 쿼리 만들어서 사용하는 경우들이 꽤 있었을 텐데, 이제 막히게 되겠군요.
    말씀하신대로 커스텀 쿼리로 바꾸도록 하겠습니다!
  • profile profile
    저렇게 팁이 돌아다닌 지 이미 오래 되었다면 한 방에 차단해 버리기는 곤란할 것 같고요, 그냥 필터링을 좀더 빡세게 하겠습니다. ㅠㅠ
  • profile profile

    링크 문서 메타 태그를 보니 2015년에 발행된 문서니 7년 사이 왕왕 사용됐을 겁니다;;;
    그치만 2.0.23까지의 코어 사용자도 있고, xml 파일 만드는 팁보다 커스텀 쿼리로 이뤄진 팁이 좀 더 간편할 테니, 일단 이 게시물의 팁도 바꾸도록 할게요. 바꿨습니다!

  • profile profile
    네, 커스텀 쿼리를 정석대로 사용하는 팁도 많이 생산되면 좋겠네요.^^
  • profile
    스크랩 기능도 참 유용하게 쓰일 수 있겠다 생각이 듭니다.
  • profile profile

    전부터 이런 수요가 있긴 했었어요.
    https://xetown.com/topics/471621
    정보 제공 목적이 강한 사이트라면 추천보다도 스크랩이 더 유용할 수 있을 것 같아요.

  • profile profile
    네 ㅎㅎ 커뮤니티 사이트 보면 댓글에 ㅇㄷ라고 적으면서 와드 박는사람들이 많더라구요. 잘활용하겠습니다.
  • profile

    와드.JPG

     

    게시판 본문에서 테스트 완료했습니다
    아주 잘 작동합니다! 추천 수 급으로 아주 잘 활용될 것 같습니다.
    진심으로 감사드립니다. ~

  • profile

    아 혹시 리스트에서도 사용이 그대로 가능할까요?
    마찬가지로 목록에서도 추천 수 옆에 스크랩 수를 불러오면 좋을것 같은데

     

    스크랩기능은 정말 활용도가 무궁무진 할 것 같습니다.

    실제로 유저들도 아주 유용하게 사용될 기능이기도하구요.

    저와 같은 생각을 먼저 하신(선구자)

    skyo님의 글입니다. ㅎㅎ

    https://xetown.com/topics/471621

  • profile profile
    현재로서는 문서별로 스크랩 카운트를 담고 있는 db테이블이 없어서 목록에서의 항목별(문서별) 스크랩 카운트 계산 및 출력은 서버 과부하의 요인이 될 수 있습니다.
    즉, 현재 스코어로는 비추예요.

    다만 따로 모듈을 만들어서 document_srl별로 scrap_count를 담고 있는 테이블을 만들고, 해당 모듈에서 문서별 스크랩 카운트를 꺼내쓸 수 있다면 부하는 조금 덜 수는 있겠네요.
    근데 어느 정도나 효율적일지는 저도 잘 모르겠네요;;;
  • profile profile
    아 넵!! 그럴 수 있겠네요 목록 출력은 무리를 줄 수있으니 이대로 만족합니다 감사합니다!!