// $Id: readmej_euc.txt
// v 2.04 2004/2/17 16:00:00 toshimitsu Exp $
Xoops⥸塼롧ơ֥åXoops2
-----------------------------------------------------------------------
2004-2-17 
ꤤ Todo
	xptblcheck2.0.4 顡ۻιȤƤϡ
	åѥxptblparam2xptblparam3 ΤȤ
	modules/xptblcheck/admin/ľˤʤǤ
	顼ȤƽǤƤޤȤˤޤ
	Ǥ顢⤷ɬפʤ顢xptblparam2.phpȡxptblparam3.php
	modules/xptblcheck/admin/sampleˤޤ
	顢Ƥǧξ
	modules/xptblcheck/admin/ľ˥ԡƤ

-----------------------------------------------------------------------
ޤեȤŪ

Xoops ƥơ֥ΥǡˤĤơ
XoopsɬפȥƥȤƤϤΡ
֤Υơ֥ܤͤϡΥơ֥ȥ󥯤Τ
Υơ֥ƱͤʤΤϤסȤ
̵֤ͤȡxoopsǡȤʤסʤɤξ
ٹΥåɽΤŪǤ

۾郎ʤȤϡ֥顼̵ϣˡפɽǤ

ǡιʺɲáˤϤޤ
ǡɬפʾphpMyAdminȤӤƤ

ʥåѤΣӣѣ̽Ĥäơ󥯤γåƤǤ
xoops鿴ԤΤˡӣѣ̽ɽ̤Υ롼Ȥ
ץʤΤǤ

-----------------------------------------------------------------------
ΩĤΤ

⥸塼벽ΤǡXoopsưƤʤȡȤޤ
顢xoopsư
ִ󤬽Фʤ
֥֥å̤˥֥åɽʤ
ʤɤΰ۾ư(ھ)Ρ
ƥơ֥ΥǡγǧʤɤˤĤޤ

ʵǽ

󥤥ȥѤߥ⥸塼Υߥǡθ 
̵ȺꤽɬפʥǡʶЎ 
ơ֥ΥNULLʥǡθ 
Ѥˤơ˥塼ưƤ 
۾郎ʤȡϣˤȤɽʤޤ 
ޤǤоݤˤƤ벼˥ơ֥Υǡɽ

-----------------------------------------------------------------------

Xoops2 Ѥͳ
xoops̤Υ⥸塼ȤưϤǤ
Сˤåơ֥뤬㤦ΤѤȽ񤤤Ƥޤ
졢㤦СưƤ⡢selectʸƤʤΤǡ
Xoops˰ƶϤʤȻפޤ
顼ٹΰ̣ˤʤΤǡ
Xoops2ʳϡȤ⤫錄ϡ̤ǧǤ

-----------------------------------------------------------------------
ϥåΰ̣ˤĤơ

Ϥå˸­ʤΤǡӣѣʸɤʤ
顼ٹ𤬽ФƤ⡢ɤƤФΤ狼ʤϤǤ

ˡȤϤå̵ʥǡȽǤƤ⡢
SQLʸζŪʸʤΤǡ
̤ΥեΥǡ­ʤ˥åФƤ뤫⡩
̥ơ֥˥졼ɲäɬפʤΤ⤷ޤ
ޤ
ΥСˤϡΥơ֥뤬ʤ
ɬפʤ⤷ޤ󎡡ʴϢο

Τϡ⥸塼ʤɤΥޥʥơ֥ˤʤ
⥸塼ɣֹϡΥơ֥ϢΥ󥯤롢
	¾Υơ֥˻ĤäƤƤȤޤ

ޤƱ⥸塼򡢺٥󥹡ȥ뤷Ƥ
⥸塼ɣֹȤ̤ΤΤˤʤޤΤǡ
Υ⥸塼ɣֹΥǡϡϤȤޤ

Τᡢ¸롡⥸塼ɣֹ뤫Ǥ
ȤäƤ⡢
ơ֥ˤäƤϡϢʣǴְ㤦ȡդ꤬Фޤ
ޤϡɬפʤ뤷ޤ

ƱͤΤȤ
桼롼ס֥åʤɤμפΥơ֥ˤĤƸޤ
դ򤷤ƥåȥǡ򸫤Ƥ

