<?php if(!defined('__XE__')) exit(); if($called_position != 'after_module_proc' || Context::getResponseMethod() != 'HTML' || $this->act != 'dispBoardContent') return; // 문서 정보 로드 if(Context::get('document_srl')) { $oDocument = Context::get('oDocument'); } else { $oDocumentModel = getModel('document'); $args = new stdClass(); $args->list_count = $this->list_count; $args->module_srl = $this->module_srl; $args->page = Context::get('page'); $output = $oDocumentModel->getDocumentList($args, true); $document_list = array_values($output->data); $oDocument = $document_list[0]; unset($document_list); } if(!$oDocument->document_srl) return; // 문서 파일 추룰 if($oDocument->hasUploadedFiles()){ $srl = []; $ext = []; $get = []; $url = []; $format = array('pdf','txt', 'tif', 'tiff', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','epub'); foreach($oDocument->getUploadedFiles() as $key => $file){ $uploaded_filename = $file->uploaded_filename; $filename = $file->source_filename; $extension = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename); $_ext = explode('.', strtolower($filename)); $_ext = $_ext[count($_ext)-1]; if(in_array($_ext, $format)) { $srl[] = $file->file_srl; $ext[] = $_ext; $get[$key] = urlencode(getUrl().'addons/ap_viewer/ap_viewer.php?uploaded_filename='._XE_PATH_.str_replace("./","",$uploaded_filename).'&filename='.$filename); $getepub[$key] = urlencode(getUrl().''.str_replace("./","",$uploaded_filename)); switch ($extension) { case pdf: $url[] = 'https://4880.net/pdfjs/web/viewer.html?file=' . $get[$key]; if(!array_intersect($ext, $format)) return; $ap_viewer_script .= " var viewer_srl = '" . join(" | ",$srl) . "'; var viewer_ext = '" . join(" | ",$ext) . "'; var viewer_url = '" . join(" | ",$url) . "'; "; break; case epub: $url[]='https://4880.net/addons/ap_viewer/epubjs/reader/index.php?filename=https://s3.amazonaws.com/moby-dick/moby-dick.epub'; //$url[]='https://4880.net/addons/ap_viewer/epubjs/reader/index.php?filename='. $getepub[$key]; if(!array_intersect($ext, $format)) return; $ap_viewer_script .= " var viewer_srl = '" . join(" | ",$srl) . "'; var viewer_ext = '" . join(" | ",$ext) . "'; var viewer_url = '" . join(" | ",$url) . "'; "; break; default: $url[] = 'https://drive.google.com/viewerng/viewer?embedded=true&url=' . $get[$key]; if(!array_intersect($ext, $format)) return; $ap_viewer_script .= " var viewer_srl = '" . join(" | ",$srl) . "'; var viewer_ext = '" . join(" | ",$ext) . "'; var viewer_url = '" . join(" | ",$url) . "'; "; } } } } else return; // 변수 정리 $option = $addon_info->option; $rprsnt = $addon_info->rprsnt; if(!$option || !is_numeric($option)) $option = 1; if(!$rprsnt || !is_numeric($rprsnt)) $rprsnt = 1; Context::addHtmlHeader('<script>' . $ap_viewer_script . ' var viewer_option = ' . $option . '; var viewer_rprsnt = ' . $rprsnt . ';</script>'); Context::loadFile(array('./addons/ap_viewer/js/ap_viewer.js', 'body', '', null), true); //Context::loadFile(array('./epubjs/libs/jszip/jszip.min.js', 'body', '', null), true); ?>
epub 뷰어 애드온을 만들고 있는데 도움을 받고자 합니다.
51번 줄에서 확장자 epub 으로 업로드된 파일의 상대경로를 알고자 합니다.
검색해보니 쉬운게 아니더군요 .
참고사이트
https://terzeron.com/confluence/pages/viewpage.action?pageId=6455298
변경전
$url
[]=
'https://4880.net/addons/ap_viewer/epubjs/reader/index.php?filename=https://s3.amazonaws.com/moby-dick/moby-dick.epub'
;
변경후
$epubSiteUrl = getNotEncodedFullUrl('');
$epubFilePath = str_replace("./","",$file->uploaded_filename);
$epubFullUrl = $epubSiteUrl.$epubFilePath;
$url[] = $epubSiteUrl.'addons/ap_viewer/epubjs/reader/index.php?filename='.urlencode($epubFullUrl);