이미지 다운시 포인트 차감이 가능할까요?
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
안녕하세요? 제가 개인적으로 작업한 이미지들을 회원들에게 배포를 할려구 합니다.
그냥 무료로 배포하기 보단 아주 약간의 포인트를 차감을 시키고 배포를 할려구 하는데요.
그런데 이미지들은 다운시 포인트 차감이 안되는거 같더라구요.
특정 갤러리 게시판의 이미지를 다운 받을려면 포인트가 차감이 되고,
갤러리를 등록한 회원에게는 그 만큼의 포인트가 부여되도록 하고 싶은데
혹시 이러한 기능이 이미 애드온이나 모듈로 나온게 있을까요?
검색은 해봣지만 아직 나온거 같진 않더군요.
성운시연
Lv. 5
댓글 14
이미지는 제외로 되어 있군요.
수정 가능하실 듯
네 이미지는 제외로 되어 있더라구요. 이미지 다운시에도 포인트 차감이 가능하면 좋긴한데 이미지는 제외시킨 이유를 모르겠네요. ㅎ
포인트 모듈에서 이미지를 제외한다는 것은, 본문에 삽입된 이미지를 단순히 열람하는 경우를 의미합니다. 이런 이미지는 본문의 일부로 간주하므로 글읽기 포인트만 차감됩니다. 반면, 첨부파일 목록에서 클릭하여 다운로드한다면 다른 파일과 마찬가지로 다운로드 포인트가 차감됩니다. 이미지는 대개 본문에 삽입되어 있어서 별도로 다운로드하는 일이 흔치 않기 때문에, 용어에 혼란이 있는 것 같습니다.
만약 다운로드시 포인트를 차감하거나 권한을 확인해야 하는 이미지라면 본문에 삽입하지 않으면 그만입니다. 예를 들어 본문에는 저화질 썸네일만 삽입해 두고, 고화질 원본 사진은 첨부 후 본문에서 삭제하면 됩니다. 원본 사진을 다운로드하려면 첨부파일 목록을 이용하거나, 스킨에서 별도의 다운로드 버튼을 만들어 주어야 하겠지요.
본문에 삽입되는 이미지를 포인트 계산에서 제외되는 이유는, 이미지를 불러오는 시점에 서버에서 PHP가 실행되지 않으므로 모듈에서 알 수가 없기 때문입니다. 본문에 삽입된 이미지를 우클릭하여 주소를 확인해 보면 xetown.com/files/attach/images/...../aaa.jpg 이렇게 PHP는 전혀 사용하지 않고 서버의 특정 경로에 저장된 파일을 직접 가져오고 있는 것을 알 수 있습니다.
반면, 이미지가 아닌 pdf나 zip을 첨부한 후 링크를 본문에 삽입하면 index.php?procFileDownload... 어쩌고 하는 주소로 연결되어 있습니다. 이건 PHP에서 받아서 라이믹스 파일 모듈을 거쳐 다운로드되는 것이지요.
XE 때부터 이렇게 구현되어 있었는데, 속도 때문입니다. 아파치나 nginx가 직접 파일을 전송해 주도록 하는 것이 PHP를 통해 다운로드하는 것보다 수천 배 더 효율적입니다. 당장 이미지 10개가 삽입된 글을 읽는다고 할 때, 현재 방식은 PHP를 1번 실행하여 HTML을 생성한 후 이미지 10개를 웹서버에서 전송받으면 되는데, 만약 모든 이미지를 PHP를 거쳐 다운로드한다면 PHP를 11번 실행해야 합니다. 웹서버에서 직접 처리하는 브라우저 캐시 헤더 같은 것도 사용할 수 없으므로, 새로고침할 때마다 매번 이미지 용량만큼 트래픽이 발생하는 것은 덤입니다.
파일 모듈에서 "멀티미디어 파일 직접 접근 허용" 옵션을 끄면 본문에 삽입하는 이미지도 모두 index.php?procFileDownload... 형태로 생성이 됩니다. 단, 1) 기존 글에는 이미 PHP를 거치지 않는 주소가 삽입되어 있으므로 새로 작성하는 글에만 적용되고, 2) 서버 부하와 로딩 시간, 트래픽이 5~10배 증가할 수도 있습니다. 따라서 위에 제시한 것처럼 아예 본문에 삽입하지 않는 방법이 훨씬 효율적입니다.
장문의 답글 감사드립니다.
이미지 다운로드시에도 포인트가 차감된다고 하셨는데요. 현재 갤러리를 보면 "다운로드 이미지"가 있는데 이렇게 다운을 받거나,
파일첨부에 있는 이미지를 다운 받아도 포인트가 차감되는거 맞는거죠? 그리고 궁금한게 하나의 게시글에 파일첨부를 여러개 할 수도 있잖아요. 그럼 포인트 차감은 첨부파일당 차감이 되는건가요?
슬라이드 쇼는 첨부파일 목록이 아닌 본문에 삽입된 이미지를 사용하는 것이므로, 슬라이드 쇼에서 이미지를 다운로드하는 기능은 본문에 삽입된 이미지를 우클릭해서 저장하는 것과 동일한 효과입니다. 이 경우에는 포인트가 차감되지 않습니다.
네 확인해보니 슬라이드 쇼에서 이미지를 다운로드를 받을 때는 포인트가 차감이 되질 않는군요. 그리고 첨부된 이미지는 개별로 포인트가 차감이 되는군요. 예를 들어 이미지가 2개이면 각각 포인트 차감이염.
슬라이드 쇼에서 다운로드시 포인트가 차감이 되질 않는 부분은 수정을 해도 해당 기능이 노출이 되질 않도록 해야할 거 같네요 ^^
슬라이드 쇼에서 해당 기능이 노출이 되질 않게 할려면 해당 부분을 삭제하면 되는거죠?
궁금했던 점이 이해되었습니다. 감사합니다.ㅎ
이 부분이 어느 파일에 있는지 여쭤봐도 될까요? 찾아보고 있는데 찾기가 쉽질 않네요;;;
photoswipe-ui-default.js에서
shareButtons: [
{id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
{id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},
{id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/'+
'?url={{url}}&media={{image_url}}&description={{text}}'},
/*{id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}*/
],
방금 주석처리를 하긴 했습니다만 이렇게 주석처리하면 되지 않을까요?
애드온에서 따로 처리하는 부분은 없더라구요.
저화질 썸네일만 삽입해 두고, 고화질 원본 사진은 첨부 후 본문에서 삭제
이게 자동화되는 방법은 아직없는거죠?
저도 사진 수백장찍은것을 일부포인트로 판매하려는데
이걸 하나씩 작업하긴엔 노가다가 너무 심하네요ㅜㅜ