아래는 게시판 스킨 파일 일부입니다.
업로드된 파일을 보여주는 부분입니다.
$oDocument->getUploadedFiles() 에 해당 게시물에 포함된 파일의 정보가 들어오는데
저는 이것을 실제 파일명 순서로 sort 하여 보여주고싶습니다.
이 스킨 파일 내에서 작동하도록 만들려면 어떻게 해야하나요 ?
<div cond="$oDocument->hasUploadedFiles()" class="fileList">
<button type="button" class="toggleFile" onclick="jQuery(this).next('ul.files').toggle();"><i class="xi-diskette"></i> {$lang->uploaded_file} [<strong>{$oDocument->get('uploaded_count')}</strong>]</button>
<ul class="files">
<li loop="$oDocument->getUploadedFiles()=>$key,$file"><a href="{getUrl('')}{$file->download_url}">{$file->source_filename} <span class="fileSize">[File Size:{FileHandler::filesize($file->file_size)}/Download:{number_format($file->download_count)}]</span></a></li>
</ul>
$oDocument->getUploadedFiles()이 object들의 배열로 이뤄진 변수여서 조금 복잡합니다.
usort 함수가 먹히면 간단하겠지만 스킨 파일에서는 중괄호를 쓰는 게 어려움이 많아서요.
0. 아래 처럼 되어 있는 파일 목록을 바꿔보겠습니다.
1. 우선 <li loop="$oDocument->getUploadedFiles()=>$key,$file"> 위에 아래와 같이 넣어줍니다.
{@
$sorted_file_list = json_decode(json_encode($oDocument->getUploadedFiles()), true);
$source_filename = array_column($sorted_file_list, 'source_filename');
array_multisort($source_filename, SORT_ASC, $sorted_file_list);
$sorted_file_list = json_decode(json_encode($sorted_file_list), false);
}
2. 그리고 <li loop="$oDocument->getUploadedFiles()=>$key,$file">은 <li loop="$sorted_file_list=>$key,$file">으로 바꿔줍니다.
3. 엥, 안 복잡하네요?
4. 다음과 같이 마무리되었습니다.