LOGIN ID Password Auto Login Register Now! Lost Password?
Xoops Q&A

PICOで表示コンテンツのカテゴリーのみコンテンツリスト表示

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2008/9/19 13:16
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
こんにちは。つまづくたびにこちらを参考にさせてもらっているのですが、解決できず投稿させていただきました。

PICOモジュールのメニューにて、
・表示されている記事の属するカテゴリーのみ、コンテンツリストを表示し、その他はカテゴリー名のみ表示する
ってことをしたいのですが、可能でしょうか?

PICOモジュールを複製して作れば簡単だとは思うのですが、なるべくならば、1つのPICOモジュールのみで実現したく悪戦苦闘してます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2008/9/19 19:00
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
mikarinさん、こんにちは。

引用:

PICOモジュールのメニューにて、
・表示されている記事の属するカテゴリーのみ、コンテンツリストを表示し、その他はカテゴリー名のみ表示する
ってことをしたいのですが、可能でしょうか?
正直言って、何をしたいのかが、良く判りません。
もう少し具体的に説明していただけませんか。

メニューブロックの表示で、メイン部に表示されているカテゴリー内のコンテンツだけを一覧させたい、ということであれば、メニューブロックのテンプレートを書き換えれば比較的簡単に実現可能だとは思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/9/21 22:10
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
引用:

正直言って、何をしたいのかが、良く判りません。
もう少し具体的に説明していただけませんか。
すみません、どういう形で実現可能かすらわからないので、なるべく汎用的にと考えすぎて伝わらなかったと思います。
引用:

メニューブロックの表示で、メイン部に表示されているカテゴリー内のコンテンツだけを一覧させたい、ということであれば、メニューブロックのテンプレートを書き換えれば比較的簡単に実現可能だとは思います。
JIJOEさんの言われている形で表現可能であれば、それが一番うれしいのです。
実際、URIからメインブロックでよばれているコンテンツの属するカテゴリーの判定方法がわからずつまづいていいたのですが、もしかしたらファイル名からたどっていけるのかなとも思えてきています。…が、実現にはいたっていないので…。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/9/22 20:59 | 最終変更
jidaikobo  Moderator of Forum 居住地: 2005年6月から  投稿数: 661
jidaikobo@件名に pico があると出てくるかも です。

こんなんでいかがでしょうか?

@block_menu.html
<{foreach item=category from=$block.categories}>
<dl>
	<dt style="margin:5px 0 0;padding:3px;background-color:#eee;">
		<a href="<{$block.mod_url}>/<{$category.link}>">
			<{$category.title}>
		</a>
	</dt>
	<{assign var="content_in_array" value=FALSE}>
	<{foreach item=content from=$category.contents}>
		<{if $content.link == "index.php?content_id=`$smarty.get.content_id`" || $category.id == $smarty.get.cat_id}>
			<{assign var="content_in_array" value=TRUE}>
		<{/if}>
	<{/foreach}>
	<{if $content_in_array == "TRUE"}>
	<dd style="margin:0;"><ul>
	<{foreach item=content from=$category.contents}>
		<li style="margin:0;background-color:#fff;"><a href="<{$block.mod_url}>/<{$content.link}>" title="<{$block.lang_lastupdated}>:<{$content.created_time_formatted}>"><{$content.subject}></a></li>
	<{/foreach}>
	</ul></dd>
	<{/if}>
</dl>
<{/foreach}>
#ちょっとクドいですかね……
投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/9/24 10:31
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
jidaikoboさん、ありがとうございます。
カテゴリを選択時、うまく表示できました。
コンテンツ(記事…?)を表示中にも同様なことができるように追加させてもらおうと思います。
ありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2008/9/24 13:59 | 最終変更
jidaikobo  Moderator of Forum 居住地: 2005年6月から  投稿数: 661
引用:

mikarinさんは書きました:
カテゴリを選択時、うまく表示できました。
おめでとうございます。

引用:
コンテンツ(記事…?)を表示中にも同様なことができるように追加させてもらおうと思います。
あれ、そうなってると思うんですが、うまくいきませんか?
GET に頼ってるのがまずいのかしら?

* * *

そうそう、いい忘れていましたが、JIJOE さんじゃあなくって、GIJOE さんですよ。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/9/24 15:05 | 最終変更
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
こんにちは。ありがとうございます。

