Ok, there is no one, universal technique. For this particular project, I think I've reached a nice compromise:
- Add a new custom template. Why? Because the user should have the flexibility of editing it, just as with any other template.
- Within that template, I added $GLOBALS[orig_forumrules], and I use it where I want the current forumrules to appear (inside a conditional that tests if the user is a guest).
- My plugin evaluates the current forumrules, assigning it to $orig_forumrules, and then does the cache swap as outlined previously.
Works like a charm. Deaths, to fix the width problem, I'll add $style[forumwidth], or whatever the proper variable is. The invite box should be the same width as the rest of the forum.
However, since this is controlled by a new custom template, you can edit that as you see fit.
Thanks for all the excellent help.