Previous Thread
Next Thread
Print Thread
Rate Thread
Joined: Nov 2002
Posts: 1
Lurker
Lurker
Offline
Joined: Nov 2002
Posts: 1
I would like to see if anyone is interested in giving me a quote for a script to port data from webbbs 5.11 found at

http://awsd.com/scripts/webbbs/

to ubb.threads.

I wanted to do it myself, but my knowledge of php is limited as is my time. Please drop me an email at [][email protected].[/]

Sponsored Links
Joined: Jun 2002
Posts: 303
Enthusiast
Enthusiast
Joined: Jun 2002
Posts: 303
Hi

This is the script I was telling you about via PM. It's originally for converting webbbs to cyboards. In the next post I will have what I used to convert the cyboards over to threads (keep in mind that this is written with a postnuke membership in mind.. Be farwarned, it ain't pretty, but it served my purposes.

Take the two and compare them. Between them you should be able to come up with something.

On another note, the first script was taken from a webbs to phorum script. I thought I saw somewhere a phorum to UBBT script somewhere on the UBB site. You might check that out as well.

If you need further assistance, I'll do what I can. Here's the webbbs2cyboards.php script:

code:
<?php

/*

WebBBS to Cyboard 1.25 Converter
Original script was for converting WebBBS to Phorum
Modified for Cyboards by Mark Summerlin
Thanks to Jason Birch for writing the original for Phorum conversion
Version: 1.0
Applies to:
WebBBS Version 4.33 (and maybe others...)
Cyboard Version 1.25b

This little script pulls the contents of WebBBS
text files and writes them to a SQL file for easy
addition to previously created forum tables. It
resets the ID ordering (starting at 1) and creates
thread numbers.

mysql [parameters] < tablename.sql

Bugz:

- If the parent of a post has been deleted, its
thread will be set it its ID. Not sure how to
work around this one...

- No error checking for files exist (read or write)

*/

// *************** Config ******************

// Be sure to include the trailing slash on these
// directories. The script will crash if you do not.

// Where are the WebBBS files.
$strWebBBSLocation = "./bbs0/";

// Where do you want the output stored?
$strOutputDir = "./testbbs/";

// what is the main table name for the Cyboard?
$strCyboardTable = "board_data";

// ************** End Config ****************



// Set up char month to num month translation array

$aryMonths = array( "January" => "01",
"February" => "02",
"March" => "03",
"April" => "04",
"May" => "05",
"June" => "06",
"July" => "07",
"August" => "08",
"September" => "09",
"October" => "10",
"November" => "11",
"December" => "12"
);

// Initialize an array to hold the input file information
$aryInput[] = array ( 'ID' => 0,
'PREVIOUS' => 0,
'THREAD' => 0
) ;

// Build an array of numeric files in current directory
$dirCurrent = dir("$strWebBBSLocation");
$c = 0;
while ($strTemp = $dirCurrent->read() ) {
if ( (ereg_replace("[^0-9]","",$strTemp) == $strTemp) &&
( !empty ($strTemp) ) ) {
$aryFiles[$c] = (int) $strTemp;
$c++;
}
}
$dirCurrent->close();

// sort the array
sort ($aryFiles);

// set up output names
$strMainFile = $strOutputDir.$strCyboardTable.".sql";
$strCyboardBodies = $strCyboardTable."_bodies";
$strBodiesFile = $strOutputDir.$strCyboardBodies.".sql";

print "Processing WebBBS files into sql statements";

$fpCyboard = fopen($strMainFile, "w");

