TinyDで一覧表を出力する

人のサイトですが、XOOPSを管理しています。
いままでは、静的なコンテンツを表示するのに、XFsectionを使っていたのですが、借りているサーバのバージョンアップにより、相性が悪くなってしまいました。

でTiniyDを使うことにしました。XFsectionと違いカテゴリーという物がありません。しかしモジュールの複製が可能なので、1つのカテゴリーに1つのTinyDとしました。

問題は目次になるページ。ブロックは用意されているけれども融通が利かない。
無い物は作ってもらう精神で、ネットを検索。
こことか参考にしたのですがどうもうまく動かない。改造してなんとか使える物が出来上がりました。メモ代わりに残しておきます。


これをtinydのコンテンツに登録。コンテンツタイプは「PHPコード(bb code無効)」
表示順を999にする

//TinyDのナンバーが1のとき
//他の時は tinycontent1 と tinyd1の部分を変更
global $xoopsDB;
include_once( XOOPS_ROOT_PATH . '/class/pagenav.php' );

$num = empty( $_GET['num'] ) ? 20 : intval( $_GET['num'] );
if( $num < 1 ) $num = 20;
$pos = empty( $_GET['pos'] ) ? 0 : intval( $_GET['pos'] );

echo "<h1> 〜〜〜〜の一覧</h1>";

$prs = $xoopsDB->query( "SELECT COUNT(storyid) FROM ".$xoopsDB->prefix('tinycontent1')." WHERE visible=1 AND blockid<>999" );
list( $story_sum ) = $xoopsDB->fetchRow( $prs );
if( $story_sum > 0 ) {
//SELCTでデータベースより読み込み storyidはID titleはタイトル textは内容last_modifiedは最終更新日時 作成日時にしたい時はcreatedに変更
//ORDER BYで一覧表の表示順変更 blockidは表示順 ASCは降順 DESCは昇順
$prs = $xoopsDB->query( "SELECT storyid,title,text, last_modified FROM ".$xoopsDB->prefix('tinycontent1')." WHERE visible=1 AND blockid<>999 ORDER BY  blockid ASC" , $num , $pos );

//2ページに渡る時はナビゲーションメニューを作る
if( $story_sum > 1 ) {
$nav = new XoopsPageNav( $story_sum, $num, $pos, 'pos', "id=1&num=$num" );
$nav_html = $nav->renderNav( 10 );
$last = $pos + $num;

if( $last > $story_sum ) $last = $story_sum;
$storynavinfo = sprintf( "%s番 〜 %s 番を表示中(全%s号)", $pos + 1, $last, $story_sum );
echo "<div class='navbox'><p class='navinfo'>".$storynavinfo."</p>";
echo "<p class='navhtml'>".$nav_html."</p></div>";
}
// 一覧表表示
include_once(XOOPS_ROOT_PATH."/class/smarty/plugins/modifier.mbtruncate.php");
include_once(XOOPS_ROOT_PATH."/class/smarty/plugins/modifier.ryus_date.php");
echo "<dl>";
while( list($storyid, $title, $text, $date) = $xoopsDB->fetchRow( $prs ) ) {

//ryus_dateでNEW表示
$date=smarty_modifier_ryus_date($date,"Y-m-d");
echo "<p><dt>".$date."<br><a href='".XOOPS_URL."/modules/tinyd2/index.php?id=".$storyid."'>".htmlspecialchars($title)."</a></dt>";
$text = strip_tags($text);
//modifier_mbtruncateで本文を丸める
$text = smarty_modifier_mbtruncate($text, 200, '..... <a href="'.XOOPS_URL.'/modules/tinyd1/index.php?id='.$storyid.'" class="readmore">続きを読む</a>', true);
echo "<dd>".$text."</dd><br></p>";
}
echo "</dl>";
echo "<br style='clear:both;' />";
} else {
echo "No data found";
}

コメント

タイトルとURLをコピーしました