λ
D3LangManб
ʸ̾ΤʤƤؤб
ߥΥ쥯ȽʤǤΥڡ᤹
ߥexternal_link_id validation
external_link_id  varchar(255) (onupdate)
index.cssΥƥץ졼Ȳ
[quote][/quote]οʤн
ߥΥХå
waitingץ饰
ߥʸɽ
ߥȺ (guest_md5_pass check)
AntiSPAMƥʤȤꤢJSȤädefault
------------ޤ0.70---------------

ߤTODOͥٽƱ

Ƥ򿷵ȥԥåȤ뤫ɤΥȥ
d3comment ؤΰܹԿ (README˽񤫤줿d3forum_commentλȤľ?)

&#027; ȤrssȤʤ

main_listcategoriesxoops_isadminȽǤƤԽȥ󥯤forum.isadminormoodѹ

֥饦ΥåID񤭹Ǵ̤ɤ¸

post_text_waiting, subject_waiting μ
ɽӥ塼ʤpostľϤοƤǤӥ塼
d3forum_make_treeinformations( $data )
f1s ¸褦ˤơORDERǡȤusort()ɬפʤ (ul_in, ul_out, prev_id, next_id)
⥸塼ޤݡȤȡȥХåʤԶν
ʤȤꡢȥХåƱפ٤
newbb2ΥݡȥץȤΥݡ
桼롼פ顢¤ɽѹǤ륳ȥ
xmobileץ饰
ɥե¸ǽ
ֿΤʤȥԥåԥååפ֥åץʥȥԥå֥å


å٤

cut&paste ǾätopicλΥå
solved, marked κƥå
invisible postsubjectɽʤ*_waiting˰ܹԤ٤


뤫ɤ̯ʷ
ǧڥܥå CAPTCHAäˤ о㳲Ԥؤƨƻɬ
ʤʤǧ ɤ
post.php Υե ĤѤ
can_post,can_edit,can_delete,can_reply
ǽʤ顢picoƱѥθ˰ܹ
ƺƿ ġɬס
ȥԥåǡ֥ƥ꡼Υȥԥåޤ ɬס
Smartyץ饰󤬳ƥ⥸塼 $xoopsModuleConfig ååפ
Խ (guest_md5_pass check) ĺнʬʤ


ơ֥빽¤ѤȤˤϡɬinclude/import_functions.php 񤭴


$rs = $db->query( "SELECT post_id FROM xoops_d3forum_posts" ) ;
while( list( $post_id ) = $db->fetchRow( $rs ) ) {
	list( $post_text ) = $db->fetchRow( $db->query( "SELECT post_text FROM xoops_d3forum_posts_text WHERE post_id=$post_id" ) ) ;
	$db->queryF( "UPDATE xoops_d3forum_posts SET post_text='".addslashes($post_text)."' WHERE post_id=$post_id" ) ;
}


ALTER TABLE xoops_d3forum_posts ADD post_text TEXT NOT NULL default '';
(PHPץȼ¹)
DROP TABLE xoops_d3forum_posts_text ;

ALTER TABLE xoops_d3forum_categories CHANGE cat_order cat_weight smallint(5) NOT NULL default 0;
ALTER TABLE xoops_d3forum_categories ADD cat_desc text NOT NULL default '' AFTER cat_title;
/* ALTER TABLE xoops_d3forum_categories ADD cat_guests_read tinyint(1) NOT NULL default 0, ADD cat_users_read tinyint(1) NOT NULL default 0, ADD cat_guests_post tinyint(1) NOT NULL default 0, ADD cat_users_post tinyint(1) NOT NULL default 0, ADD cat_use_access_control tinyint(1) NOT NULL default 0, ADD cat_moderators varchar(255) NOT NULL default '';
ALTER TABLE xoops_d3forum_categories DROP cat_guests_read, DROP cat_users_read , DROP cat_guests_post, DROP cat_users_post, DROP cat_use_access_control, DROP cat_moderators; */


