
"; if ($query) { if ($mysql_usePrefix == 1) $query = str_replace($aTableNames, $aTableNamesPrefixed, $query); mysql_query($query) or _doError("Error while executing query (" . htmlspecialchars($query) . "): " . mysql_error()); } } // 6. update global settings updateConfig('IndexURL', $config_indexurl); updateConfig('AdminURL', $config_adminurl); updateConfig('MediaURL', $config_mediaurl); updateConfig('SkinsURL', $config_skinsurl); updateConfig('PluginURL', $config_pluginurl); updateConfig('ActionURL', $config_actionurl); updateConfig('AdminEmail', $config_adminemail); updateConfig('SiteName', $config_sitename); // 7. update GOD member $query = 'UPDATE ' . tableName('nucleus_member') . " SET mname='" . addslashes($user_name) . "'," . " mrealname='". addslashes($user_realname) . "'," . " mpassword='". md5(addslashes($user_password)) . "'," . " murl='" . addslashes($config_indexurl) . "'," . " memail='" . addslashes($user_email) . "'," . " madmin=1," . " mcanlogin=1" . " WHERE mnumber=1"; mysql_query($query) or _doError("Error while setting member settings: " . mysql_error()); // 8. update weblog settings $query = 'UPDATE ' . tableName('nucleus_blog') . " SET bname='" . addslashes($blog_name) . "'," . " bshortname='". addslashes($blog_shortname) . "'," . " burl='" . addslashes($config_indexurl) . "'" . " WHERE bnumber=1"; mysql_query($query) or _doError("Error while setting weblog settings: " . mysql_error()); // 9. update item date $query = 'UPDATE ' . tableName('nucleus_item') . " SET itime='". date("Y-m-d H:i:s",time()) ."'" . " WHERE inumber=1"; mysql_query($query) or _doError("Error with query: " . mysql_error()); global $aConfPlugsToInstall, $aConfSkinsToImport; $aSkinErrors = array(); $aPlugErrors = array(); if ((count($aConfPlugsToInstall) > 0) || (count($aConfSkinsToImport) > 0)) { // 10. set global variables global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_PREFIX; $MYSQL_HOST = $mysql_host; $MYSQL_USER = $mysql_user; $MYSQL_PASSWORD = $mysql_password; $MYSQL_DATABASE = $mysql_database; $MYSQL_PREFIX = ($mysql_usePrefix == 1)?$mysql_prefix:''; global $DIR_NUCLEUS, $DIR_MEDIA, $DIR_SKINS, $DIR_PLUGINS, $DIR_LANG, $DIR_LIBS; $DIR_NUCLEUS = $config_adminpath; $DIR_MEDIA = $config_mediapath; $DIR_SKINS = $config_skinspath; $DIR_PLUGINS = $DIR_NUCLEUS . 'plugins/'; $DIR_LANG = $DIR_NUCLEUS . 'language/'; $DIR_LIBS = $DIR_NUCLEUS . 'libs/'; // close database connection (needs to be closed if we want to include globalfunctions.php) mysql_close(); $manager = ''; include_once($DIR_LIBS . 'globalfunctions.php'); // 11. install custom skins $aSkinErrors = installCustomSkins($manager); // 12. install custom plugins $aPlugErrors = installCustomPlugs($manager); } // 12. Write config file ourselves (if possible) $bConfigWritten = 0; if (@file_exists('config.php') && is_writable('config.php') && $fp = @fopen('config.php', 'w')) { $config_data = "<" . "?php \n"; $config_data .= "\n"; $config_data .= " // mySQL connection information\n"; $config_data .= " \$MYSQL_HOST = '" . $mysql_host . "';\n"; $config_data .= " \$MYSQL_USER = '" . $mysql_user . "';\n"; $config_data .= " \$MYSQL_PASSWORD = '" . $mysql_password . "';\n"; $config_data .= " \$MYSQL_DATABASE = '" . $mysql_database . "';\n"; $config_data .= " \$MYSQL_PREFIX = '" . (($mysql_usePrefix == 1)?$mysql_prefix:'') . "';\n"; $config_data .= "\n"; $config_data .= " // main nucleus directory\n"; $config_data .= " \$DIR_NUCLEUS = '" . $config_adminpath . "';\n"; $config_data .= "\n"; $config_data .= " // path to media dir\n"; $config_data .= " \$DIR_MEDIA = '" . $config_mediapath . "';\n"; $config_data .= "\n"; $config_data .= " // extra skin files for imported skins\n"; $config_data .= " \$DIR_SKINS = '" . $config_skinspath . "';\n"; $config_data .= "\n"; $config_data .= " // these dirs are normally sub dirs of the nucleus dir, but \n"; $config_data .= " // you can redefine them if you wish\n"; $config_data .= " \$DIR_PLUGINS = \$DIR_NUCLEUS . 'plugins/';\n"; $config_data .= " \$DIR_LANG = \$DIR_NUCLEUS . 'language/';\n"; $config_data .= " \$DIR_LIBS = \$DIR_NUCLEUS . 'libs/';\n"; $config_data .= "\n"; $config_data .= " // include libs\n"; $config_data .= " include(\$DIR_LIBS.'globalfunctions.php');\n"; $config_data .= "?" . ">"; $result = @fputs($fp, $config_data, strlen($config_data)); fclose($fp); if ($result) $bConfigWritten = 1; } ?>

