묻고답하기
컨텐츠 스킨 수정중에 첫번째 게시물이 안나오네요..
2012.05.08 12:27
안녕하세요,
제로보드XE로 홈피제작중에 있습니다.
메인화면의 최근게시물이라고하죠, XE에서는 컨텐츠위젯이라고 하더군요..
하여간, 제로보드4에서는 스킨도 많고해서 수정에 쓰는일은 없었지만, XE는 아직 컨텐츠가 많이 부족하여
부득이 수정을하게되는 상황이...
질문은 아래내용입니다
기본 컨텐츠위젯의 스킨인 XEHOME 스킨을 사용중입니다.
기본적으로 스킨상에는 공지/웹진형을 제공하고있는데, 저는 일반적인 게시물스킨을 원하여 수정중에 있습니다.
일반적인 게시물형태는 아래와 같습니다.
Free Board <-클릭시 보드로 이동 more
- 안녕하세요 여기는 이태원......
- 아무래도 안되는것 같은데 여기저기.....
- 등등
- 등등
그중 첫번째 게시물이 삭제되어 나오네요... 알아보니
<!--@if($widget_info->content_items)-->
{@$BBitem = array_shift($widget_info->content_items)}
<!--@end-->
위에 부분때문인것 같은데, 저렇게 하지않고서는 FreeBoard 타이틀을 불러오질 못해요..
제가 수정한 전체 코드입니다.
<!--@if($widget_info->content_items)-->
{@$BBitem = array_shift($widget_info->content_items)}
<!--@end-->
<div class="xeNotice">
<div class="headline">
<h2><!--@if($BBitem)--><a href="{getSiteUrl($BBitem->domain, '', 'mid', $BBitem->get('mid'))}">{$BBitem->getBrowserTitle()}</a><!--@end--></h2>
</div>
<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><!--@if($BBitem)-->
<a href="{getSiteUrl($BBitem->domain, '', 'mid', $BBitem->get('mid'))}" class="more">more</a><!--@end-->
</div>
BBitem 으로 item을 따로 저장해서 하였는데,, 잘못된거겠지만 아무것도 모르다보니.. 찾아보니까
array_shift($widget_info->content_items) 가 첫번째 배열을 삭제하고 리턴한다고 하는데,,
공지형 스킨과 웹진형스킨을 짬뽕시키다보니까 이렇게 되어버렸네요..
일단 저렇게 해보니까 상단타이틀과 링크값은 나오지만은 첫번째 게시물이 안나오고 두번째 게시물부터나오는 상황이 벌어지네요 ㅠㅠ. (당연한거겠지만;;)
기본적으로 스킨에서 제공하는 공지형스킨 코드하고 웹진형 스킨 코드도 같이 올려드립니다..
공지형스킨
<!--@if($widget_info->content_items)-->
{@$topItem = array_shift($widget_info->content_items)}
<!--@end-->
<div class="xeNotice">
<div class="headline">
<!--@if($topItem)-->
<h2><a href="{$topItem->getLink()}">{$topItem->getTitle($widget_info->subject_cut_size)}</a></h2>
<p>{$topItem->getContent()}</p>
<!--@end-->
</div>
<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>
<!--@if($topItem)--><a href="{getSiteUrl($topItem->domain, '', 'mid', $topItem->get('mid'))}" class="more">more</a><!--@end-->
</div>
댓글 1
-
DynamicLaser
2012.05.08 13:44
-
로베룡
2012.05.10 13:44
답변 감사드립니다. 헌데 제가수정한 코드에서 <!--@if($widget_info->content_items)--> {@$BBitem = $widget_info->content_items} <!--@end--> 이렇게 수정해보앗는데 역시 안대네요
XE문제보다는 PHP문제네요 ^^;
array_shift에 대한 설명을 참조하시기 바랍니다.
http://www.php.net/manual/en/function.array-shift.php
{@$topItem = array_shift($widget_info->content_items)}
를 {@$topItem = $widget_info->content_items}로 수정하시면 될것같습니다.