묻고답하기
위젯의 이미지 소스
2011.10.24 06:51
^^
아래 소스 한번 봐주세요.
2개의 다른 위젯 소스 입니다. 코드중 빨간줄은 위제의 이미지를 받아오는 코드 같은데요.
웹진 위젯은 설정한 모듈에서 가져오고요, 최근 이미지 위젯은 file 폴더에서 가져오는것 같습니다.
2번째의 최근 이미지 위젯도 모둘을 기준으로 이미지를 출력을 할려면, 어찌 해야 할지
알려 주시면 감사 드립니다.
1. 웹진 위젯 입니다.
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
if($args->mid_list) {
$mid_list = explode(",",$args->mid_list);
$oModuleModel = &getModel('module');
if(count($mid_list)) {
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
} else {
$site_module_info = Context::get('site_module_info');
if($site_module_info) {
$margs->site_srl = $site_module_info->site_srl;
$oModuleModel = &getModel('module');
$output = $oModuleModel->getMidList($margs);
if(count($output)) $mid_list = array_keys($output);
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
}
}
} else $module_srl = explode(',',$args->module_srls);
$obj->module_srl = implode(",",$module_srl);
$obj->sort_index = $widget_info->order_target;
$obj->order_type = $widget_info->order_type=="desc"?"asc":"desc";
$obj->list_count = $widget_info->rows_list_count * $widget_info->cols_list_count;
$output = executeQueryArray('widgets.webzine.getNewestDocuments', $obj); ---> 모듈에서 이미지를 찾아 출력
// document 모듈의 model 객체를 받아서 결과를 객체화 시킴
$oDocumentModel = &getModel('document');
2.최근 이미지 위젯 입니다.
// 제목
$widget_info->title = $args->title;
$oModuleModel = &getModel('module');
// 대상 모듈이 선택되어 있지 않으면 해당 사이트의 전체 모듈을 대상으로 함
$site_module_info = Context::get('site_module_info');
if($args->module_srls) $obj->module_srls = $args->module_srls;
else if($site_module_info) $obj->site_srl = (int)$site_module_info->site_srl;
$obj->direct_download = 'Y';
$obj->isvalid = 'Y';
// 정해진 모듈에서 문서별 파일 목록을 구함
$obj->list_count = $widget_info->rows_list_count*$widget_info->cols_list_count;
$files_output = executeQueryArray("file.getOneFileInDocument", $obj); ----> DATA 의 file폴더에서 이미지 찾아 출력
$files_count = count($files_output->data);
$document_srl_list = array();
$document_list = array();
$oDocumentModel = &getModel('document');
if($files_count>0) {
for($i=0;$i<$files_count;$i++) $document_srl_list[] = $files_output->data[$i]->document_srl;
$tmp_document_list = $oDocumentModel->getDocuments($document_srl_list);
if(count($tmp_document_list)) {
foreach($tmp_document_list as $val) $document_list[] = $val;
}
}
$document_count = count($document_list);
$total_count = $widget_info->rows_list_count * $widget_info->cols_list_count;
for($i=$document_count;$i<$total_count;$i++) $document_list[] = new DocumentItem();
$widget_info->document_list = $document_list;
// 모듈이 하나만 선택되었을 경우 대상 모듈 이름과 링크를 생성
$module_srl = explode(',',$args->module_srls);
if(count($module_srl)==1) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl[0]);
if($module_info->site_srl) {
$site_info = $oModuleModel->getSiteInfo($module_info->site_srl);
if($site_info->domain) {
$widget_info->more_link = getSiteUrl('http://'.$site_info->domain, '','mid', $module_info->mid);
}
} else {
$widget_info->more_link = getUrl(','mid',$module_info->mid);
}
$widget_info->module_name = $module_info->mid;
}
Context::set('widget_info', $widget_info);
제가 잘 아는것은 아니지만,
빨간색 라인은 모두 같은 문구인데요.
아마도 잘못 이해하고 있는건 아닌지요?
widgets.webzine.getNewestDocuments 은 위젯 폴더에 webzine 에 있는 getNewestDocuments.xml 의 쿼리 구문을 실행하고요.
file.getOneFileInDocument 은 모듈폴더의 file 에 있는 getOneFileInDocument.xml 의 쿼리 구문을 실행하는 구문입니다.
모듈이나 DATA에서 파일을 가져오는 것이 아니라
DB에 있는 위치 정보를 가져오는 것이라고 할 수 있죠.
처음것은 위젯에서 뒤에것은 모듈에 있는 쿼리 구문을 사용하는 것입니다.