misol 님의 "글쓴이 게시물 출력 위젯 ver 0.2" 를 조금 수정하여 글목록대신 썸네일 출력
팁이 될런지 모르겠지만
widgets/soo_xerstory/skins/show_author_document.html 을 아래처럼 고쳐서 사용하고 있습니다.
<load target="../../lang" />
<load target="show_author_document.css" />
<load target="../../../common/xeicon/xeicon.min.css" />
<block cond="false">
<div class="show_author_document">
<h2><i class="xi-book-spread"></i> {$lang->soo_what_did_the_person_write}</h2>
<ul>
{@ $i=1}
<li loop="$document_list => $key, $document" cond="$i < $widget_info->list_count">
<a href="{$document->getPermanentUrl()}" title="{htmlspecialchars($document->getTitle())}">
<!--@if($document->popular == Y)-->
<span class="mark popular">{$lang->soo_hot}</span>
<!--@else-->
<span class="mark newest">{$lang->soo_new}</span>
<!--@end-->
<span class="title">
{$document->printExtraImages()} {$document->getTitle()}
</span>
<span class="part">
<!--@if($document->getRegdate('Y-m-d') == zdate(date('YmdHis'), 'Y-m-d'))-->
<span class="hour">{$document->getRegdate("H:i")}</span>
<!--@else-->
<span class="date">{$document->getRegdate("m.d")}</span>
<!--@end-->
</span>
</a>
{@ $i++}
</li>
</ul>
</div>
</block>
<br></br>
<div style="width:1150px;margin:0 auto;border:0px solid red">
<table style="">
<tr>
{@ $i=1}
<td loop="$document_list => $key, $document" cond="$i < $widget_info->list_count" style="float:left;width:150px;margin-left:10px;">
<!--추가-->
<a href="{getUrl('document_srl',$document->document_srl,'listStyle',$listStyle, 'cpage','')}">
<img src="{$document->getThumbnail(150,150,'ratio')}" alt="" />
</a><br>
<!--a href="{$document->getPermanentUrl()}" title="{htmlspecialchars($document->getTitle())}">{$document->getTitle()}</a-->
</td>
{@ $i++}
</tr>
</table>
</div>
<load target="show_author_document.css" />
<load target="../../../common/xeicon/xeicon.min.css" />
<block cond="false">
<div class="show_author_document">
<h2><i class="xi-book-spread"></i> {$lang->soo_what_did_the_person_write}</h2>
<ul>
{@ $i=1}
<li loop="$document_list => $key, $document" cond="$i < $widget_info->list_count">
<a href="{$document->getPermanentUrl()}" title="{htmlspecialchars($document->getTitle())}">
<!--@if($document->popular == Y)-->
<span class="mark popular">{$lang->soo_hot}</span>
<!--@else-->
<span class="mark newest">{$lang->soo_new}</span>
<!--@end-->
<span class="title">
{$document->printExtraImages()} {$document->getTitle()}
</span>
<span class="part">
<!--@if($document->getRegdate('Y-m-d') == zdate(date('YmdHis'), 'Y-m-d'))-->
<span class="hour">{$document->getRegdate("H:i")}</span>
<!--@else-->
<span class="date">{$document->getRegdate("m.d")}</span>
<!--@end-->
</span>
</a>
{@ $i++}
</li>
</ul>
</div>
</block>
<br></br>
<div style="width:1150px;margin:0 auto;border:0px solid red">
<table style="">
<tr>
{@ $i=1}
<td loop="$document_list => $key, $document" cond="$i < $widget_info->list_count" style="float:left;width:150px;margin-left:10px;">
<!--추가-->
<a href="{getUrl('document_srl',$document->document_srl,'listStyle',$listStyle, 'cpage','')}">
<img src="{$document->getThumbnail(150,150,'ratio')}" alt="" />
</a><br>
<!--a href="{$document->getPermanentUrl()}" title="{htmlspecialchars($document->getTitle())}">{$document->getTitle()}</a-->
</td>
{@ $i++}
</tr>
</table>
</div>
잘 작동하네요.
다만 DB부하가 제법 있으며, 페이징 되지 않는점은 능력이되면 해결 해 보고싶습니다 (희망사항)
그런데 이런거 올려도 되나요? 미솔님한테 혼날지도..
댓글 6
게시글 섬네일을 가져오기 위해 db에 추가적인 쿼리나 조회가 필요하지 않아서 그로 인한 부하 증가는 없을 것 입니다. 오해하시는 분들이 계실 것 같아 댓글 달아 보았습니다.
해당 문서의 섬네일 경로 추출하는 작업의 추가도 부하나 속도에 큰 영향은 없지 싶구요.
게시판 목록 출력에서도 섬네일을 가지는 스타일이 특별히 더 느리거나 하지 않거든요.
저희도 오래전부터 섬네일을 출력시켜 사용하고 있습니다.
이게 전부입니다. 별 차이가 없어야 할텐데 뭔가 다른 문제가 있거나 그렇게 느끼시는 것 일수도요.
아래 캡쳐그림을 보면 약 1초정도의 딜레이가 있는거 같습니다.
다른건 일체 건드리지않고 위젯코드만 적었다가 지웠다가 한 결과입니다.
어쨋든 좀 더 테스트 해 봐야겠습니다.
ps; 혹시 캐시의 영향에 의한건 아닌지도 의심됩니다
게다가 이미 많이들 아시겠지만, 피드백도 제대로 못 해드리고 있는 중이라서 내심 기대하고 있기도 합니다.
좋은 팁 감사합니다!