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

 

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

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

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

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

 

미리보기 및 테스트

https://dev.aporia.blog/board_fKje48

 

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

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

글쓴이 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile
    와우.. 기다리고 기다리던 자료입니다!!
    한번 테스트해보겠습니다 ㅎㅎ 항상 감사드립니다~
  • profile

    크.. 기존에 잘썼던 링크 임베드 애드온 비활성화 후 프리뷰 모듈 잘 적용했습니다.

    역시 믿고쓰는 윤삼님의 애드온..👍👍👍

     

    일단 몇가지 테스트중 확인한 사항인데 링크 프리뷰 후에 파일업로드중이 계속 노출되는 버그(?)가 있습니다.

     

    20221106_235129.png

     

    제 환경에서만 그럴수도있으니 일단 제 테스트환경 남겨드립니다.

    php 7.4

    Rhymix 2.0.23

    구름이님의 에디터자동완성 모듈 사용중.

     

     

  • profile

    +1 추가합니다.

    제 사이트에서 다른 제 페이지를 링크걸었는데 아래처럼 504 타임아웃이 뜨고있습니다.(다른페이지는 잘 작동)

     

     

    20221107_001837.png

     

    만약 프리뷰가 안된다면 타임아웃이 뜨기전에 멈출수있는 방법이 있으면 좋을것같습니다!
    ex) 10초 이상 로딩중이라면 강제종료 창이 뜨거나, 모듈설정창에서 timeout 시간설정가능(?)

  • profile profile

    저도 karius님과 비슷한 환경이어서 어쩌면 에디터자동완성 모듈과 충돌일 수도 있겠다는 생각이 듭니다.
    혹시 제가 배포했었던 바로 첨부 애드온 문제인가 해서 테스트도 해봤는데, 그건 아닌 것 같아요.
    근데 프리뷰 카드 출력 기능은 해당 모듈에도 원래 있었던 거 아닌가요?

  • profile profile

    그나저나 자기 사이트 안에서 안 되는 건 쫌 아닌 것 같군요.
    일단 운영하시는 사이트 주소를 제 사이트에서 해보니 잘 되는 것 같은데요.
    https://dev.aporia.blog/board_fKje48/47202
    상세한 테스트 정보(파싱이 잘 안 되는 url 등)를 더 일러주시면 좋을 것 같습니다.

  • profile profile

    해당 모듈에도 있지만 ㅎㅎ.. 윤삼님 모듈의 디자인이 더 제타입이라 변경하고싶어서요 ㅠ

     

    +하나 더 발견했는데...

    2차인증 모듈을 사용해서 otp를 사용하고있는데 otp창에서 아래와같은 ajax alert가 발생하고있습니다.

     

    20221107_111243.png

  • profile profile
    흡,, 신기하네요. 윤삼님 테스트 페이지에서는 윤삼님 블로그가 잘 파싱되는데
    제사이트에서만 그러네요 ㅠㅠ

    아래 테스트게시판에서도 증상이 동일하게 재현되고있습니다.(글쓰기 가능)
    https://svrforum.com/test

    제가 앞단에 nginx proxy manager로 프록시를 사용하고.
    방화벽으로 opnsense를 사용하는데 해당 이슈가 영향이 있을수도있겠네요.. vpn으로 제 사이트에 접속시도를했을때도 접속이 안되는데 이게 arp spoofing이 막혀있는지도 확인해봐야겠습니다!
  • profile profile
    서버는 제가 잘 모르는 영역이지만 프록시, 방화벽 이야기를 들으니 왠지 그런 환경 때문에 curl 실행이 안 되는 걸 수도 있겠다 싶네요;;;
  • profile profile
    js단에서 변수 이름 같은 게 겹치기라도 하는 걸까요... 2차인증모듈은 동작 방식을 잘 몰라서 난감하네요ㅜ
  • profile profile
    이부분은 제가 한번 더 확인해보겠습니다 ㅎㅎ.

    저 alert메시지같은경우에는 숭숭군님의 새글알람(?) 이쪽관련에서도 뜨는거같은데 한번 뜨면 캡쳐해보겠습니다!
    항상 감사드립니다~
  • profile profile
    좀 전에 체크해보려고 들어가봤더니 지금은 잘 되네요? 어떻게 하신 건가요?
  • profile profile

    https://svrforum.com/recent/511430

    위 방법으로 드디어 해결했습니다 ㅎㅎ

    일하면서 짬짬히하느라 트러블슈팅이 오래걸리긴했는데 NAT 리플렉션 문제인것같네요 ㅎㅎ..

    (제 서버 ip -> 제 공인 ip로 통신했을때 NAT가 안되서 생기는이슈(?) 인듯합니다)
    제 사용환경 이슈였던걸로...
    바쁘실텐데 확인해주셔서 감사합니다!!

  • profile profile
    앗 먼저 댓글달아드리려고했는데 일처리하고 온사이에 또 테스트해주셨군요 ㅠㅠ
    감동입니다...
  • profile profile
    서버의 세상은 어렵네요. 저도 기회가 되면 배워야 할 텐데 게을러서 잘 안 돼요ㅎㅎ
    암튼 한 고비 잘 넘겨서 다행입니다!
  • profile profile

    추가로 이전에 말씀드렸던 OTP 페이지 접속했을때 ajax 오류메시지입니다.

     

    https://svrforum.com/index.php?act=dispGoogleotpInputotp

    위 페이지에서 나오는데 트위터(?)로 인식하고 파서를시도하는건지.. ㅠㅠ

     

    20221108_085145.png

  • profile profile
    비슷한 케이스들이 몇 차례 있었던 것 같은데요.
    https://xetown.com/questions/207970
    https://xetown.com/questions/1702028

    그리고 결과값이 json 형식으로 넘어가야 할 게 그러지 못해서 나타나는 문제라는 코멘트도 있네요.
    https://stackoverflow.com/questions/27828943/parser-error-on-ajax

    제 상황에서 재연이 될지 모르겠는데 karius님도 한번 체크해보시고, 저도 짬 날 때마다 계속 알아보겠습니다.
  • profile profile
    아, checkdocument라는 모듈에서 뿌려주는 에러로군요.
    링크 프리뷰 모듈 이후로 발생한 문제라면,
    이쪽 모듈이랑 otp쪽이랑 링크프리뷰 모듈이 뭔가 상성이 안 맞는 듯합니다;;
  • profile profile
    말씀해주신대로 새글알람모듈(?) 쪽 이슈인것같습니다.
    사실상 많이사용하지않는모듈이라..그냥 그쪽을 비활성화시키는걸로...ㅎㅎㅎㅎㅎ
  • profile profile
    제가 지금의 OTP모듈을 개발하기는 했는데.. 생각가는대로 만든거라 잡버그가 존재합니다 ㅜㅜ
    중간에 갑자기 OTP 인증창이 나오기도 하고..

    언젠가 한번 손볼 예정인데 기약은 없는지라.. 지금은 꼭 OTP 기능이 필요한게 아니라면 그냥 꺼두시는거를 추천드립니다;;
  • profile profile
    ㅎㅎ 그래도 OTP모듈 꽤나 요긴하게 잘쓰고있습니다!
    좋은모듈 개발해주셔서 감사합니다~ 미션모듈도 사서 요긴하게 잘쓰고있습니다
  • profile
    미디어 임베디드 애드온 오프 시키고 링크 프리뷰 모듈로 대체 하여도 괜찮을까요?
    이렇게 빨리 모듈로 나올줄이야! 감사합니다 흐흐
  • profile profile
    앞으로 그렇게 할 생각인데, 버그라든가 타자료와의 충돌이라든가 혹시 모르니 당분간은 테스트를 잘 해보시기 바랍니다.
  • profile profile

    저도 제 사이트를 허용해서 글 작성 해보니 개발자콘솔에 이런 에러가 뜨네요.

    프리뷰에러.PNG.jpg

  • profile profile
    자기 사이트는 외부 통신이 아닌 방식으로 고민을 좀 해봐야겠습니다. 가능할지 잘 모르겠어요ㅜ
  • profile profile
    전달되는 url이 유효하지 않을 때 나오는 오류라고 하네요.
    https://developer.mozilla.org/ko/docs/Web/API/URL/URL
    확인 좀 해주시겠습니까?
  • profile profile
    퇴근하고 댓글을 이제 보았네요~
    어떤 부분을 확인 해보면 될까요? 게시물 링크 주소를 복사 붙혀넣기 하였습니다.
  • profile profile
    입력된 url, 또는 가져올 이미지 url을 제대로 읽어오지 못하는 것 같거든요.
    이 두 가지 url의 형식에 특이사항은 없는지요?
  • profile profile
    링크 게시물에 이미지는 없고 단순 텍스트로만 이루어진 URL 이였습니다.
  • profile profile
    url 알려주시면 저도 한번 체크를 해보겠습니다. 공개가 어려우시면 쪽지로라도 알려주세요.
  • profile profile
    쪽지로 답장 보낼까 하다가 답변 내용이 기록으로 의미가 없지 않을 것 같아서 댓글로 남깁니다.

    알려주신 url에서 별다르게 이상한 점은 찾지 못했는데요.
    저희 사이트에서는 울티메이트의 문서 제목, 요약, 사이트이름, 이미지 등 모두 잘 받아오거든요.
    다만, 이미지의 경우 서브도메인을 쓰시는 것 같던데, 아마 여기서 문제가 있는 건가 싶긴 합니다.
    이 부분을 염두에 두고 좀 더 연구를 해보도록 하겠습니다.
  • profile profile
    트래픽 분산 때문에 라이트세일로 이미지 돌려서 쓰고 있는데 이게 문제가 될 수 있군요!
    바쁘실텐데 신경써주셔서 감사합니다 ( _ _ )
  • profile profile

    살짝 패치 중인데요.

    첨부한 파일로 설치해서 사용해보시겠어요?

     

    그리고 모듈 설정으로 들어가면 '파일 첨부 예외 도메인'이라는 새로 넣은 textarea가 있는데요.

    거기에 사용 중이신 cdn 서버의 도메인명을 입력해주세요.

    img.~~~~.kr 이라고요.

     

    예상대로라면 님의 사이트에서 사용된 이미지들은 파일 첨부를 시도하지 않게 될 건데요.

    테스트 부탁드리겠습니다!!

     

    Atachment
    첨부
  • profile profile
    방금 패치해서 확인 하니까 본인 사이트 링크도 정상적으로 작동 하네요.
  • profile profile
    오오오 감격입니다ㅜㅜ
    아마 그때 안 됐던 건 이미지 url이 https://가 아니라 //로 시작해서 그랬던 것 같아요.
    그래서 그 부분에 대응을 하다가, 아예 지정된 도메인의 경우는 파일 첨부를 하지 않는 쪽으로 설정 옵션을 바꿔봤습니다.
    좀 더 발전시켜서 조만간 0.0.3 '정식' 버전 만들어서 공개자료실에 올리도록 하겠습니다 :)
  • profile profile
    오늘도 삼님 실력에 감탄의 박수를!!
    그렇다고 잠도 안주무시고 너무 무리 하지는 마세요 ㅋㅋ
  • profile
    미사 끝나고 바로 적용해보겠습니다.
    빠른 배포 감사합니다.
  • profile profile
    예압!!
  • profile profile
    미디어 임베디드 애드온 오프 시키고 링크 프리뷰 모듈로 대체 하여도 괜찮습니다. 잘 됩니다.
    저는 위의 문제점들이 발생하지 않고 있습니다.
  • profile profile
    저는 스포어 웹호스팅을 사용 중인데 서버 환경에 따라 문제가 있는 것 같아요.
    서버알못인 저는 잘 모르는 영역.
    adlib님은 서버 환경이 어떻게 되시나요?
  • profile profile

    rhymix_version : 2.0.23
    php : 7.4.30 (64-bit)
    server : Apache
    os : Linux
     

    PHP-Extensions.jpg

  • profile profile
    웹호스팅은 아니신 거죠?
    암튼 잘 되신다니 다행입니다.
  • profile
    아고... 무슨 일인지는 모르겠지만 잘해결되길 바랍니다.
  • profile profile

    네, 저도 그렇게 되길 바라고 있습니다ㅜㅜ

    걱정 감사해요.

  • profile
    불필요한 파일은 모듈첨부파일에 첨부하지 않았으면 합니다. lisence와 같은 파일은 확장자가 없어 같이 첨부하여 배포해도 되는 형태이지만, class_list.txt 와 같은 파일은 실제로 아파치나 nginx에서 텍스트파일모드로 실행시켜주기때문에 내용을 볼 수 있습니다. 물론 그것을 집적적인 조작은 하지 못하겠지만 이러한 파일이 없는편이 좀 더 낫고, 해당 파일에 문구나 다른건 카피라이팅 혹은 readme 파일에 따로 폴더를 만들어서 분리시켜 압축해두는편이 좀 더 나을 수 있습니다! 다음에 배포하실땐 참고하시기 바래요~~! ㅎㅎ
  • profile profile
    메모용으로 두고 있었던 건데 경황이 없어서 포함이 됐었나봅니다.
    다음 버전부터는 빼도록 할게요 :)
  • ?

    미디어 임베드 애드온을 끄면 기존에 올렸던 미디어들(youtube, instagram 등) 사이즈가 달라지는데,
    링크 프리뷰 모듈로 바꿔도 미디어 사이즈는 풀어진 상태로 나오네요. (에디터 상에서는 지정한 사이즈로 나옴)
    그리고, 모듈의 미디어 임베드만 사용할 수 없고, 프리뷰 카드 사용 (예) 체크 시에만 임베드됩니다.

    프리뷰 카드도 지정된 사이즈로 나오지 않네요.

  • ? profile

    1. 제 경우엔 게시판에서 애드온 해제하고 모듈 켰을 때 사이즈가 그대로 유지가 됩니다. css 파일이 제대로 불러와지는지 검토가 필요해보이는군요. 또는 기존에 custom.css 파일을 사용하신 적이 있다면 ./modules/preview/tpl/css/custom.css 파일이 있는데 해당 파일의 내용을 살펴보셔도 좋을 것 같습니다.

    2. ./modules/preview/tpl/js/_ckeditor.js 파일의 209행을
    if ( typeof black_or_white !== 'undefined' && black_or_white ) {
    으로 바꿔주세요. (이 부분은 다음 버전에서 패치하도록 하겠습니다.)

  • profile ?

    2번은 수정하였습니다.

    1번은,
    custom.css와는 무관하게 미디어와 프리뷰카드 사이즈가 적용되지 않네요.
    스킨의 영향이 아닌가 의심되나, 미디어임베드 애드온은 문제없어서 헷갈리네요.

  • ? profile
    skins 폴더에 있는 preview_card_style.css 파일이 임포트가 안 되는 걸까요?
  • profile ?

    프리뷰 모듈의 css, js 모두 적용되지 않네요.

  • ? profile

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

     

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

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

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

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

    모듈설정 변경, 다른 모듈/애드온/위젯과 충돌 등등 몇 가지 경우를 테스트했지만,
    여전히 읽기페이지에서는 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
  • ? profile
    저도 최신 버전에서 작업한 거여서.. 계속 살펴보는 중이긴 합니다ㅜ
    근데 혹시 코어를 루트 폴더가 아니라 별도의 폴더 설치하셨을까요?
    아, 글쓰기에서 임포트가 되는 걸 보면 그 문제도 아닐 것 같은데 참 어렵네요.
  • ? profile

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

    아니면 url 입력을

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

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

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

     

    만약 이 문제가 맞다면,

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

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

  • profile ?
    1.
    preview.controller.php의 44행 수정으로 css / js 로딩문제는 해결되었습니다.
    감사합니다.


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

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

    무한로딩됩니다.


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

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

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

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

    잘 되신다니 다행입니다. 휴...
    버그 제보 감사했습니다.
    종종 부탁드려요~
  • profile ?
    네. 알겠습니다.
    감사합니다.
  • profile

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

    진심 감사드립니다.

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

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

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

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

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

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

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

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

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

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