(ver2.2.0から、NP_ImprovedMediaに統合しました。)
個別ディレクトリでウェブログを運用している際、現在アクセスしているウェブログに属するメディア・ファイルのみ、管理と記事への埋め込みができるようにします。また、NP_ImprovedMediaのMedia Control機能が利用できます。そのため、Orangoo projectsのGreyBox (ver.5.53) を、LGPL ver.2.1のもと、同梱しています。
| General Plugin info | |
|---|---|
| 作者: | Mocchi |
| 最新のバージョン: | ver.2.1.1(2009/01/20) |
| 入手先: | http://japan.nucleuscms.org/bb/download.php?id=1610(61.7KB, Zip) |
| フォーラム参照先: | http://japan.nucleuscms.org/bb/viewtopic.php?t=2576 |
| セキュリティチェック: | Mocchi (2009/01/20) |
Nucleus CMSは、デフォルトの状態ではすべてのメディア・ファイルを一つのディレクトリ「media」に集約してしまいますが、このプラグインを利用することで、個別のディレクトリにメディア用ディレクトリ「media」を配置して、ウェブログが利用できるメディア・ディレクトリを専用のものに限定することができます。
複数ウェブログを以下のようなディレクトリ構成で運用している場合を想定します。
Nucleus CMS
Nucleus Admin : http://(Document Root)/nucleus/
Blog1(ShortName1, Default)
Weblog WWW URL: http://(Document Root)/index.php
Media File DIR: http://(Document Root)/media/
Blog2(ShortName2)
Weblog WWW URL: http://(Document Root)/(shortname2)/index.php
Media File DIR: http://(Document Root)/(shortname2)/media/
Blog3(ShortName3)
Weblog WWW URL: http://(Document Root)/(shortname3)/index.php
Media File DIR: http://(Document Root)/(shortname3)/media/
Blog4(ShortName4)
...
なお、mediaディレクトリの名前は任意ですが、どのウェブログディレクトリでも共通の名前にしてください。
具体的に言うと、管理領域(Nucleusディレクトリ)と同じ階層に、各ウェブログの短縮名のディレクトリを作成し、その中にindex.phpとメディアディレクトリを配置。 このようにしたときに、プラグイン内の改造を加えたmedia.phpが、それぞれのウェブログにおかれたメディアディレクトリを参照するようにします。
また、Nucleusのmedia.phpという、ファイルの記事への挿入やアップロードを行うプログラムを改良し、プラグインとして利用しやすくしてあります。以下の機能が使えます。
新規のウェブログを設置する際は、以下のようにします。
デフォルトでは、Nucleusインストール時と同様に、プライベート・コレクション・ディレクトリ機能がオンとなっています。オフにすることで、メンバー間の共有ディレクトリの使用を徹底することができます。 なお、メディア・ディレクトリにフォルダが作成されていない状態でこの機能をオフにすると、エラーとなります。その場合は、FTPソフトかサーバ提供環境でディレクトリを作成してください。
表示ファイル数を5件から50件の間で指定できます。
Nucleusのグローバル設定にある「アップロードするファイル名の頭に日付を付加する」オプションにより一覧画面での日付とファイル名の表示およびファイル名変更時の動作が異なります。
スキンに変数を記述することで、スキンから機能を呼び出すことができます。以下の2つの記述を、スキンに追加してください。なお、テンプレートからの呼び出しはサポートしていません。
<%if(hasplugin,EachBlogDir)%>
<%EachBlogDir(head)%>
<%endif%>
<%if(hasplugin,EachBlogDir)%>
<%EachBlogDir(anchor)%>
<%endif%>
すると、<%EachBlogDir(anchor)%>を追加したところにアンカー「ファイル管理」が出現します。このアンカーをクリックすることで、機能の呼び出しをすることができます。なお、こうして呼び出されたMedia Controlは、ボタン「文書に挿入」を持たず、ファイルのアップロード・削除・ファイル名の変更のみ利用できます。
NP_ImageManager、NP_ImprovedMedia、NP_Mediatocuと同時に使う事はできません。
すでにアップロードされているメディア・ファイルの名前を変更する前後、削除する前後にイベントを発生します。それぞれ、「PreMediaRename」、「PostMediaRename」、「PreMediaErase」、「PostMediaErase」です。 Nucleus CMSのバージョン3.3以降では、メディア・ファイルをアップロードする前後のイベント「PreMediaUpload」と「PostMediaUpload」を、コアが提供しています。
なお、NP_ActionLogPlusをこのプラグインと一緒に利用している場合、外部ファイルに関する履歴に「ファイル削除」と「ファイル名変更」が加わります。このプラグインが発生するイベント「PostRenameMedia」と「PostDeleteMedia」をキャッチするからです。NP_ActionLogPlusはNucleus CMSのvar.3.3以降を使用した際に発生するイベント「PostMediaUpload」もキャッチします。
| 名前 | いつ | パラメータ |
|---|---|---|
| PreRenameMedia | 選択したメディア・ファイルのファイル名が変更される前 | collection (値渡し)選択したメディア・ファイルが保存されているコレクション・ディレクトリ oldfilename (値渡し)選択したメディア・ファイルの以前のファイル名 newfilename (値渡し)選択したメディア・ファイルの現在のファイル名 |
| PostRenameMedia | 選択したメディア・ファイルのファイル名が変更された後 | collection (値渡し)選択したメディア・ファイルが保存されているコレクション・ディレクトリ oldfilename (値渡し)選択したメディア・ファイルの以前のファイル名 newfilename (値渡し)選択したメディア・ファイルの現在のファイル名 |
| PreDeleteMedia | 選択したメディア・ファイルが削除される前 | collection (値渡し)削除したメディア・ファイルが保存されていたコレクション・ディレクトリ filename (値渡し)削除したメディア・ファイルのファイル名 |
| PostDeleteMedia | 選択したメディア・ファイルが削除された後 | collection (値渡し)削除したメディア・ファイルが保存されていたコレクション・ディレクトリ filename (値渡し)削除したメディア・ファイルのファイル名 |
| PreMediaUpload | (Nucleus CMS ver.3.3以降)選択したメディア・ファイルがアップロードされる前 | collection (参照渡し)アップロードするメディア・ファイルが保存されるコレクション・ディレクトリ uploadfile (値渡し)アップロードするメディア・ファイルがサーバ上で一時的に保存されているファイルの名前 filename (参照渡し)アップロードした後のファイル名 |
| PostMediaUpload | (Nucleus CMS ver.3.3以降)選択したメディア・ファイルがアップロードされた後 | collection (値渡し)選択したメディア・ファイルが保存されたコレクション・ディレクトリ mediadir (値渡し)アップロードしたメディア・ファイルが保存されたコレクション・ディレクトリのサーバにおけるパス filename (値渡し)アップロードした後のファイル名 |
備忘録として残しておきます。