Rolleiさん、こんにちは。
コードのチェックは、新規作成よりも高くつきますよ
とりあえず、表示ON/OFFの処理が欠けてますね。
function b_sitemap_tinyd(){
$db =& Database::getInstance();
$myts =& MyTextSanitizer::getInstance();
$result = $db->query( "SELECT storyid, title FROM ".$db->prefix("tinycontent")." WHERE visible=1 ORDER BY blockid" ) ;
$ret = array() ;
while( list( $id , $name ) = $db->fetchRow( $result ) ) {
$ret["parent"][] = array(
"id" => $id ,
"title" => $myts->makeTboxData4Show( $name ) ,
"url" => "index.php?id=$id"
) ;
}
return $ret ;
}
ただ、これだと、sitemap側に入れるプラグインであり、複製分それぞれについて、
-ファイル名の変更
-関数名の変更
-$db->prefix("tinycontent") 部分の変更
の3作業を行う羽目になります。
xhld自体、モジュール側プラグインのはずです。
というわけで、modules/*/include/sitemap.plugin.php として、
<?php
if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
if( ! preg_match( '/^(\D+)(\d*)$/' , $mydirname , $regs ) ) echo ( "invalid dirname: " . htmlspecialchars( $mydirname ) ) ;
$mydirnumber = $regs[2] === '' ? '' : intval( $regs[2] ) ;
eval( '
function b_sitemap_'.$mydirname.'(){
$db =& Database::getInstance();
$myts =& MyTextSanitizer::getInstance();
$result = $db->query( "SELECT storyid,title FROM ".$db->prefix("tinycontent'.$mydirnumber.'")." WHERE visible=1 ORDER BY blockid" ) ;
$ret = array() ;
while( list( $id , $name ) = $db->fetchRow( $result ) ) {
$ret["parent"][] = array(
"id" => $id ,
"title" => $myts->makeTboxData4Show( $name ) ,
"url" => "index.php?id=$id"
) ;
}
return $ret ;
}
' ) ;
?>
と、こんな感じでしょうか。(まったくチェックしてませんので、typoがあったらごめんなさい)
本当は、mod_rewrite用の処理も加えなければなりませんが、それは必要な人がやればいいってことで。
あと、ソースコードを書くときは、[ code][/ code]タグで囲ってあげると見やすいですよ。