// Grab contents of files into an array
for ($b=0 ; $b < count($aryFiles); $b++) {
$strFile = $aryFiles[$b];
// Set ID to current record counter
$aryInput[$strFile]['ID'] = $b + 1;
$body = "";
$aryCurrFile = file ($strWebBBSLocation.$strFile);
for ($a = 0; $a < count($aryCurrFile); $a++ ) {
$strLine = $aryCurrFile[$a];
// pull lines into either specified tags or the body
if ( ereg ("^SUBJECT>",$strLine) ||
ereg ("^ADMIN>",$strLine) ||
ereg ("^POSTER>",$strLine) ||
ereg ("^EMAIL>",$strLine) ||
ereg ("^DATE>",$strLine) ||
ereg ("^EMAILNOTICES>",$strLine) ||
ereg ("^IP_ADDRESS>",$strLine) ||
ereg ("^PASSWORD>",$strLine) ||
ereg ("^NEXT>",$strLine) ||
ereg ("^IMAGE>",$strLine) ||
ereg ("^LINKNAME>",$strLine) ||
ereg ("^LINKURL>",$strLine) ) {
$tag = strtolower(trim(substr($strLine,0,strpos($strLine,">"))));
$value = trim(substr($strLine,strpos($strLine,">") + 1,strlen($strLine) - 1));
$$tag = $value;
} elseif ( ereg ("^PREVIOUS>",$strLine) ) {
$value = trim(substr($strLine,strpos($strLine,">") + 1,strlen($strLine) - 1));
$aryInput[$strFile]['PREVIOUS'] = $value;
} else {
$body .= trim($strLine);
}
}
// clean up body to format used by Cyboard
$body = trim(ereg_replace('<P>',"",ereg_replace('<BR>',"\n",$body)));
// attempt to assign threads
if (empty ($aryInput[$strFile]['PREVIOUS'])) {
$aryInput[$strFile]['THREAD'] = $aryInput[$strFile]['ID'];
} else {
$aryInput[$strFile]['THREAD'] = $aryInput[($aryInput[$strFile]['PREVIOUS'])]['THREAD'] ;
$aryInput[$strFile]['PREVIOUS'] = $aryInput[($aryInput[$strFile]['PREVIOUS'])]['ID'] ;
}
// trim IP_ADDRESS to actual IP_ADDRESS.
$ip_address = trim(substr($ip_address,strrpos($ip_address,":")+1,strlen($ip_address)));
// If you care about host names (and don't mind the slowdown) comment this line in:
// $ip_address = gethostbyaddress($ip_address);
// Fix up date format
// Wednesday, 10 February 1999, at 7:52 p.m. --> YYYY-MM-DD HH:MM:SS
$tmpDate = trim(ereg_replace(',','',$date));
list ($junk,$day,$cmon,$year,$junk2,$time,$tod) = explode (" ",$tmpDate);
list ($hour,$minute) = explode (":",$time);
$month = $aryMonths["$cmon"];
if ( substr($tod,0,1) == "p") { $hour += 12; }
// $datestamp = date("Y-m-d H:i:s",mktime($hour,$minute,0,$month,$day,$year));
$datestamp = date("Y-m-d H:i:s",mktime(0,0,$date -18000,1,1,1970));
// ouput values to screen (debug only)
print " .";
// set up and write insert commands to sql files
$id = $aryInput[$strFile]['ID'];
$thread = $aryInput[$strFile]['THREAD'];
if (empty ($thread)) { $thread = $id; }
$parent = $aryInput[$strFile]['PREVIOUS'];
$subject = addslashes($subject);
$body = addslashes(stripslashes($body));
$poster = addslashes($poster);
$linkname = addslashes($linkname);
$email_reply = 'N';
$good = fputs($fpCyboard, "Insert Into $strCyboardTable (id, board, thread, parent, author, email, subject, body, datestamp, ip, host, vipflag, link, linkname, image, locked, sticky, email_replies, hide_email) values ('$id', '1', '$thread', '$parent', '$poster', '$email', '$subject', '$body', '$datestamp', '$ip_address', '', '', '$linkurl', '$linkname', '$image', '0', '0', '0', '0');\n");
}

$null = fclose($fpCyboard);

print "Done!";

?>




Joined: Jun 2002
Posts: 303
Enthusiast
Enthusiast
Joined: Jun 2002
Posts: 303
Here's the cyboards2threads.php script: (again, keep in mind this is set up for MY specific situation )

code:
<?
// author : Mark Summerlin aka fishtails
// cyboards2threads.php imports cyboard messages into UBBthreads
// WARNING!!!!! Backup your database before running this script!
// No warranties are expressed or implied. USE AT YOUR OWN RISK
// this script assumes that you have installed UBBThreads in the same database as your postnuke installation.
// Set variables
$host = "localhost"; // usually localhost
$dbuname = "root"; // db username
$dbpass = ""; // db password
$dbname = "ubbthread"; // name of the database
$board_name = "test"; // this is the name (keyword) of the forum you want entered into
// this assumes that you are putting ALL messages into ONE forum. If you have more than one forum and want
// them entered correctly, you will have to modify this script to do so. Otherwise use the move feature in Threads

