You cannot see this page without javascript.

Widgets Of MoonHouse

MediaElement.js와 HTML5 video,audio 태그를 이용한 미디어 플레이어 및 유튜브 링크 애드온입니다. 당초에는 유튜브 뮤직을 링크시켜주는 애드온을 찾다고 없어서 시작했는데 일판이 좀 커졌네요. 애드온 이름을 몇번 바꾸다가 최종적으로 미디어플레이어 애드온으로 정했습니다. 폴더 이름은 mytube youtube가 '너튜브"라면 mytube는 '내튜브'...... https://xetown.com/tips/1167281 참조 유튜브 링크가 메인이 아니고 원래는 첨부한 오디오와 비디오 재생이 주 기능입니다. 1. 업로드된 mp3 및 wav 등의 오디오 파일 재생 2. 업로드된 mp4, mov, 3gp 등등의 비디오 파일 재생 제가 만들었지만 어디까지 동작할지는 저도 잘 모릅니다. html5 video,audio가 지원하는 것은 다 될 것으로 추측합니다. 3. 유튜브 링크 4. 유튜브 뮤직 링크 5. 위 4가지 기능이 댓글에서도 동작 6. 유튜브 영상과 오디오의 제목과 설명가져오기 7. 리스트재생(미완성) 목록까지는 가져오지면 UI는 완성하지 못했습니다. 수정해서 사용하시고 잘되면 공유 부탁드립니다. 8. 반응형 플레이어 당초 목적은 모바일에서 찍은 동영상을 업로드하고 다음화면서 재생하는 것이어서 모바일과 데스크탑에 다 어울리는 반응형으로 만들었습니다. 9. 썸네일 만들기 썸네일 애드온 별도로 사용할 필요없습니다. Rhymix에서는 외부이미지로 본문삽입만해도 썸네일이 잘생깁니다. XE에서는 잘 안되는 경우가 종종 있어서 아예 썸네일을 첨부화일로 넣는 기능을 만들었습니다. 나머지 설정은 바꿔가면서 테스트해보면 금방 이해할 수 있는 것들이라 설명을 생략합니다. 포스터기능은 업로드된 동영상을 위한 것입니다. 유튜브 동영상은 preload 기능을 이용하면 플레이하기 전에 썸네일 화면이 보이지만 업로드된 동영상은 플레이되기 전까지는 아무것도 나나타지 않습니다. 처럼 각자의 사이트에 걸맞는 영상을 만들어서 입력해주면 플레이되기 전에도 뭔가를 보여 줄 수 있습니다. 마지막으로 제일 중요한 것은 youtube data api key를 입력해야합니다. 입력하지 않아도 동작에는 문제가 없지만 제목과 설명을 가져오지 못합니다. 구글콘솔에 사이트를 등록하고 youtube data api key를 만들어서 입력하면 됩니다. 자세한 설명은 https://developers.google.com/youtube/registering_an_application?hl=ko 를 참조하십시요. api 키를 입력하면 재생창 상단에 제목이 나타나고 제목을 클릭하면 toggle되면서 설명이 나옵니다. 모바일에서 백그라운드로 가거나 화면을 끈 상태에서도 플레이가 가능합니다. 단 스마트폰 브라우저앱의 알림기능 , 특히 미디어알림기능이 꺼져있으면 동작하지않습니다. https://xetown.com/topics/1166111 참조 mediaelement.js를 가져다 xe(Rhymix)에 붙여서플레이어를 만들고 있습니다. 작업은 거의다 마무리 되어서 좀더 테스트해보고 공개할 예정입니다. 헌데 몇가지 기대이상의 기능들이 있네요. 저도 뭐 js는 그져 가져다 사용하는 입장이라서 아직 내부 기능을 다 이해하지는 못한 상태입니다. 그중에서도 눈에 띄는 점은 모바일 플레이어 기능입니다. 일반적으로 유튜브를 플레이시키면 별도의 플레이어가 있는 것이 아니라서 화면을 끄거나 백그라운드로 들어가면 플레이가 중지됩니다. 하지만 미디어플레이어에 링크해서 플레시키면 플레이어가 뜨네요. 화면을 끄거나 백그라운드로 들어가도 플레이어는 동작합니다. 스마트폰을 꺼서 호주머니 담은 상태에서도 음악감상이 가능합니다. 연결된 블루투스 기계에서 콘트롤도 가능하고... 구태여 유튜브 프리미엄으로 가지 않아도 될 것같습니다... ver : 0.8.1 1. 태그를 사용해서 유튜브를 링크한 경우 여러개의 재생창이 생기면서 발생하던 문제를 수정했습니다. 2. iframe 태그를 사용하던 기존 링크와 호환되게 수정했습니다. 3. 제목과 설명을 유튜브처럼 영상 아랫쪽으로 이동했습니다. ver : 0.8.2 url 및 설명과 제목의 사용여부와 위치를 설정할 수 있게 수정했습니다. [Sample] https://www.youtube.com/watch?v=tifg16jpNmQ
Category 애드온 Data 2019.02.09 Views 49
http://moonhouse.co.kr/gongi/483001 위의 글에서 처럼 호스팅을 https://ivyro.net 으로 이전하면서 /xe꼬리표 떼고, SSL설치로 https:// 로 주소줄 바꾸는 작업기록 입니다. 먼저 호스팅을 이전 하는데 요즘은 랜섬웨어 및 악성코드의 지속적인 피해를 방지하기 위해 SSH접속들을 호스팅사 에서 보통 막고 있어서 부득이하게 이전 호스팅에서 데이터와 DB를 압축으로 내려 받아서 이사가는 호스팅에서 복원하는 방법을 사용하는 것이 가장 빠르고 편리합니다. 그런데 아이비호스팅에서는 백업메뉴는 있는데 복원메뉴가 없네요, 그리고 자동 백업기능도 없는 듯ㅠㅠ 싼게 비지떡인가 봅니다. 혹시 아이비호스팅을 선택하시는 분은 이점 참조하세요. 또 한가지 중요한 단점은 계정과 DB를 백업하는데 자신의 계정용량을 초과하면 홈피가 뻗어버립니다. 보통의 호스팅들은 계정용량과 상관없이 백업파일들을 생성해 주는데 아이비는 백업파일들까지 용량에 추가해 버립니다. 저 같은 경우는 데이터가 1.5G정도 되는데 백업파일 1G정도 되어서 계정용량 2G를 초과해서 홈피가 뻗어 버리네요. 물론 백업파일 내려 받고 지우면 다시 원상태로 돌아가지만... 그래서 저는 일일이 ftp로 접속해서 데이터 백업하고 DB에 직접 연결해서 sql내려 받아서 ftp로 파일 올리고 DB에서 sql 올리는 방법을 택했습니다. 그래서 시간적으로나 폴더와 파일들의 권한문제가 생기기도 해서 불편했습니다. 자! 지금까지는 호스팅 이전하는 일반적인 내용이었구요 /xe 꼬리표 떼는 것은 의외로 간단합니다. 이전설치후 "관리자 페이지" - "설정" - "시스템 설정" - "사이트설정" - "도메인" 에서 /xe 지우시고 저장후 관리자 페이지 닫지 않고 ftp에서 xe안에 파일들 모두 root로 이전하신 후 "캐시파일 재생성" 눌러주시면 일단은 성공입니다. 그 다음 DB에서 작업은 SSL적용후 https:// 로 바꾸고 나서 한꺼번에 하는 걸로... Let’s Encrypt FreeSSL/TLS 무료 인증서 설치를 신청하고 기다려도 답이 없길래 이것 저것 만지다가 홈피도 죽고 https://xetown.com/questions/1188607 하루가 지나고 설치 언제쯤 되냐고 질문글을 다시 올리니 그때서야 답변글이 달리네요. 안녕하십니까. 아이비호스팅입니다. 해당 도메인에 ssl설치중에 문제가 있어 설치가 지연되고있습니다. 현재 확인중에 있으며, 이용에 불편을 드려 죄송하며 최대한 빨리 문제 해결 후 설치 도와드리도록하겠습니다. 여러번 설치 시도 시 ssl설치가 막힐 수 있어 느리게는 다음주 중에 설치가 가능 할 수 있는점 양해부탁드립니다. 설치 후에 바로 연락드리도록 하겠습니다. 감사합니다. 이 글을 받고 느긋하게 기다리니 5일만에 설치 완료 되었다고 답글이 달렸네요. 연락 준다고 했으면 메일정도로는 연락해 주어야 하지 않나? 게시판에 들어가 보지 않으면 설치 된 것인지도 모를뻔 했네요. 참고로 SSL이 설치가 되어도 관리자설정에서 설정 수정해 주지 않으면 일반 http:// 로도 잘 접속됩니다. 괜히 저 같이 설치되었나 안 되었나 테스트 한답시고 "HTTPS 사용" 건드리지 마세요. http://도, https://도 모두 홈피 접속 안됩니다. SSL설정도 간단합니다. "관리자 페이지" - "설정" - "시스템 설정" - "사이트설정" - "HTTPS 사용" 에서 "항상 사용(권장)" 선택하시면 끝입니다. 그럼 무엇이 문제 일까요? 바로 시스템으로 이뤄지는 주소들 이외에 게시판이나 문서에 직접 입력한 http:// 주소들이 문제가 됩니다. 이런 경우 브라우저 주소창에 https:// 앞에 열쇠가 붙지 않고 느낌표가 뜨면서 클릭하면 안전하지 않다고 메세지가 나옵니다. 그럼 DB안에 존재하는 모든 http:// 를 https:// 바꾸는 방법을 설명하겠습니다. 1. https://xetown.com/point_contents/22661 "SSL지원 애드온" 사용하시면 가장 쉽게 된다고 합니다. 저는 1번이 잘 되지 않아서 2. phpMyAdmin로 들어가서 모두 선택후 sql로 내려받습니다. 내려 받은 sql파일을 Editplus 에디터기로 열어서 "바꾸기(Ctrl + H)"로 http://moonhouse.co.kr/xe 를 https://moonhouse.co.kr로 모두 바꾸어 주었습니다. 그러면 /xe 꼬리표 떼기와 https:// 로 한번에 수정이 가능하겠죠. 근데 문제가 특정 레이아웃이 깨어지는 현상이 생기네요. 이래 저래 하다보니 DB중에 xe_sites를 제외하고 sql로 내려 받아서 수정하니 정상적으로 작동이 되네요. 근데 xe_sites에 들어가 보면 domain에 정상적으로 https:// 붙어 있고 별 내용이 없는데 이상합니다??? 그렇게 해서 홈피 접속시 주소 왼쪽에 자물쇠 보이면 성공한 것입니다. 근데 안 보일 걸요~~ "캐시파일 재생성" 눌러주시고 사용 브라우즈의 "인터넷 사용기록"도 지워주셔야 정상적으로 보일 것입니다. 3.그런데 저 같은 경우 sql파일의 크기가 그리 크지를 않아서(한 20M) 에디터기로 열어서 편집을 할 수가 있지만, 용량이 무지 큰 경우는 에디터기로 열기가 쉽지는 않을 것 입니다. 그런 경우는 phpMyAdmin에서 쿼리문을 직접 작성하시면 됩니다. https://www.xpressengine.com/tip/21740199 참조하세요. 마지막으로 예전 주소인 http://moonhouse.co.kr/xe 로 들어와도 https://moonhouse.co.kr 로 접속되게 만들어야겠죠. /xe폴더안에 아래 내용이 포함된 .htaccess파일을 만들어서 올리면 됩니다. RewriteEngine On RewriteRule (.*) https://moonhouse.co.kr/$1 [R=301,L] SSL을 적용하고 나면 구글과 네이버 웹마스터도구 에서 주소를 새로 등록해야 합니다. 변경하는 옵션은 없습니다. 괜히 찾지마세요. "소셜XE 모듈" 로그인을 사용중이라면 사용중인 sns계정에 접속해서 접속주소를 수정해 주어야 정상 작동됩니다. 그리고 각종 API들(지도맵, Youtube, reCAPTCHA, 카카오링크등)도 수정해 주어야 합니다.
게시글 보기시 Url링크 바로가기 뒤에 아이콘을 출력하는 Tip입니다. sketchbook5 게시판스킨을 수정합니다. 1. list.html 파일을 열어서 빨간색 부분 추가합니다. <block cond="$mi->url_link_img == ''"> <load target="js/link_external_icon.js" /> <script> $(function() { $("<!--@if($mi->uli_area == '')-->.rd<!--@elseif($mi->uli_area == 'read')-->.rd_read<!--@end-->").link_external_icon({ icon_path:"/modules/board/skins/sketchbook5/img/link_external.png" }); }); </script> </block> <include cond="$oDocument->isExists()" target="_read.html" /> 2. skin.xml 파일 열어서 "본문 일반 설정"그룹안에 아래의 설정을 넣습니다. <var name="url_link_img" type="radio"> <title xml:lang="ko">링크 바로가기 아이콘</title> <options value=""> <title xml:lang="ko">사용</title> </options> <options value="N"> <title xml:lang="ko">사용하지 않음</title> </options> </var> <var name="uli_area" type="radio"> <title xml:lang="ko"> ┖ 링크 바로가기 아이콘 영역</title> <options value=""> <title xml:lang="ko">전체 영역(본문글 + 댓글 + 확장영역)</title> </options> <options value="read"> <title xml:lang="ko">본문 영역(본문글)</title> </options> </var> 3. link_external_icon.js 파일을 js폴더에 이미지를 img폴더에 업로드합니다. 4. "관리자설정"에서 "캐시파일 재생성" 하시고 "게시판설정"에서 설정하시면 됩니다. p.s 애드온으로 만들면 좋을 것 같은데 제가 애드온에는 약합니다. ㅠㅠ 시간 나면 도전해 봐야지요... [애드온 만들었어요^.^] https://moonhouse.co.kr/xemy/479310
드래그하여 페이지/문서 이동 애드온 https://xetown.com/point_contents/1161730 [스케치북5 게시판에 적용하는 방법] 1. 먼저 /addons/drag_interaction/tpl/index.html 코드를 보면 $list_area_id = 'board_list'; $document_area_id = 'board_read'; board_list 가 페이지 부분 id 이고, board_read 가 본문글 부분 id 입니다. 2. 그럼 어떻게 적용하는가 /modules/board/m.skins/sketchbook5/list.html 파일안에 파란색부분을 찾아서 빨간색부분으로 감사줍니다. <!--// 본문 --> <div id="board_read"> <include cond="$oDocument->isExists()" target="_read.html" /> </div> 이렇게 하면 본문글(_read.html)부분이 board_read 라는 id 값으로 설정됩니다. <div id="board_list"> <!--// 게시판 유형 --> <!--@if($mi->default_style=='list')--> <!--@if(!Mobile::isMobileCheckByAgent() || $mi->list_m)--> <include target="_list_normal.html" /> <!--@else--> <include target="_list_m.html" /> <!--@end--> <!--@elseif($mi->default_style=='webzine')--> <include target="_list_webzine.html" /> - 중략 - <!--@else--> <include target="_list_normal.html" /> <!--@end--> </div> 이 부분은 페이지리스트 부분이 board_list 라는 id 값으로 설정됩니다. 이렇게 까지만 해도 모바일에서 게시판 스킨이 스케치북5 이면 잘 작동합니다. 3. Xetown의 웹지기님이 남긴 팁적용 https://xetown.com/tips/1163417 애드온의 php 파일에 사용되지 않아야할 조건에 || $_COOKIE['donotdragpage'] == 'true' 를 추가해 줍니다. /addons/drag_interaction/drag_interaction.addon.php <?php // 중단 조건 if ( !Mobile::isMobileCheckByAgent() || $called_position !== 'before_display_content' || Context::getResponseMethod() !== 'HTML' || Context::get('module_info')->module !== 'board' || !Context::get('grant')->access || Context::get('act') || $_COOKIE['donotdragpage'] == 'true' ) return; 저는 페이지이동 문구를 상단으로 끌어 올렸습니다. /modules/board/m.skins/sketchbook5/list.html 빨간색부분 추가 하시고 img방에 drag.png파일 추가 <!--// FAQ 검색창 --> <div cond="$mi->srch_window!='N'" class="bd_faq_srch<!--@if($mi->srch_window==3)--> clear<!--@end-->" style="display:block"|cond="$mi->srch_window==2 || $search_keyword"> <include target="_search.html" /> </div> </div> <div style="text-align:center; margin:10px 0; color:orange"> <img src="img/drag.png" /> <p style="display:none;" class="dragoff"> 좌우 스크롤로 페이지 이동이 가능합니다. 끄기 <i class="fa fa-toggle-on dragoff" aria-hidden="true"></i></p> <p style="display:none;" class="dragon"> 좌우 스크롤로 페이지 이동이 불가능합니다. 켜기 <i class="fa fa-toggle-off dragon" aria-hidden="true"></i></p> </div> <!--// 카테고리 --> <div class="cnb_n_list"> list.html 파일 최하단에 아래 스크립트 추가 <script> jQuery(function($){ if(getCookie('donotdragpage') == 'true'){ $('.dragoff').hide(); $('.dragon').show(); } else { $('.dragon').hide(); $('.dragoff').show(); } $('.dragoff').click(function(){ setCookie('donotdragpage', 'true', new Date(Date.now() + 1000000000000)); $('.dragoff').remove(); $('.dragon').show(); location.reload(); }); $('.dragon').click(function(){ setCookie('donotdragpage', 'true', new Date(Date.now() - 1)); $('.dragon').remove(); $('.dragoff').show(); location.reload(); }); }); </script> /modules/board/m.skins/sketchbook5/_read.html 상단에 빨간색 부분 추가 <div style="text-align:center; margin:10px 0; color:orange"> <img src="img/drag.png" /> <p style="display:none;" class="dragoff"> 좌우 스크롤로 이전/다음 글 이동이 가능합니다. 끄기 <i class="fa fa-toggle-on dragoff" aria-hidden="true"></i></p> <p style="display:none;" class="dragon"> 좌우 스크롤로 이전/다음 글 이동이 불가능합니다. 켜기 <i class="fa fa-toggle-off dragon" aria-hidden="true"></i></p> </div> <div class="rd<!--@if(!$mi->rd_nav_style)--> rd_nav_style2<!--@end--><!--@if($mi->default_style=='blog')--> rd_blog {$mi->blog_style}<!--@end--> clear" style="padding:{$mi->rd_padding};" data-docSrl="{$oDocument->document_srl}">
제가 예전에 "위젯을 가로로 정렬했을때 모바일에서 반응형으로 적용하기" Tip을 올린적이 있는데요 이것을 아주 쉽게 적용한 것이 올라왔네요. [본문 내용] XE를 사용하면서 가장 불만인게 메인페이지의 위젯이 반응형으로 작동되지 않는다는 점이다. 반응형에 대한 수요는 많다. 또 많은 부분에서 반응형에 대한 요구사항을 반영하여 업데이트를 하는데 유독 위젯에서의 반응형 지원은 되지 않는 것이 이해가 되지 않는다. 이 문제로 모바일 스킨을 별도로 구매하는 경우도 있는 듯한데 더 이상 골치 아프지 말도록 하자. 그럼 위젯을 반응형으로 적용하는 방법을 알아보자. 방법은 아주 간단하다. 먼저, 위젯 크기를 적용하는 화면에서 위젯 CSS Class 명을 적어준다. 예제에서는 xe-widget이라고 적었다. 다음으로 자신이 원하는 위젯스타일을 적용한다. 그리고 위젯스타일의 CSS 파일을 아래와 같이 수정한다. @media screen and (max-width:639px){ .xe-widget { width: 100% !important; box-sizing:border-box; } } @media screen and (min-width: 640px){ .xe-widget { width: 49% !important; box-sizing:border-box; } } css부분을 해석하면 @media screen and (max-width:639px){ 가로크기가 최대 639px까지는(639보다 작거나 같으면) .xe-widget xe-widget라는 클래스명을 가진 요소의 width: 100% !important; 가로 크기를 100%로 만들고, 이게 우선순위를 가지며 box-sizing:border-box; 내부여백(패딩)과 선(보더)의 크기는 가로크기(width)에 포함시켜라. @media screen and (min-width: 640px){ 가로크기가 최소 640px까지는(640보다 크거나 같으면) .xe-widget xe-widget라는 클래스명을 가진 요소의 width: 49% !important; 가로 크기를 49%로 만들고, 이게 우선순위를 가지며 box-sizing:border-box; 내부여백(패딩)과 선(보더)의 크기는 가로크기(width)에 포함시켜라. 요런 의미이죠. 좀더 정교하게 만들려면 외부여백같은 요소들도 계산해서 넣어주는게 좋기는 하죠. [문하우스의 Tip] 저는 MH 위젯스타일에 적용해 보았습니다. https://moonhouse.co.kr/index.php?mid=moonre&package_srl=469185 - skin.xml 에 옵션 추가 <var name="ws_width" type="text"> <name xml:lang="ko">반응형 가로폭</name> <description xml:lang="ko">반응형 가로폭 (기본 49% 숫자만)</description> </var> <var name="ws_width_r" type="text"> <name xml:lang="ko">반응형 가로폭_오른쪽</name> <description xml:lang="ko">반응형 가로폭 (기본 49% 숫자만)</description> </var> - widgetstyle.html 에 추가 <block cond="!$widgetstyle_extar_var->ws_width">{@ $widgetstyle_extar_var->ws_width = '49'}</block> <block cond="!$widgetstyle_extar_var->ws_width_r">{@ $widgetstyle_extar_var->ws_width_r = '49'}</block> <style> @media screen and (max-width:639px){ .xe-widget, .xe-widget_r { width:100% !important; box-sizing:border-box; padding-bottom:10px;} } @media screen and (min-width: 640px){ .xe-widget { width:{$widgetstyle_extar_var->ws_width}% !important; box-sizing:border-box; padding-right:5px; } .xe-widget_r { width:{$widgetstyle_extar_var->ws_width_r}% !important; box-sizing:border-box; padding:0px; } } </style> 그리고 반응형만 지원하는 위젯스타일도 하나 만들어 봤어요. 이건 스타일은 아무 것도 출력되지 않고 단지 반응형만 지원합니다. mh_mobile V1.0.zip xe-widget와 xe-widget_r을 잘 이용하면 2개 이상의 위젯을 반응형으로 배치할 수 있습니다. 아래의 이미지는 좌측2개는 ws_width를 25%로 ws_width_r을 50%로 설정한 것입니다. 물론 모바일에서는 100%로 배치됩니다. [Demo] https://moonhouse.co.kr/page_CiNC29
게시판 Category 제목 날짜 조회 수
DIV 화면 정중앙에 박스 배치하기 file 2018.09.19 86
DIV 가로 중앙정렬 , 세로 중앙정렬(display:flex; ) file 2018.09.19 116
XE타운 게시판 사용자정의 일자(연월일)에 시간 추가하는 방법 file 2018.09.03 89
위젯 9 MH Multi V3.2 업그레이드(18.09.20) - 최신글+썸네일+내용글+댓글 file 10 2018.07.22 387
기타 템플릿 컴포넌트 Swiper Slide MH 템플릿 file 2018.08.31 155
기타 3 템플릿 컴포넌트 PopUp MH 템플릿 - 닫기버턴 추가 file 5 2018.08.23 209
기타 템플릿 컴포넌트 Popeye MH 템플릿 file 2018.08.22 146
기타 템플릿 컴포넌트 스마트테이블 MH 템플릿 file 2018.08.20 129
기타 템플릿 컴포넌트 Gallery기능 MH 템플릿 file 2018.08.17 150
기타 4 템플릿 컴포넌트 Slide기능 MH 템플릿 file 5 2018.08.06 382
3 4 5 6 7 Next
서버에 요청 중입니다. 잠시만 기다려 주십시오...