PDA

View Full Version : which hook do I use to create a plugin for this?


zeroality
03-19-2011, 12:45 AM
I found this:
$word = array(
'google',
'yahoo'
);

$link = array(
'<a href="http://google.com">google</a>',
'<a href="http://yahoo.com">yahoo</a>'
);


$this->post['message'] = str_replace($word, $link, $this->post['message']);

from a 3.5.x modification that does exactly what I wanted to do on my forums. I wanted to replace a word with another (a bunch of them actually) in existing posts.

Just not sure which hook I should use when creating a new plugin. I've never done a custom plugin for 4.x before. Thanks!

Lynne
03-19-2011, 04:05 AM
You are trying to change something in the postbit? So try the postbit_display_complete hook location.

zeroality
03-23-2011, 03:11 AM
Yup, works like a charm. But now I'm wondering - if I input an array of say 156 words and set replacements for all of them, what kind of impact would that have on the forums?

Would that translate to 156 extra queries per page load, or only extra queries in the instance of an actual replacement?

Lynne
03-23-2011, 03:14 AM
Not extra queries, no, just a lot of php time dealing with the string. It may be better to make changes to the text when it is being saved, rather than waiting until it is being output to change it.

MoMan
03-23-2011, 03:40 AM
String replacements generally don't add much performance overhead - I've written a mod that does something similar to this, but decided to make the code global (a preg_replace on $output) as it only took about 0.0005s to do 9 matches. Mind you this is on a dedicated server- not much is able to put a dent in it apart from vbseo's crr's, which really hurt if you have too many.

zeroality
03-23-2011, 04:46 AM
Right. Thanks.