--------------
ɤƥǡʤäΤ
ȯϡ狼ʤɡ
ǡȤơΤߤʤȤФС
ȯϡ狼ʤƤ֤˥ǡľ꤬ˤʤʤޤ
СxoopsưϷ򹯤ˤʤϤǤ

ƥǡˤΤXoopsηưؤζƻǤ
ʲǡǡľȤƤ
ȯ̵ʤȡ٤Ǥȯޤ
顢
ȯǡȤXoopsηǼĥȤ𤷤
xoopsΥȤãͤˡָȯפκޤ礦

㤪ꤤʤǡ餻ʤǤ

ǡȸФƤ⡢
ɤľФΤľ狼ʤϡ
xoopsΥȤηǼĤãͤʹƤߤɤȻפޤ

աXoopsΥȤηǼĤʹȤˤ
ñˡֲ̤˽ФʤɤƤǤ礦פȤǤϡ
XoopsȤηǼĤãͤ褦ʤϤǤ
ˡXoopsΣƣѤ䵻Ѿ㤬ʤĴ٤ޤ礦

ŪˡףH( Who When Where What Why How)
˿ơСï쥹ƤȻפޤ

ʣףHΰŪʡ֤˺줿ɡ

whoïԡ桼
whenġĤ顢ɤȤ
whereɤǡɤ֤ǡɤȤ
whatɾɤ

ˤƲäƤ館褦ˤ뤫ݥȤǤ

ʡphpǥХץåʤ
Ǥܤɽǡźƴʷˡ

whyʤˤ狼ʤäƤΤ
howɤФΤɤȤʹ

ȤȤǤ

	phpǥХ
	MySQL/BlockǥХ
	smartyʸǥХʤɤɽǡ
	Ǥʤ
	ơ֥åɽå
	ɽǡźƤȡ
	Ȥãͤ⡢ɤ֤ʤΤ
	ΤǤϤȴԤƤޤ

-----------------------
ơ֥åɬפʤΤ

Xoopsϡʤɤ褿ƥǤ
phpǥХSQ̤ιʸǥХsmartyʸǥХȡ
ʥǥХåȤߤʡǽĤƤޤ

ΡǥХʤ⥸塼Фʤ顢ʡʷ򹯤ʡXoopsʤϤǤ

ʤΤˡʤִ󤬽Фʤס֥֥åɽʤפʤ
ɾǤΤǤ礦

XoopsphpǥХSQ̤ιʸǥХsmartyʸǥХǣϣˤ

ơˡXoopsɬפȤƤ롢ƥǡǤС

嵭ξɾФʤϤȻפäƤޤ

Υȴطɽξɾϡ
ȯϤ狼ʤƤ⡢Ȥ⤫ľܤθ
ƥơ֥
ǡ̵ͤ
ְäƤ
ʤɤ˵ƤΤۤȤɤȡפޤ

ƥǡåΤXoopsɸǤѰդƤޤ
ʥǡ뤳Ȥˤơץưޤ

Ĥ⥵Ȥ֥饦ꤷưƤȤϸ¤ޤ
ޤXoopsץǤ顢ɤ˥Х뤫⤷ޤ

ǤʤǡȤäƤ⡢ɾ¿ˤ錄Τǰ쳵ˤϤޤ
ΤؤΥơ֥ǡΥå
ãͤʤphpMyAdminȤȤäơӣѣ̤ȤץȤȤгμ¤ˤ狼櫓Ǥ
Ǥ⡢֤⤫뤷
xoops鿴ԤˤϡxoopsΤɤΥơ֥뤬ɤطƤõǤѤǤ
ǡ١鿴ԤʤʤǤ

ʤΤǡǽϼʬѤΤ˺ޤ
ĤǤˡäʤΤǡ⥸塼벽Ƹޤ

--------------------------------
phpΥɤ
ʬѤľƤְäƤ餴ʤǤ

Τʤ빽ʥեȤǤ
ɤˤѤǤΤʤäΤ
Τϡ̤ۤ錄˽񤤤Ƥޤ
ˤĤäƲ¤ƤäƤ

ʤѤΡȼΣӣѣʸϿեʾˤޤ
/sptblcheck/admin/sample/Ƥޤ
/sptblcheck/admin/˥ԡƤĤäƤ

 2: xptblparam2.php (ѡͳɲáѹƤ)
 3: xptblparam3.php (ѡͳɲáѹƤ)

