Nucleus(JP)フォーラム

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

ログインしていません。

#1 2010-04-24 14:06:11

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

Re: NP_Attachのデバックにご協力下さい

Mocchiです。

ファイルを添付する or NP_ItemFieldEXで画像以外を添付する方法でご提案いただいたプラグインを開発中です。基本的な機能を実装したので、ベータ版として公開致します。

デバッグにご協力ください。そして改善点や要望などお寄せいただけると助かります。

使いかた
0. 他のプラグインと同じようにインストール
1. プラグインオプションでアイテム追加/編集画面に表示する画像のサイズを設定。テンプレートの設定もできますが、ドキュメント整備してないのでこのままお使い下さい。
2. ブログオプションで、添付するファイルの上限を設定。0にすると何も起こらなくなります。テンプレートの設定もできますが、ドキュメント整備してないのでこのままお使い下さい。
3. テンプレートに上限の数だけ、テンプレート変数<%Attach%>を記述。<%Attach(100)%>とすると、画像の一辺の最大値が100となります。
4. アイテムの追加/更新でファイルアップロードフォームが表示されます
5. アイテムを追加/更新すると同時に、ファイルもアップロードされます
6. ファイルのアップロード先は、今のところプライベートコレクションです
7. テンプレート変数を記述したところに、画像が表示されます
8. 画像の表示は、テンプレートのパース順

ハードコーディングしているTODOリストを列挙します。hardとしているものは、現在の私の技量では実装できないものなので、アドバイスなどいただけたら嬉しいです。

// TODO (hard) itemOptionをhiddenにすると、PrePluginOptionsUpdateイベントが発生しないみたい
// TODO (easy) 日本語ハードコーディングしてます
// TODO (hard) アップロードに失敗した時に管理画面へメッセージを表示したいが、どうしたらいいのかわからない
// TODO (easy) ファイル名のハッシュ化はまだやる気ない。
// TODO (easy) 最後はPHP5向けにコードを見直す予定

Attachments:
zip NP_Attach(var.0.5).zip, Size: 11.23 KiB, Downloads: 287
zip NP_Attach(ver.0.8).zip, Size: 5.39 KiB, Downloads: 269

オフライン

#2 2010-06-10 16:08:53

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

Re: NP_Attachのデバックにご協力下さい

プラグイン作者様、いつもありがとうございます。

表題の件ですが、
NP_Attachで、あるブログに3つまでファイルを添付できるよう設定しました。

しかし、メインの目次ページは、最新1件のアイテムにしか画像が表示されません。
その他のアイテムでは、画像が表示されるべき場所は空欄になっています
(テンプレートの記述は、<%Attach(1)%>としました)。

個別アイテムページでは、
<%Attach(1)%>、<%Attach(2)%>、<%Attach(3)%>まで
きちんと表示されました。

[試用環境]
*Nucleus CMS v3.41日本語版(EUC-JP)
*PHP 5.2.13
*MySQL 4.0.25

以上、ご報告致します。
宜しくお願い致します。

*:*:*:*:*
:satsuki:
*:*:*:*:*


*satsuki*

オフライン

#3 2010-06-11 22:34:46

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

Re: NP_Attachのデバックにご協力下さい

メンバー変数である$countで表示番号を数えていたため、メインの目次ページにおいて、ひとつめのアイテムでは表示されても、2つ目以降ではカウントがウェブログで設定された数を超えてしまっているので、表示されないという処理になってます。

メインの目次ページでの利用を考慮して、この部分、作り直してみますね。

それと、今の作りではテンプレート変数は<%Attach%>となり、表示される画像の順番はテンプレートのパースの順番となっています。やはり<%Attach(x)%>で表示の順番も管理できた方がいいでしょうか?

オフライン

#4 2010-06-13 02:15:03

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

Re: NP_Attachのデバックにご協力下さい

Mocchi様、御返事ありがとうございます。

それと、今の作りではテンプレート変数は<%Attach%>となり、表示される画像の順番はテンプレートのパースの順番となっています。やはり<%Attach(x)%>で表示の順番も管理できた方がいいでしょうか?

個人的には<%Attach(x)%>で表示の順番は管理できなくてもいいです。
でも、表示されるファイルの数は管理したいと思います
(メインの目次ページでは1番目の画像、個別アイテムページでは1~3番目の画像を表示、というように)。

※<%Attach(x)%>で表示の順番を管理できないとどうなるのでしょうか。
すみませんが、あまりよくわかっていないです。
全ての添付したファイルが昇順が降順で表示されるのでしょうか?

*:*:*:*:*
:satsuki:
*:*:*:*:*


*satsuki*

オフライン

#5 2010-06-13 22:27:10

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

Re: NP_Attachのデバックにご協力下さい

個人的には<%Attach(x)%>で表示の順番は管理できなくてもいいです。
でも、表示されるファイルの数は管理したいと思います
(メインの目次ページでは1番目の画像、個別アイテムページでは1~3番目の画像を表示、というように)。

メインの目次ページでの利用はあまり頭になかったので、こういう使い方ができるというのは気付きませんでしたね。この点も盛り込んでみますね。