ALTER TABLE xoops_d3forum_categories ADD pid smallint(5) unsigned NOT NULL default 0, ADD cat_options text NOT NULL default '';
ALTER TABLE xoops_d3forum_forums CHANGE forum_name forum_title varchar(255) NOT NULL default '';
ALTER TABLE xoops_d3forum_forums DROP forum_access;
/* ALTER TABLE xoops_d3forum_forums ADD forum_guests_read tinyint(1) NOT NULL default '0', ADD forum_users_read tinyint(1) NOT NULL default '0', ADD forum_guests_post tinyint(1) NOT NULL default '0', ADD forum_users_post tinyint(1) NOT NULL default '0';
ALTER TABLE xoops_d3forum_forums ADD forum_moderators varchar(255) NOT NULL default '' ;
ALTER TABLE xoops_d3forum_forums CHANGE forum_type forum_use_access_control 
tinyint(1) NOT NULL default 0;
ALTER TABLE xoops_d3forum_forums DROP forum_guests_read, DROP forum_users_read , DROP forum_guests_post, DROP forum_users_post, DROP forum_use_access_control, DROP forum_moderators; */
ALTER TABLE xoops_d3forum_forums CHANGE forum_topics forum_topics_count int(8) NOT NULL default '0', CHANGE forum_posts forum_posts_count int(8) NOT NULL default '0';
ALTER TABLE xoops_d3forum_forums ADD forum_last_post_time int(10) NOT NULL default 0 AFTER forum_last_post_id;
ALTER TABLE xoops_d3forum_forums DROP allow_html, DROP allow_sig, DROP posts_per_page, DROP hot_threshold, DROP topics_per_page;

ALTER TABLE xoops_d3forum_topics CHANGE topic_rsv topic_invisible tinyint(1) NOT NULL default 0;
ALTER TABLE xoops_d3forum_topics CHANGE topic_status topic_locked tinyint(1) NOT NULL default 0;
ALTER TABLE xoops_d3forum_topics CHANGE topic_poster topic_first_uid mediumint(8) NOT NULL default 0;
ALTER TABLE xoops_d3forum_topics ADD topic_first_post_id int(10) unsigned NOT NULL default 0, ADD  topic_first_post_time int(10) NOT NULL default 0;
ALTER TABLE xoops_d3forum_topics CHANGE topic_time topic_last_post_time int(10) NOT NULL default 0;
ALTER TABLE xoops_d3forum_topics CHANGE topic_replies topic_posts_count int(10) NOT NULL default 0;
UPDATE xoops_d3forum_topics SET topic_posts_count=topic_posts_count+1 ;
ALTER TABLE xoops_d3forum_topics ADD topic_last_uid mediumint(8) NOT NULL default 0;

ALTER TABLE xoops_d3forum_posts ADD modified_time int(10) NOT NULL default 0 AFTER post_time, ADD modifier_ip varchar(15) NOT NULL default '' AFTER poster_ip;
ALTER TABLE xoops_d3forum_posts
CHANGE nohtml html tinyint(1) NOT NULL default 0,
CHANGE nosmiley smiley tinyint(1) NOT NULL default 0,
ADD `br` tinyint(1) NOT NULL default 0 AFTER smiley,
ADD xcode tinyint(1) NOT NULL default 0 AFTER smiley;
UPDATE xoops_d3forum_posts SET html=1-html, smiley=1-smiley;
UPDATE xoops_d3forum_posts SET icon=1 WHERE icon='icon1.gif';
UPDATE xoops_d3forum_posts SET icon=2 WHERE icon='icon2.gif';
UPDATE xoops_d3forum_posts SET icon=3 WHERE icon='icon3.gif';
UPDATE xoops_d3forum_posts SET icon=4 WHERE icon='icon4.gif';
UPDATE xoops_d3forum_posts SET icon=5 WHERE icon='icon5.gif';
UPDATE xoops_d3forum_posts SET icon=6 WHERE icon='icon6.gif';
UPDATE xoops_d3forum_posts SET icon=7 WHERE icon='icon7.gif';
ALTER TABLE xoops_d3forum_posts MODIFY icon tinyint(3) NOT NULL default 0;
ALTER TABLE xoops_d3forum_posts DROP forum_id;
ALTER TABLE xoops_d3forum_posts
ADD invisible tinyint(1) NOT NULL default 0,
ADD hide_uid tinyint(1) NOT NULL default 0,
ADD depth_in_tree smallint(5) NOT NULL default 0,
ADD order_in_tree smallint(5) NOT NULL default 0;
ALTER TABLE xoops_d3forum_posts
ADD guest_name varchar(25) NOT NULL default '',
ADD guest_email varchar(60) NOT NULL default '',
ADD guest_url varchar(100) NOT NULL default '';
ALTER TABLE xoops_d3forum_posts
ADD approval tinyint(1) NOT NULL default 1 after invisible,
ADD guest_pass_md5 varchar(40) NOT NULL default '' after guest_url,
ADD guest_trip varchar(40) NOT NULL default '' after guest_url;