Ρ֥ѥ᡼եλ͡פ򻲾ȴꤤޤ

äƤƤϥץȻפޤ
ȤϼͳǤ
եʤꡢȤΥơ֥åѤΣӣѣʸ
ĤĴ٤Υơ֥ǡѣӣѣʸȤ
Υǡɽ륹ץȤˤʤ뤫ʎ

 ѥ᡼ե񤭴
 ɤxoopsСǤ⤤ϤǤ(̤ǧ)
 ޤXoopsΥƥơ֥ʤƤ⡢
 ե⥸塼Υơ֥ȤǤ⤤Ǥ

ʤɽǡη¿ȡ
֥饦ɽʤʤȻפޤ

---------------------------------------------------------------------
ѥ᡼եλ͡2003-7-29 ver1.41ʹ

default=xptblparam.php (ơ֥󥯥å濴)
 1: xptblparam1.php(NULL KEY¸ߥå)
 2: xptblparam2.php (ѡͳɲáѹƤ)
 3: xptblparam3.php (ѡͳɲáѹƤ)

źֹϡμ̤Ƚ롼ץȤ˻ȤΤ
ե뤴Ȥˡ1100 ޤǤδֿǻ
ʣʤС֤ǤĎ
   (ver2.02100¤Ϥޤ900Ƥ
   Ǥ⡢٤˥åΤϡʤۤɤǤ)

ƥѥ᡼ϡ
άĤѿϡѤʤȤϡѿΤ򵭽ҤȤƥѥ᡼˽񤫤ʤ
ʸѤΡ"WHERE"ʸϼưդ­ΤǻꤷʤǤ

---------åȽѤΥѥ᡼ܡ

[ֹ]Ƚ򤹤뤫ɤȽͤθФΤ
ϡ̤ʤȤˤȤޤ

$pre_judgquery_arr[ֹ] =SQLʸ󡡡ǤաWHERE ΰ֤SELECTҡ
$pre_judgcriteria_arr[ֹ] = SQLʸ󡡡ǤաWHERE ΰ֤ξﵭҡ
$pre_judgquerycount_arr[ֹ] =$pre_judgquery_arrꤷƤϡɬܡ

$pre_judgquerycount_arr[ֹ] =ϷȤӤǤ

0 ꤷȤϡǡ= 0 ΤȤ Ƚ򤹤
1 ʾοꤷȤϡǡ>=  ʤ顧 Ƚ򤹤

ͤȽαѤȤƤϡʾˤʤäٹФȤ˻Ȥ뤫⎡

---------
꡼ˤꡡѥͤѡ
Ƚ롼򤳤ηʬ֤Ԥᡢפ륭ɬפǤ
ܤˤƤޤ
롼ףɣĤФƤȤ⥸塼ɣĤФơĴ٤ȤΤȤ˻Ȥޤ
ɬפʤȤ񤭤ޤ
  
  ѿ$pre_query_arr[ֹ],$pre_keyname_arr[ֹ]
  ꤵƤ뤳Ȥǡ
  ꡢȽ롼פȽǤƤޤ
 

$pre_query_arr[ֹ] =SQLʸ󡡡ǤաWHERE ΰ֤SELECTҡ
$pre_criteria_arr[ֹ] = SQLʸ󡡡ǤաWHERE ΰ֤ξﵭҡ
$pre_keyname_arr[ֹ] =̾ʸ󡡡$pre_query_arrꤷƤϡɬܡ

----------------------------------------------------
Ƚꥯ꡼ѡΤɬפʥᥤȽѤǤ

$checkname_arr[ֹ] = ʸ󡡡ɬܡ"trash"| "missing" | "123group"

ϡå⡼
"trash" = ǡäȤ˥åɽ˥ߥǡθ
"missing" = ǡ̵äȤ˥åɽɬץǡθ
"123group" = 롼1,2,3Υǡ̵äȤΡä§θ
"overlaps" = ǡʾʣˤθ (xptblcheck ver2.02餳Υ⡼ɲá)

$query_arr[ֹ] = SQLʸ󡡡ɬܡWHERE ΰ֤SELECTҡ
$criteria_arr[ֹ] = SQLʸ󡡡ǤաWHERE ΰ֤ξﵭҡ

ﵭҤ̵Ȥϡ$criteria_arr[ֹ] ΤΤ񤫤ʤȎ

