The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Custom Templates
Two questions:
1) How do you include a custom template within a product, so that when the product is installed, the template is created? 2) What is the mechanism to "swap" a default template with a custom template via a product/plugin? I realize that question number 2 is likely very involved, so I'll provide some of my guesses and you can correct me where I'm wrong: Use the "cache_templates" hook, creating a plugin there. That plugin will check to see if the product is installed/enabled, and if so, will somehow replace the original template with the "product" template. Am I on the right track? By "replace", I don't mean physically - I'm not trying to erase any default templates. In fact, I want to avoid altering any templates at all. If my product is installed, I want vBulletin to USE a custom template instead of an exisiting standard template. TIA. Automerged Post: What I've decided to do: Hook: cache_templates PHP Code:
PHP Code:
Also, I'm receptive to discussion/feedback. Is this the best approach to swapping templates? Could str_replace be used instead, if so, how? |
#2
|
||||
|
||||
Quote:
First, create a new empty product in the admin cp. Then use the admin cp to create any templates, plugins, and phrases you want for your hack. You can also put install code into the product via the admin cp (look at editing your product). The only thing you can't do is create new admin cp options this way. The best advice on that is to look at how someone else has already done it, since it's a common thing fancier hacks need to do. Once you've got all your templates and such created in the admin cp (make sure they are all marked as belonging to your product) then you just export the product. It will automatically create the xml file for you. As for modifying templates, I'm not sure I understand your need. There are two ways I tend to modify a template on the fly. One is to simply add to the output before it goes to the template, such as I discuss in this thread, the other is similar to what you are doing, only I use a replace to modify some part of the template rather than replacing the entire template. Replacing an entire template seems problematic to me, as it would mean other peoples hacks written to work on that template would no longer work. |
#3
|
|||
|
|||
Thanks. Ok, I understand now how to create products, including phrases, plugins, and templates.
Good point about replacing entire templates. My goal is to not edit or require the user to edit, any templates, ever, in terms of adding a plugin/product. So you use str_replace, then, to only modify portions of the template? Agreed, that's a better idea. |
#4
|
||||
|
||||
Quote:
Quote:
Quote:
|
#5
|
|||
|
|||
For this particular project, the original template should show if the user is registered, and a completely different table if they are a guest.
SO, I still added a new custom template and did the complete template swap. Why? The user should still have the ability to customize my table, as with any other template. However, in the <else /> clause, instead of a copy of some original version of the template, I have $GLOBALS[$orig_template]. My plugin, prior to swapping templates, evaluates $orig_template to the users current version. Best of both words: I don't stomp all over their template changes, but I give them another template to edit to modify my plugin's appearance. Thanks for your help. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|