Nucleus(JP)フォーラム

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

ログインしていません。

#1 2004-05-24 23:48:23

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

以前、ここでも話題には出ていたNP_MultipleCategoriesなんですが、マルチカテゴリを試してみたく、インストールしてみました。

確かに記事投稿欄にはカテゴリを複数選ぶ事ができるようになるのですが、記事投稿後にカテゴリを選択しても、最初に選んでいるカテゴリしか有効になりません。

これってつまりスキンに<%MultipleCategories(template_name)%>と書いてないと複数カテゴリの選択で表示されないって事ですよね(^^;
ShowBlogsと併用しようと思うと改造が必要か…。


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#2 2004-05-25 00:01:02

Taka
メンバー
From: 千葉
登録日: 2003-11-17
投稿: 264
ウェブサイト

Re: NP_MultipleCategoriesの使い方

その改造やろうとして、延期され続けている私・・・
ExtraSkinの改造終わったらやりますけど、待ちます??
それとも改造してくれちゃいます?←ちょっと期待 8)

オフライン

#3 2004-05-25 09:25:59

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Taka さんの発言:

ExtraSkinの改造終わったらやりますけど、待ちます??
それとも改造してくれちゃいます?←ちょっと期待 8)

うぐ。うぐぅぅ。ま、待ちたいなぁ…。
正直なところやってみたい気持ちもあるんですが、もう少し影響の幅の少ないものを改造したいなぁと… lol
すみません~~。


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#4 2004-05-25 12:20:43

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

やりました。
っつーか、NP_MultipleCategories自体に手を入れる方が多かったよ。
sql_table使ってなかったり :cry:

やってて思ったんだけどね。
NP_ShowBlogsと統合しても良いんじゃないか?って。
まぁそうするとプラグイン名から離れるからそのままでいいか。

UPはちょっと待ってね。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#5 2004-05-25 12:45:37

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

こんなかんじでどうでしょう?

とりあえず、有無を言わさず、カテゴリidごとにアイテムidをまとめちゃっているので、数が増えると重くなるかも?わかりません。

あと、配列周りでエラー(warningと思う)が出力されたら教えてください。

普通にNP_MultipleCategories 単体でも使えますが。
NP_ShowBlogsは、マルチカテゴリ対応しただけです。機能upはありません。
NP_MultipleCategoriesがインストールされていなくても別に大丈夫だと思います。

あーそうそう。
オリジナルのNP_MultipleCategoriesは、マルチカテゴリの編集するためにはITEM.phpの書換えが必要でしたが、この0.15では必要ありません。
普通にアイテムの編集のオプション画面で編集できると思います。
ただし。 全部のチェックをはずした場合、反映されません。バグです。面倒なので放置しています。
206行目の

		if (count($selected) == 0 ) return;	//!non erasable - todo!

のせいです。
だれか良かったら書換えてね。

追記:そして、書換えました。
http://nucleus.fel-is.info/bb/viewtopic.php?p=1943#1943
http://nucleus.fel-is.info/bb/viewtopic.php?p=1974#1974
で修正版をどうぞ。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#6 2004-05-25 14:24:34

Taka
メンバー
From: 千葉
登録日: 2003-11-17
投稿: 264
ウェブサイト

Re: NP_MultipleCategoriesの使い方

nakahara21 さんの発言:

やりました。

やっほーいっ!
早く試したいなっ。はやくExtraSkinとおさらばしなきゃっ。
・・・ここでこっそり嘆かせていただくと、もう管理画面はいやだーっ :cry:

nakahara21 さんの発言:

っつーか、NP_MultipleCategories自体に手を入れる方が多かったよ。
sql_table使ってなかったり :cry:

いつも思うけど、さすが外人さんはアバウトだわーと。
ExtraSkinもsql_query使ってませんでした・・・

nakahara21 さんの発言:

やってて思ったんだけどね。
NP_ShowBlogsと統合しても良いんじゃないか?って。
まぁそうするとプラグイン名から離れるからそのままでいいか。

これちょっと考えてました。別の名前で1つにまとめて出しちゃうとかは?

オフライン

#7 2004-05-25 14:25:25

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: NP_MultipleCategoriesの使い方