The database tables have been initialized successfully. What still needs to be done is to change the contents of config.php. Below is how it should look like (the mysql password is masked, so you'll have to fill that out yourself)
<?php // mySQL connection information $MYSQL_HOST = ''; $MYSQL_USER = ''; $MYSQL_PASSWORD = 'xxxxxxxxxxx'; $MYSQL_DATABASE = ''; $MYSQL_PREFIX = ''; // main nucleus directory $DIR_NUCLEUS = ''; // path to media dir $DIR_MEDIA = ''; // extra skin files for imported skins $DIR_SKINS = ''; // these dirs are normally sub dirs of the nucleus dir, but // you can redefine them if you wish $DIR_PLUGINS = $DIR_NUCLEUS . 'plugins/'; $DIR_LANG = $DIR_NUCLEUS . 'language/'; $DIR_LIBS = $DIR_NUCLEUS . 'libs/'; // include libs include($DIR_LIBS.'globalfunctions.php'); ?>
After you changed the file on your computer, upload it to your web server using FTP. Make sure you use ASCII mode to send over the files.
Nucleus has been installed, and your config.php has been updated for you.
Don't forget to change the permissions on config.php back to 444 for security (Quick guide on how to change file permissions).
Files you should delete from your web server:
If you don't delete these files, you won't be able to open the admin area
Your web site is now ready to use.
getPlugin($plugName); if (!$plugin) { sql_query('DELETE FROM ' . sql_table('plugin') . ' WHERE pfile=\''. addslashes($plugName).'\''); $numCurrent--; array_push($aErrors, 'Unable to install plugin ' . $plugName); continue; } $plugin->install(); } // SYNC PLUGIN EVENT LIST sql_query('DELETE FROM '.sql_table('plugin_event')); // loop over all installed plugins $res = sql_query('SELECT pid, pfile FROM '.sql_table('plugin')); while($o = mysql_fetch_object($res)) { $pid = $o->pid; $plug =& $manager->getPlugin($o->pfile); if ($plug) { $eventList = $plug->getEventList(); foreach ($eventList as $eventName) sql_query('INSERT INTO '.sql_table('plugin_event').' (pid, event) VALUES ('.$pid.', \''.$eventName.'\')'); } } return $aErrors; } function installCustomSkins(&$manager) { global $aConfSkinsToImport, $DIR_LIBS, $DIR_SKINS; $aErrors = array(); if (count($aConfSkinsToImport) == 0) return $aErrors; // load skinie class include_once($DIR_LIBS . 'skinie.php'); $importer = new SKINIMPORT(); foreach ($aConfSkinsToImport as $skinName) { $importer->reset(); $skinFile = $DIR_SKINS . $skinName . '/skinbackup.xml'; if (!@file_exists($skinFile)) { array_push($aErrors, 'Unable to import ' . $skinFile . ' : file does not exist'); continue; } $error = $importer->readFile($skinFile); if ($error) { array_push($aErrors, 'Unable to import ' . $skinName . ' : ' . $error); continue; } $error = $importer->writeToDatabase(1); if ($error) { array_push($aErrors, 'Unable to import ' . $skinName . ' : ' . $error); continue; } } return $aErrors; } // give an error if one or more nucleus are not accessible function doCheckFiles() { $missingfiles = array(); if (!is_readable('install.sql')) array_push($missingfiles, "File install.sql is missing or not readable"); if (!is_readable('index.php')) array_push($missingfiles, "File index.php is missing or not readable"); if (!is_readable('action.php')) array_push($missingfiles, "File action.php is missing or not readable"); if (!is_readable('nucleus/index.php')) array_push($missingfiles, "File nucleus/index.php is missing or not readable"); if (!is_readable('nucleus/libs/globalfunctions.php')) array_push($missingfiles, "File nucleus/libs/globalfunctions.php is missing or not readable"); if (!is_readable('nucleus/libs/ADMIN.php')) array_push($missingfiles, "File nucleus/libs/ADMIN.php is missing or not readable"); if (!is_readable('nucleus/libs/BLOG.php')) array_push($missingfiles, "File nucleus/libs/BLOG.php is missing or not readable"); if (!is_readable('nucleus/libs/COMMENT.php')) array_push($missingfiles, "File nucleus/libs/COMMENT.php is missing or not readable"); if (!is_readable('nucleus/libs/COMMENTS.php')) array_push($missingfiles, "File nucleus/libs/COMMENTS.php is missing or not readable"); if (!is_readable('nucleus/libs/ITEM.php')) array_push($missingfiles, "File nucleus/libs/ITEM.php is missing or not readable"); if (!is_readable('nucleus/libs/MEMBER.php')) array_push($missingfiles, "File nucleus/libs/MEMBER.php is missing or not readable"); if (!is_readable('nucleus/libs/SKIN.php')) array_push($missingfiles, "File nucleus/libs/SKIN.php is missing or not readable"); if (!is_readable('nucleus/libs/TEMPLATE.php')) array_push($missingfiles, "File nucleus/libs/TEMPLATE.php is missing or not readable"); if (!is_readable('nucleus/libs/MEDIA.php')) array_push($missingfiles, "File nucleus/libs/MEDIA.php is missing or not readable"); if (!is_readable('nucleus/libs/ACTIONLOG.php')) array_push($missingfiles, "File nucleus/libs/ACTIONLOG.php is missing or not readable"); if (!is_readable('nucleus/media.php')) array_push($missingfiles, "File nucleus/media.php is missing or not readable"); if (sizeof($missingfiles) > 0) showErrorMessages($missingfiles); } function updateConfig($name, $val) { $name = addslashes($name); $val = trim(addslashes($val)); $query = 'UPDATE ' . tableName('nucleus_config') . " SET value='$val'" . " WHERE name='$name'"; mysql_query($query) or _doError("Query error while trying to update config: " . mysql_error()); return mysql_insert_id(); } function endsWithSlash($s) { return (strrpos($s,'/') == strlen($s) - 1); } /** * Checks if email address is valid */ function _isValidMailAddress($address) { if (preg_match("/^[a-zA-Z0-9\._-]+@+[A-Za-z0-9\._-]+\.+[A-Za-z]{2,4}$/", $address)) return 1; else return 0; } // returns true if the given string is a valid shortname // (to check short blog names and nicknames) // logic: starts and ends with a non space, can contain spaces in between // min 2 chars function _isValidShortName($name) { if (eregi("^[a-z0-9]+$", $name)) return 1; else return 0; } // returns true if the given string is a valid display name // (to check nicknames) function _isValidDisplayName($name) { if (eregi("^[a-z0-9]+[a-z0-9 ]*[a-z0-9]+$", $name)) return 1; else return 0; } function _doError($msg) { ?>
Error message was: "";

Errors were found: