ファイルマネージャーって便利だけどちょっと不便…
concrete5 に標準搭載されているファイルマネージャー、とても便利ですよね。検索できたり、編集できたり…。フロントエンドページにもファイル一覧を出したり、ユーザーに検索させたりしたい!という要望はあると思います。
しかし残念なことにファイルマネージャーがあるのは管理画面です。様々な権限を設定しないとユーザーに表示できません。
さらに、管理画面を公開することになるので、ちょっとセキュリティ的にもどうなのか…という部分もあります。もちろん、必要な部分以外は権限で非表示にすることもできますが、ちょっと設定に手間がかかります。
フロントエンド側で使用できるファイルブロックはあくまで指定したファイルをダウンロードさせる程度のものなので、ファイル検索させたいときには不向きです。
エクスプレス機能を使えば検索機能は利用できますが、ファイルマネージャーと同期していないので各データを別途登録する必要がありますし、ファイルマネージャーのようにフロントエンド側でファイルアップロードすることができません。
そこでご紹介するのが、ドキュメントライブラリブロックです。
機能1. 指定したフォルダ・ファイルセットを表示できる
ファイルマネージャー内に作成した特定のフォルダや特定のファイルセットのみを対象として一覧表示・検索させることができます。
通常、ファイルマネージャーでフォルダ検索させるためにはファイルマネージャー権限の「ファイルフォルダ検索」権限が必要ですが、ドキュメントライブラリブロックで指定した場合はこの限りではありません。「ファイル表示」権限だけあれば、一覧表示できます。
※ 右イメージは「すべてのフォルダ」を検索対象に設定したもの。ファイルセットがあればファイルセット用のプルダウンメニューが表示されます。
機能2. フロントエンド側からファイルアップロードさせることができる
こちらの機能はファイルマネージャー権限(ファイル追加権限)があらかじめ必要ですが、管理画面のファイルマネージャーを表示させなくてもファイルをアップロードさせることが可能です。
ソースタブにある「ユーザー投稿」の「アップロードを有効」にチェックを入れると、アップロード用のリンクが表示されるようになります。リンクをクリックするとファイルアップロードエリアが表示され、管理画面のファイルマネージャー同様、ドラッグ&ドロップでアップロードすることができます。
機能3. 詳細検索機能をつけることができる
キーワード検索のほか、ファイル属性の絞り込みを有効化することができます。ファイルの拡張子や、縦・横などのサイズから検索することも可能です。
機能4. 一覧のデザインを変更できる
見出しの色、ソート中の見出しの色、見出しテキストの色を自由に設定できます。ほかにも、交互の行を色変えするといったことも可能です。
リンク色はドキュメントライブラリブロックの設定項目内にありませんが、ブロックに標準装備されている「デザイン&カスタムテンプレート」機能で、リンク色も変更することができます。
色のほか、1ページに表示されるファイルの表示数を変更したり、一覧に表示するファイルのプロパティ(サムネイル、ファイルサイズ、ファイル種別、高さなど)を変更することもできます。
一覧に表示するサムネイルの高さや幅も変更できますが、8.5.2 時点で「PDF」や「Excel」など、サムネイル表示できない代わりのアイコンには適用されないのがちょっと残念なところですね。そこは改善されることを期待しましょう。
機能5. 表示したファイルのダウンロード方法を選択できる
ファイルをクリックしたときに、ブラウザに表示可能なものは表示させるか、ブラウザには表示させずに強制的にダウンロードさせるかを選択できます。これはファイルブロックに搭載されている「ファイルのダウンロードを強制」機能と同じです。
機能6. 詳細情報を個別に表示できる
一覧表示したときには最低限の情報しか表示させずに、ユーザーに詳細情報も開示したい…といったことも実現可能です。編集ダイアログの「結果」タブ内にある「拡張可プロパティ」をどれかひとつでも有効にすると、一覧の右端に [詳細] リンクが表示されます。
クリックすると、画像や説明、タグ、サイズなどのファイルのプロパティを表示することができます。
色々使えそうなドキュメントライブラリブロックですが…
実は残念なことに 8.4.2 から 8.5.1 までバグで利用できませんでした。もし上記のバージョンでサイト運用されていて、利用を検討される場合はぜひ 8.5.2 までアップグレードしてください。
また、8.5.2 でも日本語で運用しているサイトの場合、サムネイル列の設定が効かないという問題も確認されています。
それでも、関連書類を検索させたり、ダウンロードさせたりすることができる便利なブロックですので、ぜひお試しくださいませ。