これはまたすばらしい。少しの時間でしたが早速試してみました。
とりあえずのご報告までに。

1.インストール時:次のエラーがでます。ただしその後は正常に動作
mySQL error with query SELECT item_id, categories FROM test_nucleus_plug_multiple_categories: Table 'xxxxxxx.test_nucleus_plug_multiple_categories' doesn't exist

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xxx/xxx/xxx/nucleus/plugins/NP_MultipleCategories.php on line 82

2.labelがうまく機能してないように見えます
NP_MultipleCategoriesの146と147行目をちょこっと変更で、文字クリックでチェックはいります。

echo '<input type="checkbox" id=cat'.$num.' name="cat['.$num.']" value="'.$aCategory['catid'].'" size="30" />';
echo '<label for="cat'.$num++.'">'.$aCategory['name']." (".$aCategory['cdesc'].")".'</label><br />';

オフライン

#8 2004-05-25 14:48:22

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Felさんの指摘、修正して差替えました。
全然テストしていないのでどうなるかわかんないけど。

統合は、面倒だからやめとく。
マルチさん単体でも使えるんだし、両方入っていた場合分岐が面倒だす。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#9 2004-05-25 15:18:19

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

nakahara21 さんの発言:

あーそうそう。
オリジナルのNP_MultipleCategoriesは、マルチカテゴリの編集するためにはITEM.phpの書換えが必要でしたが、この0.15では必要ありません。
普通にアイテムの編集のオプション画面で編集できると思います。
ただし。 全部のチェックをはずした場合、反映されません。バグです。面倒なので放置しています。

ありがとうございます、帰ったら試してみねば。
オリジナルの方は、チェックをしない場合に通常選択するカテゴリが有効になったと思うのですが(うろおぼえ)"反映されない"というのは記事の投稿自体が反映されないということですか?


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#10 2004-05-25 15:29:52

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

確かにShowBlogsの本来の目的からは外れるかとは思うんですが、ShowBlogsをページ切り替えとして使ってるユーザーも多いと思うのです。<私がそうなんですけど lol

ということでメインページ表示Pluginとして統合したものがあるといいなーとか個人的には思います。
思うだけなところが申し訳ないのですが… sad


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#11 2004-05-25 17:30:12

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: NP_MultipleCategoriesの使い方

さっき急いでいたのですいません、漏れがありました。
終わったので適当にいじってみました。

190、191行目(さっきと同様)

echo '<input type="checkbox" id=cat'.$num.' name="cat['.$num.']" '.$checked.' value="'.$aCategory['catid'].'"size="30" />';
echo '<label for="cat'.$num++.'">'.$aCategory['name'].'</label>';

あと、206行目ですがこんな感じでどうでしょう?(以下と入れ替え)

if (count($selected) == 0 ) {
$itemdata =& $manager->getItem($itemid,'1','1');
$selected[0]=$itemdata['catid'];
}

ただこれだけだと、アイテムを編集してチェックを全部はずし、通常のカテゴリー選択を
行った場合2回更新しないとアップデートされないかも・・・event_PreUpdateItem加えればいいのかな?

タカさん さんの発言:

はやくExtraSkinとおさらばしなきゃっ。
・・・ここでこっそり嘆かせていただくと、もう管理画面はいやだーっ

うう、なんにもお手伝いできないのが情けない限りです。がんば~ :cry:

少しばたばたしておりますので、またのちほど~

オフライン

#12 2004-05-25 22:50:15

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Fel さんの発言:

あと、206行目ですがこんな感じでどうでしょう?(以下と入れ替え)

if (count($selected) == 0 ) {
$itemdata =& $manager->getItem($itemid,'1','1');
$selected[0]=$itemdata['catid'];
}

ただこれだけだと、アイテムを編集してチェックを全部はずし、通常のカテゴリー選択を
行った場合2回更新しないとアップデートされないかも・・・event_PreUpdateItem加えればいいのかな?

とりあえず、この修正を加えて実験。
チェックを全て外すと以下のエラーが表示されます。

Fatal error: Call to a member function on a non-object in /virtual/fjsk/public_html/nucleus/plugins/NP_MultipleCategories.php on line 207