ALTER TABLE xoops_d3forum_posts
ADD number_entity tinyint(1) NOT NULL default 0 AFTER br,
ADD special_entity tinyint(1) NOT NULL default 0 AFTER br ;


$rs = $db->query( "SELECT topic_id, topic_last_post_id FROM xoops_d3forum_topics" ) ;
while( list( $topic_id , $last_post_id ) = $db->fetchRow( $rs ) ) {
	list( $uid ) = $db->fetchRow( $db->query( "SELECT uid FROM xoops_d3forum_posts WHERE post_id=$last_post_id" ) ) ;
	$db->queryF( "UPDATE xoops_d3forum_topics SET topic_last_uid='$uid' WHERE topic_id=$topic_id" ) ;
	list( $post_id ) = $db->fetchRow( $db->query( "SELECT MIN(post_id) FROM xoops_d3forum_posts WHERE topic_id=$topic_id" ) ) ;
	list( $post_time ) = $db->fetchRow( $db->query( "SELECT post_time FROM xoops_d3forum_posts WHERE post_id=$post_id" ) ) ;
	$db->queryF( "UPDATE xoops_d3forum_topics SET topic_first_post_id='$post_id', topic_first_post_time='$post_time' WHERE topic_id=$topic_id" ) ;
}

$rs = $db->query( "SELECT forum_id,forum_last_post_id FROM xoops_d3forum_forums" ) ;
while( list( $forum_id,$last_post_id ) = $db->fetchRow( $rs ) ) {
	list( $post_time ) = $db->fetchRow( $db->query( "SELECT post_time FROM xoops_d3forum_posts WHERE post_id=$last_post_id" ) ) ;
	$db->queryF( "UPDATE xoops_d3forum_forums SET forum_last_post_time='$post_time' WHERE forum_id=$forum_id" ) ;
}

ALTER TABLE xoops_d3forum_forum_access CHANGE user_id uid mediumint(8) default NULL;
ALTER TABLE xoops_d3forum_forum_access ADD can_edit tinyint(1) NOT NULL default 0, ADD  can_delete tinyint(1) NOT NULL default 0, ADD post_auto_approved tinyint(1) NOT NULL default 0, ADD is_moderator tinyint(1) NOT NULL default 0;

CREATE TABLE xoops_d3forum_category_access (
  cat_id smallint(5) unsigned NOT NULL default 0,
  uid mediumint(8) default NULL,
  groupid smallint(5) default NULL,
  can_post tinyint(1) NOT NULL default 0,
  can_edit tinyint(1) NOT NULL default 0,
  can_delete tinyint(1) NOT NULL default 0,
  post_auto_approved tinyint(1) NOT NULL default 0,
  can_makeforum tinyint(1) NOT NULL default 0,
  is_moderator tinyint(1) NOT NULL default 0,
  UNIQUE KEY (cat_id,uid),
  UNIQUE KEY (cat_id,groupid),
  KEY (cat_id),
  KEY (uid),
  KEY (groupid),
  KEY (can_post)
) ENGINE=MyISAM;

