ブロックに特定のカテゴリの記事だけを表示させたい
- このフォーラムに新規トピックを投稿できます
- このフォーラムではゲスト投稿が許可されています
投稿ツリー
-
ブロックに特定のカテゴリの記事だけを表示させたい (きーたー, 2010/5/27 19:03)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (なーお, 2010/5/27 22:32)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (ゲスト, 2010/5/28 15:02)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (きーたー, 2010/5/28 15:07)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (きーたー, 2010/5/28 15:16)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (きーたー, 2010/5/28 15:22)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (なーお, 2010/5/28 16:00)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (きーたー, 2010/5/28 17:37)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (ゲスト, 2010/12/2 8:55)
-
Re: ブロックに特定のカテゴリの記事だけを表示させたい (なーお, 2010/12/2 11:27)
ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1
ブロックに表示させる記事を、ブログ全体の最新記事ではなく指定したカテゴリの最新記事にするにはどうすれば良いでしょうか?
このブロックのテンプレートである、block_diarylist.htmlの
を変更すればできるかと思いやってはみたものの、代わりに何を書くべきかわからずはまってしまいました。
ご教授いただけませんでしょうか?
よろしくお願いします。

きーたーさん、こんにちは。
きーたーさんは書きました:
ブロックに表示させる記事を、ブログ全体の最新記事ではなく指定したカテゴリの最新記事にするにはどうすれば良いでしょうか?
そうですね、かなり強引な方法ですが、「block_diarylist.html」を
<!-- start module contents -->
<table>
<{foreach item=entry from=$block.entry}>
<{if $entry.cname=="カテゴリー名"}> ←追加
:中略
</table>
</td>
</tr>
<{/if}> ←追加
<{/foreach}>
<tr>
<td style="text-align:right;">
<img src="<{$xoops_url}>/modules/<{$block.mydirname}>/images/arrow1.png" border=0 style="vertical-align:middle;" />
<a href="<{$xoops_url}>/modules/<{$block.mydirname}>/index.php?page=diarylist">
<{$block.lang.more}></a>
</td>
</tr>
</table>
なんてのは、どうでしょうか。 (「カテゴリー名」のところを、検索したいカテゴリ名に変更) ただ、この方法ですと共有カテゴリ以外でも全ユーザーの同じ名称のカテゴリがすべて引っかかることと、件数を指定できないどいう欠点があります。
将来的には、ブロックオプション設定できるように検討してみますね。
Re: ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1.1.1
なーおんさん、こんにちは。
ご回答ありがとうございます。
とても参考になりました。
トップページに複数のブロックを配置して、1ブロックにつき1カテゴリの最新記事を表示させたいと考えています。
ブロックタイトルをカテゴリ名と同じにして、
block_diarylisy.htmlを
1 2 |
|
と書いてみたのですがb_diarylist.php に$block.title が定義されていないためか、ブロックのタイトルが取得できませんでした。
b_diarylist.phpにどのように記述すれば良いでしょうか?
よろしくお願いいたします。
Re: ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1.1.1.1
コードの部分を書き間違えてしまいました。
正しくは以下の通りです。
失礼致しました。
Re: ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1.1.1.1.1
何度もミスしてしまい申し訳ありません。
コードの表示がうまくいかず…。
書きたかったコードは以下の通りです。
←ここです
Re: ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1.1.1.1.1.1
何度やってもコードの埋め込みがうまくできません。
申し訳ありません。
教えていただいた、
$entry.cname=="カテゴリー名"
を
$entry.cname==$block.title
と変更したことをコード表示でお伝えしたかったのです。

きーたーさん
ここではコードは、
1 |
|
を使って書いてくださいね。
ところで、複数カテゴリですか。
ブロック名は、smartyの$xoops_crblocksなどの場所に応じた配列に格納されるので、$block.titleでは取得できません。$xoops_crblocks[0].title などですね。。 でもこれですと、目的のことができませんね。 (試しにやってみたのですが、アサインされるタイミングが遅いのか、入ってきません。)
block_diarylist.htmlの中のコードを、必要なカテゴリ分、何回も書けば、私の提示した方法で表示されると思いますよ。
どうしてもブロックを分けたい、とのことでしたら、ALTSYSでカスタムテンプレートを作って内容をコピペし、ブロックオプションでそのテンプレートを指定すれば、同じ方法で絞り込めるはずです。
しかし、元々このブロックはかなり重いので、複数配置したら大変なことになりそうです。。 xugj_blockなどを使う方法もあります。 難しいですがそちらのほうが速そうです。
Re: ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1.1.1.1.1.1.1.1
すぐにご返答いただきありがとうございます。
どうしてもブロックを分けたかったので教えていただいた、カスタムテンプレートを使う方法でやってみましたところ、カテゴリごとに表示させることができました!
本当にありがとうございます。
現在ローカルで試しているのであまり重さは感じませんが、いずれサーバーで動すときのことも考えてxugj_blockも見ておこうと思います。
Re: ブロックに特定のカテゴリの記事だけを表示させたい
msg# 1.2
カテゴリではなく、特定の"タグ"の記事だけを表示させる方法はありますでしょうか?
この部分を、タグに該当する関数?に変えればいいのかなとは思うのですが、プログラムはよくわかっていないもので。。
ヒントだけでも、教えていただけるとありがたいです

ゲストさん、こんにちは。
カテゴリではなく、特定の"タグ"の記事だけを表示させる方法はありますでしょうか?
残念ながら、現時点ではブロックのテンプレート変数にタグ情報は渡しておりませんので、テンプレート編集だけでご希望の表示は不可能です。
また、ブロックのスクリプトでコールしている内部の関数自体が、そもそもタグをデータベーステーブルから抽出しておりませんので、 表示させる為にはその部分を含めてしっかりした改造が必要です。
ということで、この件は、カテゴリでの抽出と合わせて、ご要望として今後の開発バージョンへの課題とさせてください。 いつ実装できるかは未定です。案外早くできるかもしれませんし、かなり先になるかもしれません。
では。