引用:
あれ、そうなってると思うんですが、うまくいきませんか?
GET に頼ってるのがまずいのかしら?
あっ…そうだったんですね…。
はい、コンテンツを表示するとメニューブロックはカテゴリ名のみの表示になってしまいます。
まだ、テストサイトなので、URLを表示できず、申し訳ないです…。

引用:
そうそう、いい忘れていましたが、JIJOE さんじゃあなくって、GIJOE さんですよ。

すみません。(T_T) 修正しておきます…と思ったのですが、修正できませんでした。
GIJOEさん、すみません。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/9/25 5:04
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
引用:

引用:
コンテンツ(記事…?)を表示中にも同様なことができるように追加させてもらおうと思います。
あれ、そうなってると思うんですが、うまくいきませんか?
GET に頼ってるのがまずいのかしら?
ああ、なんとなく判った気がします。

jidaikoboさんは1.7系
mikarinさんは1.6系
をそれぞれ使っているのでしょう。

1.7系では、カテゴリー単位のイベント通知がちゃんと動作するように、自ら$_GET['cat_id']を設定します。
設定後に、header.phpをincludeしているので、ブロックでもちゃんと現在指定されたカテゴリーを$smarty.get経由で取得可能です。

1.6ならどうすればいいか…
<{php}>ブロックを使って、content_idが指定されていたらそこからcat_idを引くしかないですかね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2008/9/30 13:44 | 最終変更
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
GIJOEさん、ありがとうございます。
引用:

GIJOEさんは書きました:
jidaikoboさんは1.7系
mikarinさんは1.6系
をそれぞれ使っているのでしょう。

picoを1.72に更新しました。
これで、jidaikoboさんのそのまんまで、コンテンツをメインに表示のときも、コンテンツの所属するカテゴリーのみが展開されたメニューになりました。

これはよかったのですが…
picoのコンテンツ作成で、新規作成しようとすると、カテゴリがTOPしか選択できなくなってしまいました。それと、$category.depth_in_treeの考え方が変わったのでしょうか。$category.depth_in_tree == 1で判定させていた箇所のカテゴリの深さが変わってしまっていたようなので。(どっか間違えてしまったのでしょうか…)
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/10/1 4:58
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
mikarinさん、こんにちは。

1.7に上げてしまいましたか…
あまり初心者にはお勧めしてないので、だからこそ1.7に上げてください、とは書かなかったのですが

引用:

picoのコンテンツ作成で、新規作成しようとすると、カテゴリがTOPしか選択できなくなってしまいました。それと、$category.depth_in_treeの考え方が変わったのでしょうか。$category.depth_in_tree == 1で判定させていた箇所のカテゴリの深さが変わってしまっていたようなので。(どっか間違えてしまったのでしょうか…)
とりあえず「同期」はされてますか?
ツリーの深さは、冗長情報なので、大きなバージョンが上がった時には、「同期」によって再生成しないとおかしくなります。

また、カテゴリー権限も確認してください。
権限システムも大幅に変わっているので、モジュールアップデート時の自動処理に失敗して、TOPカテゴリー以外の投稿権限が失われている、なんて可能性はあります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/10/1 14:02 | 最終変更
jidaikobo  Moderator of Forum 居住地: 2005年6月から  投稿数: 661
GIJOE さんのご説明の作業は必要だとは思いますが、補足させてください。

引用:
mikarinさんは書きました:
picoのコンテンツ作成で、新規作成しようとすると、カテゴリがTOPしか選択できなくなってしまいました。それと、$category.depth_in_treeの考え方が変わったのでしょうか。$category.depth_in_tree == 1で判定させていた箇所のカテゴリの深さが変わってしまっていたようなので。(どっか間違えてしまったのでしょうか…)
1.6系 と 1.7系は main_content_form.html が違うんですが、これご確認してみたらいかがでしょう?

1.6系
<select name="cat_id" id="cat_id">
	<option value="">(<{$smarty.const._MD_PICO_TOP}>)</option>
	<{$cat_jumpbox_options}>
</select>

1.7系
<select name="cat_id" id="cat_id">
	<{html_options options=$categories_can_post selected=$category.id}>
</select>
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/10/6 22:38
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
返信が遅くなってすみません。

GIJOEさん、jidaikoboさん、ありがとうございます。

main_content_form.html を確認して、jidaikoboさんのおっしゃるとおりだったので、デフォルトのテンプレートをコピーしました。
他にも数か所、変更していないはずのテンプレートがデフォルトと違うとなっていたので、そこもデフォルトのテンプレートをコピーしました。
これで、コンテンツ作成時のカテゴリも表示されるようになりました。
もしかして、変更する予定のないテンプレートはコピーしておかないほうがいいってことなんでしょうか…。