"123group"ΤȤϡä§
$criteria_arr[21] = "groupid = " ;
Τ褦ˡ
ＰκǸ򡢥롼IDΥɤ = 
ǿڤȥܤʵҤ򤷤Ƥ
ӣѣ̤ФळȤʤΤǡ
"123group"Υ⡼ɤϡΤȤΤ褦Ȼפޤ

꡼ˤꡡѥͤͤＰǻȤ̾

$keyname_arr[ֹ] =̾ʸ󡡡$pre_query_arrꤷƤϡɬܡ

$strhanteimsg_arr[ֹ] = ʸ ɬܡåΥפ狼褦ˡ

_AM_XPTC_ERRORMSG= 'ERROR'
_AM_XPTC_KEIKOKUMSG= 'ٹ'
ľܻꤹʤ"ϣ"Ȥ"ƥ"Ȥʸ򤹤
    (㡧  $strhanteimsg_arr[99] = "ƥ")

$strcomment_arr[ֹ] = ʸ ɬܡåѡ

ФȤΡɽѥȤ񤭤ޤ

----------------------------------------------------------------
----------------------------------------------------------------
ץ㣱
groupsΥ롼ףɣ = 0ϡơ֥ǡȤƤϡ
֤󡢴ְ㤤۾֤󡢤äƤϤʤ
ʤʤꡢĴƤޤ
롼ףɣġᣰϡ̤Ǥ֤ALLΰ
˥ϡɥǥ󥰤ƤͤȤߤ뎡

$tablename = $xptblcheck_db->xptbl_prefix("groups");

$checkname_arr[14] = "trash";
$query_arr[14] = "SELECT * FROM ".$tablename;
$criteria_arr[14] = "groupid = 0" ;
$strhanteimsg_arr[14] = _AM_XPTC_ERRORMSG ;
$strcomment_arr[14] = $strdefcomment[3]."<br>".$strdefshorimsg[1]."\n" ;

---------------------------
ץ㣲
ȴԥ롼=1 ˡƥ⥸塼=1 
ƥ = "system_admin"ʤΤϥ顼
  ưŪ˥åȤϤι܎

ϡˤʤäƤ狼ä
xoops2.0.3󥹥ȡΥǡܤȴƤ뎡
Ǥ⥤󥹡ȥˡ֥롼״ײ̤ǡ֥ȴԡפιȼưǺޤ
Ĥޤꡢʤ餺֥롼״ײ̤ǡ֥ȴԡפιɬפޤ

$tablename = $xptblcheck_db->xptbl_prefix("group_permission");

$checkname_arr[22] = "missing";
$query_arr[22] = "SELECT * FROM ".$tablename;
$criteria_arr[22] = "gperm_name = 'system_admin'" ;
$criteria_arr[22] .= " AND gperm_groupid = 1" ;
$criteria_arr[22] .= " AND gperm_itemid = 1" ;
$strhanteimsg_arr[22] = _AM_XPTC_ERRORMSG ;
$strcomment_arr[22] = $strdefcomment[6]."<br>".$strdefshorimsg[2]."\n" ;

---------------------------
join check 
//
//groups_users_link LEFT JOINgroups󥯤ơ
//LEFT JOINgroups󥯤Υơ֥Υͤ
//" IS NULL"Υ쥳ɤʤ
//groups_users_linkΥ쥳ɥǡ̵ʥǡΤϤ
//  롼פɲäΤ׳ǧơ֥Υ󥯤Ǥ礦
//ϡǡȯȤ˽ФΤǡ"trash"

$tablename = $xptblcheck_db->xptbl_prefix("groups_users_link");
$tablename2 = $xptblcheck_db->xptbl_prefix("groups");

$query = "SELECT gu.* FROM ".$tablename." gu LEFT JOIN ".$tablename2." g ON gu.groupid=g.groupid ";
$criteria = " g.groupid IS NULL" ;

$checkname_arr[26] = "trash";
$query_arr[26] = $query;
$criteria_arr[26] = $criteria ;
$strhanteimsg_arr[26] = _AM_XPTC_KEIKOKUMSG ;
$strcomment_arr[26] = $strdefcomment[8]."<br>".$strdefshorimsg[5]."\n" ;

---------------------------
ꡡ롼оݤ 
//
//ˤꡡgroups顡groupid˼
//gperm_groupid= groupidͤȤˡȽ롼򷫤֤
// 
// Ƚ롼
//ƥ⥸塼롡Ρmodule_read
//xoopsưɲä쥳ɤǡ 롼פˤȤäɬ
//̵ȡ󤵤ǤʤʤƿˤʤϤ
//ϡǡ̤ȯ˥åΤ"missing"
$tablename = $xptblcheck_db->xptbl_prefix("group_permission");
$tablename2 = $xptblcheck_db->xptbl_prefix("groups");

$query = "SELECT * FROM ".$tablename2;
$pre_query_arr[86] = $query;
$pre_keyname_arr[86] = "groupid" ;

//롼פФȽη֤
//$pre_keyname_arr[86] = "groupid" ;ͤ
//$keyname_arr[86] = "gperm_groupid" ;ι̾
//֤ΰ׾Ȥ櫓Ǥ
//

$keyname_arr[86] = "gperm_groupid" ;

$checkname_arr[86] = "missing";
$query_arr[86] = "SELECT * FROM ".$tablename;
$criteria_arr[86] = "gperm_name = 'module_read'" ;
$criteria_arr[86] .= " AND gperm_itemid = 1" ;
$strhanteimsg_arr[86] = _AM_XPTC_ERRORMSG ;
$strcomment_arr[86] = $strdefcomment[7]."<br>".$strdefshorimsg[2]."\n" ;

//------------------------//
Ƚꤢꡢꡡ롼оݤ Τä̤
//
//Ƚǡȥåץڡ⥸塼ꤷƤȤʤ
//ʤ򤷤ʤȡconfig˥󥯤⥸塼ͤ
//åȤƤʤΤǡȽ꤬ޤʤǤ
// 󥯤ơǧƤޤͤʤΤĴ٤Ƥʤäʎ
//$criteria = "(c.conf_title='_MD_AM_STARTPAGE')";
//$criteria .= " AND (m.mid IS NOT NULL)";
//
//ˤꡡgroupsgroupid˼
//groupid=ͤȤˡȽ롼󡡤򷫤֤
// Ƚ롼
//ȥåڡ˻ꤷ⥸塼Υmodule_readʤȡ
//̵ȡΥ롼פϥȥåץڡɽǤʤΤ
//󤵤ǤʤϤ
//ϡǡ̤ȯ˥åΤ"missing"
//--Guest top page -found only when all off 
	$tablename1 = $xptblcheck_db->xptbl_prefix("config");
	$tablename2 = $xptblcheck_db->xptbl_prefix("modules");
	$tablename3= $xptblcheck_db->xptbl_prefix("group_permission");
	$tablename4 = $xptblcheck_db->xptbl_prefix("groups");

$query = "SELECT c.* FROM ".$tablename1." c LEFT JOIN ".$tablename2." m ON c.conf_value=m.dirname ";
$criteria = "(c.conf_title='_MD_AM_STARTPAGE')";
$criteria .= " AND (m.mid IS NOT NULL)";

$pre_judgquery_arr[81] = $query;
$pre_judgcriteria_arr[81] = $criteria;
$pre_judgquerycount_arr[81] = 1 ;
//פˡconfigmodulesΥ̵ͭĴ٤Ƥޤ
//ͤΥåƤʤǤ

//롼פФƥå򤹤뤿󥭡˼
$query = "SELECT * FROM ".$tablename4;
$pre_query_arr[81] = $query;
$pre_keyname_arr[81] = "groupid" ;

//롼פФȽη֤
//$pre_keyname_arr[81] = "groupid" ;ͤ
//$keyname_arr[81] = "groupid" ;ι̾
//֤ΰ׾Ȥ櫓Ǥ
//
$query = "SELECT m.* FROM ".$tablename2." m LEFT JOIN ".$tablename1." c ON m.dirname=c.conf_value ";
$query .= " LEFT JOIN ".$tablename3." l ON m.mid=l.gperm_itemid ";
$query .= " LEFT JOIN ".$tablename4." g ON l.gperm_groupid=g.groupid ";
$criteria = "(c.conf_title='_MD_AM_STARTPAGE')";
$criteria .= " AND (l.gperm_name = 'module_read')" ;

$checkname_arr[81] = "missing";
$query_arr[81] = $query;
$criteria_arr[81] = $criteria ;
$keyname_arr[81] = "groupid" ;
---------------------------