ALTER TABLE xoops_d3forum_categories
ADD cat_topics_count int(8) NOT NULL default 0 AFTER cat_desc,
ADD cat_posts_count int(10) NOT NULL default 0 AFTER cat_desc,
ADD cat_last_post_id int(10) NOT NULL default 0 AFTER cat_desc,
ADD cat_last_post_time int(10) NOT NULL default 0 AFTER cat_desc,
ADD cat_topics_count_in_tree int(8) NOT NULL default 0 AFTER cat_desc,
ADD cat_posts_count_in_tree int(10) NOT NULL default 0 AFTER cat_desc,
ADD cat_last_post_id_in_tree int(10) NOT NULL default 0 AFTER cat_desc,
ADD cat_last_post_time_in_tree int(10) NOT NULL default 0 AFTER cat_desc,
ADD cat_depth_in_tree smallint(5) NOT NULL default 0 AFTER cat_desc,
ADD cat_order_in_tree smallint(5) NOT NULL default 0 AFTER cat_desc;

ALTER TABLE xoops_d3forum_categories
ADD cat_path_in_tree text NOT NULL default '' AFTER cat_order_in_tree;

ALTER TABLE xoops_d3forum_topics
ADD topic_votes_sum int(10) unsigned NOT NULL default 0,
ADD topic_votes_count int(10) unsigned NOT NULL default 0;

ALTER TABLE xoops_d3forum_posts
ADD votes_sum int(10) unsigned NOT NULL default 0 AFTER `hide_uid`,
ADD votes_count int(10) unsigned NOT NULL default 0 AFTER `hide_uid`;

CREATE TABLE xoops_d3forum_post_votes (
  vote_id int(10) unsigned NOT NULL auto_increment,
  post_id int(10) unsigned NOT NULL default 0,
  uid mediumint(8) unsigned NOT NULL default 0,
  vote_point tinyint(3) NOT NULL default 0,
  vote_time int(10) NOT NULL default 0,
  vote_ip char(16) NOT NULL default '',
  PRIMARY KEY (vote_id),
  KEY (post_id),
  KEY (vote_ip)
) ENGINE=MyISAM;







categoryñ
ȥ
ȵǽ
ĥ꡼¤(pid) - Ūʼ
ץ - եȤο
 category_access ơ֥ǡuid ޤ groupid ȷ硣