※<%Attach(x)%>で表示の順番を管理できないとどうなるのでしょうか。
すみませんが、あまりよくわかっていないです。
全ての添付したファイルが昇順が降順で表示されるのでしょうか?

パースの際、テンプレートに<%Attach%>を見つけ次第、ファイルの登録順にタグを出力するという処理になります。3つ出力したい場合はただ単に、テンプレートに3ヶ所<%Attach%>を記述するだけでよくなります。あまりないとは思いますが、2番目に登録したファイルを先に出力して、次に1番目を出力といった使い方はできません。また、3つファイルを投稿しているけど、テンプレートは2ヶ所しか記述していない場合、3番目のファイルが出力されません。

オフライン

#6 2010-06-14 13:40:13

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

Re: NP_Attachのデバックにご協力下さい

御返事ありがとうございます。

メインの目次ページでの利用はあまり頭になかったので、こういう使い方ができるというのは気付きませんでしたね。この点も盛り込んでみますね。

楽しみにしています^ー^

パースの際、テンプレートに<%Attach%>を見つけ次第、ファイルの登録順にタグを出力するという処理になります。3つ出力したい場合はただ単に、テンプレートに3ヶ所<%Attach%>を記述するだけでよくなります。あまりないとは思いますが、2番目に登録したファイルを先に出力して、次に1番目を出力といった使い方はできません。また、3つファイルを投稿しているけど、テンプレートは2ヶ所しか記述していない場合、3番目のファイルが出力されません。

よくわかりました。私は上記のような仕様でもいいと思います。

宜しくお願いします。

*:*:*:*:*
:satsuki:
*:*:*:*:*


*satsuki*

オフライン

#7 2010-06-25 16:41:22

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

Re: NP_Attachのデバックにご協力下さい

Mocchiです。

NP_Attach ver.0.8を公開いたします。まだベータ版で、最後の調整を残してあります。

  • satsukiさまにご指摘いただいた点について修正。メインの目次ページで使えるようにしてあります。

  • 入出力値のチェックを実装

  • サムネイル表示ができます。いろいろ考えましたが、プラグインのアクションで実装することにしました。

  • 画面への表示方法をテンプレート化しました。プラグインオプション内で、<%thumbnail%>でサムネイルへのURLを、<%slim_width%>でサムネイルの横幅を、<%slim_height%>でサムネイルの高さを出力することができます。それ以外のテンプレートは、Nucleus CMSデフォルトの変数が使えます。詳細はヘルプファイルの「テンプレート:メディアとポップアップ」を参照してください。

引き続き、バグ報告や要望など寄せていただけると助かります。

オフライン

#8 2010-11-30 12:44:23

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

Re: NP_Attachのデバックにご協力下さい

Mocchi様

大変ご無沙汰してしまい、申し訳ありません。

さて、試してみたところ以下の点が気になりました。

1.記事への画像の添付には成功しますが、管理画面にエラーが出ます。

▼エラーの内容

Warning: preg_match() [function.preg-match]: No ending delimiter '#' found in /(Nucleusのディレクトリへのパス)/nucleus/plugins/NP_Attach.php on line 541

2.74行目~76行目の日本語の文章は、「管理画面」を「ブログ」に置き換えるのが正しいのではないでしょうか。

3.NP_Attachをアンインストールしても、画像とアイテムをひもづけたデータが保持されていると便利だと思いました。
  現在は、アンインストール→再インストールしたら、元通りアイテムにひもづけるには画像を添付し直さなければいけないので。

※下記の環境で使用しました。
PHP:5.2.13
MySQL:5.0.77
OS:WindowsXP

※同じ環境で、別のディレクトリにインストールしたNucleusでは全くアップロードができません。
プラグインの順序を入れ替える・インストールし直す等、やってみようと思います。

我侭申し上げてすみません。
また何かありましたらご報告させていただきます。

*:*:*:*:*
:satsuki:
*:*:*:*:*


*satsuki*

オフライン

#9 2010-12-05 22:39:36

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

Re: NP_Attachのデバックにご協力下さい

satsukiさま、ありがとうございます。

> 1.記事への画像の添付には成功しますが、管理画面にエラーが出ます。

541行目の正規表現を間違えました。この箇所の趣旨は、ブラウザから送信されたファイル名に終端文字「\0」、ディレクトリ区切り文字「/」、フォルダ区切り文字「\」が含まれていたらスキップします。以下に修正をしてみて下さい。

if (preg_match("#(\\|/|\0)#", $media[$key]['name']))


> 2.74行目~76行目の日本語の文章は、「管理画面」を「ブログ」に置き換えるのが正しいのではないでしょうか。

確かにその通りですね。

> 3.NP_Attachをアンインストールしても、画像とアイテムをひもづけたデータが保持されていると便利だと思いました。

差し当たり、次のベータ版にはプラグインオプションでこれを選択できるようにしたいと思います。でも今の仕様ですと、すでにファイルシステムにアップロードされているファイルに関しては選択出来ないので使い勝手がいまいちですね。

> ※同じ環境で、別のディレクトリにインストールしたNucleusでは全くアップロードができません。プラグインの順序を入れ替える・インストールし直す等、やってみようと思います。

