웹마스터 팁
코어 수정 없이 스킨 수정만으로 게시판 목록에 유튜브,비메오 썸네일 출력
2014.02.23 18:46
속도에 차이가 있지는 않을까, 소스가 너무 허접하지는 않나해서 제 게시판 스킨에는 추가하지 않았습니다만,
(제가 php도 하나하나 처음부터 공부해야하는 완전 초보라서요)
제가 코어수정은 좋아하지 않아 보통은 모든 걸 게시판 스킨으로 만들 수 없을까 고민합니다.
어차피 저는 트래픽이나 뭐 서버 부하 같은 건 상관없는 1인 개인 홈피만 가지고 노는지라. ㅎ_ㅎ;
속도나 뭐 그런거에 대해 별달리 고민할 필요가 없었습니다. 'ㅁ';
그렇게 놀다 해봤더니 되길래, 혹시 필요하신 분이 계실까 하고 팁 남깁니다.
이걸 적용하시고 발생하는 문제를 전 책임지지 않습니다.
게시판 목록에서 게시판내용을 얻어온 다음 http 링크를 따서 썸네일 소스로 변환하는 겁니다.
1. 기본은 이렇습니다. 본문에 쓴 내용을 게시판 스킨에서 제어할 수 있습니다. 다들 아시겠지만.. ㅎㅎ
본문의 {$oDocument->getContent()} 을 다음과 같이 바꾸시면
{@
$contentrest = $oDocument->getContent();
$contentrset = str_replace('엉엉','하하',$contentrest);
}
{$contentrest}
본문 내용 중의 모든 엉엉이 하하로 바뀌어 나옵니다. -_-;
{@
$contentrest = $oDocument->getContent();
$contentrset = str_replace('foret','천재님',$contentrest);
}
{$contentrest}
이런거..ㅋㅋㅋ;;
2. 또 음... 코멘트 내용에 1, 2, 3, 4를 치고 각 코멘트의 합을 더하고 싶다면,
{@ $aa_count = 0} 를 코멘트 loop (foreach) 전에 넣고
코멘트 loop 끝나기 전에 다음과 같이
{@ $extras = strip_tags($comment->getContent(false));}
{@ $aa_count = $aa_count+$extras}
코멘트 내용에서 태그 없애고 내용만 남긴 후, 내용 + aa_count 를 더해주면,
코멘트가 달릴 때마다 계속 반복되어서
loop 끝난 후에 {$aa_count} 를 넣어보시면 1+2+3+4 가 된 10이 출력됩니다.
3. 유튜브와 비메오 썸네일 부분은 이렇게...
_style.gallery.html 등의 썸네일 부분에 다음을 넣으시면 됩니다. (꼭 목록 loop 안쪽에 넣어야겠죠?)
목록에 섬네일을 확장변수로 만드는 것도 이거랑 별반 다를바는 없습니다.
그냥 유튜브랑 비메오 제공 썸네일 링크를 따오는 형식이에요. ㅎㅎ;
(1) http로 시작하는 링크를 따서 유튜브와 비메오 썸네일용 링크로 바꿔라~
얘를 일단 목록 loop 안에 넣으시고요.
{@ $documentcontent = $document->getContent(); preg_match_all("((http)://[a-z0-9-]+.[][a-zA-Z0-9:&#@=_~%;?/.+-]+)",$documentcontent,$out, PREG_PATTERN_ORDER); $thumbnail_id = str_replace('http://youtu.be/','http://img.youtube.com/vi/',$out[0][0]); $thumbnail_id = str_replace('http://www.youtube.com/watch?v=','http://img.youtube.com/vi/',$thumbnail_id); $thumbnail_id = str_replace('https://www.youtube.com/watch?v=','http://img.youtube.com/vi/',$thumbnail_id); $thumbnail_id = str_replace('http://vimeo.com/','http://www.vimeo.com/',$thumbnail_id); }
<!--@if(preg_match('/youtu/', $thumbnail_id))--> <img src="{$thumbnail_id}/0.jpg"/> <!--@end-->
위는 $thumbnail_id에 youtu 가 들어가면 유튜브 썸네일을 출력하라는 뜻입니다.
아래는 vimeo 비메오 얘는 id만 따서 넘기면 비메온지 구분이 안가서 대충대충 넘겨서... 가지고 와서 아이디를 따는 중입니당.
참 대충대충.. ㅋㅋ;;
<!--@if(preg_match('/vimeo/', $thumbnail_id))--> {@ $thumbnail_id = str_replace('http://www.vimeo.com/','',$thumbnail_id);} <script> //<!--<![CDATA[ jQuery(function(){ jQuery("#vimeothumbnail .vimeothumb").each(function(index){ var thumbnail_id = jQuery(this).attr("id"); jQuery.getJSON('http://www.vimeo.com/api/v2/video/' + thumbnail_id + '.json?callback=?', {format: "json"}, function(data) { jQuery("#"+thumbnail_id).attr('src', data[0].thumbnail_medium); }); }); }); //]]>--> </script> <div id="vimeothumbnail"> <img id="{$thumbnail_id}" class="vimeothumb" /> </div> <!--@end-->
끝입니다. 쉽죵... 이미지 크기같은건 쓰시는 분이 알아서 지정하시면 됩니다.
잘 모르시겠다면 갤러리나 웹진이나 뭐 _style.webzine.html 이런 애 여셔서 잘 살펴보시면 foreach 나 loop 가 나올텐데 그게 들어가 있는 태그 예를 들면
div loop="xxx"> 혹은 @foreach ~~~ -->
뒤에 위의 세 소스를 그냥 넣어보세요.
안에 http로 시작하는 유튜브와 비메오 주소가 있다면 썸네일이 보일겁니다.
4. 게시판 본문.html 에서 주소를 따서 주소 양옆에 iframe 소스 넣고 유튜브 영상 출력으로 바꿔줄 수도 있겠죠. ㅎㅎ
방법은 동일합니다. 제 게시판 스킨 보시면 본문 view.document 에서 확장변수 가지고 저렇게 해놨습니다. ㅎㅎ
그런데... 게시판 스킨 만들때마다 일일이 소스를 수정하느니 그냥 유튜브 공유 눌러 소스를 따와서 html 편집으로 넣는게 호환성면에서 확장변수사용, 스킨 만들기, 애드온 만들기보다 낫지 않나 고민이 되긴 합니다. 확장변수 나중에 혹시 지원 방식이 바뀐다거나 하면 곤란하고.. 스킨도 그렇고.. 애드온도 애드온 썼다가 삭제하면 망이니 그냥 본문 db에 때려넣는게 제일 낫지 않을지.. ㅋ_ㅋ;;