mirror of
https://github.com/e107inc/e107.git
synced 2025-08-13 01:54:12 +02:00
new module creation
This commit is contained in:
149
e107_files/import/import_mapper.php
Normal file
149
e107_files/import/import_mapper.php
Normal file
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
/* Database import function for E107 website system
|
||||
Use: See separate documentation.
|
||||
|
||||
11.06.06 - zeronull handling added
|
||||
*/
|
||||
|
||||
function createQuery($convertArray, $dataArray, $table, $maptable = null)
|
||||
{
|
||||
global $tp;
|
||||
|
||||
$columns = "(";
|
||||
$values = "(";
|
||||
|
||||
|
||||
foreach($convertArray as $convert)
|
||||
{ // Possible types: STRING, INT
|
||||
if (array_key_exists("value", $convert))
|
||||
{
|
||||
$newvalue = $convert['value'];
|
||||
}
|
||||
elseif (array_key_exists($convert['srcdata'],$dataArray))
|
||||
{ // Real value read from database here - need to check it
|
||||
if($convert['type'] == "STRING")
|
||||
{
|
||||
$newvalue = $tp -> toDB($dataArray[$convert['srcdata']]);
|
||||
// $newvalue = $dataArray[$convert['srcdata']]; // USE IN PLACE OF PREVIOUS LINE FOR STANDALONE TEST
|
||||
if (array_key_exists('sproc',$convert))
|
||||
{
|
||||
if (strpos($convert['sproc'],"usebb") !== FALSE) $newvalue = proc_bb($newvalue,$convert['sproc'], $maptable);
|
||||
if (strpos($convert['sproc'],"stripbb") !== FALSE) $newvalue = preg_replace("#\[.*\]#", "",$newvalue);
|
||||
}
|
||||
}
|
||||
else
|
||||
if ($convert['type'] == "INT")
|
||||
{
|
||||
$newvalue = intval($dataArray[$convert['srcdata']]); // intval added 25.05.06
|
||||
if (($newvalue == 0) && ((array_key_exists('sproc',$convert)) && (strpos($convert['sproc'],"zeronull") !== FALSE))) $newvalue = '';
|
||||
}
|
||||
else
|
||||
echo "Invalid field type: ".$convert['type'];
|
||||
}
|
||||
else
|
||||
{ // blank (undefined) value
|
||||
if (array_key_exists('default', $convert))
|
||||
{
|
||||
$newvalue = $convert['default'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (($convert['type'] == "INT") && ((array_key_exists('sproc',$convert)) && (strpos($convert['sproc'],"zeronull") === FALSE)))
|
||||
$newvalue = "0"; // Should help mySQL5
|
||||
else
|
||||
$newvalue = '';
|
||||
}
|
||||
}
|
||||
|
||||
$columns .= $convert['e107'].",";
|
||||
$values .= "'".$newvalue."',";
|
||||
}
|
||||
|
||||
// Knock off last comma of each line
|
||||
$columns = substr($columns, 0, -1).")";
|
||||
$values = substr($values, 0, -1).")";
|
||||
|
||||
return "INSERT INTO $table $columns VALUES $values";
|
||||
|
||||
}
|
||||
|
||||
// Process all bbcodes in the passed value; return the processed string.
|
||||
// Works recursively
|
||||
// Start by assembling matched pairs. Then map and otherwise process as required.
|
||||
// Divide the value into five bits:
|
||||
// Preamble - up to the identified bbcode (won't contain bbcode)
|
||||
// BBCode start code
|
||||
// Inner - text between the two bbcodes (may contain another bbcode)
|
||||
// BBCode end code
|
||||
// Trailer - remaining unprocessed text (may contain more bbcodes)
|
||||
// (Note: preg_split might seem obvious, but doesn't pick out the actual codes
|
||||
// Tested with various strings (see testdata.txt; also mapping table to see what is going on.
|
||||
|
||||
function proc_bb($value, $options = "", $maptable = null)
|
||||
{
|
||||
$nextchar = 0;
|
||||
$loopcount = 0;
|
||||
// echo "<br />starting match<br />";
|
||||
|
||||
while ($nextchar < strlen($value)) :
|
||||
$firstbit = '';
|
||||
$middlebit = '';
|
||||
$lastbit = '';
|
||||
$loopcount++;
|
||||
if ($loopcount > 10) return 'Max depth exceeded';
|
||||
unset($bbword);
|
||||
$firstcode = strpos($value,'[',$nextchar);
|
||||
if ($firstcode === FALSE) return $value; // Done if no square brackets
|
||||
$firstend = strpos($value,']',$firstcode);
|
||||
if ($firstend === FALSE) return $value; // Done if no closing bracket
|
||||
$bbword = substr($value,$firstcode+1,$firstend - $firstcode - 1); // May need to process this more if parameter follows
|
||||
$bbparam = '';
|
||||
$temp = strpos($bbword,'=');
|
||||
if ($temp !== FALSE)
|
||||
{
|
||||
$bbparam = substr($bbword,$temp);
|
||||
$bbword = substr($bbword,0,-strlen($bbparam));
|
||||
}
|
||||
// echo $bbword."<<||>>".$bbparam;
|
||||
if (($bbword) && ($bbword == trim($bbword)))
|
||||
{
|
||||
$laststart = strpos($value,'[/'.$bbword,$firstend); // Find matching end
|
||||
$lastend = strpos($value,']',$laststart);
|
||||
if (($laststart === FALSE) || ($lastend === FALSE))
|
||||
{ // No matching end character
|
||||
$nextchar = $firstend; // Just move scan pointer along
|
||||
// echo " - no match<br />";
|
||||
}
|
||||
else
|
||||
{ // Got a valid bbcode pair here
|
||||
$firstbit = '';
|
||||
if ($firstcode > 0) $firstbit = substr($value,0,$firstcode);
|
||||
$middlebit = substr($value,$firstend+1,$laststart - $firstend-1);
|
||||
$lastbit = substr($value,$lastend+1,strlen($value) - $lastend);
|
||||
// echo " - match||".$firstbit."||".$middlebit."||".$lastbit."<br />";
|
||||
// Process bbcodes here
|
||||
if (strpos($options,'bblower') !== FALSE) $bbword = strtolower($bbword);
|
||||
if ((strpos($options,'phpbb') !== FALSE) && (strpos($bbword,':') !== FALSE)) $bbword = substr($bbword,0,strpos($bbword,':'));
|
||||
if ($maptable)
|
||||
{ // Do mapping
|
||||
if (array_key_exists($bbword,$maptable)) $bbword = $maptable[$bbword];
|
||||
}
|
||||
$bbbegin = '['.$bbword.$bbparam.']';
|
||||
$bbend = '[/'.$bbword.']';
|
||||
return $firstbit.$bbbegin.proc_bb($middlebit,$options,$maptable).$bbend.proc_bb($lastbit,$options,$maptable);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$nextchar = $firstend+1;
|
||||
}
|
||||
// echo " -->".$firstcode.", ".$firstend.", ".$laststart.", ".$lastend."<br />";
|
||||
// echo "<br />";
|
||||
endwhile;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
135
e107_files/import/import_readme.txt
Normal file
135
e107_files/import/import_readme.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
PHPBB2 to E107 Conversion Routine
|
||||
=================================
|
||||
|
||||
Issue dated: 13.06.2006
|
||||
|
||||
Any updates, bugfixes or comments please send pm to steved at e107.org
|
||||
|
||||
|
||||
Conversion routines from other BBS
|
||||
==================================
|
||||
phpbb2.php - modified from earlier script, with ability to process and re-map bbcodes, plus more options.
|
||||
|
||||
Note: Only the underlying read/translate routine has been modified, plus some detail changes in the configuration table. The key routines which read and write the databases should be the same as those originally shipped.
|
||||
|
||||
Credits: Based on the script originally shipped with E107 (jalist)
|
||||
Modified to mostly work by aidee
|
||||
Enhanced by steved
|
||||
Reflects mods made by McFly in the "official" script between V1.4 and V1.5
|
||||
Thanks to Rashan for a lot of testing and feedback.
|
||||
|
||||
********* This is still to some extent a work in progress - please report any problems to steved by PM ***********
|
||||
|
||||
Installation
|
||||
============
|
||||
1. Create a fresh install of E107. (Not essential, but it will overwrite rather a lot!)
|
||||
2. Copy the files into the e107_files/convert subdirectory.
|
||||
|
||||
|
||||
To Run
|
||||
======
|
||||
1) If there's anything in the e107 user table, you must delete ALL entries, EXCEPT user ID:1 - This is the admin login. (or whatever you named the #1 when you installed e107)
|
||||
2) Make sure the forum plugin is installed (don't define any categories etc)
|
||||
3) login to the e107 as admin (or whatever #1 is)
|
||||
4) browse to e107_files/import/new_phpbb2.php
|
||||
5) fill in the required info for login/password, etc.
|
||||
db to import FROM is your phpbb2 database, with whatever prefix is set - often _phpbb_
|
||||
6) once the script runs sucessfully, return to the e107 admin, head on over to the Administrators page and set the proper people up with their admin access, delete unnessesary admins
|
||||
7) go to the Forum plugin page, select Tools from the right hand side and tell it to recalculate posts and such for all the forums, and sub-forums and posts.
|
||||
8) double-check forum mods to make sure the proper userclasses are setup as mods for the proper forums
|
||||
9) Head on over to the UserClasses page and doublecheck that the proper users are in the proper classes (Forum Mods, etc...)
|
||||
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
1. Forum polls may not be transferred. At the current time there are various issues with this in the E107 core, and this may be the reason. So this has been put on hold until the core is definitely fixed.
|
||||
|
||||
|
||||
BBCodes
|
||||
=======
|
||||
BBCode conversion may not always appear to work completely, especially if they were originally not been entered correctly. And there may be bbcodes which are not supported in E107.
|
||||
In some cases it is possible to do a direct translation within the conversion routine (see later).
|
||||
Otherwise download the add_bbcodes plugin from e107coders.org, and create bbcodes to match the originals (its often possible to use an existing bbcode as a template).
|
||||
|
||||
|
||||
===========================================================================
|
||||
MODIFYING THE BEHAVIOUR
|
||||
===========================================================================
|
||||
|
||||
File import routine (import_mapper.php)
|
||||
===================
|
||||
|
||||
The import is based on a processing routine whose behaviour is defined in an array. The rest of these notes deal with that routine. Using the tables in the accompanying file as an example, it should be possible to modify the behavior of the conversion, and adapt to other CMS.
|
||||
|
||||
|
||||
Using the conversion routine
|
||||
============================
|
||||
Read one line from your database; pass to:
|
||||
|
||||
function createQuery($convertArray, $dataArray, $table, $maptable default null)
|
||||
|
||||
where:
|
||||
$convertArray is an array defining the translations and lookups to be done
|
||||
$dataArray is an array of input data, keyed by source field name.
|
||||
$table is the table name
|
||||
$maptable if specified is used to translate bbcodes.
|
||||
|
||||
The function returns a line of text which is a mySQL 'INSERT' query.
|
||||
|
||||
|
||||
$convertArray format
|
||||
====================
|
||||
This is a 2-dimensional array which relates fields in the source and destination databases.
|
||||
Each row has a number of definition fields which relate to a single data item. The first three are
|
||||
mandatory. The keys must be as specified:
|
||||
|
||||
Field 1 "srcdata" Source field name
|
||||
|
||||
Field 2 "e107" Destination field name
|
||||
|
||||
Field 3 "type" Type of destination field:
|
||||
INT - Integer
|
||||
STRING - Text/string of any sort
|
||||
STRTOTIME - time/date as text string (not yet supported)
|
||||
|
||||
Field 4 "value" (Not always present - should only be if source field is null)
|
||||
Sets a value (sometimes from a function parameter). Overrides all other options.
|
||||
|
||||
Field 5 "default" Sets default if the source field is undefined
|
||||
|
||||
Field 6 "sproc" Various processing options (see below)
|
||||
|
||||
|
||||
Processing Options
|
||||
------------------
|
||||
Comma separated string of processing options; options are invoked if present.
|
||||
|
||||
The following are applied to string fields:
|
||||
usebb Allows bbcode, and enables other bbcode processing options.
|
||||
If the $maptable parameter is non-null, translates bbcodes as well
|
||||
phpbb Causes numerics after colons within bbcodes to be stripped
|
||||
bblower All bbcodes are converted to lower case. (Applied before other processing)
|
||||
stripbb Strips all bbcode in a string (i.e. anything between [])
|
||||
|
||||
The following are applied to integer fields:
|
||||
zeronull If the integer value is zero, writes a null string.
|
||||
|
||||
|
||||
BBCode Mapping Table
|
||||
====================
|
||||
A mapping table may be passed to the conversion routine, which translates bbcode between the two systems.
|
||||
The table is an array of key/data pairs, for example:
|
||||
|
||||
$mapdata = array("b" => "bold","u" => "ul");
|
||||
|
||||
The above translates the 'b' bbcode to 'bold', and the 'u' bbcode to 'ul'.
|
||||
It is also possible to delete a specific bbcode (while retaining the text between the start and end of the code) by setting the translated value to an empty string.
|
||||
The above method can also be used to translate bbcodes from upper to lower case.
|
||||
Parameters after the bbcode (identified as following an '=') are retained;
|
||||
|
||||
|
||||
Base routines read one record at a time from the source database, and
|
||||
pass it to createQuery, which uses the above tables to generate an 'insert'
|
||||
line with the appropriate data.
|
||||
|
0
e107_files/import/index.html
Normal file
0
e107_files/import/index.html
Normal file
156
e107_files/import/mambo.php
Normal file
156
e107_files/import/mambo.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| <20>Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_files/import/mambo.php,v $
|
||||
| $Revision: 1.1.1.1 $
|
||||
| $Date: 2006-12-02 04:33:37 $
|
||||
| $Author: mcfly_e107 $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
require_once("../../class2.php");
|
||||
require_once(e_ADMIN."auth.php");
|
||||
|
||||
if(!isset($_POST['do_conversion']))
|
||||
{
|
||||
|
||||
$text = "
|
||||
<table style='width: 100%;' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align: center; margin-left: auto; margin-right: auto;'>
|
||||
This script will import your Mambo database to e107. It will copy over users only.<br /><br /></b>
|
||||
|
||||
<br /><br />\n
|
||||
|
||||
|
||||
<form method='post' action='".e_SELF."'>
|
||||
Please enter the details for your Mambo database ...<br /><br />
|
||||
|
||||
<table style='width: 50%;' class='fborder'>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Host </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='mamboHost' size='30' value='localhost' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Username </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='mamboUsername' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Password </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='mamboPassword' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Database </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='mamboDatabase' size='30' value='mambo' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Table Prefix </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='mamboPrefix' size='30' value='mos_' maxlength='100' />
|
||||
</tr>
|
||||
</table>
|
||||
<br /><br />
|
||||
<input class='button' type='submit' name='do_conversion' value='Continue' />
|
||||
</td>
|
||||
</tr>
|
||||
</table>";
|
||||
|
||||
$ns -> tablerender("mambo to e107 Conversion Script", $text);
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
if(!isset($_POST['mamboHost']) || !isset($_POST['mamboUsername']) || !isset($_POST['mamboPassword']) || !isset($_POST['mamboDatabase'])){
|
||||
echo "Field(s) left blank, please go back and re-enter values.";
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
extract($_POST);
|
||||
|
||||
$text .= "<table style='width: 100%;' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align: center; margin-left: auto; margin-right: auto;'>
|
||||
Attempting to connect to Mambo database [ {$mamboDatabase} @ {$mamboHost} ] ...<br />\n";
|
||||
flush();
|
||||
|
||||
$phpbbConnection = mysql_connect($mamboHost, $mamboUsername, $mamboPassword, TRUE);
|
||||
if(!mysql_select_db($mamboDatabase, $phpbbConnection)){
|
||||
goError("Error! Cound not connect to Mambo database. Please go back to the previous page and check your settings");
|
||||
}
|
||||
|
||||
$e107Connection = mysql_connect($mySQLserver, $mySQLuser, $mySQLpassword, TRUE);
|
||||
if(!mysql_select_db($mySQLdefaultdb, $e107Connection)){
|
||||
goError("Error! Cound not connect to e107 database.");
|
||||
}
|
||||
|
||||
echo "Successfully connected to Mambo and e107 databases ...<br><br />";
|
||||
|
||||
|
||||
$phpbb_res = mysql_query("SELECT * FROM {$mamboPrefix}users", $phpbbConnection);
|
||||
if(!$phpbb_res){
|
||||
goError("Error! Unable to access ".$mamboPrefix."users table.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
$text = "<div><table class='fborder'>";
|
||||
$text .= "<tr>";
|
||||
$text .= "<td class='fcaption'>name</td>";
|
||||
$text .= "<td class='fcaption'>username</td>";
|
||||
$text .= "<td class='fcaption'>email</td>";
|
||||
$text .= "<td class='fcaption'>password</td>";
|
||||
$text .= "<td class='fcaption'>usertype</td>";
|
||||
$text .= "<td class='fcaption'>block</td>";
|
||||
$text .= "<td class='fcaption'>sendEmail</td>";
|
||||
$text .= "<td class='fcaption'>gid</td>";
|
||||
$text .= "<td class='fcaption'>regDate</td>";
|
||||
$text .= "<td class='fcaption'>lvDate</td>";
|
||||
$text .= "</tr>";
|
||||
|
||||
$result = mysql_query("SELECT name,username,email,block,sendEmail,gid,password,usertype,UNIX_TIMESTAMP(registerDate) AS regDate,UNIX_TIMESTAMP(lastvisitDate) AS lvDate FROM mos_users", $phpbbConnection);
|
||||
while ($mos = mysql_fetch_array($result, MYSQL_ASSOC)) {
|
||||
$text .= "<tr>";
|
||||
$text .= "<td class='forumheader3'>".$mos['name']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['username']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['email']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['password']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['usertype']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['block']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['sendEmail']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['gid']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['regDate']."</td>";
|
||||
$text .= "<td class='forumheader3'>".$mos['lvDate']."</td>";
|
||||
$text .= "</tr>";
|
||||
|
||||
$block = ($mos['block']) ? 2 : 0;
|
||||
$admin = ($mos['usertype'] == "superadministrator") ? 1 : 0;
|
||||
$query = "INSERT INTO ".$mySQLprefix."user VALUES (";
|
||||
$query .= "0, \"".$mos['name']."\", \"".$mos['username']."\", '', \"".$mos['password']."\", '', \"".$mos['email']."\", '', '', '', '', '', '', '', '', '', \"1\", \"".$mos['regDate']."\", \"".$mos['lvDate']."\", \"\", \"\", \"\", \"\", \"\", \"\", \"$block\", '', '', '', '', \"$admin\", \"".$mos['name']."\", \"$class\", 0, 0, 0 ";
|
||||
$query .= ")";
|
||||
$message = mysql_query($query, $e107Connection) ? LAN_CREATED: LAN_CREATED_FAILED;
|
||||
|
||||
}
|
||||
$text .= "</table></div>";
|
||||
|
||||
echo $text."<br /><br /></div>";
|
||||
echo "<div style='text-align:center'>$message</div>";
|
||||
|
||||
|
||||
|
||||
function goError($error){
|
||||
echo "<b>{$error}</b></td></tr></table>";
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
require_once(e_ADMIN."footer.php");
|
||||
?>
|
471
e107_files/import/phpbb2.php
Normal file
471
e107_files/import/phpbb2.php
Normal file
@@ -0,0 +1,471 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| <20>Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_files/import/phpbb2.php,v $
|
||||
| $Revision: 1.1.1.1 $
|
||||
| $Date: 2006-12-02 04:33:38 $
|
||||
| $Author: mcfly_e107 $
|
||||
|
|
||||
| 31/1/2006 Changes by Albert Drent
|
||||
| Aducom Software
|
||||
| www.aducom.com
|
||||
|
|
||||
| 20/4/2006 Tweaks by steved, based on information from Prodigal and forum thread:
|
||||
| Processing routine made more generic
|
||||
| BBCode processing options - strip, phpbb processing, mapping
|
||||
| Allows setting of default for null field
|
||||
| Forces null integer field to zero (required for mySQL5?)
|
||||
| Sets forum_moderators to empty
|
||||
| User last visit and reg. date added (may not be suitable format)
|
||||
|
|
||||
| 17/5/2006 Tweak to bring across admins as well, other than user ID = 1 (which will be E107 main admin)
|
||||
| Include of mapper function moved to earlier in file to try and avoid error.
|
||||
| 18/5/2006 Table added to convert IMG and URL bbcodes to lower case.
|
||||
| 25/5/2006 Modifications to original script made by McFly (version 1.5) added where appropriate.
|
||||
| 10/6/2006 Bug fix - user_join mapping line specified twice
|
||||
| BBCodes now decoded in signatures as well as forums
|
||||
| 11/6/2006 zeronull code added to try and sort user_perms
|
||||
|
|
||||
| Note: Apparently no field in the phpbb database with which to populate 'last post' - but can
|
||||
| be recalculated through E107.
|
||||
|
|
||||
| Note: Typically phpbb tables are prefixed '_phpbb_'
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
require_once("../../class2.php");
|
||||
require_once(e_ADMIN."auth.php");
|
||||
|
||||
if(!isset($_POST['do_conversion']))
|
||||
{
|
||||
|
||||
$text = "
|
||||
<table style='width: 100%;' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align: center; margin-left: auto; margin-right: auto;'>
|
||||
This script will import your phpBB2 database to e107. It will copy over users, forums, forum posts and polls.<br /><br /><br /><b>*** IMPORTANT ***<br />Running this script will empty your e107 forum, users and polls table - make sure you have a backup before continuing!</b>
|
||||
|
||||
<br /><br /><br />\n
|
||||
|
||||
|
||||
<form method='post' action='".e_SELF."'>
|
||||
Please enter the details for your phpBB2 database ...<br /><br />
|
||||
|
||||
<table style='width: 50%;' class='fborder'>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Host </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='phpbb2Host' size='30' value='localhost' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Username </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='phpbb2Username' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Password </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='phpbb2Password' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Database </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='phpbb2Database' size='30' value='phpbb2' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Table Prefix </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='phpbb2Prefix' size='30' value='phpbb_' maxlength='100' />
|
||||
</tr>
|
||||
</table>
|
||||
<br /><br />
|
||||
<input class='button' type='submit' name='do_conversion' value='Continue' />
|
||||
</td>
|
||||
</tr>
|
||||
</table>";
|
||||
|
||||
$ns -> tablerender("phpBB2 to e107 Conversion Script", $text);
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
if(!isset($_POST['phpbb2Host']) || !isset($_POST['phpbb2Username']) || !isset($_POST['phpbb2Password']) || !isset($_POST['phpbb2Database']))
|
||||
{
|
||||
echo "Field(s) left blank, please go back and re-enter values.";
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
if(!isset($_POST['phpbb2Prefix']))
|
||||
{
|
||||
$phpbb2Prefix = "";
|
||||
}
|
||||
|
||||
extract($_POST);
|
||||
|
||||
echo "<table style='width: 100%;' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align: center; margin-left: auto; margin-right: auto;'>
|
||||
Attempting to connect to phpBB database [ {$phpbb2Database} @ {$phpbb2Host} ] ...<br />\n";
|
||||
flush();
|
||||
|
||||
$phpbbConnection = mysql_connect($phpbb2Host, $phpbb2Username, $phpbb2Password, TRUE);
|
||||
if(!mysql_select_db($phpbb2Database, $phpbbConnection))
|
||||
{
|
||||
goError("Error! Could not connect to phpBB database. Please go back to the previous page and check your settings");
|
||||
}
|
||||
|
||||
$e107Connection = mysql_connect($mySQLserver, $mySQLuser, $mySQLpassword, TRUE);
|
||||
if(!mysql_select_db($mySQLdefaultdb, $e107Connection))
|
||||
{
|
||||
goError("Error! Could not connect to e107 database.");
|
||||
}
|
||||
|
||||
echo "Successfully connected to phpBB and e107 databases ...<br><br />";
|
||||
|
||||
|
||||
$phpbb_res = mysql_query("SELECT * FROM {$phpbb2Prefix}users", $phpbbConnection);
|
||||
if(!$phpbb_res)
|
||||
{
|
||||
goError("Error! Unable to access ".$phpbb2Prefix."users table.");
|
||||
}
|
||||
|
||||
require_once('import_mapper.php');
|
||||
|
||||
|
||||
//------------------------------------------------------
|
||||
// Convert users
|
||||
//------------------------------------------------------
|
||||
while($user = mysql_fetch_array($phpbb_res))
|
||||
{
|
||||
$userArray = convertUsers();
|
||||
// if($user['user_level'] != 1 && $user['user_id'] != -1)
|
||||
// Convert any user other than ID=1 (which will be E107 main admin)
|
||||
if($user['user_id'] > 1)
|
||||
{
|
||||
$query = createQuery($userArray, $user, $mySQLprefix."user");
|
||||
echo (mysql_query($query, $e107Connection) ? "Successfully inserted user: ".$user['user_id'].": ".$user['username'] : "Unable to insert user: ".$user['user_id'].": ".$user['username']."<br />".mysql_errno() . ": " . mysql_error())."<br />";
|
||||
flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// ### get phpbb categories and insert them as forum parents
|
||||
//-----------------------------------------------------------
|
||||
|
||||
mysql_query("TRUNCATE TABLE {$mySQLprefix}forum", $e107Connection);
|
||||
|
||||
|
||||
$phpbb_res = mysql_query("SELECT * FROM {$phpbb2Prefix}categories", $phpbbConnection);
|
||||
if(!$phpbb_res)
|
||||
{
|
||||
goError("Error! Unable to access ".$phpbb2Prefix."categories table.");
|
||||
}
|
||||
|
||||
$catcount = 500;
|
||||
while($parent = mysql_fetch_array($phpbb_res))
|
||||
{
|
||||
|
||||
$parentArray = convertParents($catcount);
|
||||
|
||||
$query = createQuery($parentArray, $parent, $mySQLprefix."forum");
|
||||
echo (mysql_query($query, $e107Connection) ? "Successfully inserted parent: ".$parent['cat_id'].": ".$parent['cat_title'] : "Unable to insert parent: ".$parent['cat_id'].": ".$parent['cat_title']."<br />".mysql_errno() . ": " . mysql_error())."<br />";
|
||||
flush();
|
||||
|
||||
$phpbb_res2 = mysql_query("SELECT * FROM {$phpbb2Prefix}forums WHERE cat_id = ".$parent['cat_id'], $phpbbConnection);
|
||||
if($phpbb_res2)
|
||||
{
|
||||
while($forum = mysql_fetch_array($phpbb_res2))
|
||||
{
|
||||
$forumArray = convertForums($catcount);
|
||||
$query = createQuery($forumArray, $forum, $mySQLprefix."forum");
|
||||
echo (mysql_query($query, $e107Connection) ? "Successfully inserted forum: ".$parent['cat_id'].": ".$parent['cat_title'] : "Unable to insert forum: ".$parent['cat_id'].": ".$parent['cat_title']."<br />".mysql_errno() . ": " . mysql_error())."<br />";
|
||||
flush();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Didn't find any forums for parent '".$parent['cat_title']."'<br />";
|
||||
}
|
||||
$catcount ++;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------
|
||||
// Read in forum topics
|
||||
//------------------------------------------------------
|
||||
|
||||
mysql_query("TRUNCATE TABLE {$mySQLprefix}forum_t", $e107Connection);
|
||||
mysql_query("TRUNCATE TABLE {$mySQLprefix}polls", $e107Connection);
|
||||
|
||||
$query = "SELECT * FROM {$phpbb2Prefix}topics
|
||||
LEFT JOIN {$phpbb2Prefix}posts_text ON ({$phpbb2Prefix}topics.topic_title = {$phpbb2Prefix}posts_text.post_subject)
|
||||
LEFT JOIN {$phpbb2Prefix}posts ON ({$phpbb2Prefix}posts.post_id = {$phpbb2Prefix}posts_text.post_id)
|
||||
ORDER BY topic_time ASC";
|
||||
|
||||
$phpbb_res = mysql_query($query, $phpbbConnection);
|
||||
if(!$phpbb_res)
|
||||
{
|
||||
goError("Error! Unable to access ".$phpbb2Prefix."topics table.");
|
||||
}
|
||||
while($topic = mysql_fetch_array($phpbb_res))
|
||||
{
|
||||
|
||||
//echo "<pre>"; print_r($topic); echo "</pre>";
|
||||
|
||||
if($topic['topic_vote'])
|
||||
{
|
||||
// poll attached to this topic ...
|
||||
$topic['topic_title'] = "[poll] ".$topic['topic_title'];
|
||||
$query = "SELECT * FROM {$phpbb2Prefix}vote_desc WHERE topic_id=".$topic['topic_id'];
|
||||
$phpbb_res3 = mysql_query($query, $phpbbConnection);
|
||||
$pollQ = mysql_fetch_array($phpbb_res3);
|
||||
|
||||
$query = "SELECT * FROM {$phpbb2Prefix}vote_results WHERE vote_id=".$pollQ['vote_id'];
|
||||
$phpbb_res3 = mysql_query($query, $phpbbConnection);
|
||||
$options = "";
|
||||
$votes = "";
|
||||
while($pollO = mysql_fetch_array($phpbb_res3))
|
||||
{
|
||||
$options .= $pollO['vote_option_text'].chr(1);
|
||||
$votes .= $pollO['vote_result'].chr(1);
|
||||
}
|
||||
|
||||
extract($pollQ);
|
||||
$vote_text = $tp->toDB($vote_text); // McFly added 25/5/06
|
||||
$options = $tp->toDB($options); // McFly added 25/5/06
|
||||
$query = "INSERT INTO ".$mySQLprefix."polls VALUES ('0', {$vote_start}, {$vote_start}, 0, 0, '{$vote_text}', '{$options}', '{$votes}', '', 2, 0, 0, 0, 255, 0)";
|
||||
echo (mysql_query($query, $e107Connection) ? "Poll successfully inserted" : "Unable to insert poll ({$query})")."<br />";
|
||||
}
|
||||
|
||||
|
||||
if($topic['topic_poster'] == 2)
|
||||
{
|
||||
$topic['topic_poster'] = 1;
|
||||
}
|
||||
|
||||
if($topic['topic_poster'] == -1)
|
||||
{
|
||||
$poster = ($topic['post_username'] ? $topic['post_username'] : "Anonymous");
|
||||
$topic['topic_poster'] = "0.".$poster; // McFly moved, edited 25/5/06
|
||||
}
|
||||
|
||||
$topicArray = convertTopics(); // McFly edited 25/5/06
|
||||
$query = createQuery($topicArray, $topic, $mySQLprefix."forum_t");
|
||||
|
||||
if(!mysql_query($query, $e107Connection))
|
||||
{
|
||||
echo "Unable to insert topic: ".$topic['topic_id']."<br />";
|
||||
flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Successfully inserted topic: ".$topic['topic_id']."<br />";
|
||||
flush();
|
||||
$parent_id = mysql_insert_id();
|
||||
$topic_id = $topic['topic_id'];
|
||||
|
||||
//echo "PARENT: $parent_id, TOPIC: $topic_id<br />";
|
||||
|
||||
$query = "SELECT * FROM {$phpbb2Prefix}posts LEFT JOIN {$phpbb2Prefix}posts_text ON ({$phpbb2Prefix}posts.post_id = {$phpbb2Prefix}posts_text.post_id) WHERE topic_id='{$topic_id}' AND post_subject = '' ORDER BY post_time DESC";
|
||||
$phpbb_res2 = mysql_query($query, $phpbbConnection);
|
||||
if(!$phpbb_res2)
|
||||
{
|
||||
goError("Error! Unable to access ".$phpbb2Prefix."posts / ".$phpbb2Prefix."posts_text table.");
|
||||
}
|
||||
while($post = mysql_fetch_array($phpbb_res2))
|
||||
{
|
||||
|
||||
if($post['poster_id'] == 2)
|
||||
{
|
||||
$post['poster_id'] = 1;
|
||||
}
|
||||
if($post['poster_id'] == -1)
|
||||
{
|
||||
$poster = ($post['post_username'] ? $post['post_username'] : "Anonymous");
|
||||
$post['poster_id'] = "0.".$poster; // McFly moved, edited 25/5/06
|
||||
}
|
||||
|
||||
|
||||
$postArray = convertForumPosts($parent_id, $poster);
|
||||
$query = createQuery($postArray, $post, $mySQLprefix."forum_t",$mapdata);
|
||||
echo (mysql_query($query, $e107Connection) ? "Successfully inserted thread: ".$post['post_id'] : "Unable to insert thread: ".$parent['cat_id'].": ".$parent['cat_title']."<br />".mysql_errno() . ": " . mysql_error())."<br />";
|
||||
flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------
|
||||
// Consider polls here later
|
||||
//------------------------------------------------------
|
||||
|
||||
echo "</td></tr></table>";
|
||||
|
||||
require_once(e_ADMIN."footer.php");
|
||||
|
||||
|
||||
function goError($error)
|
||||
{
|
||||
echo "<b>{$error}</b></td></tr></table>";
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Table to convert selected bbcodes to lower case
|
||||
//-----------------------------------------------------------
|
||||
//$mapdata = array("URL" => "url","IMG" => "img");
|
||||
$mapdata = array();
|
||||
|
||||
function convertUsers()
|
||||
{
|
||||
$usersArray = array(
|
||||
array("srcdata" => "user_id", "e107" => "user_id", "type" => "INT"),
|
||||
array("srcdata" => "username", "e107" => "user_name", "type" => "STRING"),
|
||||
array("srcdata" => "username", "e107" => "user_loginname", "type" => "STRING"),
|
||||
array("srcdata" => "user_password", "e107" => "user_password", "type" => "STRING"),
|
||||
array("srcdata" => "user_email", "e107" => "user_email", "type" => "STRING"),
|
||||
array("srcdata" => "user_sig", "e107" => "user_signature", "type" => "STRING", "sproc" => "usebb,phpbb,bblower"),
|
||||
array("srcdata" => "user_viewemail", "e107" => "user_hideemail", "type" => "INT"),
|
||||
array("srcdata" => "user_regdate", "e107" => "user_join", "type" => "INT"),
|
||||
array("srcdata" => "user_posts", "e107" => "user_forums", "type" => "INT"),
|
||||
array("srcdata" => "user_level", "e107" => "user_admin", "type" => "INT"),
|
||||
array("srcdata" => "user_lastvisit","e107" => "user_lastvisit", "type" => "INT"),
|
||||
// Rest of these added by McFly
|
||||
array("srcdata" => "null", "e107" => "user_prefs", "type" => "INT", "value" => 0),
|
||||
array("srcdata" => "null", "e107" => "user_new", "type" => "INT", "value" => 0),
|
||||
array("srcdata" => "null", "e107" => "user_realm", "type" => "INT", "value" => 0),
|
||||
array("srcdata" => "null", "e107" => "user_class", "type" => "INT", "value" => 0),
|
||||
array("srcdata" => "null", "e107" => "user_viewed", "type" => "INT", "value" => 0),
|
||||
// This one changed from McFly's code to try and get null string if non-admin
|
||||
array("srcdata" => "user_level", "e107" => "user_perms", "type" => "INT", "sproc" => "zeronull") );
|
||||
return $usersArray;
|
||||
}
|
||||
|
||||
function convertParents($catid)
|
||||
{
|
||||
$parentArray = array(
|
||||
array("srcdata" => "cat_id", "e107" => "forum_id", "type" => "INT", "value" => $catid),
|
||||
array("srcdata" => "cat_title", "e107" => "forum_name", "type" => "STRING"),
|
||||
array("srcdata" => "cat_order", "e107" => "forum_order", "type" => "INT"),
|
||||
// Rest of these added by McFly
|
||||
array("srcdata" => "cat_desc", "e107" => "forum_description", "type" => "STRING"),
|
||||
array("srcdata" => "null", "e107" => "forum_moderators", "type" => "INT", "value" => 254)
|
||||
);
|
||||
return $parentArray;
|
||||
}
|
||||
|
||||
function convertForums($catid)
|
||||
{
|
||||
$forumArray = array(
|
||||
array("srcdata" => "forum_id", "e107" => "forum_id", "type" => "INT"),
|
||||
array("srcdata" => "cat_id", "e107" => "forum_parent", "type" => "STRING", "value" => $catid),
|
||||
array("srcdata" => "forum_name", "e107" => "forum_name", "type" => "STRING"),
|
||||
array("srcdata" => "forum_desc", "e107" => "forum_description", "type" => "STRING"),
|
||||
array("srcdata" => "forum_order", "e107" => "forum_order", "type" => "INT"),
|
||||
array("srcdata" => "forum_topics", "e107" => "forum_threads", "type" => "INT"),
|
||||
array("srcdata" => "forum_posts", "e107" => "forum_replies", "type" => "INT"),
|
||||
// array("srcdata" => "null", "e107" => "forum_moderators", "type" => "STRING")
|
||||
// Previous line replaced with this on the basis that McFly knows best
|
||||
array("srcdata" => "null", "e107" => "forum_moderators", "type" => "INT", "value" => 254)
|
||||
);
|
||||
return $forumArray;
|
||||
}
|
||||
|
||||
|
||||
//function convertTopics($poster)
|
||||
// Changed by McFly
|
||||
function convertTopics()
|
||||
{
|
||||
$topicArray = array(
|
||||
array("srcdata" => "forum_id", "e107" => "thread_forum_id", "type" => "INT"),
|
||||
array("srcdata" => "topic_title", "e107" => "thread_name", "type" => "STRING"),
|
||||
array("srcdata" => "post_text", "e107" => "thread_thread", "type" => "STRING", "default" => "", "sproc" => "usebb,phpbb,bblower"),
|
||||
// array("srcdata" => "topic_poster", "e107" => "thread_user", "type" => "INT"),
|
||||
// Previous line replaced by next - GAT McFly
|
||||
array("srcdata" => "topic_poster", "e107" => "thread_user", "type" => "STRING"),
|
||||
array("srcdata" => "null", "e107" => "thread_active", "type" => "INT", "value" => 1),
|
||||
array("srcdata" => "topic_time", "e107" => "thread_datestamp", "type" => "INT"),
|
||||
array("srcdata" => "topic_views", "e107" => "thread_views", "type" => "INT"),
|
||||
array("srcdata" => "topic_replies", "e107" => "thread_total_replies", "type" => "INT"),
|
||||
array("srcdata" => "null", "e107" => "thread_parent", "type" => "INT", "value" => 0),
|
||||
);
|
||||
return $topicArray;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function convertForumPosts($parent_id, $poster)
|
||||
{
|
||||
$postArray = array(
|
||||
array("srcdata" => "post_text", "e107" => "thread_thread", "type" => "STRING", "default" => "", "sproc" => "usebb,phpbb,bblower"),
|
||||
array("srcdata" => "forum_id", "e107" => "thread_forum_id", "type" => "INT"),
|
||||
array("srcdata" => "post_time", "e107" => "thread_datestamp", "type" => "INT"),
|
||||
array("srcdata" => "topic_views", "e107" => "thread_views", "type" => "INT"),
|
||||
array("srcdata" => "post_time", "e107" => "thread_lastpost", "type" => "INT"),
|
||||
// array("srcdata" => "poster_id", "e107" => "thread_user", "type" => "INT"),
|
||||
// Previous line replaced by next - GAT McFly
|
||||
array("srcdata" => "poster_id", "e107" => "thread_user", "type" => "STRING"),
|
||||
array("srcdata" => "post_subject", "e107" => "thread_name", "type" => "STRING"),
|
||||
array("srcdata" => "null", "e107" => "thread_parent", "type" => "INT", "value" => $parent_id),
|
||||
);
|
||||
return $postArray;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
-- --------------------------------------------------------
|
||||
PHPBB uses three tables to record a poll. Looks wildly different to E107!
|
||||
--
|
||||
-- Table structure for table `_phpbb_vote_desc`
|
||||
--
|
||||
|
||||
CREATE TABLE `_phpbb_vote_desc` (
|
||||
`vote_id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`topic_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`vote_text` text NOT NULL,
|
||||
`vote_start` int(11) NOT NULL default '0',
|
||||
`vote_length` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`vote_id`),
|
||||
KEY `topic_id` (`topic_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `_phpbb_vote_results`
|
||||
--
|
||||
|
||||
CREATE TABLE `_phpbb_vote_results` (
|
||||
`vote_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`vote_option_id` tinyint(4) unsigned NOT NULL default '0',
|
||||
`vote_option_text` varchar(255) NOT NULL default '',
|
||||
`vote_result` int(11) NOT NULL default '0',
|
||||
KEY `vote_option_id` (`vote_option_id`),
|
||||
KEY `vote_id` (`vote_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `_phpbb_vote_voters`
|
||||
--
|
||||
|
||||
CREATE TABLE `_phpbb_vote_voters` (
|
||||
`vote_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`vote_user_id` mediumint(8) NOT NULL default '0',
|
||||
`vote_user_ip` char(8) NOT NULL default '',
|
||||
KEY `vote_id` (`vote_id`),
|
||||
KEY `vote_user_id` (`vote_user_id`),
|
||||
KEY `vote_user_ip` (`vote_user_ip`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
*/
|
||||
|
||||
?>
|
393
e107_files/import/phpnuke.php
Normal file
393
e107_files/import/phpnuke.php
Normal file
@@ -0,0 +1,393 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| <20>Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_files/import/phpnuke.php,v $
|
||||
| $Revision: 1.1.1.1 $
|
||||
| $Date: 2006-12-02 04:33:38 $
|
||||
| $Author: mcfly_e107 $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
require_once("../../class2.php");
|
||||
require_once(e_ADMIN."auth.php");
|
||||
|
||||
define("ASYSTEM", "php-nuke");
|
||||
define("DEFAULTPREFIX", "nuke_");
|
||||
|
||||
if(!isset($_POST['do_conversion']))
|
||||
{
|
||||
|
||||
$text = "
|
||||
<table style='width: 100%;' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align: center; margin-left: auto; margin-right: auto;'>
|
||||
This script will import your ".ASYSTEM." database to e107. <br /><br /><br /><b>*** IMPORTANT ***<br />Running this script will empty most of your e107 tables - make sure you have a backup before continuing!</b>
|
||||
|
||||
<br /><br /><br />\n
|
||||
|
||||
|
||||
<form method='post' action='".e_SELF."'>
|
||||
Please enter the details for your ".ASYSTEM." database ...<br /><br />
|
||||
|
||||
<table style='width: 50%;' class='fborder'>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Host </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='dbHost' size='30' value='localhost' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Username </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='dbUsername' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Password </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='dbPassword' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Database </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='dbDatabase' size='30' value='' maxlength='100' />
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width: 50%; text-align: right;'>Table Prefix </td>
|
||||
<td style='width: 50%; text-align: left;'><input class='tbox' type='text' name='dbPrefix' size='30' value='".DEFAULTPREFIX."' maxlength='100' />
|
||||
</tr>
|
||||
</table>
|
||||
<br /><br />
|
||||
<input class='button' type='submit' name='do_conversion' value='Continue' />
|
||||
</td>
|
||||
</tr>
|
||||
</table>";
|
||||
|
||||
$ns -> tablerender(ASYSTEM." to e107 Conversion Script", $text);
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
if(!isset($_POST['dbHost']) || !isset($_POST['dbUsername']) || !isset($_POST['dbPassword']) || !isset($_POST['dbDatabase']))
|
||||
{
|
||||
echo "Field(s) left blank, please go back and re-enter values.";
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
if(!isset($_POST['dbPrefix']))
|
||||
{
|
||||
$nukePrefix = "";
|
||||
}
|
||||
|
||||
extract($_POST);
|
||||
|
||||
echo "<table style='width: 100%;' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align: center; margin-left: auto; margin-right: auto;'>
|
||||
Attempting to connect to ".ASYSTEM." database [ {$dbDatabase} @ {$dbHost} ] ...<br />\n";
|
||||
flush();
|
||||
|
||||
$ASystemConnection = mysql_connect($dbHost, $dbUsername, $dbPassword, TRUE);
|
||||
if(!mysql_select_db($dbDatabase, $ASystemConnection))
|
||||
{
|
||||
goError("Error! Cound not connect to ".ASYSTEM." database. Please go back to the previous page and check your settings");
|
||||
}
|
||||
|
||||
$e107Connection = mysql_connect($mySQLserver, $mySQLuser, $mySQLpassword, TRUE);
|
||||
if(!mysql_select_db($mySQLdefaultdb, $e107Connection))
|
||||
{
|
||||
goError("Error! Cound not connect to e107 database.");
|
||||
}
|
||||
|
||||
echo "Successfully connected to ".ASYSTEM." and e107 databases ...<br><br />";
|
||||
|
||||
/* ++++++++++++++ USERS ++++++++++++++ */
|
||||
$result = mysql_query("SELECT * FROM {$dbPrefix}users", $ASystemConnection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access ".$dbPrefix."users table.");
|
||||
}
|
||||
$pass = 0; $fail = 0;
|
||||
while($aResult = mysql_fetch_array($result))
|
||||
{
|
||||
$aArray = convertUsers();
|
||||
$query = createQuery($aArray, $aResult, $mySQLprefix."user");
|
||||
if(mysql_query($query, $e107Connection)){$pass++;}else{$fail++;}
|
||||
flush();
|
||||
}
|
||||
echo "Inserted $pass users into database ($fail fails).<br />";
|
||||
/* +++++++++++++++ END +++++++++++++++ */
|
||||
|
||||
/* ++++++++++++++ NEWS ++++++++++++++ */
|
||||
$query = "SELECT * FROM {$dbPrefix}stories
|
||||
LEFT JOIN {$dbPrefix}users ON {$dbPrefix}stories.aid={$dbPrefix}users.username
|
||||
ORDER BY {$dbPrefix}stories.sid ASC";
|
||||
|
||||
$result = mysql_query($query, $ASystemConnection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access ".$dbPrefix."stories table.");
|
||||
}
|
||||
$pass = 0; $fail = 0;
|
||||
while($aResult = mysql_fetch_array($result))
|
||||
{
|
||||
$aArray = convertNews();
|
||||
$query = createQuery($aArray, $aResult, $mySQLprefix."news");
|
||||
if(mysql_query($query, $e107Connection)){$pass++;}else{$fail++;}
|
||||
flush();
|
||||
}
|
||||
echo "Inserted $pass news items into database ($fail fails).<br />";
|
||||
/* +++++++++++++++ END +++++++++++++++ */
|
||||
|
||||
/* ++++++++++++++ BANLIST ++++++++++++++ */
|
||||
$result = mysql_query("SELECT * FROM {$dbPrefix}banned_ip", $ASystemConnection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access ".$dbPrefix."banned_ip table.");
|
||||
}
|
||||
$pass = 0; $fail = 0;
|
||||
while($aResult = mysql_fetch_array($result))
|
||||
{
|
||||
$aArray = convertBans();
|
||||
$query = createQuery($aArray, $aResult, $mySQLprefix."banlist");
|
||||
if(mysql_query($query, $e107Connection)){$pass++;}else{$fail++;}
|
||||
flush();
|
||||
}
|
||||
echo "Inserted $pass banned IP addresses into database ($fail fails).<br />";
|
||||
/* +++++++++++++++ END +++++++++++++++ */
|
||||
|
||||
/* ++++++++++++++ CUSTOM PAGES ++++++++++++++ */
|
||||
$result = mysql_query("SELECT * FROM {$dbPrefix}pages", $ASystemConnection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access ".$dbPrefix."pages table.");
|
||||
}
|
||||
$pass = 0; $fail = 0;
|
||||
while($aResult = mysql_fetch_array($result))
|
||||
{
|
||||
$aArray = convertPages();
|
||||
$query = createQuery($aArray, $aResult, $mySQLprefix."page");
|
||||
if(mysql_query($query, $e107Connection)){$pass++;}else{$fail++;}
|
||||
flush();
|
||||
}
|
||||
echo "Inserted $pass custom pages into database ($fail fails).<br />";
|
||||
/* +++++++++++++++ END +++++++++++++++ */
|
||||
|
||||
|
||||
/* ++++++++++++++ FORUMS ++++++++++++++
|
||||
|
||||
$result = mysql_query("SHOW COLUMNS FROM {$mySQLprefix}forum", $e107Connection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access the e107 'forum' table - have you installed the e107 Forum System plugin?");
|
||||
}
|
||||
$result = mysql_query("SELECT * FROM {$dbPrefix}bbforums ORDER BY forum_order ASC", $ASystemConnection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access ".$dbPrefix."bbforums table.");
|
||||
}
|
||||
$pass = 0; $fail = 0;
|
||||
while($aResult = mysql_fetch_array($result))
|
||||
{
|
||||
$aArray = convertForums();
|
||||
$query = createQuery($aArray, $aResult, $mySQLprefix."forum");
|
||||
if(mysql_query($query, $e107Connection)){$pass++;}else{$fail++;}
|
||||
flush();
|
||||
}
|
||||
|
||||
$query = "INSERT INTO {$mySQLprefix}forum VALUES (0, 'Default Forum Parent', 'This parent has been created by the ".ASYSTEM." conversion script, you can edit it from admin -> forums', '0', '0', '".time()."', '', '0', '0', '', '', '', '0', '0')";
|
||||
mysql_query($query, $e107Connection);
|
||||
$id = mysql_insert_id();
|
||||
$query = "UPDATE {$mySQLprefix}forum SET forum_parent='$id' WHERE forum_name!='Default Forum Parent'";
|
||||
mysql_query($query, $e107Connection);
|
||||
|
||||
echo "Inserted $pass forums into database ($fail fails).<br />";
|
||||
/* +++++++++++++++ END +++++++++++++++ */
|
||||
|
||||
|
||||
/* ++++++++++++++ FORUM POSTS ++++++++++++++
|
||||
$query = "SELECT * FROM {$dbPrefix}bbposts
|
||||
LEFT JOIN {$dbPrefix}bbposts_text ON {$dbPrefix}bbposts.post_id={$dbPrefix}bbposts_text.post_id
|
||||
LEFT JOIN {$dbPrefix}users ON {$dbPrefix}bbposts.poster_id={$dbPrefix}users.user_id
|
||||
ORDER BY {$dbPrefix}bbposts.post_id ASC";
|
||||
|
||||
$result = mysql_query($query, $ASystemConnection);
|
||||
if(!$result)
|
||||
{
|
||||
goError("Error! Unable to access ".$dbPrefix."stories table.");
|
||||
}
|
||||
$pass = 0; $fail = 0;
|
||||
while($aResult = mysql_fetch_array($result))
|
||||
{
|
||||
$aArray = convertForumPosts();
|
||||
$query = createQuery($aArray, $aResult, $mySQLprefix."forum_t");
|
||||
$poster = ($aResult['poster_id'] == -1 ? "0.".($aResult['username'] ? $aResult['username'] : "Anonymous") : $aResult['poster_id'].".".$aResult['username']);
|
||||
$query = str_replace("''", "'$poster'", $query);
|
||||
if(mysql_query($query, $e107Connection)){$pass++;}else{$fail++;}
|
||||
flush();
|
||||
}
|
||||
echo "Inserted $pass forum posts into database ($fail fails).<br />";
|
||||
+++++++++++++++ END +++++++++++++++ */
|
||||
|
||||
|
||||
|
||||
echo "</td></tr></table>";
|
||||
|
||||
require_once(e_ADMIN."footer.php");
|
||||
|
||||
|
||||
function goError($error)
|
||||
{
|
||||
echo "<b>{$error}</b></td></tr></table>";
|
||||
require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
function convertUsers()
|
||||
{
|
||||
$rArray = array(
|
||||
array("asystem" => "user_id", "e107" => "user_id", "type" => "INT"),
|
||||
array("asystem" => "name", "e107" => "user_login", "type" => "STRING"),
|
||||
array("asystem" => "username", "e107" => "user_name", "type" => "STRING"),
|
||||
array("asystem" => "username", "e107" => "user_loginname", "type" => "STRING"),
|
||||
array("asystem" => "user_password", "e107" => "user_password", "type" => "STRING"),
|
||||
array("asystem" => "user_email", "e107" => "user_email", "type" => "STRING"),
|
||||
array("asystem" => "user_avatar", "e107" => "user_image", "type" => "STRING"),
|
||||
array("asystem" => "user_regdate", "e107" => "user_join", "type" => "STRTOTIME"),
|
||||
array("asystem" => "user_sig", "e107" => "user_signature", "type" => "STRING"),
|
||||
array("asystem" => "user_viewemail", "e107" => "user_hideemail", "type" => "INT"),
|
||||
array("asystem" => "user_posts", "e107" => "user_forums", "type" => "INT"),
|
||||
array("asystem" => "user_lastvisit", "e107" => "user_lastvisit", "type" => "INT"),
|
||||
array("asystem" => "user_timezone", "e107" => "user_timezone", "type" => "STRING")
|
||||
);
|
||||
return $rArray;
|
||||
}
|
||||
|
||||
function convertNews()
|
||||
{
|
||||
$rArray = array(
|
||||
array("asystem" => "sid", "e107" => "news_id", "type" => "INT"),
|
||||
array("asystem" => "user_id", "e107" => "news_author", "type" => "INT"),
|
||||
array("asystem" => "title", "e107" => "news_title", "type" => "STRING"),
|
||||
array("asystem" => "time", "e107" => " news_datestamp", "type" => "STRTOTIME"),
|
||||
array("asystem" => "hometext", "e107" => " news_body", "type" => "STRING"),
|
||||
array("asystem" => "bodytext", "e107" => " news_extended", "type" => "STRING"),
|
||||
array("asystem" => "comments", "e107" => " news_comment_total", "type" => "INT"),
|
||||
array("asystem" => "catid", "e107" => " news_category", "type" => "INT")
|
||||
);
|
||||
return $rArray;
|
||||
}
|
||||
|
||||
function convertBans()
|
||||
{
|
||||
$rArray = array(
|
||||
array("asystem" => "ip_address", "e107" => " banlist_ip", "type" => "STRING"),
|
||||
array("asystem" => "reason", "e107" => "banlist_reason", "type" => "STRING")
|
||||
);
|
||||
return $rArray;
|
||||
}
|
||||
|
||||
|
||||
function convertPages()
|
||||
{
|
||||
$rArray = array(
|
||||
array("asystem" => "pid", "e107" => "page_id", "type" => "INT"),
|
||||
array("asystem" => "title", "e107" => "page_title", "type" => "STRING"),
|
||||
array("asystem" => "text", "e107" => "page_text", "type" => "STRING"),
|
||||
array("asystem" => "date", "e107" => "page_datestamp", "type" => "STRTOTIME")
|
||||
);
|
||||
return $rArray;
|
||||
}
|
||||
|
||||
/*
|
||||
function convertForums()
|
||||
{
|
||||
$rArray = array(
|
||||
array("asystem" => "forum_id", "e107" => "forum_id", "type" => "INT"),
|
||||
array("asystem" => "forum_name", "e107" => "forum_name", "type" => "STRING"),
|
||||
array("asystem" => "forum_desc", "e107" => "forum_description", "type" => "STRING"),
|
||||
array("asystem" => "forum_topics", "e107" => "forum_threads", "type" => "INT"),
|
||||
array("asystem" => "forum_posts", "e107" => "forum_replies", "type" => "INT"),
|
||||
array("asystem" => "null", "e107" => "forum_postclass", "type" => "INT", "value" => 253),
|
||||
array("asystem" => "null", "e107" => "forum_moderators", "type" => "INT", "value" => 2),
|
||||
array("asystem" => "null", "e107" => "forum_class", "type" => "INT", "value" => 0)
|
||||
);
|
||||
return $rArray;
|
||||
}
|
||||
|
||||
|
||||
function convertForumPosts()
|
||||
{
|
||||
$rArray = array(
|
||||
array("asystem" => "post_id", "e107" => "thread_id", "type" => "INT"),
|
||||
array("asystem" => "topic_id", "e107" => "thread_parent", "type" => "INT"),
|
||||
array("asystem" => "forum_id", "e107" => "thread_forum_id", "type" => "INT"),
|
||||
array("asystem" => "null", "e107" => "thread_active", "type" => "INT", "value" => 1),
|
||||
array("asystem" => "poster", "e107" => "thread_user", "type" => "STRING"),
|
||||
array("asystem" => "post_time", "e107" => "thread_datestamp", "type" => "INT"),
|
||||
array("asystem" => "post_subject", "e107" => "thread_name", "type" => "STRING"),
|
||||
array("asystem" => "post_text", "e107" => "thread_thread", "type" => "STRING")
|
||||
);
|
||||
return $rArray;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function createQuery($convertArray, $dataArray, $table)
|
||||
{
|
||||
global $tp;
|
||||
|
||||
$columns = "(";
|
||||
$values = "(";
|
||||
|
||||
|
||||
foreach($convertArray as $convert)
|
||||
{
|
||||
if($convert['type'] == "STRING")
|
||||
{
|
||||
$dataArray[$convert['asystem']] = preg_replace("#\[.*\]#", "", $tp -> toDB($dataArray[$convert['asystem']]));
|
||||
}
|
||||
else if($convert['type'] == "STRTOTIME")
|
||||
{
|
||||
$dataArray[$convert['asystem']] = strtotime($dataArray[$convert['asystem']]);
|
||||
}
|
||||
|
||||
$columns .= $convert['e107'].",";
|
||||
$values .= (array_key_exists("value", $convert) ? "'".$convert['value']."'," : "'".$dataArray[$convert['asystem']]."',");
|
||||
}
|
||||
|
||||
|
||||
$columns = substr($columns, 0, -1).")";
|
||||
$values = substr($values, 0, -1).")";
|
||||
|
||||
return "INSERT INTO $table $columns VALUES $values";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
Reference in New Issue
Block a user