묻고답하기
기본 Content 위젯스킨에서 썸네일 뽑기
2010.11.04 19:32
기본 Content 위젯스킨을 사용하려는데요.
보통은 아래와 같이 최근 게시물을 추출합니다.
이놈을 아래처럼 첫번째 게시물에 썸네일을 추출하고 싶은데요, 한참을 찾아봐도 알 수가 없군요...
아시는 분 도움 좀 주세요~^^
댓글 3
-
난다날아
2010.11.04 21:52
-
영구만세
2010.11.05 11:00
덕분에 어느정도 해결했습니다. 감사합니다. 의견란이 작아서 아래에 조금 미진한 것을 하나 더 질문해 놓았습니다. ^^ -
영구만세
2010.11.05 10:58
잘 지내시죠? 난다날아님.
덕분에 잘 해결했습니다. 물론 한참 붙들고 씨름하기는 했지만...^^
기본 Content 위젯스킨을 아래와 같이 짜집기했더니(?^^) 의도하는 바의 90% 정도 정리가 되었습니다.
<!--@foreach($widget_info->content_items as $key => $item)--> <!--@if(!$chk)--> <div class="xeArticle"> <h2><a href="{getSiteUrl($item->domain, ', 'mid', $item->get('mid'))}">{$item->getBrowserTitle()}</a></h2> <!--@if($item->getThumbnail())--><p class="thumb"><a href="{$item->getLink()}"><img src="{$item->getThumbnail()}" width="{$widget_info->thumbnail_width}" height="{$widget_info->thumbnail_height}" alt="" /></a></p><!--@end--> <h3><a href="{$item->getLink()}">{$item->getTitle($widget_info->subject_cut_size)}</a></h3> <p class="summary"><a href="{$item->getLink()}">{$item->getContent()}</a></p> <a href="{getSiteUrl($item->domain, ', 'mid', $item->get('mid'))}" class="more">more</a> </div> {@$chk=true} <!--@endif--> <!--@end--> <div class="xeNotice"> <ul> <!--@foreach($widget_info->content_items as $key => $item)--> <li><a href="{$item->getLink()}">{$item->getTitle($widget_info->subject_cut_size)}</a> {$item->printExtraImages()} <em class="feedback">{$item->getCommentCount()}</em> <span class="date">{$item->getRegdate("y.m.d")}</span></li> <!--@end--> </ul> </div>
근데, 아래 그림처럼 첫번째 게시물이 반복되는 현상(아래 그림에서는 "홈페이지 공사중" 이란 게시물) 이 있군요. 이 부분은 어떻게 손질하면 좋을지요? -
난다날아
2010.11.05 12:02
foreach문을 두번 돌려서 그렇습니다. 첫번째 반복에서는 첫번째 항목만 나오면 되겠죠? 두번째 반복에서는 첫번째 항목을 제외하고 나머지가 나와야 합니다. 첫번째 반복문에서 {@$chk=true}로 체크 변수 값을 설정하지 않고 그냥 break로 반복문을 종료하는 것이 좋겠습니다.
<!--@foreach(...)-->
.... 쎔네일 출력...
<!--@break-->
<!--@end-->
그리고 두번째 반복문에서 첫번째 항목은 스킵하고 나머지만 나오도록 이렇게 합니다
<!--@foreach(...)-->
<!--@if(!$chk)-->
{@$chk=true}
<!--@else-->
... 목록 출력 ...
<!--@end-->
<!--@end-->
반장니임~~! 제가 답변드리겠습니다!
저걸 구현하시려면 스킨을 고치셔야해요. 스킨 파일을 보면은 리스트가 for문이나 foreach문을 이용하여 반복하며 출력되도록 되어 있을겁니다.
그 반복문 안에서 우선 변수가 없는지 체크합니다. 당연히 첫번째 반복이라면 그 변수가 설정이 안 되어 있기 때문에 if문 안으로 프로그램이 흐릅니다. 썸네일을 출력합니다. 그리고 체크용 변수의 값을 설정해줍니다. 다음 반복에서는 변수가 설정되어 있기 때문에 if문 안의 내용을 건너뛰고 프로그램이 흐릅니다. 쉽죠?
<!--@if(!$chk)-->
... 썸네일 출력...
{@$chk=true}
<!--@endif-->