From c6cc168dcb82f6a00da224b0e542c07f4e33b5ac Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 2 Aug 2007 05:40:00 +0000 Subject: [PATCH] =?UTF-8?q?=EC=8D=B8=EB=84=A4=EC=9D=BC=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EC=8B=9C=20=EC=B2=A8=EB=B6=80=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EB=B9=84=EA=B5=90=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84?= =?UTF-8?q?=EC=9D=98=20=EC=BD=94=EB=93=9C=EB=A5=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/trunk@2134 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/document.item.php | 73 ++++++++++--------- modules/document/document.model.php | 8 +- widgets/newest_images/newest_images.class.php | 10 ++- widgets/newest_images/skins/default/list.html | 8 +- 4 files changed, 48 insertions(+), 51 deletions(-) diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 4182c5396..dc722e647 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -237,58 +237,59 @@ } function getThumbnail($width = 80) { + // 문서의 이미지 첨부파일 위치를 구함 $document_path = sprintf('./files/attach/images/%d/%d/',$this->get('module_srl'), $this->get('document_srl')); if(!is_dir($document_path)) FileHandler::makeDir($document_path); + // 썸네일 임시 파일명을 구함 $thumbnail_file = sprintf('%sthumbnail_%d.gif', $document_path, $width); - $tmp_file = sprintf('%sthumbnail_%d.tmp.gif', $document_path, $width); + // 썸네일이 있더라도 글의 수정시간과 비교해서 다르면 다시 생성함 if(file_exists($thumbnail_file)) { + $file_created_time = date("YmdHis",filectime($thumbnail_file)); $modified_time = $this->get('last_update'); - $hour = (int)substr($modified_time,8,2); - $min = (int)substr($modified_time,10,2); - $sec = (int)substr($modified_time,12,2); - $year = (int)substr($modified_time,0,4); - $month = (int)substr($modified_time,4,2); - $day = (int)substr($modified_time,6,2); - $modified_time = mktime($hour, $min, $sec, $month?$month:1, $day?$day:1, $year); - - if($modified_time > filectime($thumbnail_file)) unlink($thumbnail_file); + if($modified_time > $file_created_time) unlink($thumbnail_file); } - if(!file_exists($thumbnail_file)) { - FileHandler::writeFile($thumbnail_file, '', 'w'); + // 썸네일 파일이 있으면 url return + if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file; + + // 생성 시작 + FileHandler::writeFile($thumbnail_file, '', 'w'); - $content = $this->get('content'); + // 첨부파일이 있는지 확인하고 있으면 썸네일 만듬 + $file_list = FileHandler::readDir($document_path); + if(count($file_list)) { + foreach($file_list as $key => $val) { + if(eregi("^thumbnail_([0-9]+)\.gif$",$val)) continue; - // 첨부된 파일부터 찾아봄 (DB말고 내용에서 추출) - preg_match_all("!(\"|')files\/([^ ^\"^']*?)\.(jpg|png|gif|jpeg)!is", $content, $matches); - $attached_file_list = $matches[0]; - - if(count($attached_file_list)) { - $src = preg_replace("!^(\"|')!is","",$attached_file_list[0]); - @copy("./".$src, $tmp_file); - - // 첨부된 파일이 없으면 http로 시작하는 경로를 찾음 - } else { - preg_match_all("!http:\/\/([^ ^\"^']*?)\.(jpg|png|gif|jpeg)!is", $content, $matches, PREG_SET_ORDER); - for($i=0;$iget('content'); - if(filesize($thumbnail_file)<1) return; + preg_match_all("!http:\/\/([^ ^\"^']*?)\.(jpg|png|gif|jpeg)!is", $content, $matches, PREG_SET_ORDER); + for($i=0;$idocument_srl; - $attribute = $document_list[$i]; - + foreach($document_list as $key => $attribute) { + if(!$attribute->document_srl) continue; $oDocument = null; $oDocument = new documentItem(); $oDocument->setAttribute($attribute); if($is_admin) $oDocument->setGrant(); - $result[$document_srl] = $oDocument; + $result[$attribute->document_srl] = $oDocument; } return $result; } diff --git a/widgets/newest_images/newest_images.class.php b/widgets/newest_images/newest_images.class.php index 75ad0760f..731c7310f 100644 --- a/widgets/newest_images/newest_images.class.php +++ b/widgets/newest_images/newest_images.class.php @@ -18,26 +18,29 @@ // 위젯 자체적으로 설정한 변수들을 체크 $title_length = (int)$args->title_length; if(!$title_length) $title_length = 10; + $thumbnail_width = (int)$args->thumbnail_width; if(!$thumbnail_width) $thumbnail_width = 100; $list_count = (int)$args->list_count; if(!$list_count) $list_count = 5; + $mid_list = explode(",",$args->mid_list); // 템플릿 파일에서 사용할 변수들을 세팅 if(count($mid_list)==1) $widget_info->module_name = $mid_list[0]; // 변수 정리 - $obj->mid = $mid_list; $obj->sort_index = $order_target; $obj->list_count = $list_count; // mid에 해당하는 module_srl을 구함 $oModuleModel = &getModel('module'); - $module_srl_list = $oModuleModel->getModuleSrlByMid($obj->mid); + $module_srl_list = $oModuleModel->getModuleSrlByMid($mid_list); $obj->module_srls = implode(",",$module_srl_list); + $obj->direct_download = 'Y'; + $obj->isvalid = 'Y'; // 정해진 모듈에서 문서별 파일 목록을 구함 $files_output = executeQuery("file.getOneFileInDocument", $obj); @@ -45,8 +48,7 @@ // 결과에서 문서 번호만을 따로 추출 if($files_output->data) { foreach($files_output->data as $key => $val) { - $document_srl = $val->upload_target_srl; - $document_srl_list[] = $document_srl; + $document_srl_list[] = $val->upload_target_srl; } } diff --git a/widgets/newest_images/skins/default/list.html b/widgets/newest_images/skins/default/list.html index 297dc486d..baf655302 100644 --- a/widgets/newest_images/skins/default/list.html +++ b/widgets/newest_images/skins/default/list.html @@ -9,14 +9,10 @@ {@ $count = 0; } - +
  • - - - - - +
    {$oDocument->getTitleText($widget_info->title_length)}
    {$oDocument->getNickName()}