PluginFile14
提供: GeeklogJpWiki
目次 |
はじめに
ファイル管理プラグインは,Blaine(Portal Parts)によって作成されました。自分のサイトからダウンロードできるファイルを簡単に管理できます。最新版は 1.5.2 で Geeklog-1.4.0以上が必要です。
ただし、いくつか不具合修正をする必要があるようです。
機能の要約
このプラグインを使用すると,ファイルのアップロード・ダウンロードを行う機能をサイトに追加できます。
- ファイルは主カテゴリ・サブカテゴリに整理できます。
- カテゴリごとにアクセス制限できます - グループ単位でアクセスを制御できます。
- メンバーしかアクセスできないように制限できます - 全体の閲覧とファイルのアップロードの両方ともです。
- カテゴリとファイルに画像のサムネイルやスナップショットを追加できます。
- ファイルの評価と破損ファイルを報告する機能
- 人気ファイルや新規ファイルを自動的に強調
- 統合されたコメントをサポート - オプションでファイル単位で。
- オンラインでの管理が簡単。
- 翻訳用の言語ファイルと画面レイアウトを変更するためのテンプレートを提供
バージョン 1.5 での変更箇所の要約
- Geeklog-1.4.x のコメントAPIをサポート。
- 特定のグループにしかファイルへのアクセス権限を与えない統合されたカテゴリごとのセキュリティ。
- 自動タグのサポート - たとえば [file:10] とすると,IDが10のファイルへリンクが張られ,リンクテキストにファイル名が表示される。
- HTMLの全面的な改定と汎用プラグインCSSの採用。
- PHPの register_globals = off, register_long_arrays = off をサポート。
- ファイル一覧 - メインビューのページはエンドユーザがテーマ変更できるようにテンプレートを使用するようになりました。
- プラグインエディタからの統合されたアップグレード
- セットアップの際にデフォルトのファイルリポジトリの位置を自動的に判別
- 統合されたglMenuのサポート - 詳細は www.portalparts.com をご覧ください。
このプラグインを使っている方には,私(Blaine)の貢献をサポートすることを考えていただければ幸いです。これらのプロジェクトでは政策と継続したサポートを行うにはかなりの時間と努力が必要です。初期バージョンは2002年にリリースされました。
プラグインのインストール
手動でプラグイン用のディレクトリを作成し,適切なディレクトリにファイルをコピーする必要があります。
- データベースのバックアップ
組み込みの管理者機能を使用して,現在のデータベースのバックアップを作成してください。バックアップ機能がきちんと設定され,バックアップファイルのサイズがゼロでないことを確認します。 - プラグインのアーカイブを展開
アーカイブファイルを <geeklog_dir>/plugins ディレクトリに展開します。filemgmt という名前のサブディレクトリができます。 - 必要なプラグイン用ディレクトリの作成
- public_html ディレクトリの下に filemgmt という名前のディレクトリを作成します。
- public_html/admin/plugins ディレクトリの下に filemgmt という名前のディレクトリを作成します。
- 必要なプラグインファイルのコピー
- 展開されたアーカイブの public_html ディレクトリの内容をサイトの public_html/filemgmt ディレクトリ内にコピーします。
- 展開されたアーカイブの public_html/admin ディレクトリの内容をサイトの public_html/admin/plugins/filemgmt ディレクトリ内にコピーします。
- インストールを実行
- 管理者としてサイトにログインし,プラグインエディタからインストールします。手順4.できちんとファイルをコピーしていれば,インストール用のリンク(リンクテキストが filemgmt)が表示されるはずです。
- ファイル保管・リポジトリ用に必要なディレクトリの作成
- public_html ディレクトリの下に次のディレクトリを作成します。必要なら,ディレクトリ名と配置を変更しても構いません。サイトの public_html ディレクトリの下になければなりません。実際の設定は,プラグインの管理ページで定義されます。
- Webサーバーがこれらのディレクトリに書き込めるよう,パーミッションを設定します。サーバーの設定により,744 か 754 か 777 のパーミッションが必要になるでしょう。
- filemgmt_data
- filemgmt_data/files
- filemgmt_data/files/tmp
- filemgmt_data/snaps
- filemgmt_data/snaps/tmp
- filemgmt_data/category_snaps
- ファイル管理の設定
ファイル管理スクリプトを使用してサイトの設定を更新するには, /plugins/filemgmt ディレクトリへの書込権限が必要です。filemgmt.php ファイルへの書込権限も必要です。- 管理者としてサイトにログインし,管理者メニューのファイル管理をクリックします。次に設定をクリックします。
- 設定をチェックして,サイトに応じて更新します。
- このページをはじめて表示したとき,新機能が働いて一番下の6つの設定のデフォルト値が読み込まれます(ファイルのリポジトリのディレクトリとURL)。デフォルトのディレクトリを使用した場合は,まず正しい値になっているはずですが,確認してください。
- URLとパスはスラッシュで終わることに注意してください。
プラグインのアンインストール
バージョン 1.3 からのアップデート
アップデートするには,Geeklogのバージョン 1.4.x とファイル管理プラグインのバージョン 1.3 を使用していなければなりません。
- データベースのバックアップ
組み込みの管理者機能を使用して,現在のデータベースのバックアップを作成してください。バックアップ機能がきちんと設定され,バックアップファイルのサイズがゼロでないことを確認します。 - プラグインのアーカイブを展開
- 現在使用している filemgmt.php(サイトごとの設定ファイル)をリネームし,アーカイブファイルを展開したり,コピーしても上書きされないようにします。
- アーカイブファイルを <geeklog_dir>/plugins ディレクトリに展開します。全てのファイルを置換する必要があります。一部使われなくなったファイル・ディレクトリがあります。
- サイトの public_html/filemgmt のファイルを更新します。現在使用しているファイルを削除してから,新しいファイルをコピーすることをお勧めします。
- お使いのテーマの style.css からファイル管理(filemgmt)関係のCSSを削除します。もはや使用されません。
- プラグインの更新を実行
- プラグインエディタから更新します。プラグイン一覧にコードのバージョンが新しくなったことが表示されます。編集アイコンをクリックすると更新ボタンが表示されます。クリックするとデータベースの変更が行われます。
プラグインの外観にテーマを適用
このプラグインは Geeklog-1.4.x で導入されたデフォルトのプラグイン用CSSを使用しています。主なCSS宣言の例は次の通りです。
- .plugin - 主テーブルの外観全体
- .pluginRow1 と .pluginRow2 - ファイル一覧を交互に色を変えて表示
テンプレートは, plugins/filemgmt/templates ディレクトリにあります。
- filelisting.thtml - メインのテンプレートで,カテゴリ表示とファイル表示のコンテナーです。
- filelisting_category.thtml - カテゴリごとのテンプレートで,ファイル一覧の上部で使用されています。
- filelisting_record.thtml - 個々のファイルを表示するフォーマットです。このテンプレートを変更することで,ファイル一覧中にスナップショット画像をインラインでサムネイル表示できるようになりました。変更のしかたはテンプレート中にコメントしてあります。
- filelisting_subcategory.thtml - カテゴリを閲覧中にトップカテゴリの見出しをフォーマットするために使用されます。
- sortmenu.thtml - カテゴリビューで並び替え可能な見出しをフォーマットするために使用されます。
メインビューで1行ごとに表示されるカテゴリ数のデフォルト値を変更できます。 変数: $numCategoriesPerRow
- public_html/index.php を編集してください。スクリプトの先頭付近にあります。デフォルト値は 4 です。
- public_html/viewcat.php を編集してください。スクリプトの先頭付近にあります。デフォルト値は 6 です。
config.php の設定
plugins/filemgmt/config.php 中に使用可能な設定オプションがあります。サイトに応じて編集してください。config.php 中のコメントを読めば,用途がわかるはずです。
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
| $filemgmtFilePermissions | リポジトリに追加されたファイルに与えられるパーミッション | (int) 0755 |
| $filemgmtWhatsNewPeriodDays | 新着ファイルとして表示する日数 | 14 |
| $filemgmtWhatsNewTitleLength | 新着情報(WhatsNewBlock)に表示する際の文字列長 | 20 |
| $filemgmt_showWhatsNewComments | 新着情報ブロックにファイルに関するコメントを表示するか | true |
ファイル管理プラグインにアクセスする
プラグインをインストールすると,管理者としてアクセスできます。
- 管理者としてサイトにログインします。
- 管理者メニューのファイル管理をクリックします。
プラグインが管理しているファイルへは,http://www.yoursite.com/filemgmt/ でアクセスできます。
設定
ファイル管理プラグインの設定を変更するには,
- 管理者としてサイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- 設定をクリックします。
- 変更を行い,
- 保存をクリックします。
オプションは自明でしょう。アップロードオプションはファイルの追加と関係しているが,だからといって,ファイルがアクセス可能になるわけではありません。インストールマニュアルで指示されている通りにディレクトリを作成すれば(つまり,他の場所にディレクトリを作成したり,違う名前で作成したりするのでなければ),ディレクトリやURLを変更する必要はないはずです。
カテゴリ
カテゴリ追加,サブカテゴリ追加,カテゴリ編集(削除用を含む)用のフォームはみな同じページにあります。このページにアクセスするには,
- 管理者としてサイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- カテゴリをクリックします。
主カテゴリ追加
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- カテゴリをクリックします。
- 主カテゴリ追加の下のタイトル欄にカテゴリ名を入力します。
- カテゴリと関連する画像を追加したい場合は,参照...をクリックして,ファイルを選択。
- その下にある追加をクリックします。
サブカテゴリ追加
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- カテゴリをクリックします。
- サブカテゴリ追加の下のタイトル欄にカテゴリ名を入力します。
- サブカテゴリが属する主カテゴリを選択します。
- その下にある追加をクリックします。
カテゴリ修正
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- カテゴリをクリックします。
- カテゴリ修正で,修正したいカテゴリを選択します。
- その下にある編集をクリックします。
- 編集を行います。
- 変更を保存をクリックします。
カテゴリ削除
警告: カテゴリを削除すると,そのカテゴリ内のファイルもすべて削除されます。ファイルを取っておきたいなら,最初に他のカテゴリに移動させてください!
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- カテゴリをクリックします。
- カテゴリ修正で,削除したいカテゴリを選択します。
- その下にある編集をクリックします。
- 削除をクリックします。
- 削除を確認するメッセージが表示されます。
- OKをクリックすると,削除されます。
ファイル追加
管理者としてファイル追加
管理者としてファイルを追加する場合は,そのファイルを承認する必要はありません。追加するには,
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- ファイルを追加をクリックします。
- フォームに入力します。最初の3つの欄は必須です。
- 追加をクリックします。
メンバーとしてファイル追加
ファイルを直接追加する管理権限のないメンバーがファイルを追加する場合は,ファイルを投稿して承認してもらう必要があります。この機能を有効にするには,まず設定で機能を有効にする必要があります。そのためには,
- サイトにログインします(ゲストユーザのアップロードを許可していない場合です。もっともこの設定は推奨されません)。
- ユーザメニューのファイルアップロードをクリックします。
- フォームに入力します。最初の3つの欄は必須です。
- 実行をクリックします。
メンバが投稿したファイルを承認
管理権限を持たないメンバが投稿したファイルは,まず承認する必要があります。このオプションを無効にしたり,ファイルを承認したときに自動的にメールで通知する・しないを設定できます。現時点では,ファイルを否認したときに自動でメールを通知するオプションはありません。
ファイルを承認・否認するには,
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- ダウンロードをクリックします。承認待ちのファイルの数はそのリンクの後に表示されています。
- 必要な場合は,この時点であるいはファイル承認後に投稿されたものに変更を加えることもできます。承認する前にファイルをダウンロードするオプションもあります。
- ファイルを承認するには,承認をクリックします。否認するには削除をクリックします。
破損ファイルの管理
メンバーはファイル管理プラグインを使用して,破損ファイルを報告することができます。管理者は,その報告を無視することも破損ファイルを削除することもできます。無視を選択すると,この報告を無視して削除します。削除を選択すると,管理データから破損ファイルの情報は消えますが,ファイルそのものは残っています。
破損報告を管理するには,
- 管理者として,サイトにログインします。
- 管理者メニューのファイル管理をクリックします。
- 破損ファイルををクリックします。破損ファイルの数はそのリンクの後に表示されています。
- 希望するアクションに合った無視ないし削除アイコンをクリックします。破損報告を確認できるよう,タイトルにはリンクが張られています。報告者名にもリンクが張られていて,クリックすることでその人のプロフィールを確認できます。
ファイルの編集と削除
ファイルを編集・削除するには,サイトのダウンロード(http://www.yoursite.com/filemgmt/)からファイルにアクセスする必要があります。
該当のファイルを見つけ出し,編集をクリックし,編集・削除を行ってください。
(原文:http://wiki.geeklog.net/wiki/index.php/PluginFile14) 「機能の要約」,「バージョン 1.5 での変更箇所の要約」,「プラグインのインストール」,「バージョン 1.3 からのアップデート」,「プラグインの外観にテーマを適用」,「config.php の設定」はプラグイン付属の readme.html を訳出。
<?php
// +-------------------------------------------------------------------------+
// | File Management Plugin for Geeklog - by portalparts www.portalparts.com |
// +-------------------------------------------------------------------------+
// | Filemgmt plugin - version 1.5 |
// | Date: Mar 18, 2006 |
// +-------------------------------------------------------------------------+
// | Copyright (C) 2004 by Consult4Hire Inc. |
// | Author: |
// | Blaine Lang - blaine@portalparts.com |
// +-------------------------------------------------------------------------+
// | This program is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU General Public License |
// | as published by the Free Software Foundation; either version 2 |
// | of the License, or (at your option) any later version. |
// | |
// | This program is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
// | See the GNU General Public License for more details. |
// | |
// | You should have received a copy of the GNU General Public License |
// | along with this program; if not, write to the Free Software Foundation, |
// | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
// | |
// +-------------------------------------------------------------------------+
//
/* Include the Filemgmt Plugin configuration which defines Directories and URL's and options
This file is set via the Filemgmt Plugin Admin menu - Configuration settings.
The script reads and write to this file - thus needs to be a separate file.
*/
include ("filemgmt.php");
$CONF_FM['version'] = '1.5.2';
$_FM_TABLES['filemgmt_cat'] = $_DB_table_prefix . 'filemgmt_category';
$_FM_TABLES['filemgmt_filedetail'] = $_DB_table_prefix . 'filemgmt_filedetail';
$_FM_TABLES['filemgmt_filedesc'] = $_DB_table_prefix . 'filemgmt_filedesc';
$_FM_TABLES['filemgmt_brokenlinks'] = $_DB_table_prefix . 'filemgmt_broken';
$_FM_TABLES['filemgmt_modreq'] = $_DB_table_prefix . 'filemgmt_mod';
$_FM_TABLES['filemgmt_votedata'] = $_DB_table_prefix . 'filemgmt_votedata';
$_FM_TABLES['filemgmt_history'] = $_DB_table_prefix . 'filemgmt_downloadhistory';
// Permissions that will be used for new files into the repository
$filemgmtFilePermissions = (int) 0755;
// Number of days to show new files listing
$filemgmtWhatsNewPeriodDays = 14;
// String Length for Filename Titles in WhatsNewBlock
$filemgmtWhatsNewTitleLength = 20;
// Should the Whats New Block show new FileMgmt Comments
$filemgmt_showWhatsNewComments = true;
/* Configuration for the auto-rename or reject logic when users are submitted files for approval */
/* Map any extensions to a new extension or 'reject' if they should not be allowed */
/* Any file type not listed will be uploaded using original file extension */
$_FMDOWNLOAD = array(
'php' => 'phps',
'pl' => 'txt',
'cgi' => 'txt',
'py' => 'txt',
'sh' => 'txt',
'exe' => 'reject'
);
// glmenu only use - for glmenu generated menus
$CONF_FILEMGMT['glmenutype'] = 'block'; // Set to block or header
$_FMDOWNLOAD['inconlib'] = array(
php => "php.gif",
phps => "php.gif",
bmp => "bmp.gif",
gif => "gif.gif",
jpg => "jpg.gif",
html => "htm.gif",
htm => "htm.gif",
mov => "mov.gif",
mp3 => "mp3.gif",
pdf => "pdf.gif",
ppt => "ppt.gif",
tar => "zip.gif",
gz => "zip.gif",
zip => "zip.gif",
txt => "txt.gif",
doc => "doc.gif",
xls => "xls.gif",
mpp => "mpp.gif",
exe => "exe.gif",
swf => "swf.gif",
vsd => "visio.gif",
none => "file.gif"
);
?>
