Quote:
Originally Posted by tgreer
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:
global $globaltemplates;
$globaltemplates = array_merge($globaltemplates, array('myTemplate'));
Hook: global_start
PHP Code:
$vbulletin->templatecache['defaultTemplate'] = $vbulletin->templatecache['myTemplate'];
My question still remains on how to package a custom template in an install file. Is there a tutorial on building install/product files?
Also, I'm receptive to discussion/feedback. Is this the best approach to swapping templates? Could str_replace be used instead, if so, how?
|
Hmmm. Well, a couple of things.
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.