mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-30 11:11:23 +02:00
Moved to /develop/ dir
git-svn-id: file:///svn/phpbb/trunk@123 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
46d7b32640
commit
012256d744
205
phpBB/develop/bbcode_conversion.php
Normal file
205
phpBB/develop/bbcode_conversion.php
Normal file
@ -0,0 +1,205 @@
|
||||
<?php
|
||||
/***************************************************************************
|
||||
* config.php
|
||||
* -------------------
|
||||
* begin : Tuesday, March 20, 2001
|
||||
* copyright : (C) 2001 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* $Id:
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
include('extension.inc');
|
||||
include('config.'.$phpEx);
|
||||
include('includes/constants.'.$phpEx);
|
||||
include('functions/functions.'.$phpEx);
|
||||
include('includes/db.'.$phpEx);
|
||||
include('functions/bbcode.'.$phpEx);
|
||||
|
||||
set_time_limit(60*60); // Increase maximum execution time to 60 minutes.
|
||||
|
||||
|
||||
|
||||
$backup_name = "backup_post_text";
|
||||
$table_name = POSTS_TEXT_TABLE;
|
||||
$sql = "CREATE TABLE $backup_name (
|
||||
post_id int(10) DEFAULT '0' NOT NULL,
|
||||
post_text text,
|
||||
PRIMARY KEY (post_id)
|
||||
);";
|
||||
|
||||
echo "<p>Creating backup table.. </p>\n";
|
||||
flush();
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
if (!$result)
|
||||
{
|
||||
$db_error = $db->sql_error();
|
||||
die("Error doing DB backup table creation. Reason: " . $db_error["message"]);
|
||||
}
|
||||
|
||||
$sql = "insert into $backup_name select * from $table_name";
|
||||
|
||||
echo "<p>Populating backup table.. </p>\n";
|
||||
flush();
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
if (!$result)
|
||||
{
|
||||
$db_error = $db->sql_error();
|
||||
die("Error doing DB backup table data moving. Reason: " . $db_error["message"]);
|
||||
}
|
||||
|
||||
|
||||
$sql = "SELECT p.post_id, t.post_text FROM " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " t WHERE (p.post_id = t.post_id)";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
die("error getting posts to work on");
|
||||
}
|
||||
if(!$total_rows = $db->sql_numrows($result))
|
||||
{
|
||||
die("error getting rowcount");
|
||||
}
|
||||
|
||||
echo "<p><b>Found $total_rows total rows to work on. </b></p>\n";
|
||||
flush();
|
||||
|
||||
$row = $db->sql_fetchrowset($result);
|
||||
|
||||
for($i = 0; $i < $total_rows; $i++)
|
||||
{
|
||||
$post_id = $row[$i]['post_id'];
|
||||
$text = $row[$i]['post_text'];
|
||||
|
||||
// undo 1.2.x encoding..
|
||||
$text = bbdecode($text);
|
||||
$text = undo_make_clickable($text);
|
||||
$text = str_replace("<BR>", "\n", $text);
|
||||
|
||||
// make a uid
|
||||
$uid = make_bbcode_uid();
|
||||
|
||||
// do 2.x first-pass encoding..
|
||||
$text = bbencode_first_pass($text, $uid);
|
||||
|
||||
$text = addslashes($text);
|
||||
|
||||
// put the uid in the database.
|
||||
$sql = "UPDATE " . POSTS_TABLE . " SET bbcode_uid='" . $uid . "' WHERE (post_id = $post_id)";
|
||||
$result = $db->sql_query($sql);
|
||||
if (!$result)
|
||||
{
|
||||
$db_error = $db->sql_error();
|
||||
die("Error doing DB update in posts table. Reason: " . $db_error["message"] . " sql: $sql");
|
||||
}
|
||||
// Put the post text back in the database.
|
||||
$sql = "UPDATE " . POSTS_TEXT_TABLE . " SET post_text='" . $text . "' WHERE (post_id = $post_id)";
|
||||
$result = $db->sql_query($sql);
|
||||
if (!$result)
|
||||
{
|
||||
$db_error = $db->sql_error();
|
||||
die("Error doing DB update in post text table. Reason: " . $db_error["message"] . " sql: $sql");
|
||||
}
|
||||
|
||||
if (($i % 100) == 0)
|
||||
{
|
||||
echo "Done post: <b> $i </b><br>\n";
|
||||
flush();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo "<p><b>Done.</b></p>\n";
|
||||
|
||||
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// Everything below here is 1.x BBCode functions.
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
|
||||
function bbdecode($message) {
|
||||
|
||||
// Undo [code]
|
||||
$code_start_html = "<!-- BBCode Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Code:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><PRE>";
|
||||
$code_end_html = "</PRE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode End -->";
|
||||
$message = str_replace($code_start_html, "[code]", $message);
|
||||
$message = str_replace($code_end_html, "[/code]", $message);
|
||||
|
||||
// Undo [quote]
|
||||
$quote_start_html = "<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>";
|
||||
$quote_end_html = "</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->";
|
||||
$message = str_replace($quote_start_html, "[quote]", $message);
|
||||
$message = str_replace($quote_end_html, "[/quote]", $message);
|
||||
|
||||
// Undo [b] and [i]
|
||||
$message = preg_replace("#<!-- BBCode Start --><B>(.*?)</B><!-- BBCode End -->#s", "[b]\\1[/b]", $message);
|
||||
$message = preg_replace("#<!-- BBCode Start --><I>(.*?)</I><!-- BBCode End -->#s", "[i]\\1[/i]", $message);
|
||||
|
||||
// Undo [url] (long form)
|
||||
$message = preg_replace("#<!-- BBCode u2 Start --><A HREF=\"([a-z]+?://)(.*?)\" TARGET=\"_blank\">(.*?)</A><!-- BBCode u2 End -->#s", "[url=\\1\\2]\\3[/url]", $message);
|
||||
|
||||
// Undo [url] (short form)
|
||||
$message = preg_replace("#<!-- BBCode u1 Start --><A HREF=\"([a-z]+?://)(.*?)\" TARGET=\"_blank\">(.*?)</A><!-- BBCode u1 End -->#s", "[url]\\3[/url]", $message);
|
||||
|
||||
// Undo [email]
|
||||
$message = preg_replace("#<!-- BBCode Start --><A HREF=\"mailto:(.*?)\">(.*?)</A><!-- BBCode End -->#s", "[email]\\1[/email]", $message);
|
||||
|
||||
// Undo [img]
|
||||
$message = preg_replace("#<!-- BBCode Start --><IMG SRC=\"(.*?)\" BORDER=\"0\"><!-- BBCode End -->#s", "[img]\\1[/img]", $message);
|
||||
|
||||
// Undo lists (unordered/ordered)
|
||||
|
||||
// <li> tags:
|
||||
$message = str_replace("<!-- BBCode --><LI>", "[*]", $message);
|
||||
|
||||
// [list] tags:
|
||||
$message = str_replace("<!-- BBCode ulist Start --><UL>", "[list]", $message);
|
||||
|
||||
// [list=x] tags:
|
||||
$message = preg_replace("#<!-- BBCode olist Start --><OL TYPE=([A1])>#si", "[list=\\1]", $message);
|
||||
|
||||
// [/list] tags:
|
||||
$message = str_replace("</UL><!-- BBCode ulist End -->", "[/list]", $message);
|
||||
$message = str_replace("</OL><!-- BBCode olist End -->", "[/list]", $message);
|
||||
|
||||
return($message);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Nathan Codding - Feb 6, 2001
|
||||
* Reverses the effects of make_clickable(), for use in editpost.
|
||||
* - Does not distinguish between "www.xxxx.yyyy" and "http://aaaa.bbbb" type URLs.
|
||||
*
|
||||
*/
|
||||
|
||||
function undo_make_clickable($text) {
|
||||
|
||||
$text = preg_replace("#<!-- BBCode auto-link start --><a href=\"(.*?)\" target=\"_blank\">.*?</a><!-- BBCode auto-link end -->#i", "\\1", $text);
|
||||
$text = preg_replace("#<!-- BBcode auto-mailto start --><a href=\"mailto:(.*?)\">.*?</a><!-- BBCode auto-mailto end -->#i", "\\1", $text);
|
||||
|
||||
return $text;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
300
phpBB/develop/benchmark.php
Normal file
300
phpBB/develop/benchmark.php
Normal file
@ -0,0 +1,300 @@
|
||||
<?
|
||||
include('extension.inc');
|
||||
include('config.'.$phpEx);
|
||||
include('includes/constants.'.$phpEx);
|
||||
include('functions/functions.'.$phpEx);
|
||||
include('includes/db.'.$phpEx);
|
||||
|
||||
srand ((double) microtime() * 1000000);
|
||||
set_time_limit(20*60);
|
||||
|
||||
// The script expects the ID's in the tables to sequential (1,2,3,4,5),
|
||||
// so no holes please (1,4,5,8)...
|
||||
$nr_of_users = nrof(USERS_TABLE);
|
||||
$nr_of_cats = nrof(CATEGORIES_TABLE);
|
||||
$nr_of_forums = nrof(FORUMS_TABLE);
|
||||
$nr_of_posts = nrof(POSTS_TABLE);
|
||||
$nr_of_topics = nrof(TOPICS_TABLE); // create_topic() will keep this up to date
|
||||
|
||||
$u = $users;
|
||||
|
||||
$starttime = microtime();
|
||||
|
||||
while($users > 0){
|
||||
|
||||
$name = "testuser_" . ($nr_of_users+10);
|
||||
createuser($name);
|
||||
$users--;
|
||||
}
|
||||
if ($forums > 0){
|
||||
create_forums($forums);
|
||||
}
|
||||
if ($posts > 0){
|
||||
filldb($posts);
|
||||
}
|
||||
|
||||
$endtime = microtime();
|
||||
|
||||
if ($submit="" || !isset($submit)){
|
||||
?>
|
||||
Hello, welcome to this little phpBB Benchmarking script :)<p>
|
||||
|
||||
At the moment there are:<br>
|
||||
<table>
|
||||
<tr><td align="right"><?=$nr_of_users?></td><td>Users</td></tr>
|
||||
<tr><td align="right"><?=$nr_of_topics?></td><td>Topics</td></tr>
|
||||
<tr><td align="right"><?=$nr_of_forums?></td><td>Forums</td></tr>
|
||||
<tr><td align="right"><?=$nr_of_posts?></td><td>Posts</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
What do you want to create?<p>
|
||||
|
||||
<form method="get" action="<?=$PHP_SELF?>">
|
||||
<input type="text" name="users" size="3"> Users<br>
|
||||
<input type="text" name="forums" size="3"> Forums/categories<br>
|
||||
<input type="text" name="posts" size="3"> Posts/topics (optional: post size in <input type="text" name="size" size="3"> bytes)<br>
|
||||
<input type="submit" name="submit">
|
||||
</form>
|
||||
|
||||
<?
|
||||
} else {
|
||||
|
||||
|
||||
list ($starttime_msec,$starttime_sec) = explode(" ",$starttime);
|
||||
list ($endtime_msec,$endtime_sec) = explode(" ",$endtime);
|
||||
$timetaken_sec = ($endtime_sec+$endtime_msec) - ($starttime_sec+$starttime_msec);
|
||||
print "<B>TIME TAKEN : ".$timetaken_sec."s</B><BR>\n";
|
||||
|
||||
$starttime = microtime();
|
||||
|
||||
$result = $db->sql_query("SELECT * FROM users LIMIT 5,200");
|
||||
$rowresult = $db->sql_fetchrowset($result);
|
||||
|
||||
$endtime = microtime();
|
||||
|
||||
for($i=0;$i<count($rowresult);$i++){
|
||||
print $rowresult[$i]['user_id']." : ".$rowresult[$i]['username']."<BR>";
|
||||
}
|
||||
|
||||
// while($row = $db->sql_fetchrow()){
|
||||
// print $row['user_id']."<BR>";
|
||||
// }
|
||||
|
||||
list ($starttime_msec,$starttime_sec) = explode(" ",$starttime);
|
||||
list ($endtime_msec,$endtime_sec) = explode(" ",$endtime);
|
||||
$timetaken_sec = ($endtime_sec+$endtime_msec) - ($starttime_sec+$starttime_msec);
|
||||
print "<B>TIME TAKEN : ".$timetaken_sec."s</B><BR>\n";
|
||||
|
||||
print "<p>\n<a href=\"$PHP_SELF\">Back to the overview page</a>\n";
|
||||
}
|
||||
|
||||
function filldb($newposts){
|
||||
global $nr_of_topics;
|
||||
global $nr_of_forums;
|
||||
global $nr_of_users;
|
||||
for($i=0 ; $i<=$newposts; $i++){
|
||||
$userid = rand(1,$nr_of_users);
|
||||
$forum = rand(1,$nr_of_forums);
|
||||
if (rand(0,20) < 1 || $nr_of_topics == 0){
|
||||
// create a new topic 1 in 20 times (or when there are none);
|
||||
$topic = create_topic($userid, "This is test topic nr. $i", $forum);
|
||||
} else {
|
||||
// Otherwise create a reply(posting) somewhere.
|
||||
$topic = rand(1,$nr_of_topics);
|
||||
}
|
||||
create_posting($userid, $topic, $forum);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function create_topic($userid, $subject, $forum){
|
||||
global $db;
|
||||
global $nr_of_topics;
|
||||
$userdata = get_userdata($username, $db);
|
||||
$time = time();
|
||||
$sql = "INSERT INTO ".TOPICS_TABLE." (topic_title, topic_poster, forum_id, topic_time, topic_notify) VALUES ('$subject', '$userid', '$forum', '$time', 0)";
|
||||
if (!$result = $db->sql_query($sql)) {
|
||||
print "Couldn't create Topic $subject in DB!<br>\n";
|
||||
print "This is the sql statement:<br>\n$sql\n<br>\n";
|
||||
die;
|
||||
} else {
|
||||
print "<br>Topic '$subject' created!<br>\n";
|
||||
$nr_of_topics++;
|
||||
flush();
|
||||
return mysql_insert_id($db->db_connect_id);
|
||||
}
|
||||
}
|
||||
|
||||
function create_posting($userid, $topic_id, $forum){
|
||||
global $db;
|
||||
$message = generatepost(650);
|
||||
$time = time();
|
||||
$poster_ip = "234234232";
|
||||
|
||||
$sql = "INSERT INTO ".POSTS_TABLE." (forum_id, topic_id, poster_id, post_time, poster_ip) VALUES ('$forum', '$topic_id', '$userid', '$time', '$poster_ip')";
|
||||
if (!$result = $db->sql_query($sql)) {
|
||||
print "Couldn't create post in $forum!<br>\n";
|
||||
print "This is the sql statement:<br>\n$sql\n<br>\n";
|
||||
die;
|
||||
} else {
|
||||
|
||||
$post_id = mysql_insert_id($db->db_connect_id);
|
||||
$sql = "INSERT INTO ".POSTS_TEXT_TABLE." (post_id, post_text) VALUES ('$post_id', '$message')";
|
||||
if (!$result = $db->sql_query($sql)) {
|
||||
print "Couldn't create post text in $forum!<br>\n";
|
||||
print "This is the sql statement:<br>\n$sql\n<br>\n";
|
||||
die;
|
||||
}
|
||||
print "$forum ";
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
function create_forums($totalforums){
|
||||
global $db;
|
||||
global $nr_of_cats;
|
||||
$j=0;
|
||||
for($i=0 ; $i<$totalforums; $i++){
|
||||
if (rand(0,5) <= 2 || $nr_of_cats == 0){
|
||||
// create a new cat at random times or when there are no cats yet.
|
||||
$j++;
|
||||
$catid = create_cat("Category $j");
|
||||
} else {
|
||||
// Otherwise create a forum in one of the cats.
|
||||
$catid = rand(0,$nr_of_cats);
|
||||
}
|
||||
$forum = "Test forum number $i";
|
||||
create_forum($catid, $forum);
|
||||
}
|
||||
}
|
||||
|
||||
function create_cat($category){
|
||||
global $db;
|
||||
global $nr_of_cats;
|
||||
// At the moment cat_order is always one, oh well..
|
||||
echo $sql = "INSERT INTO ".CATEGORIES_TABLE." (cat_title, cat_order) VALUES ('$category', '1')";
|
||||
if (!$result = $db->sql_query($sql)) {
|
||||
print "Couldn't create category \"$category\"!<br>\n";
|
||||
die;
|
||||
} else {
|
||||
print "Category \"$category\" created!<br>\n";
|
||||
$nr_of_cats++;
|
||||
return mysql_insert_id($db->db_connect_id);
|
||||
}
|
||||
}
|
||||
|
||||
function create_forum($catid, $forum){
|
||||
global $db;
|
||||
global $nr_of_forums;
|
||||
|
||||
$sql = "INSERT INTO ".FORUMS_TABLE." (forum_name, forum_desc, forum_access, cat_id, forum_type) VALUES ('$forum', 'This is a forum created for the benchmark', '2', '$catid', '0')";
|
||||
if (!$result = $db->sql_query($sql)) {
|
||||
print "Couldn't create forum \"$forum\"!<br>\n";
|
||||
die;
|
||||
} else {
|
||||
print "Forum \"$forum\" created!<br>\n";
|
||||
$nr_of_forums++;
|
||||
$forum_id = mysql_insert_id($db->db_connect_id);
|
||||
// Sorry, no error checking. We just assume that if the forum can be
|
||||
// created the moderator can be assigned too :)
|
||||
$sql = "INSERT INTO ".FORUM_MODS_TABLE." (forum_id, user_id) VALUES ('$forum_id', '1')";
|
||||
$result = $db->sql_query($sql);
|
||||
return $forum_id;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function generatepost($size=850){
|
||||
// Returns a string with a length between $size and $size*0.2
|
||||
$size = rand(0.2*$size, $size);
|
||||
$text = "Step 1: Untar the soure into the directory phpBB will run from. Seeing as you
|
||||
are reading this file you have probably gotten that far. (Or if you are on a
|
||||
different machine then your webserver FTP the resulting phpBB dir over to where
|
||||
it will run from on the server. ie /www/yourdomain.com/phpBB)
|
||||
|
||||
Step 2: Edit config.php and change the following values:
|
||||
|
||||
The url fields my work for you if you're running phpBB from a domain
|
||||
like this: http://www.phpbb.com/phpBB
|
||||
|
||||
However if you access phpBB like this: http://www.domain.com/~you/phpBB you
|
||||
will have to change these values.
|
||||
|
||||
Also, config.php MUST be writeable by the webserver or the install will fail.
|
||||
To set this on UNIX systems you can use chmod
|
||||
ie: chmod 777 config.php (after the install if finsished set it back to 755
|
||||
via chmod 755 config.php so it can't be written by anyone again.)";
|
||||
$textsize = strlen($text);
|
||||
$currentsize = 0;
|
||||
// Add whole $text multiple times
|
||||
while($currentsize < $size && $size-$currentsize <= $textsize){
|
||||
$message .= $text;
|
||||
$currentsize += $textsize;
|
||||
}
|
||||
// Add the remainder number of chars and return it.
|
||||
$message .= substr($text, 0, $size-$currentsize);
|
||||
|
||||
// WARNING!! THIS IS NOT GOOD, THESE FUNCTIONS WILL ADD CHARACTERS!!!
|
||||
return (nl2br(addslashes($message)));
|
||||
}
|
||||
|
||||
|
||||
function nrof($table){
|
||||
global $db;
|
||||
$sql = "SELECT count(*) AS counted FROM $table";
|
||||
$result = $db->sql_query($sql);
|
||||
$topics = $db->sql_fetchrow($result);
|
||||
return $topics[counted];
|
||||
}
|
||||
|
||||
|
||||
function createuser($name){
|
||||
global $db;
|
||||
global $nr_of_users;
|
||||
$username = $name;
|
||||
$regdate = time();
|
||||
$email = $username . "@phpbb.com";
|
||||
$icq = "29317129";
|
||||
$passwd = md5("test");
|
||||
$occ = "";
|
||||
$intrest = "";
|
||||
$from = "";
|
||||
$website = "http://www.phpBB.com/";
|
||||
$sig = "To Bla, or Not to Bla";
|
||||
$aim = "";
|
||||
$sqlviewemail = "1";
|
||||
$yim = "";
|
||||
$msnm = "";
|
||||
|
||||
$userdata = get_userdata($username, $db);
|
||||
if($userdata["username"]) {
|
||||
print "Username '$username' has been already used...<br>\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO ".USERS_TABLE." (username, user_regdate, user_email, user_icq, user_password, user_occ, user_intrest, user_from, user_website, user_sig, user_aim, user_viewemail, user_yim, user_msnm) VALUES ('$username', '$regdate', '$email', '$icq', '$passwd', '$occ', '$intrest', '$from', '$website', '$sig', '$aim', '$sqlviewemail', '$yim', '$msnm')";
|
||||
|
||||
if (!$result = $db->sql_query($sql)) {
|
||||
print "Couldn't create user $username in DB!<br>\n";
|
||||
print "This is the sql statement:<br>\n$sql\n<br>\n";
|
||||
return 1;
|
||||
} else {
|
||||
// print "User $username created!<br>\n";
|
||||
$nr_of_users++;
|
||||
// flush();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
function get_userdata($username, $db) {
|
||||
$sql = "SELECT * FROM ".USERS_TABLE." WHERE username = '$username' AND user_level != -1";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
$userdata = array("error" => "1");
|
||||
if(!$myrow = $db->sql_fetchrow($result))
|
||||
$userdata = array("error" => "1");
|
||||
|
||||
return($myrow);
|
||||
}
|
||||
|
||||
|
||||
?>
|
Loading…
x
Reference in New Issue
Block a user