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) if ($config->get_int("forum_version") < 1) {
{ $database->create_table("forum_threads", "
$database->create_table("forum_threads", " id SCORE_AIPK,
id SCORE_AIPK, sticky SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N,
sticky SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N, title VARCHAR(255) NOT NULL,
title VARCHAR(255) NOT NULL, user_id INTEGER NOT NULL,
user_id INTEGER NOT NULL, date DATETIME NOT NULL,
date DATETIME NOT NULL, uptodate DATETIME NOT NULL,
uptodate DATETIME NOT NULL, INDEX (date),
INDEX (date) FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE RESTRICT
"); ");
$database->create_table("forum_posts", $database->create_table("forum_posts", "
" id SCORE_AIPK, id SCORE_AIPK,
thread_id INTEGER NOT NULL, thread_id INTEGER NOT NULL,
user_id INTEGER NOT NULL, user_id INTEGER NOT NULL,
date DATETIME NOT NULL, date DATETIME NOT NULL,
message TEXT, message TEXT,
INDEX (date), INDEX (date),
FOREIGN KEY (thread_id) REFERENCES forum_threads (id) ON UPDATE CASCADE ON DELETE CASCADE 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", 1); $config->set_int("forum_version", 2);
$config->set_int("forumTitleSubString", 25); $config->set_int("forumTitleSubString", 25);
$config->set_int("forumThreadsPerPage", 15); $config->set_int("forumThreadsPerPage", 15);
$config->set_int("forumPostsPerPage", 15); $config->set_int("forumPostsPerPage", 15);
$config->set_int("forumMaxCharsPerPost", 512); $config->set_int("forumMaxCharsPerPost", 512);
log_info("forum", "extension installed"); 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) {