Blog

concrete5でファイルオブジェクトの色んな情報を取得する

Posted by admin at 10:58 日時 2014/05/24

ファイルのダウンロードリンクは「ファイル」ブロックで簡単にページ内に設置できるけど、拡張子やファイルのサイズなど、もっと詳しい情報を表示したい場合の方法についてまとめたゾ☆

<?php  // ファイルブロックの場合のFileオブジェクトの取得方法です。  // ページ属性などの場合は適宜読み替えてね(はあと  $f = $controller->getFileObject();    // ファイルオブジェクトを渡して権限オブジェクトの生成  $fp = new Permissions($f);    // 現在のユーザーがファイルの閲覧権限を持っているかチェック!  if ($fp->canViewFile()) :            // ファイルのタイトルの取得      $file_title = $f->getTitle();            // 承認されたファイルバージョンの取得。      // concrete5ではファイルの変更/差し替えの履歴が残りますので、      // 承認されたバージョンを取得しないとサイズも変わってきちゃうんだょ      $fv = $f->getApprovedVersion();            // ファイルダウンロードURLの取得      $download_url = View::url('/download_file', $fv->getFileID(), Page::getCurrentPage()->getCollectionID());            // ファイルサイズの取得      $file_size = $fv->getSize();        $file_fill_side = $fv->getFullSize();      $file_size_mb = Loader::helper('number')->formatSize($file_full_size, 'MB');            // ファイルがアップされた日時の取得      $fvDateAdded = $fv->getDateAdded();      $upload_date = Loader::helper('date')->date(DATE_APP_GENERIC_MDYT_FULL_SECONDS, strtotime($fvDateAdded));            // FileTypeオブジェクトの取得。      $ft = FileTypeList::getType($fv->fvFilename);            // ファイルタイプ(PDFとかPNGとか)名の取得      $file_type = $ft->getName();            ?>      <p>ファイル名:<?php echo h($file_title); >?></p>      <p>ダウンロードURL:<?php echo $download_url; >?></p>      <p>サイズ:<?php echo $file_size; >?></p>      <p>アップロード日時:<?php echo $upload_date; >?></p>      <p>タイプ:<?php echo $file_type; >?></p>      <?php    else:        echo '表示権限がないよ!';    endif;

自分で作るのメンドクサイよって人は、拙作のアドオン File Templates+ を使うとすぐに表示できちゃうぜ(・ω≦)


Share this entry