팁/튜토리얼

링크 프리뷰 모듈

2022.11.06 14:15
8,221
7

제대로 된 소개글이나 매뉴얼을 작성하려 했는데, 가족 문제가 생기는 바람에 경황이 없어서 일단은 자료만이라도 공유하고자 합니다.

 

- 이 모듈은 기존에 공개했던 미디어 임베드 애드온을 강화하고, 링크 프리뷰 카드 기능을 덧붙인 자료입니다. 단, 기존 애드온에서 제공하던 유튜브 뮤직 플레이어 기능은 제거했습니다.

- 링크 프리뷰의 경우 php와 js로 제작되어 있다보니 파싱이 잘 되지 않는 사이트들이 꽤 있습니다. 그런 경우를 감안하여 화이트리스트 기능(입력된 도메인만 허용)을 활용하시기를 권장합니다.

- 설치에 관해서는 https://dev.aporia.blog/board_fKje48/46714 이 문서를 따라 설정하시면 됩니다.

- 작동 방식은 라이믹스에 익숙한 분이시라면 금방 응용하시라 믿습니다. 자세한 설명을 드리지 못하는 점 양해 부탁드립니다.

 

미리보기 및 테스트

https://dev.aporia.blog/board_fKje48

 

- 버그 제보 및 개선사항 제안 주시면 적극 검토하도록 하겠습니다.

- 댓글을 통해 의견 남겨주세요.

윤삼 Lv. 19
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.

