示例#1
0
function forum_create($webtag, $forum_name, $owner_uid, $database_name, $access, &$error_str)
{
    // Load the language
    $lang = load_language_file();
    // Ensure the variables we've been given are valid
    if (!preg_match("/^[A-Z]{1}[A-Z0-9_]+\$/", $webtag)) {
        return false;
    }
    if (!preg_match("/^[A-Z]{1}[A-Z0-9_]+\$/i", $database_name)) {
        return false;
    }
    if (!is_numeric($owner_uid)) {
        $owner_uid = 0;
    }
    if (!is_numeric($access)) {
        $access = 0;
    }
    // Only users with acces to the forum tools can create / delete forums.
    if (bh_session_check_perm(USER_PERM_FORUM_TOOLS, 0)) {
        if (($uid = bh_session_get_value('UID')) === false) {
            return false;
        }
        if (!($db_forum_create = db_connect())) {
            return false;
        }
        // Check that the WEBTAG is unique.
        $sql = "SELECT FID FROM FORUMS WHERE WEBTAG = '{$webtag}'";
        if (!($result = @db_query($sql, $db_forum_create))) {
            return false;
        }
        if (db_num_rows($result) > 0) {
            $error_str = $lang['selectedwebtagisalreadyinuse'];
            return false;
        }
        // Check for any conflicting tables.
        if ($conflicting_tables_array = install_get_table_conflicts($webtag, true, false)) {
            $error_str = $lang['selecteddatabasecontainsconflictingtables'];
            $error_str .= sprintf("<p>%s</p>\n", implode(", ", $conflicting_tables_array));
            return false;
        }
        // Create the tables
        $sql = "CREATE TABLE {$database_name}.{$webtag}_ADMIN_LOG (";
        $sql .= "  ID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  CREATED DATETIME DEFAULT NULL,";
        $sql .= "  ACTION MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  ENTRY TEXT,";
        $sql .= "  PRIMARY KEY  (ID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_BANNED (";
        $sql .= "  ID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  BANTYPE TINYINT(4) NOT NULL DEFAULT '0',";
        $sql .= "  BANDATA VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  COMMENT VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  PRIMARY KEY  (ID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_FOLDER (";
        $sql .= "  FID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  TITLE VARCHAR(32) DEFAULT NULL,";
        $sql .= "  DESCRIPTION VARCHAR(255) DEFAULT NULL,";
        $sql .= "  PREFIX VARCHAR(16) DEFAULT NULL,";
        $sql .= "  ALLOWED_TYPES TINYINT(3) DEFAULT NULL,";
        $sql .= "  POSITION MEDIUMINT(8) UNSIGNED DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (FID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_FORUM_LINKS (";
        $sql .= "  LID SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  POS MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  URI VARCHAR(255) DEFAULT NULL,";
        $sql .= "  TITLE VARCHAR(64) DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (LID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_LINKS (";
        $sql .= "  LID SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  FID SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  URI VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  TITLE VARCHAR(64) NOT NULL DEFAULT '',";
        $sql .= "  DESCRIPTION TEXT NOT NULL,";
        $sql .= "  CREATED DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  VISIBLE CHAR(1) NOT NULL DEFAULT 'N',";
        $sql .= "  CLICKS MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (LID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_LINKS_COMMENT (";
        $sql .= "  CID SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  LID SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  CREATED DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  COMMENT TEXT NOT NULL,";
        $sql .= "  PRIMARY KEY  (CID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_LINKS_FOLDERS (";
        $sql .= "  FID SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  PARENT_FID SMALLINT(5) UNSIGNED DEFAULT NULL,";
        $sql .= "  NAME VARCHAR(32) NOT NULL DEFAULT '',";
        $sql .= "  VISIBLE CHAR(1) NOT NULL DEFAULT '',";
        $sql .= "  PRIMARY KEY  (FID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_LINKS_VOTE (";
        $sql .= "  LID SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  RATING SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  TSTAMP DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  PRIMARY KEY  (LID,UID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_POLL (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  QUESTION VARCHAR(64) DEFAULT NULL,";
        $sql .= "  CLOSES DATETIME DEFAULT NULL,";
        $sql .= "  CHANGEVOTE TINYINT(1) NOT NULL DEFAULT '1',";
        $sql .= "  POLLTYPE TINYINT(1) NOT NULL DEFAULT '0',";
        $sql .= "  SHOWRESULTS TINYINT(1) NOT NULL DEFAULT '1',";
        $sql .= "  VOTETYPE TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  OPTIONTYPE TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  ALLOWGUESTS TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (TID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_POLL_VOTES (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  OPTION_ID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  OPTION_NAME CHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  GROUP_ID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (TID,OPTION_ID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_POST (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  REPLY_TO_PID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  FROM_UID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  TO_UID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  VIEWED DATETIME DEFAULT NULL,";
        $sql .= "  CREATED DATETIME DEFAULT NULL,";
        $sql .= "  STATUS TINYINT(4) DEFAULT '0',";
        $sql .= "  APPROVED DATETIME DEFAULT NULL,";
        $sql .= "  APPROVED_BY MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  EDITED DATETIME DEFAULT NULL,";
        $sql .= "  EDITED_BY MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  IPADDRESS VARCHAR(15) NOT NULL DEFAULT '',";
        $sql .= "  MOVED_TID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  MOVED_PID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (TID,PID),";
        $sql .= "  KEY TO_UID (TO_UID),";
        $sql .= "  KEY FROM_UID (FROM_UID),";
        $sql .= "  KEY IPADDRESS (IPADDRESS, FROM_UID),";
        $sql .= "  KEY CREATED (CREATED),";
        $sql .= "  KEY APPROVED (APPROVED)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_POST_CONTENT (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  CONTENT TEXT,";
        $sql .= "  PRIMARY KEY  (TID,PID),";
        $sql .= "  FULLTEXT KEY CONTENT (CONTENT)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_PROFILE_ITEM (";
        $sql .= "  PIID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  PSID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  NAME VARCHAR(64) DEFAULT NULL,";
        $sql .= "  TYPE TINYINT(3) UNSIGNED DEFAULT '0',";
        $sql .= "  OPTIONS TEXT NOT NULL, ";
        $sql .= "  POSITION MEDIUMINT(3) UNSIGNED DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (PIID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_PROFILE_ITEM ";
        $sql .= "(PSID, NAME, TYPE, OPTIONS, POSITION) ";
        $sql .= "VALUES (1, 'Location', 0, '', 1)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_PROFILE_ITEM ";
        $sql .= "(PSID, NAME, TYPE, OPTIONS, POSITION) ";
        $sql .= "VALUES (1, 'Age', 0, '', 2)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_PROFILE_ITEM ";
        $sql .= "(PSID, NAME, TYPE, OPTIONS, POSITION) VALUES ";
        $sql .= "(1, 'Gender', 5, 'Male\nFemale\nUnspecified', 3)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_PROFILE_ITEM ";
        $sql .= "(PSID, NAME, TYPE, OPTIONS, POSITION) ";
        $sql .= "VALUES (1, 'Quote', 0, '', 4)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_PROFILE_ITEM ";
        $sql .= "(PSID, NAME, TYPE, OPTIONS, POSITION) ";
        $sql .= "VALUES (1, 'Occupation', 0, '', 5)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_PROFILE_SECTION (";
        $sql .= "  PSID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  NAME VARCHAR(64) DEFAULT NULL,";
        $sql .= "  POSITION MEDIUMINT(3) UNSIGNED DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (PSID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_PROFILE_SECTION ";
        $sql .= "(NAME, POSITION) VALUES ('Personal', 1)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_RSS_FEEDS (";
        $sql .= "  RSSID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  NAME VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  FID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  URL VARCHAR(255) DEFAULT NULL,";
        $sql .= "  PREFIX VARCHAR(16) DEFAULT NULL,";
        $sql .= "  FREQUENCY MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  LAST_RUN DATETIME DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (RSSID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_RSS_HISTORY (";
        $sql .= "  RSSID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  LINK VARCHAR(255) DEFAULT NULL,";
        $sql .= "  KEY RSSID (RSSID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_STATS (";
        $sql .= "  ID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  MOST_USERS_DATE DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  MOST_USERS_COUNT MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  MOST_POSTS_DATE DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  MOST_POSTS_COUNT MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (ID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_THREAD (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  FID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  BY_UID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  TITLE VARCHAR(64) DEFAULT NULL,";
        $sql .= "  LENGTH MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  POLL_FLAG CHAR(1) DEFAULT NULL,";
        $sql .= "  CREATED DATETIME DEFAULT NULL,";
        $sql .= "  MODIFIED DATETIME DEFAULT NULL,";
        $sql .= "  CLOSED DATETIME DEFAULT NULL,";
        $sql .= "  STICKY CHAR(1) DEFAULT NULL,";
        $sql .= "  STICKY_UNTIL DATETIME DEFAULT NULL,";
        $sql .= "  ADMIN_LOCK DATETIME DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (TID),";
        $sql .= "  KEY BY_UID (BY_UID),";
        $sql .= "  KEY STICKY (STICKY, MODIFIED), ";
        $sql .= "  KEY LENGTH (LENGTH), ";
        $sql .= "  KEY TITLE (TITLE)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_THREAD_STATS (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  VIEWCOUNT MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  UNREAD_PID MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  UNREAD_CREATED DATETIME DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (TID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_THREAD_TRACK (";
        $sql .= "  TID MEDIUMINT(8) NOT NULL DEFAULT '0',";
        $sql .= "  NEW_TID MEDIUMINT(8) NOT NULL DEFAULT '0',";
        $sql .= "  CREATED DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  TRACK_TYPE TINYINT(4) NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (TID, NEW_TID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_FOLDER (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  FID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  INTEREST TINYINT(4) DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (UID, FID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_PEER (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PEER_UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  RELATIONSHIP TINYINT(4) DEFAULT NULL,";
        $sql .= "  PEER_NICKNAME VARCHAR(32) DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (UID,PEER_UID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_POLL_VOTES (";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  VOTE_ID MEDIUMINT(8) NOT NULL AUTO_INCREMENT,";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  OPTION_ID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  TSTAMP DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',";
        $sql .= "  PRIMARY KEY (TID, VOTE_ID),";
        $sql .= "  KEY UID (UID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_PREFS (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  HOMEPAGE_URL VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  PIC_URL VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  PIC_AID CHAR(32) NOT NULL DEFAULT '',";
        $sql .= "  AVATAR_URL VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  AVATAR_AID CHAR(32) NOT NULL DEFAULT '',";
        $sql .= "  EMAIL_NOTIFY CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  MARK_AS_OF_INT CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  POSTS_PER_PAGE VARCHAR(3) NOT NULL DEFAULT '20',";
        $sql .= "  FONT_SIZE VARCHAR(2) NOT NULL DEFAULT '10',";
        $sql .= "  STYLE VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  EMOTICONS VARCHAR(255) NOT NULL DEFAULT '',";
        $sql .= "  VIEW_SIGS CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  START_PAGE VARCHAR(3) NOT NULL DEFAULT '0',";
        $sql .= "  LANGUAGE VARCHAR(32) NOT NULL DEFAULT '',";
        $sql .= "  DOB_DISPLAY CHAR(1) NOT NULL DEFAULT '2',";
        $sql .= "  ANON_LOGON CHAR(1) NOT NULL DEFAULT '0',";
        $sql .= "  SHOW_STATS CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  IMAGES_TO_LINKS CHAR(1) NOT NULL DEFAULT 'N',";
        $sql .= "  USE_WORD_FILTER CHAR(1) NOT NULL DEFAULT 'N',";
        $sql .= "  USE_ADMIN_FILTER CHAR(1) NOT NULL DEFAULT 'N',";
        $sql .= "  ALLOW_EMAIL CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  ALLOW_PM CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  SHOW_THUMBS VARCHAR(2) NOT NULL DEFAULT '2',";
        $sql .= "  ENABLE_WIKI_WORDS CHAR(1) NOT NULL DEFAULT 'Y',";
        $sql .= "  USE_MOVER_SPOILER CHAR(1) DEFAULT 'N', ";
        $sql .= "  USE_LIGHT_MODE_SPOILER CHAR(1) DEFAULT 'N', ";
        $sql .= "  USE_OVERFLOW_RESIZE CHAR(1) DEFAULT 'Y', ";
        $sql .= "  PRIMARY KEY  (UID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_PROFILE (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PIID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  ENTRY VARCHAR(255) DEFAULT NULL,";
        $sql .= "  PRIVACY TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (UID,PIID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_SIG (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  CONTENT TEXT,";
        $sql .= "  HTML CHAR(1) DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (UID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_THREAD (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  TID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  LAST_READ MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  LAST_READ_AT DATETIME DEFAULT NULL,";
        $sql .= "  INTEREST TINYINT(4) DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (UID,TID),";
        $sql .= "  KEY TID (TID),";
        $sql .= "  KEY LAST_READ (LAST_READ)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_USER_TRACK (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  DDKEY DATETIME DEFAULT NULL,";
        $sql .= "  LAST_POST DATETIME DEFAULT NULL,";
        $sql .= "  LAST_SEARCH DATETIME DEFAULT NULL,";
        $sql .= "  LAST_SEARCH_KEYWORDS TEXT DEFAULT NULL,";
        $sql .= "  POST_COUNT MEDIUMINT(8) UNSIGNED DEFAULT NULL,";
        $sql .= "  USER_TIME_BEST DATETIME DEFAULT NULL,";
        $sql .= "  USER_TIME_TOTAL DATETIME DEFAULT NULL,";
        $sql .= "  USER_TIME_UPDATED DATETIME DEFAULT NULL,";
        $sql .= "  PRIMARY KEY  (UID)";
        $sql .= ") TYPE=MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        $sql = "CREATE TABLE {$database_name}.{$webtag}_WORD_FILTER (";
        $sql .= "  UID MEDIUMINT(8) UNSIGNED NOT NULL,";
        $sql .= "  FID MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,";
        $sql .= "  FILTER_NAME VARCHAR(255) NOT NULL,";
        $sql .= "  MATCH_TEXT TEXT NOT NULL,";
        $sql .= "  REPLACE_TEXT TEXT NOT NULL,";
        $sql .= "  FILTER_TYPE TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  FILTER_ENABLED TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',";
        $sql .= "  PRIMARY KEY  (UID, FID)";
        $sql .= ") TYPE = MYISAM";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return;
        }
        // Save Webtag, Database name and Access Level.
        $sql = "INSERT INTO FORUMS (WEBTAG, OWNER_UID, DATABASE_NAME, ACCESS_LEVEL) ";
        $sql .= "VALUES ('{$webtag}', '{$owner_uid}', '{$database_name}', {$access})";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete_tables($webtag, $database_name);
            if (defined("BEEHIVE_INSTALL_NOWARN")) {
                db_trigger_error($sql, $db_forum_create);
            }
            return false;
        }
        // Get the new FID so we can save the settings
        $forum_fid = db_insert_id($db_forum_create);
        // Create General Folder
        $sql = "INSERT INTO {$database_name}.{$webtag}_FOLDER (TITLE, DESCRIPTION, ALLOWED_TYPES, POSITION) ";
        $sql .= "VALUES ('General', NULL, NULL, 0)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        $folder_fid = db_insert_id($db_forum_create);
        // Create folder permissions
        $sql = "INSERT INTO GROUP_PERMS (GID, FORUM, FID, PERM) ";
        $sql .= "VALUES (0, '{$forum_fid}', '{$folder_fid}', 14588);";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        // Add some default forum links
        $sql = "INSERT INTO {$database_name}.{$webtag}_FORUM_LINKS (POS, TITLE, URI) ";
        $sql .= "VALUES (2, 'Project Beehive Home', 'http://www.beehiveforum.net/')";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_FORUM_LINKS (POS, TITLE, URI) ";
        $sql .= "VALUES (2, 'Teh Forum', 'http://www.tehforum.co.uk/forum/')";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        // Create user permissions for forum leader
        if (!forum_apply_user_permissions($forum_fid, $owner_uid)) {
            forum_delete($forum_fid);
            return false;
        }
        // Create Welcome thread and post.
        $sql = "INSERT INTO {$database_name}.{$webtag}_THREAD ";
        $sql .= "(FID, BY_UID, TITLE, LENGTH, POLL_FLAG, CREATED, MODIFIED, CLOSED, STICKY, STICKY_UNTIL, ADMIN_LOCK) ";
        $sql .= "VALUES (1, 1, 'Welcome', 1, 'N', NOW(), NOW(), NULL, 'N', NULL, NULL)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_POST ";
        $sql .= "(TID, REPLY_TO_PID, FROM_UID, TO_UID, VIEWED, CREATED, STATUS, APPROVED, ";
        $sql .= "APPROVED_BY, EDITED, EDITED_BY, IPADDRESS) VALUES (1, 0, 1, 0, NULL, NOW(), ";
        $sql .= "0, NOW(), 1, NULL, 0, '')";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        $sql = "INSERT INTO {$database_name}.{$webtag}_POST_CONTENT (TID, PID, CONTENT) ";
        $sql .= "VALUES (1, 1, 'Welcome to your new Beehive Forum')";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        // Create Top Level Links Folder
        $sql = "INSERT INTO {$database_name}.{$webtag}_LINKS_FOLDERS ";
        $sql .= "(PARENT_FID, NAME, VISIBLE) VALUES (NULL, 'Top Level', 'Y')";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        // Store Forum settings
        $forum_settings = array('wiki_integration_uri' => 'http://en.wikipedia.org/wiki/[WikiWord]', 'enable_wiki_quick_links' => 'Y', 'enable_wiki_integration' => 'N', 'minimum_post_frequency' => '0', 'maximum_post_length' => '6226', 'post_edit_time' => '0', 'allow_post_editing' => 'Y', 'require_post_approval' => 'N', 'forum_dl_saving' => 'Y', 'forum_timezone' => '27', 'default_language' => 'en', 'default_emoticons' => 'default', 'default_style' => 'Default', 'forum_keywords' => 'A Beehive Forum, Beehive Forum, Project Beehive Forum', 'forum_desc' => 'A Beehive Forum', 'forum_email' => '*****@*****.**', 'forum_name' => $forum_name, 'show_links' => 'Y', 'allow_polls' => 'Y', 'show_stats' => 'Y', 'allow_search_spidering' => 'Y', 'guest_account_enabled' => 'Y', 'forum_links_top_link' => 'Forum Links:');
        foreach ($forum_settings as $sname => $svalue) {
            $sname = db_escape_string($sname);
            $svalue = db_escape_string($svalue);
            $sql = "INSERT INTO FORUM_SETTINGS (FID, SNAME, SVALUE) ";
            $sql .= "VALUES ({$forum_fid}, '{$sname}', '{$svalue}')";
            if (!($result = @db_query($sql, $db_forum_create))) {
                forum_delete($forum_fid);
                return false;
            }
        }
        // Make sure at least the current user can access the forum
        // even if it's not protected.
        $sql = "INSERT INTO USER_FORUM (UID, FID, ALLOWED) VALUES('{$uid}', {$forum_fid}, 1)";
        if (!($result = @db_query($sql, $db_forum_create))) {
            forum_delete($forum_fid);
            return false;
        }
        return $forum_fid;
    }
    return false;
}
示例#2
0
文件: forum.php 项目: 994724435/Ride
        if (empty($forum)) {
            $arr['fid'] = $fid;
            $r = forum_create($arr);
            $r !== FALSE ? message(0, '创建成功') : message(11, '创建失败');
        }
        $r = forum_update($fid, $arr);
        $r !== FALSE ? message(0, '更新成功') : message(12, '更新失败');
    }
} elseif ($action == 'delete') {
    if ($method != 'POST') {
        message(-1, 'Method Error.');
    }
    $fid = param(2, 0);
    $forum = forum_read($fid);
    empty($forum) and message(1, '板块不存在');
    $r = forum_delete($fid);
    $r !== FALSE ? message(0, '删除成功') : message(1, '删除失败');
} elseif ($action == 'uploadicon') {
    $method != 'POST' and message(-1, 'Method Error.');
    $fid = param(2, 0);
    $forum = forum_read($fid);
    empty($forum) and message(1, '板块不存在');
    $upfile = param('upfile', '', FALSE);
    empty($upfile) and message(-1, 'upfile 数据为空');
    $json = xn_json_decode($upfile);
    empty($json) and message(-1, '数据有问题: json 为空');
    $name = $json['name'];
    $width = $json['width'];
    $height = $json['height'];
    $data = base64_decode($json['data']);
    $size = strlen($data);
示例#3
0
        echo "    <tr>\n";
        echo "      <td align=\"center\">", form_submit("t_confirm_delete", gettext("Delete")), "&nbsp;", form_submit("cancel", gettext("Cancel")), "</td>\n";
        echo "    </tr>\n";
        echo "  </table>\n";
        echo "</form>\n";
        echo "</div>\n";
        html_draw_bottom();
        exit;
    }
} else {
    if (isset($_POST['t_confirm_delete'])) {
        $valid = true;
        if (isset($_POST['t_delete']) && is_array($_POST['t_delete'])) {
            foreach ($_POST['t_delete'] as $forum_fid => $delete_forum) {
                if ($valid && $delete_forum == "Y" && ($forum_name = forum_get_name($forum_fid))) {
                    if (!forum_delete($forum_fid)) {
                        $error_msg_array[] = sprintf(gettext("Failed to deleted forum: '%s'"), $forum_name);
                    }
                }
            }
            if ($valid) {
                header_redirect("admin_forums.php?webtag={$webtag}&page={$page}&deleted=true");
                exit;
            }
        }
    } else {
        if (isset($_GET['default']) && is_numeric($_GET['default'])) {
            $fid = $_GET['default'];
            forum_update_default($fid);
        } else {
            if (isset($_POST['addforumsubmit'])) {