diff --git a/html/ops/bbcode_convert.php b/html/ops/bbcode_convert.php
index c8a2ff4e0a..c1679090e0 100644
--- a/html/ops/bbcode_convert.php
+++ b/html/ops/bbcode_convert.php
@@ -59,6 +59,8 @@ function formatting_as_bb($text){
$in[]="
";$out[]="[pre]";
$in[]="
";$out[]="[/pre]";
+ $in[]="";$out[]="\n";
+ $in[]="
";$out[]="\n";
$in[]="
";$out[]="\n";
$in[]=">";$out[]=">";
$in[]="<";$out[]="<";
diff --git a/html/ops/bbcode_convert_response1.php b/html/ops/bbcode_convert_response1.php
new file mode 100644
index 0000000000..9c5d891068
--- /dev/null
+++ b/html/ops/bbcode_convert_response1.php
@@ -0,0 +1,122 @@
+^"]+)\"([^>]*)>@si';
+ $replacement = '[img]$2[/img]';
+ $text = preg_replace($pattern, $replacement, $text);
+
+ $pattern = "@]*)>@si";
+ $replacement = '[img]$2[/img]';
+ $text = preg_replace($pattern, $replacement, $text);
+
+ return $text;
+}
+
+function link_as_bb($text){
+ /* This function depends on sanitized HTML */
+ // Build some regex (should be a *lot* faster)
+ $pattern = '@]+)\">@si'; // Gives us the URL in $1...
+ $replacement = '[url=$1]'; // Turns that URL into a hyperlink
+ $text = preg_replace($pattern, $replacement, $text);
+ $pattern = "@@si"; // Gives us the URL in $1...
+ $replacement = '[url=$1]'; // Turns that URL into a hyperlink
+ $text = preg_replace($pattern, $replacement, $text);
+
+ $pattern = "@@si";
+ $replacement = '[/url]';
+ $text = preg_replace($pattern, $replacement, $text);
+ return $text;
+}
+
+function formatting_as_bb($text){
+ /* This function depends on sanitized HTML */
+ $in[]="";$out[]="[b]";
+ $in[]="";$out[]="[/b]";
+
+ $in[]="";$out[]="[i]";
+ $in[]="";$out[]="[/i]";
+
+ $in[]="";$out[]="[u]";
+ $in[]="";$out[]="[/u]";
+
+ $in[]="";$out[]="[b]";
+ $in[]="";$out[]="[/b]";
+
+ $in[]="";$out[]="[list]";
+ $in[]="
";$out[]="[/list]";
+
+ $in[]="";$out[]="[list=1]";
+ $in[]="
";$out[]="[/list]";
+
+ $in[]="";$out[]="[pre]";
+ $in[]="
";$out[]="[/pre]";
+
+ $in[]="";$out[]="\n";
+ $in[]="
";$out[]="\n";
+ $in[]="
";$out[]="\n";
+ $in[]=">";$out[]=">";
+ $in[]="<";$out[]="<";
+ $in[]="&";$out[]="&";
+
+ return str_replace($in, $out, $text);
+}
+
+function fix_text($text) {
+ $text = sanitize_html($text);
+ $text = image_as_bb($text);
+ $text = link_as_bb($text);
+ $text = formatting_as_bb($text);
+ return $text;
+}
+
+function fix_profile($profile) {
+ $text = fix_text($profile->response1);
+ if ($text != $profile->response1) {
+ $query = "update profile set response1 = '".mysql_escape_string($text)."' where userid=".$profile->userid;
+ //echo "$profile->response1\n\n";
+ //echo "$profile->thread $query\n\n";
+ $retval = mysql_query($query);
+ if (!$retval) {
+ echo mysql_error();
+ exit();
+ }
+ }
+}
+
+function fix_profiles() {
+ $start_id = 0; //Set this to something else if you like
+ $profiles = mysql_query("select * from profile where userid>$start_id order by userid");
+ echo mysql_error();
+ $i=0;
+ while ($profile = mysql_fetch_object($profiles)){
+ $i++;
+ if ($i%100 == 0) { //For every 100 profiles
+ echo $profile->userid.". "; flush(); // print out where we are
+ //usleep(200000);
+ }
+
+ if ($profile->userid > $start_id){
+ fix_profile($profile);
+ }
+ }
+}
+
+// use this to patch problem cases; hand-edit
+function fix_fix() {
+ $profiles = mysql_query("select * from profile where id=99");
+ $profile = mysql_fetch_object($profiles);
+ fix_profile($profile);
+}
+
+fix_profiles();
+//fix_fix();
+
+?>
diff --git a/html/ops/bbcode_convert_response2.php b/html/ops/bbcode_convert_response2.php
new file mode 100644
index 0000000000..032ea00dd6
--- /dev/null
+++ b/html/ops/bbcode_convert_response2.php
@@ -0,0 +1,122 @@
+^"]+)\"([^>]*)>@si';
+ $replacement = '[img]$2[/img]';
+ $text = preg_replace($pattern, $replacement, $text);
+
+ $pattern = "@]*)>@si";
+ $replacement = '[img]$2[/img]';
+ $text = preg_replace($pattern, $replacement, $text);
+
+ return $text;
+}
+
+function link_as_bb($text){
+ /* This function depends on sanitized HTML */
+ // Build some regex (should be a *lot* faster)
+ $pattern = '@]+)\">@si'; // Gives us the URL in $1...
+ $replacement = '[url=$1]'; // Turns that URL into a hyperlink
+ $text = preg_replace($pattern, $replacement, $text);
+ $pattern = "@@si"; // Gives us the URL in $1...
+ $replacement = '[url=$1]'; // Turns that URL into a hyperlink
+ $text = preg_replace($pattern, $replacement, $text);
+
+ $pattern = "@@si";
+ $replacement = '[/url]';
+ $text = preg_replace($pattern, $replacement, $text);
+ return $text;
+}
+
+function formatting_as_bb($text){
+ /* This function depends on sanitized HTML */
+ $in[]="";$out[]="[b]";
+ $in[]="";$out[]="[/b]";
+
+ $in[]="";$out[]="[i]";
+ $in[]="";$out[]="[/i]";
+
+ $in[]="";$out[]="[u]";
+ $in[]="";$out[]="[/u]";
+
+ $in[]="";$out[]="[b]";
+ $in[]="";$out[]="[/b]";
+
+ $in[]="";$out[]="[list]";
+ $in[]="
";$out[]="[/list]";
+
+ $in[]="";$out[]="[list=1]";
+ $in[]="
";$out[]="[/list]";
+
+ $in[]="";$out[]="[pre]";
+ $in[]="
";$out[]="[/pre]";
+
+ $in[]="";$out[]="\n";
+ $in[]="
";$out[]="\n";
+ $in[]="
";$out[]="\n";
+ $in[]=">";$out[]=">";
+ $in[]="<";$out[]="<";
+ $in[]="&";$out[]="&";
+
+ return str_replace($in, $out, $text);
+}
+
+function fix_text($text) {
+ $text = sanitize_html($text);
+ $text = image_as_bb($text);
+ $text = link_as_bb($text);
+ $text = formatting_as_bb($text);
+ return $text;
+}
+
+function fix_profile($profile) {
+ $text = fix_text($profile->response2);
+ if ($text != $profile->response2) {
+ $query = "update profile set response2 = '".mysql_escape_string($text)."' where userid=".$profile->userid;
+ //echo "$profile->response2\n\n";
+ //echo "$profile->thread $query\n\n";
+ $retval = mysql_query($query);
+ if (!$retval) {
+ echo mysql_error();
+ exit();
+ }
+ }
+}
+
+function fix_profiles() {
+ $start_id = 0; //Set this to something else if you like
+ $profiles = mysql_query("select * from profile where userid>$start_id order by userid");
+ echo mysql_error();
+ $i=0;
+ while ($profile = mysql_fetch_object($profiles)){
+ $i++;
+ if ($i%100 == 0) { //For every 100 profiles
+ echo $profile->userid.". "; flush(); // print out where we are
+ //usleep(200000);
+ }
+
+ if ($profile->userid > $start_id){
+ fix_profile($profile);
+ }
+ }
+}
+
+// use this to patch problem cases; hand-edit
+function fix_fix() {
+ $profiles = mysql_query("select * from profile where id=99");
+ $profile = mysql_fetch_object($profiles);
+ fix_profile($profile);
+}
+
+fix_profiles();
+//fix_fix();
+
+?>
diff --git a/html/ops/bbcode_convert_signature.php b/html/ops/bbcode_convert_signature.php
new file mode 100644
index 0000000000..40caddbcd9
--- /dev/null
+++ b/html/ops/bbcode_convert_signature.php
@@ -0,0 +1,122 @@
+^"]+)\"([^>]*)>@si';
+ $replacement = '[img]$2[/img]';
+ $text = preg_replace($pattern, $replacement, $text);
+
+ $pattern = "@]*)>@si";
+ $replacement = '[img]$2[/img]';
+ $text = preg_replace($pattern, $replacement, $text);
+
+ return $text;
+}
+
+function link_as_bb($text){
+ /* This function depends on sanitized HTML */
+ // Build some regex (should be a *lot* faster)
+ $pattern = '@]+)\">@si'; // Gives us the URL in $1...
+ $replacement = '[url=$1]'; // Turns that URL into a hyperlink
+ $text = preg_replace($pattern, $replacement, $text);
+ $pattern = "@@si"; // Gives us the URL in $1...
+ $replacement = '[url=$1]'; // Turns that URL into a hyperlink
+ $text = preg_replace($pattern, $replacement, $text);
+
+ $pattern = "@@si";
+ $replacement = '[/url]';
+ $text = preg_replace($pattern, $replacement, $text);
+ return $text;
+}
+
+function formatting_as_bb($text){
+ /* This function depends on sanitized HTML */
+ $in[]="";$out[]="[b]";
+ $in[]="";$out[]="[/b]";
+
+ $in[]="";$out[]="[i]";
+ $in[]="";$out[]="[/i]";
+
+ $in[]="";$out[]="[u]";
+ $in[]="";$out[]="[/u]";
+
+ $in[]="";$out[]="[b]";
+ $in[]="";$out[]="[/b]";
+
+ $in[]="";$out[]="[list]";
+ $in[]="
";$out[]="[/list]";
+
+ $in[]="";$out[]="[list=1]";
+ $in[]="
";$out[]="[/list]";
+
+ $in[]="";$out[]="[pre]";
+ $in[]="
";$out[]="[/pre]";
+
+ $in[]="";$out[]="\n";
+ $in[]="
";$out[]="\n";
+ $in[]="
";$out[]="\n";
+ $in[]=">";$out[]=">";
+ $in[]="<";$out[]="<";
+ $in[]="&";$out[]="&";
+
+ return str_replace($in, $out, $text);
+}
+
+function fix_text($text) {
+ $text = sanitize_html($text);
+ $text = image_as_bb($text);
+ $text = link_as_bb($text);
+ $text = formatting_as_bb($text);
+ return $text;
+}
+
+function fix_forum_preferences($forum_preferences) {
+ $text = fix_text($forum_preferences->signature);
+ if ($text != $forum_preferences->signature) {
+ $query = "update forum_preferences set signature = '".mysql_escape_string($text)."' where userid=".$forum_preferences->userid;
+ //echo "$forum_preferences->signature\n\n";
+ //echo "$forum_preferences->thread $query\n\n";
+ $retval = mysql_query($query);
+ if (!$retval) {
+ echo mysql_error();
+ exit();
+ }
+ }
+}
+
+function fix_forum_preferencess() {
+ $start_id = 0; //Set this to something else if you like
+ $forum_preferencess = mysql_query("select * from forum_preferences where userid>$start_id order by userid");
+ echo mysql_error();
+ $i=0;
+ while ($forum_preferences = mysql_fetch_object($forum_preferencess)){
+ $i++;
+ if ($i%100 == 0) { //For every 100 forum_preferencess
+ echo $forum_preferences->userid.". "; flush(); // print out where we are
+ //usleep(200000);
+ }
+
+ if ($forum_preferences->userid > $start_id){
+ fix_forum_preferences($forum_preferences);
+ }
+ }
+}
+
+// use this to patch problem cases; hand-edit
+function fix_fix() {
+ $forum_preferencess = mysql_query("select * from forum_preferences where id=99");
+ $forum_preferences = mysql_fetch_object($forum_preferencess);
+ fix_forum_preferences($forum_preferences);
+}
+
+fix_forum_preferencess();
+//fix_fix();
+
+?>