The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Trying to fix QUOTES from Invision import
All of the previous quotes in my posts from my Invision import are fubarred. I have found several methods that use preg_replace to fix the post, but none of them have converted anything. The problem is, I don't know enough php to understand the preg_replace statements so I can fix the posts.
Here is one I pulled from a program called QuoteFix.php Code:
function translatesmilies($text) { $text = preg_replace('#<!--QuoteBegin-{1,2}([^"]*)\+-->([^"]*)<!--QuoteEBegin-->#si', "[quote]Originally posted by \\1\n[b]", $text); $text = preg_replace('#<!--QuoteBegin-{1,2}([^"]*)\+([^"]*)-->([^"]*)<!--QuoteEBegin-->#si', "[quote]Originally posted by \\1@\\2\n[b]", $text); $text = preg_replace('#<img src=\'([^"]*)\' border=\'0\' alt=\'user posted image\'(\s/)?>#siU', '[img]\\1[/img]', $text); return $text; } Here is an actual post with a quote, as it's stored in the database: Code:
<table align="center" border="0" cellpadding="3" cellspacing="1" width="95%"> <tbody><tr><td> QUOTE (JSK @ Sep 25 2013, 09:09 PM)</td></tr> <tr><td id="QUOTE"><!--QuoteEBegin--> <!--QuoteBegin-gmoss+Sep 25 2013, 03:52 PM--> <table align="center" border="0" cellpadding="3" cellspacing="1" width="95%"> <tbody><tr><td>QUOTE (gmoss @ Sep 25 2013, 03:52 PM)</td></tr><tr><td id="QUOTE"><!--QuoteEBegin--> on a small bore 2 stroke, it hurts me as much as helps. <!--QuoteEnd--></td></tr> </tbody> </table><!--QuoteEEnd--> I agree and wouldn't put one on my small bore 2-stroke, the clutch/rider relationship is too intimate. However if I was on a kick-start only 4-stroke I might consider one. <!--QuoteEnd--> </td></tr> </tbody> </table> <!--QuoteEEnd--> Not sure I understand this. The Rekluse does not change the rider/clutch relationship at all, except when you get below say 2500 rpms. No small bore bike is going to be making any power that low anyway. You can slip the clutch normally. I have tried to undestand the preg_replace statements but for the life of me, I just don't standstand the syntax. Any help would be appreciated. |
#2
|
||||
|
||||
Not sure but I think you might instead want a db query for this.
|
#3
|
|||
|
|||
i was just trying to do a quick test by assigning the data that was in the database to a var, and then running the preg_replace on that var so I can see before and after. I do a $test= on that data in the box up above and then do the preg_replace on $test
what exactly does this preg_replace do? Code:
$text = preg_replace('#<!--QuoteBegin-->([^"]*)<!--QuoteEBegin-->#siU', '[quote][b]', $text); I do know that if I try to run this on my var, it doesn't change anything. same for this one: Code:
$text = preg_replace('#<!--QuoteBegin-{1,2}([^"]*)\+-->([^"]*)<!--QuoteEBegin-->#si', "[quote]Originally posted by \\1\n[b]", $text); |
#4
|
|||
|
|||
Well, it look like the patterns are trying to match <!--QuoteBegin-some stuff--><!--QuoteEBegin-->, but in the post the QuoteEBegin comes first (I have no idea what any of that stuff means so I can't say why that would be).
You say that post is from the database - which column? I'm wondering why it has html in it (normally the posts in the database have bbcode tags). |
#5
|
|||
|
|||
Quote:
[...] = "character class" (the ^ negates it), {1,2} = "repetition", and siU are "internal options settings". ETA: .. and this: http://www.php.net/manual/en/function.preg-replace.php |
#6
|
|||
|
|||
Quote:
hmmmm... maybe thats where I should be looking... at those "on-the-fly" conversions that the Invision software used |
#7
|
|||
|
|||
Oh, I see. I thought you already had them in the vbulletin database.
|
#8
|
|||
|
|||
well, yes, I do... i copied them straight from the invision table into the posts table of vbulletin.
In the Invision table, it was ibf_posts, column name post In the vbulletin table, it is vb_kt_post, column name pagetext I know... bad move to do a direct copy but I did it so now I have a mess to clean up. --------------- Added [DATE]1389560223[/DATE] at [TIME]1389560223[/TIME] --------------- I went inside the Invision code, in a program called post_parser.php In that code, I found the following: Code:
$txt = preg_replace( "#<!--QuoteBegin-->(.+?)<!--QuoteEBegin-->#" , '[QUOTE]' , $txt ); $txt = preg_replace( "#<!--QuoteBegin-{1,2}([^>]+?)\+([^>]+?)-->(.+?)<!--QuoteEBegin-->#" , "[QUOTE=\\1,\\2]" , $txt ); $txt = preg_replace( "#<!--QuoteBegin-{1,2}([^>]+?)\+-->(.+?)<!--QuoteEBegin-->#" , "[QUOTE=\\1]" , $txt ); I think this is the key to a correct conversion. --------------- Added [DATE]1389562663[/DATE] at [TIME]1389562663[/TIME] --------------- I got it... I used that exact code that was in the post_parser.php and, it converted it clean as a whistle... removed all the TABLE stuff, TD stuff, etc, and made it work as vbulletin expects. Case Closed, Ticket-be-gone We-be-happy -pat- --------------- Added [DATE]1389593985[/DATE] at [TIME]1389593985[/TIME] --------------- Well crud... I [thought] I had it... the quotes are definitely fixed, but now I have another friggin preg_replace statement here is what needs to be converted: Code:
<img src='http://img2.timg.co.il/forums/1_172631546.JPG' border='0' alt='user posted image' /> Code:
$txt = preg_replace( "#<img src=[\"'](\S+?)['\"].+?".">#" , "\[IMG\]\\1\[/IMG\]" Code:
[IMG]'http://img2.timg.co.il/forums/1_172631546.JPG[/IMG] If I get rid of that booger, it'll be clean. Teach me, guide me Grasshopper... . |
Благодарность от: | ||
Max Taxable |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|