het gaat uit van een versienummer van de mod die al dan niet al bestaat in de config table:
Code: Selecteer alles
<?php
/***************************************************************************
* sql_update.php
* -------------------
*
* copyright : ©2003 Freakin' Booty ;-P & Antony Bailey
* project : http://sourceforge.net/projects/dbgenerator
* Website : http://freakingbooty.no-ip.com/ & http://www.rapiddr3am.net
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if( !$userdata['session_logged_in'] )
{
$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("login.$phpEx?redirect=sql_update.$phpEx", true));
exit;
}
if( $userdata['user_level'] != ADMIN )
{
message_die(GENERAL_MESSAGE, 'You are not authorised to access this page');
}
$page_title = 'Updating the database';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
echo '<table width="100%" cellspacing="1" cellpadding="2" border="0" class="forumline">';
echo '<tr><th>Updating the database</th></tr><tr><td bgcolor="#FFFFFF"><span class="genmed"><ul type="circle">';
// Base case ... not installed
$mod_spamcheck_version = 0;
if(isset($board_config[mod_spamcheck_version]))
{
$mod_spamcheck_version = $board_config[mod_spamcheck_version];
}
// Override ?
// $mod_spamcheck_version = "1.1.4";
function go_update($board,$version)
{
$comparison_db = str_replace(".", "", $board);
$comparison_file = str_replace(".", "", $version);
if($comparison_db < $comparison_file) return true;
return false;
}
$sql = array();
// ----------------- UPDATE
// TO 1.1.6;
if(go_update($mod_spamcheck_version, '1.1.6') && !($mod_spamcheck_version === 0))
{
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_version','1.1.6')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_groupbypassid','-1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_sentmail','false')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_htmlmail','true')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_adminmail','board@board.com')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_userposts','2')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_userdays','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_main_adminid','2')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_dbstore','true')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_checkremote','true')";
// TO 1.1.6;
// TO 1.1.7;
if(go_update($mod_spamcheck_version, '1.1.7') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.1.7' WHERE `config_name`='mod_spamcheck_version'";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb` (
`Id` int(6) unsigned NOT NULL auto_increment,
`user_id` mediumint(8) default NULL,
`ip` varchar(25) default NULL,
`ip_forwarded` varchar(25) default NULL,
`time` int(11) NOT NULL default '0',
`type` varchar(40) default 'word',
PRIMARY KEY (`Id`)
) TYPE=MyISAM";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb_data` (
`Id` int(6) unsigned NOT NULL auto_increment,
`core_id` mediumint(9) NOT NULL default '0',
`vartype` varchar(30) NOT NULL default '',
`varkey` text NOT NULL,
`varvalue` text,
PRIMARY KEY (`Id`)
) TYPE=MyISAM";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb_words` (
`word_id` mediumint(8) unsigned NOT NULL auto_increment,
`word` char(100) NOT NULL default '',
`replacement` char(100) NOT NULL default '',
PRIMARY KEY (`word_id`)
) TYPE=MyISAM";
}
}
// TO 1.1.7;
// TO 1.1.8;
if(go_update($mod_spamcheck_version, '1.1.8') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.1.8' WHERE `config_name`='mod_spamcheck_version'";
$sql[] = "ALTER TABLE `" . $table_prefix . "antispamdb`
ADD COLUMN `status` varchar(8) NULL DEFAULT 'false'";
}
// TO 1.1.9;
if(go_update($mod_spamcheck_version, '1.1.9') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.1.9' WHERE `config_name`='mod_spamcheck_version'";
}
// TO 1.1.9;
// TO 1.2.0;
if(go_update($mod_spamcheck_version, '1.2.0') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.2.0' WHERE `config_name`='mod_spamcheck_version'";
}
// TO 1.2.0;
// TO 1.2.1;
if(go_update($mod_spamcheck_version, '1.2.1') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.2.1' WHERE `config_name`='mod_spamcheck_version'";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_check_pm','0')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_check_post','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_check_register','1')";
}
// TO 1.2.1;
// TO 1.2.2;
if(go_update($mod_spamcheck_version, '1.2.2') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.2.2' WHERE `config_name`='mod_spamcheck_version'";
}
// TO 1.2.2;
// TO 1.2.3;
if(go_update($mod_spamcheck_version, '1.2.3') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.2.3' WHERE `config_name`='mod_spamcheck_version'";
}
// TO 1.2.3;
// TO 1.2.4;
if(go_update($mod_spamcheck_version, '1.2.4') && !($mod_spamcheck_version === 0))
{
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.2.4' WHERE `config_name`='mod_spamcheck_version'";
$sql[] = "ALTER TABLE `" . $table_prefix . "antispamdb` ADD `word_triggerid` SMALLINT( 5 )";
$sql[] = "ALTER TABLE `" . $table_prefix . "antispamdb_words` ADD `word_count` MEDIUMINT( 8 ) DEFAULT '0'";
}
// TO 1.2.4;
// TO 1.2.5;
if(go_update($mod_spamcheck_version, '1.2.5') && !($mod_spamcheck_version === 0))
{
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb_fieldfest` (
`fieldfestid` mediumint(8) NOT NULL auto_increment,
`type` varchar(30) NOT NULL default '',
`sort` varchar(30) NOT NULL default '',
`old` varchar(50) NOT NULL default '',
`new` varchar(50) NOT NULL default '',
`time` int(11) NOT NULL default '0',
`session_id` varchar(32) NOT NULL default '',
PRIMARY KEY (`fieldfestid`),
KEY `sesson_id` (`session_id`),
KEY `type` (`type`),
KEY `sort` (`sort`)
) TYPE=MyISAM";
$sql[] = "UPDATE `" . $table_prefix . "config` SET `config_value`='1.2.5' WHERE `config_name`='mod_spamcheck_version'";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_fieldfest','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_fieldfest_regchange','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_fieldfest_regadd','1')";
}
// TO 1.2.5;
// ----------------- UPDATE
// ----------------- INSTALL
// CLEAN INSTALL 1.2.5;
if(go_update($mod_spamcheck_version, '1.2.5') && ($mod_spamcheck_version === 0))
{
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_version','1.2.5')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_groupbypassid','-1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_sentmail','0')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_htmlmail','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_adminmail','board@board.com')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_userposts','2')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_userdays','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_main_adminid','2')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_dbstore','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_checkremote','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_check_pm','0')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_check_post','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_check_register','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_fieldfest','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_fieldfest_regchange','1')";
$sql[] = "INSERT INTO `" . $table_prefix . "config` VALUES ('mod_spamcheck_fieldfest_regadd','1')";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb` (
`Id` int(6) unsigned NOT NULL auto_increment,
`user_id` mediumint(8) default NULL,
`ip` varchar(25) default NULL,
`ip_forwarded` varchar(25) default NULL,
`time` int(11) NOT NULL default '0',
`type` varchar(40) default 'word',
`status` varchar(8) default 'false',
`word_triggerid` smallint(5) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb_data` (
`Id` int(6) unsigned NOT NULL auto_increment,
`core_id` mediumint(9) NOT NULL default '0',
`vartype` varchar(30) NOT NULL default '',
`varkey` text NOT NULL,
`varvalue` text,
PRIMARY KEY (`Id`)
) TYPE=MyISAM";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb_words` (
`word_id` mediumint(8) unsigned NOT NULL auto_increment,
`word` char(100) NOT NULL default '',
`replacement` char(100) NOT NULL default '',
`word_count` MEDIUMINT(8) DEFAULT '0',
PRIMARY KEY (`word_id`)
) TYPE=MyISAM";
$sql[] = "CREATE TABLE `" . $table_prefix . "antispamdb_fieldfest` (
`fieldfestid` mediumint(8) NOT NULL auto_increment,
`type` varchar(30) NOT NULL default '',
`sort` varchar(30) NOT NULL default '',
`old` varchar(50) NOT NULL default '',
`new` varchar(50) NOT NULL default '',
`time` int(11) NOT NULL default '0',
`session_id` varchar(32) NOT NULL default '',
PRIMARY KEY (`fieldfestid`),
KEY `sesson_id` (`session_id`),
KEY `type` (`type`),
KEY `sort` (`sort`)
) TYPE=MyISAM";
}
// CLEAN INSTALL 1.2.5;
// ----------------- INSTALL
for( $i = 0; $i < count($sql); $i++ )
{
if( !$result = $db->sql_query ($sql[$i]) )
{
$error = $db->sql_error();
echo '<li>' . $sql[$i] . '<br /> +++ <font color="#FF0000"><b>Error:</b></font> ' . $error['message'] . '</li><br />';
}
else
{
echo '<li>' . $sql[$i] . '<br /> +++ <font color="#00AA00"><b>Successfull</b></font></li><br />';
}
}
echo '</ul></span></td></tr><tr><td class="catBottom" height="28"> </td></tr>';
echo '<tr><th>End</th></tr><tr><td bgcolor="#FFFFFF"><span class="genmed">Installation is now finished. ';
echo 'Please be sure to delete this file now. <a href="http://www.phpbbinstallers.net/bad_words.php?antispam=true">And to import the wordlist: over here</a><br />';
echo 'If you have run into any errors, please visit the '.
'<a href="http://www.phpbb.com" target="_phpbbsupport">phpBB support forums</a> or <a href="http://www.phpbbinstallers.net" target="_phpbbinstallers">PhpBBinstallers.net</a> and ask someone for help.</span></td></tr>';
echo '<tr><td class="catBottom" height="28" align="center"><span class="genmed"><a href="' . append_sid("index.$phpEx") . '">Have a nice day</a></span></td></table>';
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>