ǥ졼 - category_access ơ֥ is_moderator ȤϿ
ƥ꡼ˤϡcategory_accessơ֥ˤ̤Υ롼ѤΥ쥳ɤѰդ褦աʥݡȻƱ͡
category_accessơ֥Τcan_post,can_edit,can_delete,post_auto_approvedϡforum_accessơ֥ΤοǤꡢ¹ԻΥåϤʤ
can_makeforum Τߤƥ꡼¤Ȥḷ̌ܰġ(쥳ɤ¸ߤ뤳ȤǰŪread_perṃġ
- ʣ cat_topics_count ȥԥå ľեνס
- ʣ cat_posts_count ƿ ľեνס
- ʣ cat_last_post_id ǿID ľեǤκǿ
- ʣ cat_last_post_time ǿƻ ľեǤκǿ
- ʣ cat_topics_count_in_tree ȥԥåʥ֥ƥޤ᤿ס
- ʣ cat_posts_count_in_tree ƿʥ֥ƥޤ᤿ס
- ʣ cat_last_post_id_in_tree ǿIDʥ֥ƥޤ᤿ǿ
- ʣ cat_last_post_time_in_tree ǿƻ֡ʥ֥ƥޤ᤿ǿ
- ʣ cat_depth_in_tree ʥĥ꡼¤Ǥο
- ʣ cat_order_in_tree ʥĥ꡼¤Ǥΰ֡
- ʣ cat_path_in_tree ʥĥ꡼¤ǤΥѥcat_id,cat_title|


forumñ
ǥ졼 - forum_modsơ֥ -> forum_access ơ֥ is_moderator ȤϿ
 forum_access ơ֥ǡuid ޤ groupid ȷ硣פˡեबΥץ饤١ȥեΤ褦ʤΡ
եˤϡ°categroy_accessƱ쥳ɤѰդ롣ʥǥ졼Ƽ︢¤Ʊ
եǤΤϡƥ꡼¤can_makeforumͿ줿ԡ°ƥ꡼ǥ졼ӴԤǽ
եԽǤΤϡեǥ졼Ӵԡ
ԤΤߡweightcat_idforum_optionsν񤭴Ǥ롣ʥǥ졼ˤϽʤ
եؤΥ¤ľܤ뤳ȤǤΤԤΤߡʴ̡
*newbb*ΥݡȻˤϡforum_status 0ΤΤˤĤƤϡ̤Υ롼ѤΥ쥳ɤINSERT뤳ȡ
- ʣ forum_topics_count ȥԥå
- ʣ forum_posts_count ƿ
- ʣ forum_last_post_id ǿID
- ʣ forum_last_post_time ǿƻ
ץ - forum_options serializeƳǼ xoopsModuleConfigoverride
  (boolean)allow_html
  (boolean)allow_sig
  (int)posts_per_page default 20 deprecated
  (int)hot_threshold default 10
  (int)topics_per_page default 20

topicñ

ɴ - users2topics
ܵǽ - users2topics
赡ǽ
Sticky topic_sticky
Lock ɤळȤϤǤ뤬񤯤ȤϤǤʤ topic_status=1 -> topic_locked
Invisible ʥǥ졼ʳɤळȤ񤯤ȤǤʤ¸ߤʤΤȤư롣֥åǤϥǥ졼Ǥ̵뤵롣postԲĻȤϰ㤦 topic_invisible
topic_title ǽƤsubjectƱˤʤ뤬ȥԥåȼѹǽʰʣեɤǤϤʤ˺ǽƤԽǤ⼫ưŪ˽񤭴ʤư̯
- ʣ topic_last_(uid|post_id|post_time) (ǿƼ|ID|ƻ)
- ʣ topic_first_(uid|post_id|post_time) (ǽƼ|ID|ƻ)
- ʣ topic_posts_count SmartyؤΥϡ-1replies
- ʣ topic_votes_sum   ɾ¡
- ʣ topic_votes_count ɼ

postñ
ĥ꡼¤(pid)
ON/OFF (html, smiley, br, xcode)
̾ON/OFF `attachsig`
å ʤޤǿ
Invisible ʥǥ졼ʳɤळȤ񤯤ȤǤʤƥץ졼ȤǽʬƱμǤꡢ줬¸ߤ뤳Ȥpost_idȽ롣ʤȡĥ꡼¤ݻǤʤȤ¤֥åˤɽ `invisible`
`approval` ǧ ǥ졼ǤäƤ⾵ǧ̤ǧ᤻ʤʥ٥ΤǡinvisibleȤϰ㤦¸ߤpost_idϰ̥桼Ƚ롣
`uid_hidden` (줿ƼuidƤȤϰ㤦)
̾ `guest_name` ξ硢ꤵ줿anonymous_name롣
ȥ᡼륢ɥ쥹 `guest_email` ǥեȤǤɬ
ȥURL `guest_url` ǥեȤǸɬ
ȥѥ `guest_pass_md5` md5 hashѥɡsalt'd3forum'Ǹ$mydirnameȤXOOPS_DB_PREFIXȤˤȡǥݡȤȤprefixѹ˥ϥޤ뤫
ȥȥå `guest_trip` ̾θ#(ʸ)Ĥ˷׻롣르ꥺϤ餯2chƱcrypt()ʤеǽʤ
- ʣ votes_sum   ɾ¡
- ʣ votes_count ɼ
- ʣ depth_in_tree ʥĥ꡼¤Ǥο
- ʣ order_in_tree ʥĥ꡼¤Ǥΰ֡


