Yeah, the problem is that it calls print_output with the result of the render call, so there's no place to do the replace. Well, there might be but I think I have what might be a better idea: create a new phrase (Phrase Type "Forum Display") for "Create a Listing", then do the str_replace on the cache using the phrase varnames, like:
Code:
$find = 'post_new_thread';
$replace = 'create_a_listing';
$vbulletin->templatecache['FORUMDISPLAY'] = str_replace($find, $replace, $vbulletin->templatecache['FORUMDISPLAY']);
Edit: There's also a global_complete hook location where the output is in $output, so another way would be to try doing your str_replace that way, like:
Code:
$find = 'Post New Thread';
$replace = 'Create a Listing';
$output = str_replace($find, $replace, $output);
... but I guess then you'd have to somehow make sure that it was being done only on the FORUMDISPLAY page. Hmm...maybe it won't work after all.