Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2011-04-04 13:50:41

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_Attach

Mocchiです。

NP_MediaUtilsを公開します。最新版は0.9.6 (RC2)です。ファイル表示/管理/処理系プラグインのベータテストにご協力下さいでベータテストを行っていたものです。

契機やベータテストなどの旧トピックは以下となります。
NP_Attachのデバックにご協力下さい
ファイルを添付する or NP_ItemFieldEXで画像以外を添付する方法

詳細はWikiの記事を参照して下さい。

NP_MediaUtilsとNP_Thumbnailの機能を利用しているため、先にNP_MediaUtilsとNP_Thumbnailをインストールしておく必要があります。Nucleus CMS 3.40以上、PHPのバージョン5以上で使うことが出来ます。

なお、リサンプリングはNP_MediaUtilsで提供しているMediumオブジェクトのメソッドを利用しています。このメソッドはPHPで標準的に利用できるGD (Graphics Draw) Libraryのバインディングを利用しているため、サーバ環境によっては機能に制限が出るかもしれません。


Attachments:
zip NP_Attach(ver.0.9.6).zip, Size: 7.12 KiB, Downloads: 344

オフライン

#2 2011-04-08 18:22:17

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_Attach

ver.0.9.6にて、割と深刻バグを発見しました。

Nucleus CMSのグローバル設定で「アップロードするファイル名の頭に日付を付加する」を有効にしていても、アップロードされたファイルに接頭辞がつかない、でもデータは接頭辞が付いたもので登録されるというバグがあります。そのため、管理画面においてもページにおいてもサムネイルが表示されなくなります。

バグを修正するには
NP_Attach.phpの475行目を修正します。現在は以下のようになっていますが

$result = MediaUtils::uploadMedium ($root, $collection, $medium, $medium['name'], $manager);

こうします。

$result = MediaUtils::uploadMedium ($root, $collection, $medium, FALSE, $manager);

「MediaUtils::uploadMedium」関数の第4引数は上書き対象のファイル名を入れるのですが、この場合、ファイル接頭辞が付加されずにアップロードされてしまいます。

すでにアップロードしてしまったファイルに関しては、お手数をおかけしますがFTPソフトなどで自力でファイル名を変更して下さい。修正は次期バージョンの1.0.0に含めようと思います。

オフライン

#3 2011-06-21 19:54:01

satsuki
メンバー
登録日: 2007-08-10
投稿: 40

Re: NP_Attach

大変便利にプラグインを使わせていただいております。


1つご相談があります。

NP_Attachで、同じファイル名の画像を2つ以上アップロードできる方法はありますでしょうか。

本日、同一画像を複数の記事にアップロードしたかったのですが、上手くいかず、ファイル名のみを変更して再度アップロードを試みました。
すると、上手く表示されました。

しかし、出来ればそのようなことを気にせずに、同一画像を何度でもアップロードできたらと思いました。


使用環境は以下の通りです。
-------------
NP_Attach ver.0.9.6 (RC2)
Nucleus CMS v3.64
-------------
PHP 5.2.17
MySQL 5.0.77
-------------
WindowsXP
InternetExplorer8
-------------


いつもご相談ばかりで申し訳ありませんが、何卒宜しくお願いします。

*satsuki*


*satsuki*

オフライン

#4 2011-06-22 14:26:37

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_Attach

先にお伝えしておきますが、今はNucleus CMS 4.0のために本家の開発に加わっているので、対応する時間を確保できません。ご了承ください。

NP_Attachはファイルアップロードに関してNucleus CMSの作法に従っているので、同じファイル名のメディアをアップロードするなら、以下の決まりを守る必要があります。

1. グローバル設定の項目「アップロードするファイル名の頭に日付を付加する」で「はい」を選択
2. ファイル名の先頭にアップロード時の日付がつくため、日をおいて同じファイル名のメディアをアップロードすることが可能

これとは無関係に、同じファイル名のメディアを「上書き」アップロードすることもやろうと思えば出来ますが(実はNP_MediaUtilsに実装してあったりして)、新旧ファイルのURLがわけわからないことになりそうなので、そっちに舵を切るのは危険かなと考えているところです。

ファイル名をハッシュ化して(可能な限り)一意のものとしてファイルシステムに保存してしまう方法も考えられますが、URLからファイルの内容を推測できないので、こちらもあまり気がすすみません。

「ウェブサーバーのファイルシステムにはハッシュ化したファイル名で保存して、データベースに実ファイル名と仮想ファイル名の組を保存、それを参照するダウンロードスクリプトを用意してそちらでダウンロード処理をさせる」といった仕様を考えることもできますが、これもなんか面倒であまり気が進まなかったりします。

現実的には、同一ファイル名のメディアがすでにウェブサーバーのファイルシステムにアップロードされていたら、ファイル名の拡張子前に「-2」などと追加して保存するというのがシンプルで無難かとは思いました。

オフライン

#5 2011-06-22 14:34:14

satsuki
メンバー
登録日: 2007-08-10
投稿: 40

Re: NP_Attach

Mocchi 様

ご回答ありがとうございました。

書いていただいたことを参考に、こちらで工夫してみます。


*satsuki*

オフライン

Board footer