d3pipesモジュールでサイト内の新着一覧表を表示させる

このトピックの投稿一覧へ

なし d3pipesモジュールでサイト内の新着一覧表を表示させる

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2025/12/14 15:33
タツ  管理人   投稿数: 2540
d3pipeモジュールの目的は外部も含め新着情報を表示することです。これを利用すればホームページで各モジュールの新着投稿を表示することができます。ところが新着表示が10件しか表示されないことに問題があります。d3pipeモジュールには一般設定で設定項目(個々のパイプページで表示するエントリ数 )がありますが反映されません。

また、d3forumモジュールのブロック管理にて投稿一覧を表示すると投稿された一覧が表示され、d3pipesモジュールでのパイプ出力では投稿されたトピックの一覧が表示されます。

目標としては
1.トップ画面で各モジュールの統合した投稿の一覧を表示し、なおかつ別枠でd3forumの投稿されたトピックを表示したい
2.各モジュールで新着情報の最後に「もっと・・」を表示し、リンク先にはd3pipesモジュールの各パイプで少なくとも50以上の新着一覧表を表示したい

この目標の手順として次のようにしてみました。
1.d3pipeモジュールで各パイプの数を50以上(60とした)に増やす。
xoops_trust_path/modules/d3pipe/joints/block内に該当するd3pipsモジュールのブロック関数ファイルを編集する
例えば
xoops_trust_path/modules/d3pipe/joints/block/D3pipesBlockD3forumtopics.class.phpであれば
26行目
1 => empty( $params[2] ) ? 10 : intval( $params[2] ) , // max_entries
10を60に変更
同様に
自分のサイトでは以下のファイルを編集しました。
xoops_trust_path/modules/d3pipes/joints/block/D3pipesBlockGnavilist.class
xoops_trust_path/modules/d3pipes/joints/block/D3pipesBlockPicolist.class
xoops_trust_path/modules/d3pipes/joints/block/D3pipesBlockMyalbumplist.class
xoops_trust_path/modules/d3pipes/joints/block/D3pipesBlockWebphotolist.class
xoops_trust_path/modules/d3pipes/joints/block/D3pipesBlockBulletinlist.class
xoops_trust_path/modules/d3pipes/joints/block/D3pipesBlockD3forumtopics.class
編集後、d3pipesパイプ管理にてそれぞれのブロック関数を選択し表示させる


2.ブロック関数d3forumrevを編集しd3forumモジュールの新着投稿を表示させる。
xoops_trust_path/modules/d3forum/include/d3pipesd3forumrev.inc.php 

22行目
if ( isset($params[4]) && intval( $params[4] )>0 ) {
//posts
$this->func_name = 'b_d3forum_list_posts_show' ;
$this->block_options = array(
'disable_renderer' => true ,
0 => $this->target_dirname , // mydirname of pico
1 => empty( $params[2] ) ? 10 : intval( $params[2] ) , // max_entries
2 => 'time' , // order by
3 => preg_replace( '/[^0-9,]/' , '' , @$params[1] ) , // category limitation
5 => preg_replace( '/[^0-9,]/' , '' , @$params[3] ) , // forum limitation
) ;
} else {
//topics
$this->func_name = 'b_d3forum_list_topics_show' ;
$this->block_options = array(
'disable_renderer' => true ,
0 => $this->target_dirname , // mydirname of pico
1 => empty( $params[2] ) ? 10 : intval( $params[2] ) , // max_entries
2 => false , // show_fullsize
3 => 'time' , // order by
4 => false , // is_markup
5 => preg_replace( '/[^0-9,]/' , '' , @$params[1] ) , // category limitation
7 => preg_replace( '/[^0-9,]/' , '' , @$params[3] ) , // forum limitation
) ;

↓
if文でtopicを優先させ、表示数を60に変更

if ( isset($params[4]) && intval( $params[4] )>0 ) {
//topics
$this->func_name = 'b_d3forum_list_topics_show' ;
$this->block_options = array(
'disable_renderer' => true ,
0 => $this->target_dirname , // mydirname of pico
1 => empty( $params[2] ) ? 10 : intval( $params[2] ) , // max_entries
2 => false , // show_fullsize
3 => 'time' , // order by
4 => false , // is_markup
5 => preg_replace( '/[^0-9,]/' , '' , @$params[1] ) , // category limitation
7 => preg_replace( '/[^0-9,]/' , '' , @$params[3] ) , // forum limitation
) ;
} else {
//posts
$this->func_name = 'b_d3forum_list_posts_show' ;
$this->block_options = array(
'disable_renderer' => true ,
0 => $this->target_dirname , // mydirname of pico
1 => empty( $params[2] ) ? 60 : intval( $params[2] ) , // max_entries
2 => 'time' , // order by
3 => preg_replace( '/[^0-9,]/' , '' , @$params[1] ) , // category limitation
5 => preg_replace( '/[^0-9,]/' , '' , @$params[3] ) , // forum limitation
) ;

さらに、
記事表示は省きすっきりさせました。
73行目
//'headline' => $post['subject'] ,
'headline' => '['.$post['forum_title'].'] '.$post['subject'] ,
'description' => $post['post_text'] ,

↓

//'headline' => $post['subject'] ,
'headline' => $post['subject'].' - '.$post['forum_title'] ,
//'description' => $post['post_text'] ,


これでd3pipesパイプ管理にてブロック関数d3forumrevを選択し表示させる

3.d3pipeモジュールで各モジュールを統合する際に別枠でd3forumモジュールのトピック新着情報を表示させる
d3pipesパイプ管理にてブロック関数d3forutopicを選択し表示させる

4.新着一覧の後に「もっと・・」を追加する
d3pipesのブロック関数で各モジュールの新着一覧ブロックを作成し、表示数は12程度にしておきます。そのあと「もっと・・」を追加しd3pipesの各モジュールのページにリンクし残りの新着情報が見れるようにします。
「もっと・・」の表示については、d3pipesのテンプレート、モジュール名_block_sync.htmlの最後に

<{if !$pipe.id}>
<div style="text-align:right;"><a class="button" href="<{$xoops_url}>/modules/sitepipes/" >もっと・・</a><div>
<{else}>
<div style="text-align:right;"><a class="button" href="<{$xoops_url}>/modules/sitepipes/index.php?page=eachpipe&pipe_id=<{$pipe.id}>" >もっと・・</a></div>
<{/if}>

を追加する

この方法が正しいかどうかは分かりません。少なくともd3pipesモジュールの一般設定では反映されないようです。既にxoops cubeのサポートもなくバージョンアップも見込めないことから現時点では自分の能力からこれが限界かもしれません。
投票数:0 平均点:0.00

投稿ツリー


     条件検索へ

旅と気ままなフォーラム最新投稿

欲しい商品が必ず見つかるメジャーなネットショップ

ログイン

オンライン状況

87 人のユーザが現在オンラインです。 - 4 人のユーザが 旅と気ままなフォーラム を参照しています。.

登録ユーザ 0 ゲスト 87

Facebookリンク表示

検索

アクセスカウンタ

今日 : 2
昨日 : 627
総計 : 2231465