現象を詳しく教えていただければ助かります。その場合、一緒に使っているプラグインも教えて下さい。

オフライン

#10 2010-12-08 19:04:00

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

Re: NP_Attachのデバックにご協力下さい

Mocchi様

御返信ありがとうございます。
2点、ご報告致します。

1.541行目のエラーの件

  先日書いていただいた通りに書換えてもエラーが出ました。

  そこで、下記のようにしたら、エラーが出ずにアップロード出来るようになりました。
  「\0」の直前に「\」を付けたのですが、問題ございませんでしょうか。

if (preg_match("#(\\|/|\\0)#", $media[$key]['name'])) 

2.別のディレクトリのNucleusでアップロードできない件

  アップロードできない現象の詳細は以下の通りです。

  ----------------------------
  投稿画面の「追加プラグインオプション」のNP_Attachのところで
  「参照」ボタンを押してファイルを選ぶ(ファイルへのパスがテキストボックスに入る)。
  ファイルの説明文を書く。
  ----------------------------
  上記の操作は普通にできます。

  しかし、その後にアイテムを保存し、再度同じアイテムの編集画面に入ると
  何も添付されていない状態になっています(添付画像をご参照ください)。
 
  ※メディアのディレクトリにも、当該ファイルはアップロードされていません。
  ※もちろん、テンプレートに<%Attach%>が書かれていても何も表示されません。

   
  また、NP_Attachの順番を入れ替えても、削除して再インストールしても、現象は同じでした。

  ※以下が一緒に使っているプラグインです。
  ・SkinFiles
  ・NP_PageSwitch
  ・Mediatocu
  ・NP_ImageLimitSize
  ・NP_MitasNom
  ・Custom Thumbnail


宜しくお願い致します。


*:*:*:*:*
:satsuki:
*:*:*:*:*


Attachments:
gif .gif, Size: 10 KiB, Downloads: 984

*satsuki*

オフライン

#11 2010-12-11 14:54:43

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

Re: NP_Attachのデバックにご協力下さい

satsukiさま

if (preg_match("#(\\|/|\\0)#", $media[$key]['name']))

よくよく考えたら、ここの箇所の正規表現はおかしなものを書いてました。意図は、ブラウザから送信されたデータのうち、ファイルアップロードに関するものの中から、ファイル名に関して、ディレクトリ区切り文字や改行文字などが含まれてないかというものです。\0で改行文字を検出しようとしたのですが、\nとかの方がいいですね。。。

こちらが妥当な正規表現となります。

if (preg_match("#(\\\\|/|\\n)#", $media[$key]['name']))

それ以外のトラブルへの対処なのですが、今は作業量的にすぐにリリースを出すのが難しい状況です。

というのも、NP_MediaUtilsを近日中にリリースするつもりでいるからです。これはサムネイル、というかイメージ画像のリサイズに関する処理や、ファイル情報(高さ、幅、mimeなど)の取得などのメソッドを含むライブラリとしての役割を持たせたもので、プラグインの依存関係を使ってさまざまなプラグインに使ってもらうつもりで開発を進めています。

NP_MediaUtilsの機能を利用し、サムネイル管理のためのプラグインNP_Thumbnailも、同時にリリース予定です。

NP_Attachは、NP_MediaUtilsとNP_Thumbnailに依存関係を持つプラグインとしてリリース予定です。

ついでに私の開発しているNP_ImprovedMediaも、いよいよサムネイル表示を標準にと思い、NP_MediaUtilsとNP_Thumbnailに依存関係を持つプラグインとして開発を進めています。

仕様が確定したら、NP_ImageLimitSizeやNP_MediaTocuの作者さんとも連絡を取って、NP_MediaUtilsと依存関係を持つプラグインとしてリリースしてもらえたらな、という目論見を持ってまおりす。

すぐにリリースできないのはこんな理由です。申し訳ありませんがご了承下さい。

オフライン

#12 2010-12-15 20:46:32

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

Re: NP_Attachのデバックにご協力下さい

ファイル表示/管理/処理系プラグインのベータテストにご協力下さいにて、画像を扱う他のプラグインと一緒に、NP_Attachのベータテストを行なっております。テストに参加していただけると助かります。

オフライン

#13 2010-12-17 13:16:03

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

Re: NP_Attachのデバックにご協力下さい

Mocchi様

色々とありがとうございます!

> ファイル表示/管理/処理系プラグインのベータテストにご協力下さいにて、画像を扱う他のプラグインと一緒に、NP_Attachのベータテストを行なっております。テストに参加していただけると助かります。

本日上記のトピックを拝見しました。
ベータテストしてみますね。

それではまたご報告します。

*:*:*:*:*
:satsuki:
*:*:*:*:*


*satsuki*

オフライン

#14 2011-04-04 14:28:04

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

Re: NP_Attachのデバックにご協力下さい

NP_Attachにて配布を開始しました。

アンインストールしてしまうとアイテムとファイルのむすびつきデータがなくなってしまいますので、ファイルの上書きをして下さい。

ベータテストに協力して下さったみなさん、どうもありがとうございました。

オフライン

Board footer