forum FKs

This commit is contained in:
Shish 2012-03-11 02:03:28 +00:00
parent 9e65732ea1
commit 9c1f544343

View File

@ -9,42 +9,48 @@
*/ */
class Forum extends Extension { class Forum extends Extension {
public function onInitExt(InitExtEvent $event) { public function onInitExt(InitExtEvent $event) {
global $config, $database; global $config, $database;
// shortcut to latest // shortcut to latest
if ($config->get_int("forum_version") < 1)
{
$database->create_table("forum_threads", "
id SCORE_AIPK,
sticky SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N,
title VARCHAR(255) NOT NULL,
user_id INTEGER NOT NULL,
date DATETIME NOT NULL,
uptodate DATETIME NOT NULL,
INDEX (date)
");
$database->create_table("forum_posts", if ($config->get_int("forum_version") < 1) {
" id SCORE_AIPK, $database->create_table("forum_threads", "
thread_id INTEGER NOT NULL, id SCORE_AIPK,
user_id INTEGER NOT NULL, sticky SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N,
date DATETIME NOT NULL, title VARCHAR(255) NOT NULL,
message TEXT, user_id INTEGER NOT NULL,
INDEX (date), date DATETIME NOT NULL,
FOREIGN KEY (thread_id) REFERENCES forum_threads (id) ON UPDATE CASCADE ON DELETE CASCADE uptodate DATETIME NOT NULL,
"); INDEX (date),
FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT
");
$config->set_int("forum_version", 1); $database->create_table("forum_posts", "
$config->set_int("forumTitleSubString", 25); id SCORE_AIPK,
$config->set_int("forumThreadsPerPage", 15); thread_id INTEGER NOT NULL,
$config->set_int("forumPostsPerPage", 15); user_id INTEGER NOT NULL,
date DATETIME NOT NULL,
$config->set_int("forumMaxCharsPerPost", 512); message TEXT,
INDEX (date),
log_info("forum", "extension installed"); FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT,
} FOREIGN KEY (thread_id) REFERENCES forum_threads (id) ON UPDATE CASCADE ON DELETE CASCADE
");
$config->set_int("forum_version", 2);
$config->set_int("forumTitleSubString", 25);
$config->set_int("forumThreadsPerPage", 15);
$config->set_int("forumPostsPerPage", 15);
$config->set_int("forumMaxCharsPerPost", 512);
log_info("forum", "extension installed");
}
if ($config->get_int("forum_version") < 2) {
$database->execute("ALTER TABLE forum_threads ADD FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT");
$database->execute("ALTER TABLE forum_posts ADD FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT");
$config->set_int("forum_version", 2);
}
} }
public function onSetupBuilding(SetupBuildingEvent $event) { public function onSetupBuilding(SetupBuildingEvent $event) {