$category.depth_in_tree == 1 についてですが、同期してみているのですが、やはり、1.6では$category.depth_in_tree == 1 の判定だったものが、1.7では $category.depth_in_tree == 2 で判定している状態です。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/10/7 4:14
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
mikarinさん、こんにちは。

jidaikoboさんがビンゴでしたね。

引用:

もしかして、変更する予定のないテンプレートはコピーしておかないほうがいいってことなんでしょうか…。
はい。その通りです。

私自身ことあるごとに、正しいテンプレートのカスタマイズ手順を書いているのですが、一向に広まらないようでかなりガッカリしてます。


「テンプレートをカスタマイズするときには、まずテンプレートセットを複製する」
…なんて、X2以来の誤った手順が書いてあるサイト/書籍ばかりですから。
そんなことをしたら、必要もないテンプレートまで、全部複製されてしまい、以降のアップデートで非常に手間取ることは明らかです。

それでも
「templates/フォルダ下のファイルを書き換えてモジュールアップデート」
よりはいくらかマシですが。


正しいDBテンプレートカスタマイズ手順はこうです。

・altsysで空のテンプレートセットを作る
・一般設定で、空のテンプレートセットを「表示されるテンプレートセット」とする
・変更したいテンプレートをaltsysでコピーして、カスタマイズする

引用:
$category.depth_in_tree == 1 についてですが、同期してみているのですが、やはり、1.6では$category.depth_in_tree == 1 の判定だったものが、1.7では $category.depth_in_tree == 2 で判定している状態です。
う~ん。
だとすれば、そのあたりに非互換部分があるかもしれません。
ただ、depth_in_treeは、メニュービューの<h*>でも利用しているので、それがおかしければ、メニュー表示もおかしくなるはずですが。

具体的なツリー構造を書いていただければ原因が判るかもしれません。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/11/11 22:15
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
返信がずいぶん遅くなってしまい大変申し訳ないです。
また、ご回答いただきありがとうございます。

引用:

正しいDBテンプレートカスタマイズ手順はこうです。

ありがとうございます。次回、気をつけたいと思います。

引用:

具体的なツリー構造を書いていただければ原因が判るかもしれません。

こちらですが、とりあえず、表示されてるのでいっかぁって状況になっているのですが、もしかしてバージョンアップの時とかに…私自身が困る可能性高いですよね。
ツリー構造とは、picoのコンテンツでよいのでしょうか?

現在は、
0.TOP
1.foods
1-1 sea
1-1-1 A
1-1-2 B
1-2 cake
1-2-1 C
2.drink
2-1 soft drink
2-2 beer
のような感じで、0のTOPの下に1.2.がつながってるイメージですが、この1.2.を表示するのに、$category.depth_in_tree == 2で判定している状況です。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/11/19 5:00
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
mikarinさん、こんにちは。

やっぱりうちでは再現しません。

引用:

引用:

具体的なツリー構造を書いていただければ原因が判るかもしれません。

こちらですが、とりあえず、表示されてるのでいっかぁって状況になっているのですが、もしかしてバージョンアップの時とかに…私自身が困る可能性高いですよね。
ツリー構造とは、picoのコンテンツでよいのでしょうか?

現在は、
0.TOP
1.foods
1-1 sea
1-1-1 A
1-1-2 B
1-2 cake
1-2-1 C
2.drink
2-1 soft drink
2-2 beer
のような感じで、0のTOPの下に1.2.がつながってるイメージですが、この1.2.を表示するのに、$category.depth_in_tree == 2で判定している状況です。
それはおかしいですね。
1. も 2. も、depth は1のはずですから。

特に凝った構造でもありませんから、ツリー解析側のバグとは考えづらいですね。
とすれば、シリアライズ関連のトラブルかな?(それも無いか…)

ともあれ、1.74 ではシリアライズフォーマットも変更したので、1.74に上げて、カテゴリーを同期してもらえば、状況が変わるかも知れません。

変わらなくても、それはそれで、カテゴリー2 のcat_redundantsをphpMyAdminか何かで表示させると、原因がつかめそうです。(新フォーマットは可読性が高いので)
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/11/19 10:04
mikarin  2nd Class 居住地: ☆☆  投稿数: 17
GIJOEさん、ありがとうございます。
取り急ぎ、作業する時間がとれていないので、作業できしだい、報告させていただきます。
投票数:0 平均点:0.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities