오늘 여기에서 막혀서 하루종일 암것도 못 했네요.. -_-..
게시판에는 첨부파일에 이미지가 없어도, 링크를 따라온 이미지를 썸네일 이미지로 잘 표시해 주는데..
위젯이 그 기능을 못해서.. 어디를 수정해야 될 까 한참을 찾아봤는데.. 답이 안 나옵니다.. 흑흑..
먼저 [xe\modules\document\document.item.php]
function getThumbnail($width = 80, $height = 0, $thumbnail_type = '') { // 존재하지 않는 문서일 경우 return false if(!$this->document_srl) return; // 높이 지정이 별도로 없으면 정사각형으로 생성 if(!$height) $height = $width; // 첨부파일이 없거나 내용중 이미지가 없으면 return false; if(!$this->get('uploaded_count') && !preg_match("!<img!is", $this->get('content'))) return; // 문서 모듈의 기본 설정에서 Thumbnail의 생성 방법을 구함 if(!in_array($thumbnail_type, array('crop','ratio'))) { $config = $GLOBALS['__document_config__']; if(!$config) { $oDocumentModel = &getModel('document'); $config = $oDocumentModel->getDocumentConfig(); $GLOBALS['__document_config__'] = $config; } $thumbnail_type = $config->thumbnail_type; } // 섬네일 정보 정의 $thumbnail_path = sprintf('files/cache/thumbnails/%s',getNumberingPath($this->document_srl, 3)); $thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $width, $height, $thumbnail_type); $thumbnail_url = Context::getRequestUri().$thumbnail_file; // 섬네일 파일이 있을 경우 파일의 크기가 0 이면 return false 아니면 경로 return if(file_exists($thumbnail_file)) { if(filesize($thumbnail_file)<1) return false; else return $thumbnail_url; } // 대상 파일 $source_file = null; $is_tmp_file = false; // 첨부된 파일중 이미지 파일이 있으면 찾음 if($this->get('uploaded_count')) { $oFileModel = &getModel('file'); $file_list = $oFileModel->getFiles($this->document_srl); if(count($file_list)) { foreach($file_list as $file) { if($file->direct_download!='Y') continue; if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$file->source_filename)) continue; $source_file = $file->uploaded_filename; if(!file_exists($source_file)) $source_file = null; else break; } } } // 첨부된 파일이 없으면 내용중 이미지 파일을 구함 if(!$source_file) { $content = $this->get('content'); $target_src = null; preg_match_all("!src=(\"|')([^\"' ]*?)(\"|')!is", $content, $matches, PREG_SET_ORDER); $cnt = count($matches); for($i=0;$i<$cnt;$i++) { $target_src = trim($matches[$i][2]); if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$target_src)) continue; if(preg_match('/\/(common|modules|widgets|addons|layouts)\//i', $target_src)) continue; else { if(!preg_match('/^(http|https):\/\//i',$target_src)) $target_src = Context::getRequestUri().$target_src; $tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->document_srl)); if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp'); FileHandler::getRemoteFile($target_src, $tmp_file); if(!file_exists($tmp_file)) continue; else { list($_w, $_h, $_t, $_a) = @getimagesize($tmp_file); if($_w<$width || $_h<$height) continue; $source_file = $tmp_file; $is_tmp_file = true; break; } } } } |
하는 소스가 있어용..
위젯을 살펴보면.. [xe\widgets\contentextended\contentextended.class.php]
function getThumbnail(){ return $this->get('thumbnail'); } |
요부분 혹시 아시는분은 팁좀 부탁드립니다.. 흑흑.. ㅠㅠ
'웹' 카테고리의 다른 글
[제로보드 XE 1.5] 회원정보 보기 -> 회원그룹 감추기 (0) | 2012.04.25 |
---|---|
[제로보드 XE 1.5] dispMemberInfo / 회원정보 보기를 수정 하였습니다. (0) | 2012.04.25 |
간단히 롤오버 이미지 만드는 소스 (0) | 2011.11.16 |
제로보드 1.5 업그레이드 준비중.. (0) | 2011.11.08 |
[제로보드 XE] 링크를 새창으로 열기~ (0) | 2011.09.16 |