vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Template mods in a plugin - template_compile (https://vborg.vbsupport.ru/showthread.php?t=261439)

AusPhotography 04-04-2011 10:08 PM

Template mods in a plugin - template_compile
 
Based on this discussion... http://www.vbulletin.com/forum/showt...=1#post2138507

I've moved all our site template mods into a plugin hook@process_templates_complete which does this (proforma)
Code:

if (!empty($vbulletin->templatecache['TEMPLATE']))
{
    $vbulletin->templatecache['TEMPLATE'] = str_replace($findtext,$replacetext,$vbulletin->templatecache['TEMPLATE]);
}

It works quite well and we don't have a lot of modifications.
Note: If it's a special template like $header you apply the same code directly to the parsed $header variable.

BUT! the problem is that the code is executed every page load (digitalpoint's post above).
Ideally I should modify the template one at compile time via the hook@template_compile.

The problem I have is how to force a re-compile of the templates in the site database
a) when the product is 1st installed
b) maybe when a product upgrade occurs

Any suggestions on how to force a template re-compile for an array of template names?

It would ideally run on product installation and upgrade!


Thanks!

Boofo 04-04-2011 10:49 PM

Something like this maybe?

Code:

if (vB_Template::$template_usage['register'] OR vB_Template::$template_usage['register_rules'])

AusPhotography 04-04-2011 11:05 PM

Thanks, but how does that force the template to be re-compiled?

--------------- Added [DATE]1301962238[/DATE] at [TIME]1301962238[/TIME] ---------------

Digital points advises by PM that I may have to do it long hand via compile_template and looping thru the templates and updating long hand.
I was hoping for a shortcut

AusPhotography 04-21-2011 05:21 AM

Found a solution https://vborg.vbsupport.ru/showthrea...ication+System

ZeroHour 05-06-2011 09:40 AM

snoopytas: regarding template_compile, I am working with it heavily right now for a few mods so once done I will write some tips and tricks.

thincom2000 08-08-2011 05:45 PM

The problem I see with template_compile template mods is that, unless the user is running Template Modification System, you would essentially be forcing the user's database to customize that template in each style. Once this happens, it is difficult to determine whether the user actually has other customizations in the template or not, at least not without an expensive 3-way comparison that uses many megabytes of memory. For users that don't have the template merger class (pre-vB4 users) or that are on shared hosting, we can't revert the changes reliably during a product uninstall, upgrade, or discovery of TMS since the last update.

For these reasons I think it is less intrusive for the user and less error prone if we just encourage users to use TMS, and if TMS is not present, to use the inefficient runtime cache edit.


All times are GMT. The time now is 01:19 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01065 seconds
  • Memory Usage 1,724KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete