ブロックに特定のカテゴリの記事だけを表示させたい


投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/27 11:03
きーたー 

ブロックに表示させる記事を、ブログ全体の最新記事ではなく指定したカテゴリの最新記事にするにはどうすれば良いでしょうか?

このブロックのテンプレートである、block_diarylist.htmlの

を変更すればできるかと思いやってはみたものの、代わりに何を書くべきかわからずはまってしまいました。

ご教授いただけませんでしょうか?
よろしくお願いします。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/27 14:32 | 最終変更
なーお  長老   投稿数: 1832 オンライン

きーたーさん、こんにちは。

引用:
きーたーさんは書きました:
ブロックに表示させる記事を、ブログ全体の最新記事ではなく指定したカテゴリの最新記事にするにはどうすれば良いでしょうか?

そうですね、かなり強引な方法ですが、「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>

なんてのは、どうでしょうか。 (「カテゴリー名」のところを、検索したいカテゴリ名に変更) ただ、この方法ですと共有カテゴリ以外でも全ユーザーの同じ名称のカテゴリがすべて引っかかることと、件数を指定できないどいう欠点があります。

将来的には、ブロックオプション設定できるように検討してみますね。 :roll:

投票数:2 平均点:5.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/28 7:02
ゲスト 

なーおんさん、こんにちは。
ご回答ありがとうございます。
とても参考になりました。

トップページに複数のブロックを配置して、1ブロックにつき1カテゴリの最新記事を表示させたいと考えています。
ブロックタイトルをカテゴリ名と同じにして、
block_diarylisy.htmlを

1
2
中略
&gt;

と書いてみたのですがb_diarylist.php に$block.title が定義されていないためか、ブロックのタイトルが取得できませんでした。
b_diarylist.phpにどのように記述すれば良いでしょうか?

よろしくお願いいたします。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/28 7:07
きーたー 

コードの部分を書き間違えてしまいました。
正しくは以下の通りです。
失礼致しました。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/28 7:16
きーたー 

何度もミスしてしまい申し訳ありません。
コードの表示がうまくいかず…。

書きたかったコードは以下の通りです。

 ←ここです
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/28 7:22
きーたー 

何度やってもコードの埋め込みがうまくできません。
申し訳ありません。

教えていただいた、
$entry.cname=="カテゴリー名"

$entry.cname==$block.title
と変更したことをコード表示でお伝えしたかったのです。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/28 8:00 | 最終変更
なーお  長老   投稿数: 1832 オンライン

きーたーさん

ここではコードは、

1
BBcodeの[code]タグ

を使って書いてくださいね。

ところで、複数カテゴリですか。
ブロック名は、smartyの$xoops_crblocksなどの場所に応じた配列に格納されるので、$block.titleでは取得できません。$xoops_crblocks[0].title などですね。。 でもこれですと、目的のことができませんね。 (試しにやってみたのですが、アサインされるタイミングが遅いのか、入ってきません。)

block_diarylist.htmlの中のコードを、必要なカテゴリ分、何回も書けば、私の提示した方法で表示されると思いますよ。

どうしてもブロックを分けたい、とのことでしたら、ALTSYSでカスタムテンプレートを作って内容をコピペし、ブロックオプションでそのテンプレートを指定すれば、同じ方法で絞り込めるはずです。 :-)

しかし、元々このブロックはかなり重いので、複数配置したら大変なことになりそうです。。 xugj_blockなどを使う方法もあります。 難しいですがそちらのほうが速そうです。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/28 9:37
きーたー 

すぐにご返答いただきありがとうございます。

どうしてもブロックを分けたかったので教えていただいた、カスタムテンプレートを使う方法でやってみましたところ、カテゴリごとに表示させることができました!
本当にありがとうございます。
現在ローカルで試しているのであまり重さは感じませんが、いずれサーバーで動すときのことも考えてxugj_blockも見ておこうと思います。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/1 23:55
ゲスト 

カテゴリではなく、特定の&quot;タグ&quot;の記事だけを表示させる方法はありますでしょうか?

この部分を、タグに該当する関数?に変えればいいのかなとは思うのですが、プログラムはよくわかっていないもので。。
ヒントだけでも、教えていただけるとありがたいです

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/2 2:27 | 最終変更
なーお  長老   投稿数: 1832 オンライン

ゲストさん、こんにちは。

引用:
カテゴリではなく、特定の&quot;タグ&quot;の記事だけを表示させる方法はありますでしょうか?

残念ながら、現時点ではブロックのテンプレート変数にタグ情報は渡しておりませんので、テンプレート編集だけでご希望の表示は不可能です。

また、ブロックのスクリプトでコールしている内部の関数自体が、そもそもタグをデータベーステーブルから抽出しておりませんので、 表示させる為にはその部分を含めてしっかりした改造が必要です。

ということで、この件は、カテゴリでの抽出と合わせて、ご要望として今後の開発バージョンへの課題とさせてください。 いつ実装できるかは未定です。案外早くできるかもしれませんし、かなり先になるかもしれません。

では。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/2 15:12
ゲスト 

早速のご返信、ありがとうございます。
残念ですが、もしできたらラッキーという程度で期待させていただきます!

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/8 12:25
なーお  長老   投稿数: 1832 オンライン

d3diary-ver0.14にて、新着日記ブロック2つのブロックオプションに、カテゴリー名やタグでの絞り込みを追加しました。 お試しください。 :-)

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/9 11:08
ゲスト 

タグでの絞り込みをお願いしたものです。

早速のご対応ありがとうございます!
試させていただきます。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/9 19:31
ゲスト 

タグの件で、お願いをしたものです。

すいません。試したところ、下記エラーがでてしまいました。(毎回ではありません。たまにです)
旧バージョンのモジュールアンインストールし、再インストールをしても同様です。

どのようにすれば、アラートが消えるでしょうか。
襲礼しますが、ヒントだけでも教えていただけると幸いです。

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_PERSON in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 409

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_PERSONDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 410

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_CALENDAR in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 421

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_CALENDARDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 422

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_CATEGORY in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 433

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_CATEGORYDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 434

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_ENTRY in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 445

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_ENTRYDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 446

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_COMMENT in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 457

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_COMMENTDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 458

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_MLIST in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 469

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_MLISTDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 470

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_FRIENDS in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 481

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_FRIENDSDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 482

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_TAGCROUD in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 493

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_TAGCROUDDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 494

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_PHOTOS in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 505

Warning: constant() [function.constant]: Couldn't find constant _MI_D3DIARY_BLOCK_PHOTOSDSC in /xxxxxx/xxxxxx/xxxxxx/xoops_trust_path/modules/d3diary/xoops_version.php on line 506

投票数:9 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/9 21:23 | 最終変更
なーお  長老   投稿数: 1832 オンライン

(trust)/modules/d3diary/language/(lang)/ 内の言語ファイル「modinfo.php」をアーカイブから解凍して上書きした時に、上書きされていない可能性があります。 ご確認ください。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/10 1:44
ゲスト 

お返事ありがとうございます。
何回か、アンインストール→元ファイル削除(html,trust)→アップロード→インストールという手順でやってみたのですが解決しませんでした。

しかし
modulesフォルダの名前を「d3diary1」にして別名でインストールしてみたところ問題は解決しました。

原因はよくわかっていません。
ご丁寧にアドバイス頂きましてありがとうございました!

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/18 12:39
ゲスト 

すいません。
新しいバージョンの「新着日記ブロック」ですが
コメント数の表示はできないのでしょうか?

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/18 12:42
ゲスト 

上記コメントしたものです。
補足させてもらいますと、以前のバージョンでは
 とテンプレートに書けば表示されていましたが、このバージョンの「新着日記ブロック」でのみ、この関数?を書いてもコメント数が表示されなくなってしまいました。

コメント数を表示させる方法はありますでしょうか?
恐れ入りますが、宜しければ教えてください。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/12/18 14:34 | 最終変更
なーお  長老   投稿数: 1832 オンライン

「新着日記ブロック」(テンプレートはblock_diarylist.html)ですよね。 今も表示できるはずですが。 テンプレート変数が変わっている可能性もありますので、標準に一旦戻してからマージしてはいかがでしょうか。 記事ループ内変数は、<{$entry.com_num}>です。

参考:このTOPページ下の新着日記ブロック
http://d3diary.naaon.com/

なお、サイド表示用の新着日記(テンプレートはblock_side_entry.html)には、コメント数をアサインしていないため表示されませんので念のため。

投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ

ログイン

メインメニュー

テーマ選択
Cube