레이아웃마다 레이아웃 설정에서 위젯을 출력하는 다양한 방법들이 있습니다.
이온디 베이직2 레이아웃 위젯설정은 이런 식으로 가능합니다.
{$layout_info->wdg4??'<img class="zbxe_widget_output" widget="content_extended" skin="ewce_basic" colorset="white" widget_cache="0m" content_type="document" module_srls="" use_limit="N" order_target="list_order" order_type="desc" list_type="normal" option_view="title,regdate" page_count="1" markup_type="table" title_target="title" nickname_target="nickname" show_browser_title="N" show_content_title="N" show_comment_count="Y" show_trackback_count="Y" show_category="Y" show_icon="Y" show_point_level="N" show_always_new="N" show_nocomment_document="N" tab_type="none" tab_order="module_order" tab_showtype="module" tab_move_type="mouseover" category_range="all" hyperlink="Y" hyperlink_src="article" view_permission="list" view_secret_document="all_user" comment_document_secret="Y" thumbnail_type="crop" />'}
처음 만든 코드는 입력값이 있을 경우엔 입력된 값을 출력하고, 없는 경우엔 이미 만들어진 코드를 넣는 방식으로 했었는데요,
좀 더 발전된 방법으로? 좀 더 사용하기 간편한 방법으로 아래 방법을 추가로 만들어넣었습니다.
<!--@if($layout_info->wdg4)--> <!--@if( strlen($layout_info->wdg4) < 20 )--> <block> {@ $mids = $layout_info->wdg4; $oModuleModel = getModel('module'); $module_srl = $oModuleModel->getModuleSrlByMid($mids); $args = new stdClass(); $args->module_srl = $module_srl; if($mobile) $args->list_count = 4; else $args->list_count = 5; $list = executeQuery('document.getDocumentList',$args)->data; } <ul> <li loop="$list => $key, $val"> <a href="{$val->document_srl}"> <span class="title">{$val->title}</span> <span class="date">{zdate($val->regdate,"Y.m.d")}</span> </a> </li> </ul> </block> <!--@else--> {$layout_info->wdg4} <!--@end--> <!--@else--> <img class="zbxe_widget_output" widget="content_extended" skin="ewce_basic" colorset="white" widget_cache="0m" content_type="document" module_srls="" use_limit="N" order_target="list_order" order_type="desc" list_type="normal" option_view="title,regdate" page_count="1" markup_type="table" title_target="title" nickname_target="nickname" show_browser_title="N" show_content_title="N" show_comment_count="Y" show_trackback_count="Y" show_category="Y" show_icon="Y" show_point_level="N" show_always_new="N" show_nocomment_document="N" tab_type="none" tab_order="module_order" tab_showtype="module" tab_move_type="mouseover" category_range="all" hyperlink="Y" hyperlink_src="article" view_permission="list" view_secret_document="all_user" comment_document_secret="Y" thumbnail_type="crop" /> <!--@end-->
$layout_info->wdg4 값이 있는 경우 해당값을 출력하고, 없는 경우 기존에 만들어놓은 위젯코드를 넣어주는 방식은 동일합니다.
여기서 값이 있는 경우에 다시 if문을 추가해서 입력된 문자열의 길이가 20자 이하인 경우엔 최근게시물위젯코드가 아닌, 만들어놓은 php코드문에서 최근게시물을 출력하도록 해주었습니다.
보통 게시판명 $mid값은 20자 미만일테고, 위젯코드는 그보다 길어지니깐,
20자 미만은 단순히 게시판 $mid명만 입력하면 해당 게시판의 최근게시물이 출력되고,
그렇지 않은 경우에는 생성된위젯코드를 출력하는 방식이라고 생각하시면 됩니다.
이렇게 하면 사용자는 위젯생성코드를 만들지 않아도 간단히 게시판 mid명만 알고 있으면 쉽게 해당 게시판의 최근게시물을 출력할 수 있습니다.