しかし投稿は出来ているようで、何度も実行したら大量に記事が投稿されてました lol

とりあえず、カテゴリが一つだけの時は通常のカテゴリ選択に加えて、Muticategoriesでも同じカテゴリをチェックすればOKですね。[/code]


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#13 2004-05-25 22:56:42

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: NP_MultipleCategoriesの使い方

ああ、書くの忘れてました :oops:
201行目のglobalの行を次ぎのようにしてください。

global $blogid, $catid, $manager;

<以下追記>
207行目からのをさっきの代わりに、次のコードにすれば、編集時にチェックを
空っぽにして、普通のカテゴリー選択を変更した場合もちゃんと入れ替えてくれます。

if (count($selected) == 0 ) {
if (!$data['catid']) {
$itemdata =& $manager->getItem($itemid,'1','1');
$selected[0]=$itemdata['catid'];
} else {
$selected[0]=$data['catid'];
}
}

#いい加減ですいません。いまちょっと手が離せない状態・・・
PostMoveItem PostMoveCategoryも設定した方がいいのかな? まあいいか。

オフライン

#14 2004-05-26 09:17:26

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Fel さんの発言:

ああ、書くの忘れてました :oops:
201行目のglobalの行を次ぎのようにしてください。

ありがとうございます。問題なく動作してます(^^

Fel さんの発言:

<以下追記>
207行目からのをさっきの代わりに、次のコードにすれば、編集時にチェックを
空っぽにして、普通のカテゴリー選択を変更した場合もちゃんと入れ替えてくれます

これもとりあえず反映してみました。なにが問題になるのかいまいちつかめないんですが、
とりあえず動いてるからいいかなぁと(^^;


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#15 2004-05-26 09:38:32

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: NP_MultipleCategoriesの使い方

藤咲 さんの発言:

これもとりあえず反映してみました。なにが問題になるのかいまいちつかめないんですが、
とりあえず動いてるからいいかなぁと(^^;

あの変更をしないと、アイテム編集時に「マルチカテゴリー選択を空っぽ」にして
「通常のカテゴリー選択を変更」した場合、マルチカテゴリーに登録されるものが
変更前の通常カテゴリーで設定していたものになってしまうんです。
これは、Nucleusがアイテム編集時のイベントを変更直前にしか実行できないので
変更前のアイテムからデータをとってきてしまうことによるものです。
だから投稿時と編集時で処理を分けるようにしてみました。
#勉強再開したばかりなので恥ずかしい限り :oops:

オフライン

#16 2004-05-26 10:34:39

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Fel さんの発言:

あの変更をしないと、アイテム編集時に「マルチカテゴリー選択を空っぽ」にして
「通常のカテゴリー選択を変更」した場合、マルチカテゴリーに登録されるものが
変更前の通常カテゴリーで設定していたものになってしまうんです。

ふむ、なるほど。
1.マルチカテゴリを設定。
2.マルチ設定を解除(マルチ選択のチェックをすべてはずす)。
3.テーブルのデータが消えるのではなく、通常のカテゴリで選択されたものが、マルチカテゴリとしても設定される。
という動作になるんですね。了解しました(^^


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#17 2004-05-26 10:53:51

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Felさんにちょっと誤解があるようなので書いておきます。
マルチカテゴリの登録、編集は、通常のカテゴリと連動する必要はないのです。

私が「ここのせいです」と書いた行は、マルチカテゴリ指定を全部解除しても「全部解除が有効」にならないという意味でした。
(藤咲さんが最初「反映されない」とは?と聞いていましたが、要するに「全部解除」が反映されないという意味でした)

で、最初にFelさんが書いてくれた修正コードは、全部解除した時は編集画面を開く直前に指定されていた通常カテゴリをオプションカテゴリとして登録する、という意味ですよね?
そして、修正の修正コードは、編集画面であらたに指定した通常カテゴリをオプションカテゴリとして登録する、という意味ですよね?
(違っていたら言ってください....)

やりたいのは、全部解除した時に本当にオプションカテゴリは空っぽにする、という動作だったのです。言葉足らずでごめんなさい。
そして、空っぽにする時は、マルチカテゴリ管理テーブルから行を削除する方がいいな、と思い、DELETE文を書くのが面倒(+アイテム削除時のfunctionと使い回しさせた方が良さそうだけど面倒)だったので放置していたのです sad

なぜ、本当に空っぽにした方が良いのかというと。
チェックを全部はずしたはずなのに、次にまた編集画面を開いたらチェックが入っているというのは直感的でないですよね。
それに、この状態でまた通常カテゴリを変更したら、意図しないマルチカテゴリアイテムになる可能性大。

で、なぜ連動しなくても良いのかというと。
catid=2ページを開いた時は、通常カテゴリで2を指定しているアイテムと、通常カテゴリは2ではないけれどオプションカテゴリリストに2が入っているアイテムを抽出させているから。
そして、「オプションカテゴリリストに2が入っているアイテム」はどうやって選んでいるかというと、マルチカテゴリ管理テーブルを1行ずつ走査して、カテゴリリストの中の通常カテゴリ以外のcatidにitemidを登録しています。(ページを開いた瞬間に)

あと、オマケに言っておきますが、オプションカテゴリは通常カテゴリを含んでも含まなくても良い仕様
通常カテゴリとオプションカテゴリと両方同じカテゴリだけを指定しようが、自由です。
全部チェック入れたらそのまんま登録されます。例えば、通常カテゴリは変更する可能性はあっても、マルチに全部のカテゴリで見せたい場合に使えるかな、と。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#18 2004-05-26 11:02:07

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

誤解を指摘する前にさくっと自分の考え通りに書き直そうと思っていたんですが :?
見れば見るほど手を入れたくなるNP_MultipleCategories..... :cry:

とりあえず、最小限に整えます。そして出直します。たぶん、2時間後?

そして....
カテゴリが削除された場合、違うblogに移動しちゃった場合なんかも考慮すべき?とか。マルチカテゴリ管理テーブルデータを整理する必要があるんでしょうか。
(たぶん放置していても動作に影響はない)

あと、「このblogidに属するカテゴリがある場合は」となっている部分があったのですが、カテゴリを持たないblogなんてあり得ないですよね??(手動でDBをいじらない限り)


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#19 2004-05-26 12:04:20

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

無意味に&$dataしている...
でもって、中で全然関係ない事に「$data」使ってるし。
よくこれで普通に動くモノだなぁ。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#20 2004-05-26 13:36:35

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

ちょっと見直し。負荷が減っていると思います。
それぞれ、上書きFTPだけで大丈夫だと思います。

NP_MultipleCategoriesはバージョンを上げて次のページにあります。
http://nucleus.fel-is.info/bb/viewtopic.php?p=1974#1974


Attachments:
zip NP_ShowBlogs115.zip, Size: 3.11 KiB, Downloads: 1,153

nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#21 2004-05-26 13:54:34

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_MultipleCategoriesの使い方

nakahara21 さんの発言:

ちょっと見直し。負荷が減っていると思います。
それぞれ、上書きFTPだけで大丈夫だと思います。

ありがとうございます、帰宅後また試してみますね(^^

以下閑話
マルチカテゴリって、私個人では必要ないんですよね。
なぜかと考えたんですが、私の場合記事をその内容にあわせればいいと考えるし、内容も日記というのとはちょっと違うし。

でも日記となると、カテゴリはマルチじゃないと難しくなるんですね。
一日の出来事は一個じゃないし。
人にBlogを使わせてみて初めて気がつきました。
あんまり他の人の反応がないのは"日記"として使っている人がすくないからなのでしょうか?


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#22 2004-05-26 14:53:30

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: NP_MultipleCategoriesの使い方

頭痛でダウン中のFelです :cry:

nakahara21 さんの発言:

Felさんにちょっと誤解があるようなので書いておきます。
マルチカテゴリの登録、編集は、通常のカテゴリと連動する必要はないのです。
で、最初にFelさんが書いてくれた修正コードは、全部解除した時は編集画面を開く直前に指定されていた通常カテゴリをオプションカテゴリとして登録する、という意味ですよね?
そして、修正の修正コードは、編集画面であらたに指定した通常カテゴリをオプションカテゴリとして登録する、という意味ですよね?
(違っていたら言ってください....)

あー、それは行き違いですね。舌足らずで申し訳ありません。
単にマルチカテゴリー部分での指定がない場合にはメイン機能のカテゴリーを
登録するだけの追加でした。投稿時あるいは編集時にマルチカテゴリーを全部解除
しない限りは、連動しません。一カテゴリーにとどめる場合は標準のカテゴリー
機能で指定しても登録される方がわかりやすいかなと思ったものですから。

そして、「オプションカテゴリリストに2が入っているアイテム」はどうやって選んでいるかというと、マルチカテゴリ管理テーブルを1行ずつ走査して、カテゴリリストの中の通常カテゴリ以外のcatidにitemidを登録しています。(ページを開いた瞬間に)
あと、オマケに言っておきますが、オプションカテゴリは通常カテゴリを含んでも含まなくても良い仕様
通常カテゴリとオプションカテゴリと両方同じカテゴリだけを指定しようが、自由です。
全部チェック入れたらそのまんま登録されます。例えば、通常カテゴリは変更する可能性はあっても、マルチに全部のカテゴリで見せたい場合に使えるかな、と。

よってこの部分は完全に承知した上で書き換えてました。
マルチカテゴリーの方を全部消さない限り、上のカテゴリーは変えても何ら影響しません。
入っていようがいまいがです。そもそも、自分が投稿時にカテゴリー変更せずに投稿
してしまうことがあるので、マルチカテゴリーを用いている場合に同様のことをしても、
元のカテゴリーを反映してくれると便利だろうとおもい書いた次第ですから。
#普段はマルチでも指定忘れや1だけでいい場合はノーマル指定でもokという考えです
#「使い勝手」は個人の感性に起因しますので、ここで踏み込む必要はないでしょう。

元のスクリプトはざっと見ただけでも疑問があったので参考にさせていただきます、感謝 smile

>藤咲さん
日記にするならShowBlogsByDateという手もありますね。

オフライン

#23 2004-05-26 15:57:45

Taka
メンバー
From: 千葉
登録日: 2003-11-17
投稿: 264
ウェブサイト

Re: NP_MultipleCategoriesの使い方

でも日記となると、カテゴリはマルチじゃないと難しくなるんですね。
一日の出来事は一個じゃないし。
人にBlogを使わせてみて初めて気がつきました。
あんまり他の人の反応がないのは"日記"として使っている人がすくないからなのでしょうか?

私も反応が少ないのがちょっとだけ意外でした。
カテゴリーの付け方が下手なだけかもしれませんが、
日記じゃなくてもよく困っていた私です。

たとえばFlashとPHPというカテゴリーがあって、そのブログに文字コードに関係した記事を投稿する場合、あとで自分で参照する時にどっちで選択しても出てきて欲しいんですよね。文字コードというカテゴリーを作ったとしても。

そうだ、自分のために欲しいのだわ、マルチカテゴリー。
(ところでまだ試してません :oops: 現実逃避で徘徊中)

オフライン

#24 2004-05-26 16:48:43

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

わーんごめんなさい。「誤解」の範囲を誤解させる書き方でした。

Fel さんの発言:

入っていようがいまいがです。そもそも、自分が投稿時にカテゴリー変更せずに投稿してしまうことがあるので、マルチカテゴリーを用いている場合に同様のことをしても、元のカテゴリーを反映してくれると便利だろうとおもい書いた次第ですから。

これって、通常カテゴリ変更した時に、昔のカテゴリの足跡残しておきたいと言うことですか?

でも、やっぱりチェックがゼロの時に通常カテゴリを準用して登録するとなると、アイテムの数だけマルチカテゴリ管理テーブルの行が増えていくので、やめますね。

でも、やっぱりどうなんだろう?


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#25 2004-05-26 16:53:01

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: NP_MultipleCategoriesの使い方

Stickyアイテムのマルチカテゴリも反映して複数カテゴリでstickしたい、とか言われる日が来るんでしょうか?
NP_StickyItに譲ります。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

Board footer