// THAT'S ALL OF THE SETTINGS After running this script, DELETE IT FROM YOUR SERVER!

function port_cyboards_posts() {
GLOBAL $host,$dbuname,$dbpass,$dbname,$board_name;

$db_conn = mysql_connect("$host", "$dbuname", "$dbpass");
mysql_select_db("$dbname", $db_conn);

/*$query = "ALTER TABLE board_data CHANGE datestamp datestamp VARCHAR (14)";
mysql_query($query);
$query = "UPDATE board_data SET author = 'CaptDaveSipler' WHERE author = 'Capt Dave Sipler\'s Sport Fishing'";
mysql_query($query);
$query = "UPDATE board_data SET author = 'CaptDaveSipler' WHERE author = 'Capt. Dave Sipler\'s Sport Fishing'";
mysql_query($query);
$query = "UPDATE board_data SET author = 'CaptDaveSipler' WHERE author = 'Capt Dave Sipler Sport Fishing'";
mysql_query($query);
$query = "UPDATE board_data SET author = 'JiminGa' WHERE author = 'Jim fm GA'";
mysql_query($query);
$query = "UPDATE board_data SET author = 'PelicanPirate' WHERE author = 'Pelican Pirate'";
mysql_query($query);
$query = "UPDATE board_data SET author = 'Capt_Don' WHERE author = 'Capt Don'";
mysql_query($query);
$query = "UPDATE board_data SET author = 'Bill_Sax' WHERE author = 'Bill Sax'";
mysql_query($query);
*/
$result = mysql_query("SELECT id, board, thread, parent, author, email, subject, body, UNIX_TIMESTAMP(datestamp) as datestamp, ip, host, vipflag, link, linkname, image, locked, sticky, email_replies, hide_email, counter FROM board_data LIMIT 5000,500", $db_conn);

for ($x= 0; $x < mysql_num_rows($result); $x++)
{
$row = mysql_fetch_assoc($result);
//$poster = $row[author];
$poster = addslashes($row[author]);

//if ($poster = "Capt Dave Sipler's Sport Fishing") { $poster = "CaptDaveSipler"; }
//elseif ($poster = "Capt. Dave Sipler's Sport Fishing") { $poster = "CaptDaveSipler"; }
// Capt Dave Sipler Sport Fishing
//else {$poster = addslashes($row[author]);}

$dateposted = $row[datestamp];
$B_Parent = $row[parent];
$B_Board = $board_name;
$B_Number = $row[id];
$B_Main = $row[thread];
$B_Posted = $row[datestamp]; // need to convert the dates here
//$B_Last_Post = $row[datestamp]; // another timestamp. is it needed for the conversion?
$B_IP = addslashes($row[ip]);
$B_Subject = addslashes($row[subject]);
$body = stripslashes($row[body]);
if ($row[image] != "") {$image = "<img src="".$row[image].""";} else {$image = "";}
if ($row[link] != "") {$link = "<a href="".$row[link]."" target="_blank">".$row[linkname]."</a>";} else {$link = "";}
$B_Body = "".addslashes($row[body])."<br><br>".addslashes($link)."<br><br>".addslashes($image)."";
$B_Mail = "O";
$B_File = "";
$B_Kept = "";
$B_Status = "O";
$B_Approved = "yes";
$B_Picture = "";
$B_Icon = "book.gif";
$B_UTitle = "";
$B_Counter = 0;
$B_Sticky = "";
$B_Replies = ""; // not sure how to do this one
$B_Poll = "";
$B_Convert = "markup";
$B_Signature = "";
$B_LastEdit = "";
$B_LastEditBy = "";
$B_Rating = "";
$B_Rates = "";
$B_RealRating = "";
echo "<br>$dateposted";

// see if this is a member
$ismember = mysql_query("SELECT * from w3t_users WHERE U_Username = '$poster'");

if ($ismember && (mysql_num_rows($ismember)>0)) // if the author is a member...
{
$memberrow = mysql_fetch_assoc($ismember); // get the member info from the database
$oldtotalposts = $memberrow[U_Totalposts]; // not sure if this is needed, but.....
$totalposts = ($oldtotalposts+1);
$update_result = mysql_query("UPDATE w3t_users SET U_Totalposts=U_Totalposts+1, U_Laston = '$B_Posted' WHERE U_Username = '$poster'"); // update members total posts by adding 1
if ($update_result == TRUE)
{echo "$poster has posted $totalposts messages.<br>";}
else
{echo "<font color=red>The member total posts could not be updated</font><br>";}




$B_Username = $poster; //addslashes($row[author]); // assign the member name
$B_Reged = "y"; // indicate author is indeed a member
$B_PosterId = $memberrow[U_Number];

}
else
{ // since the author is not a registered member
echo "$poster is not a registered member!<br>";
$B_Username = $poster; //addslashes($row[author]); // assign the author name
$B_Reged = "n"; // indicate that the author is not a member
$B_PosterId = 1;
}
if ($B_Parent == 0)
{
$B_ParentUser = $poster;
$B_Topic = 1;
}
else
{
$B_ParentUser = $poster;
$B_Topic = 0;
}

$post_added = mysql_query("INSERT INTO w3t_posts (B_Board, B_Number, B_Parent, B_Main, B_Posted, B_Last_Post, B_Username, B_IP, B_Subject, B_Body, B_Mail, B_File, B_Kept, B_Status, B_Approved, B_Picture, B_Icon, B_Color, B_Reged, B_UTitle, B_Counter, B_Sticky, B_Replies, B_Poll, B_ParentUser, B_UStatus, B_Topic, B_Convert, B_Signature, B_LastEdit, B_LastEditBy, B_PosterId, B_Rating, B_Rates, B_RealRating)
VALUES ('$B_Board','$B_Number','$B_Parent','$B_Main','$B_Posted','$B_Posted','$B_Username','$B_IP','$B_Subject','$B_Body','$B_Mail','$B_File','$B_Kept','$B_Status','$B_Approved','$B_Picture','$B_Icon','$B_Color','$B_Reged','$B_UTitle','$B_Counter','$B_Sticky','$B_Replies','$B_Poll','$B_ParentUser','$B_UStatus','$B_Topic','$B_Convert','$B_Signature','$B_LastEdit','$B_LastEditBy','$B_PosterId','$B_Rating','$B_Rates','$B_RealRating')");

if ($B_Parent > 0)
{
$query = "UPDATE w3t_Posts
SET B_Last_Post = '$B_Posted',
B_Replies = B_Replies+1
WHERE B_Main = '$B_Main'
";
mysql_query($query);
}


if ($post_added == TRUE)
{echo "Message number $B_Number has been added.<br>";}
else
{echo "<font color=red>Message number $B_Number could not be added.</font><br>";}

}


mysql_close($db_conn);
echo "<br><br>DONE";

}

port_cyboards_posts();

?>



Link Copied to Clipboard
Donate Today!
Donate via PayPal

Donate to UBBDev today to help aid in Operational, Server and Script Maintenance, and Development costs.

Please also see our parent organization VNC Web Services if you're in the need of a new UBB.threads Install or Upgrade, Site/Server Migrations, or Security and Coding Services.
Recommended Hosts
We have personally worked with and recommend the following Web Hosts:
Stable Host
bluehost
InterServer
Visit us on Facebook
Member Spotlight
hatter
hatter
USA
Posts: 69
Joined: January 2001
Forum Statistics
Forums63
Topics37,573
Posts293,925
Members13,849
Most Online5,166
Sep 15th, 2019
Today's Statistics
Currently Online
Topics Created
Posts Made
Users Online
Birthdays
Top Posters
AllenAyres 21,079
JoshPet 10,369
LK 7,394
Lord Dexter 6,708
Gizmo 5,833
Greg Hard 4,625
Top Posters(30 Days)
Top Likes Received
isaac 82
Gizmo 20
Brett 7
WebGuy 2
Morgan 2
Top Likes Received (30 Days)
None yet
The UBB.Developers Network (UBB.Dev/Threads.Dev) is ©2000-2024 VNC Web Services

 
Powered by UBB.threads™ PHP Forum Software 8.0.0
(Preview build 20221218)