PEAK XOOPS - Re: これでどうでしょう? in englishin japanese

Re: これでどうでしょう?

List posts in the topic

question Re: これでどうでしょう?

msg# 1.1.1.1.1.1.1.1
depth:
7
Previous post - Next post | Parent - Children.1 | Posted on 2006/2/28 5:53
GIJOE  Gunnery Sergeant   Posts: 4110
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]タグで囲ってあげると見やすいですよ。
Votes:0 Average:0.00

Posts tree

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!