댓글 74

  • 2022.11.08 05:13 #1718415

    이번에 새로 추가해야 할 클래스 이름들이 있는데 혹시 추가하셨을까요?
    참고로 0.0.1 압축 파일 안에 있는 class_list.txt 파일에 클래스 이름들이 (실수로) 담겨 있습니다만.

     

    앗, css 파일이 적용되지 않는다고 하셨군요. 다시 살펴봐야겠습니다;;;

  • 2022.11.09 03:13 #1718721
    죄송한데 모듈 설정 어떻게 하셨는지 알려주실 수 있을까요?
    순차적으로 검토를 해봐야 할 것 같은데, 실마리가 잡히지 않아서요.
  • 2022.11.10 08:30 #1719048
    답변이 늦어 제가 죄송합니다.

    미디어 임베드 애드온과 람보님의 임베드 파싱모듈 잘 사용하고 있습니다.
    감사합니다.

    모듈로 업그레이드되는 게 반가워, 조금이라도 도움이 될까하여 증상을 남겼습니다.
    비전문 일반 사이트관리자의 테스트라고 생각하시면 됩니다.
    ---------------------------------------------------------------------------------------------------------------------

    모듈설정 변경, 다른 모듈/애드온/위젯과 충돌 등등 몇 가지 경우를 테스트했지만,
    여전히 읽기페이지에서는 preview의 css / js 가 불러들여지지 않고 있습니다.

    혹시,
    최근 업데이트한 rhymix 2.0.23 업데이트에서 CSS/JS 로딩 경로관련 추가/수정이 있는 것 같은데,
    모듈의 주소/경로 부분도 살펴보시면 어떨지요.

    제 환경은,
    cafe24 웹호스팅
    Apache / Linux / mysql
    rhymix_version : 2.0.23
    php : 7.4.5p1 (64-bit)
    ssl
    짧은주소 사용
    레이아웃 스킨 studio02의 ink
  • 2022.11.10 09:11 #1719062
    저도 최신 버전에서 작업한 거여서.. 계속 살펴보는 중이긴 합니다ㅜ
    근데 혹시 코어를 루트 폴더가 아니라 별도의 폴더 설치하셨을까요?
    아, 글쓰기에서 임포트가 되는 걸 보면 그 문제도 아닐 것 같은데 참 어렵네요.
  • 2022.11.10 11:57 #1719094

    임포트가 되지 않는다는 페이지에서 개발자도구를 열고 콘솔창에서 current_url이라고 쳐봐주시겠습니까?

    아니면 url 입력을

    https://xetown.com/tips/1717975?act=dispBoardContent 에서처럼

    ?act=dispBoardContent를 붙여서 한번 해봐주세요.

    act 파라미터가 사라지는 문제가 있는 게 아닐까 하는 생각이 듭니다.

     

    만약 이 문제가 맞다면,

    preview.controller.php의 44행을 다음과 같이 바꿔보시겠어요?

    $act = Context::get('act') ?: 'dispBoardContent';

  • 2022.11.10 16:46 #1719228
    1.
    preview.controller.php의 44행 수정으로 css / js 로딩문제는 해결되었습니다.
    감사합니다.


    2.
    프리뷰 카드 사용을 안하고 미디어 임베드 기능만 사용하고 싶을 때
    (프리뷰 카드 사용: 아니오 체크, url 텍스트를 붙여넣으면)

    콘텐츠를 로딩 중입니다.
    잠시만 기다려주세요.

    무한로딩됩니다.


    다음의 경우를 위해서라도 수정되어야 할 듯 합니다.

    그냥, url 텍스트를 붙여 넣어야할 때
    기존 데이터 때문에 임베드 파싱모듈을 계속 써야할 경우

    (참고로, 무한로딩은 임베드 파싱모듈 미사용 시에도 발생)
  • 2022.11.10 21:04 #1719246
    해당 부분 패치를 적용해서 0.0.2로 버전 올렸습니다.
    테스트 부탁드릴게요.
    감사합니다!!!
  • 2022.11.10 22:56 #1719262
    세가지 모두 수정되어 정상 작동합니다.

    추가로,
    프리뷰 카드 왼쪽정렬 방법이 궁금합니다.
  • 2022.11.10 23:01 #1719267
    그거는 skins/default 폴더에 있는 css 파일을 손보시면 될 거 같아요.

    잘 되신다니 다행입니다. 휴...
    버그 제보 감사했습니다.
    종종 부탁드려요~
  • 2022.11.10 23:08 #1719272
    네. 알겠습니다.
    감사합니다.
  • 2022.11.24 02:11 #1722768

    와 지금 설치해봤는데... 이걸 왜 이제 설치했나 싶네요. 너무 좋습니다. !!!
    에러 없이 잘작동합니다. 혹시나 문제생기면 바로 피드백 하겠습니다.

    진심 감사드립니다.

  • 2022.11.24 02:13 #1722773
    네, 링크 프리뷰는 프리뷰를 검증해보신 뒤 화이트리스트 중심으로 사용해주세요~
  • 2022.11.24 02:15 #1722781
    혹시 링크에 단축도메인같은 리디렉션이 있으면 무한 로딩이 뜨던데 맞을까요?
  • 2022.11.24 02:18 #1722785
    그럴 수도 있고 아닐 수도 있는데요.
    리디렉션 때문만이 아니라 서버 쪽에서 연결을 거부하거나 일부러 지연시키는 경우들이 있는 것 같더라구요.
  • 2022.11.24 02:20 #1722789
    아아 그러네요 정확히 지연이네요
    몇번 시도하니 되긴되네요. 필터링을 통해서 해당 사이트들은 제거해두어야겠네요.
    정말 좋은 모듈 감사합니다!!
  • 2022.11.24 02:22 #1722793
    예상치 못하게 안 되는 사이트들이 꽤 많기 때문에 만약 다수의 이용자가 사용하는 사이트라면 블랙리스트보다는 화이트리스트로 외부 도메인을 포함하는 방식이 나을 거예요
  • 2022.11.28 01:11 #1723838
    어제 XETOWN 글을 둘러보고 잠이 들었는데 꿈에서 이 모듈이 나왔습니다.
    사실 현실에서는 생각한적도 없고 지금도 이용에 전혀 문제없는데 파싱을 중간에 취소하는 내용의 꿈이였습니다.

    링크를 넣고 초단위 카운팅을 글쓴이에게 보여주고 10초 후 까지 지연이 발생하면 파싱을 취소되게하거나 혹은 취소버튼을 넣어서 파싱 자체를 취소하게 하면 좋겠다 였고
    글쓴이 입장에서 빠져나갈 방법이 없어 뒤로가기를 누르게 하는것보다 이 방법이 좋을 것 같아요.

    근데 아무래도 기능적으로 쉽지 않을 것 같긴 하네요.

    안믿으시겠지만 거짓말 하나도 안보태고 정말 꿈에 나왔었어요.ㅋㅋㅋ
  • 2022.11.28 01:25 #1723843
    꿈에 나왔다니 제 마음이 너무 약해지네요ㅋㅋㅋㅋㅋㅋ
    당장에는 본업 때문에 작업을 하기 힘들 것 같은데요.
    일정 정리가 어느 정도 되고 나면 curl의 접속을 강제 종료하는 명령어가 있는지부터 좀 찾아봐야겠습니다.
  • 2022.11.28 02:10 #1723851
    댓글만 주셔도 감사합니다. 본업이 중요하죠!!
    정말 너무 생생한 꿈이였습니다.
  • 2022.11.28 13:59 #1724077

    preview.model.php에서
    1. 33~34행을 삭제하고 테스트해봐주실 수 있을까요?

    2. 아니면 33행 윗줄에 ini_set('default_socket_timeout', 1); 라 입력하고 테스트요...

  • 2022.11.29 01:43 #1724228
    혹시 두 개 다 테스트 해봤는데 어떻게 되어야 정상일까요?
    기존과 마찬가지로 한 10초있다가 그냥 텍스트 그대로 뜨는데 그게 맞을까요?
  • 2022.11.29 02:42 #1724240
    무한 로딩 문제인 줄 알았는데 그건 아니었나보네요;;;
    getPreviewContent 함수인가 그 안에 파라미터로 $timeout = 5 라는 부분이 있을 텐데요.
    이 숫자를 3이나 2 정도로 줄여보시겠어요?
    그럼 일단 대기 시간이 줄어들 겁니다.
  • 2022.11.29 03:39 #1724246
    앗 감사합니다!!
    네 처음엔 무한 로딩으로 알았는데 무한로딩은 아니고 10초 정도있다가 돌아오더라구요.
    저도 제일 처음엔 10초나 기다려야하나 하면서 창을 꺼버렸는데 그게 아니였습니다.
    해외사이트라그런지 알리익스프레스 링크를 넣었는데 그렇더라구요 ㅎㅎ
  • 2022.11.29 09:56 #1724361

    0.0.3 버전으로 업데이트하여 공개자료실에 업로드했습니다.

    https://xetown.com/download/1724355
    @karius @해태맛동산 @오민호 @톰캣

    * 개선 사항
    [전체] 배포 파일에서 custom.css 파일을 제외. 필요시 사용자가 해당 파일을 생성하면 자동 인식되게끔 했음
    [프리뷰 카드] 타임아웃(외부 서버 접속 제한 시간) 설정 제공
    [프리뷰 카드] 이미지 파일 첨부 예외 도메인 설정 (자기 사이트의 CDN 서버 예외 처리 등에 유용함)
    [미디어 임베드] KAKAOTV : 재변경된 아이프레임 주소에 대응
    [미디어 임베드] NAVER SHORTS : 뉴스/스포츠의 숏폼 영상 임베드
    [미디어 임베드] NAVER SPORTS : 스포츠/비디오 주소 체계에 대응