<?php

require_once XOOPS_TRUST_PATH.'/modules/d3forum/class/D3commentAbstract.class.php' ;

// a class for d3forum comment integration
class minidiaryD3commentContent extends D3commentAbstract {


function fetchSummary( $external_link_id )
{
	global $xoopsDB, $xoopsConfig, $xoopsUser;

	$db =& Database::getInstance() ;
	$myts =& MyTextSanitizer::getInstance();
	
	$module_handler =& xoops_gethandler( 'module' ) ;
	$module =& $module_handler->getByDirname( $this->mydirname ) ;
	
	$entryID = intval( $external_link_id ) ;
	$mydirname = $this->mydirname ;
	if( preg_match( '/[^0-9a-zA-Z_-]/' , $mydirname ) ) die( 'Invalid mydirname' ) ;

	if(is_object($xoopsUser)) {
		$uid = $xoopsUser->getVar('uid');
	} else {
		$uid = 0;
	}
	

	$content_row = $db->fetchArray( $db->query( "SELECT uid, bid, cid, title, diary FROM ".$db->prefix("yd_diary")." WHERE bid =$entryID" ) ) ;
	
	if( empty( $content_row ) ) {
		redirect_header(XOOPS_URL.'/user.php',3,_NOPERM);
		exit();
	}
	$diary_uid = $content_row['uid'];

	//checking permission : if false, redirect
		$sql = "SELECT * FROM ".$xoopsDB->prefix('yd_config');
		$result = $xoopsDB->query($sql);
		while($dbdat = $xoopsDB->fetchArray($result)){
			$openarea[$dbdat['uid']]=$dbdat['openarea'];
		}

		$permission = $this->check_permission($diary_uid, $uid, $openarea[$diary_uid]);
		if( $permission != true ) {
			redirect_header(XOOPS_URL.'/user.php',3,_NOPERM);
			exit();
		}

	$categoryID = $content_row['cid'];
	$uri = XOOPS_URL.'/modules/'.$mydirname.'/detail.php?&bid='.$entryID;

	$str = strip_tags($content_row['diary']);
	$summary = xoops_substr( $str , 0 , 255 );

	return array(
		'dirname' => $mydirname ,
		'module_name' => $module->getVar( 'name' ) ,
		'subject' => $myts->makeTboxData4Show( $content_row['title'] ) ,
		'uri' => $uri,
		'summary' => $summary,
	) ;
}

function validate_id( $link_id )
{
	$link_id = intval( $link_id ) ;
	$mydirname = $this->mydirname ;

	$db =& Database::getInstance() ;

	list( $count ) = $db->fetchRow( $db->query( "SELECT COUNT(*) FROM ".$db->prefix("yd_diary")." WHERE bid=$link_id" ) ) ;

	if( $count <= 0 ) return false ;
	else return $link_id ;
}

	// set forum_dirname from config.comment_dirname
	function setD3forumDirname( $d3forum_dirname = '' )
	{
		if( ! empty($this->mod_config['comment_dirname'] ) ) {
    			$this->d3forum_dirname = $this->mod_config['comment_dirname'] ;
		} elseif( ! empty( $params['comment_dirname'] ) ) {
			$this->d3forum_dirname = $params['comment_dirname'] ;
		} elseif( $d3forum_dirname ) {
			$this->d3forum_dirname = $d3forum_dirname ;
		} else {
			$this->d3forum_dirname = 'd3forum' ;
		}
	}

function check_permission($req_uid, $uid, $openarea)
{
	global $xoopsDB, $xoopsModuleConfig;
	
	if($req_uid == $uid){return true;}
	
	if($openarea == 0){return true;}
	
	if($openarea == 1){
		if($uid==0){return false;}else{return true;}
	}
	
	// xsnsÏ¢·È
	if($xoopsModuleConfig['use_xsns'] == 1){
		if($openarea == 2){
			return is_xsns_friend($req_uid, $uid);
		}
		if($openarea == 3){
			return is_xsns_friend2($req_uid, $uid);
		}
	}
	
	return false;
}

function is_xsns_friend($uid_from, $uid_to)
{
	global $xoopsDB, $xoopsModuleConfig;
	
	if(empty($xoopsModuleConfig['xsns_dirname'])){
		$xsns_dirname="xsns";
	}else{
		$xsns_dirname=$xoopsModuleConfig['xsns_dirname'];
	}
	
	$sql = "SELECT count(*) AS count_num FROM ".$xoopsDB->prefix($xsns_dirname."_c_friend").
			" WHERE (uid_from = '$uid_from') and (uid_to='$uid_to')";
	if ( !$result = $xoopsDB->query($sql) ) {
		return false;
	}
	if ( !$row = $xoopsDB->fetchArray($result) ) {
		return false;
	}
	if ( $row['count_num'] <= 0 ) {
		return false;
	}
  	return true;
}

}

?>