vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Troubleshooting First Plugin - What's the Hook? Why no output? (https://vborg.vbsupport.ru/showthread.php?t=172673)

davide101 03-11-2008 12:40 AM

Troubleshooting First Plugin - What's the Hook? Why no output?
 
Note: my last outstanding question is at the bottom. Thanks!

I've implemented a versioning system throughout my global templates (outside of vbulletin). Basically, it's a combination of a php snippet that adds a unique value to the filename based on the last-modified time and an .htaccess rewrite to ignore the extra characters. This guarantees that the browser will always load the latest version of css and javascript files. You can read about this really creative and easy-to-implement process here.

I've created (and activated) the following plugin in global_start. Can anyone tell why it's not outputting anything?

Code:

function autoVer($url){
    $path = pathinfo($url);
    $ver = '.'.filemtime('/home/yadayada/public_html/'.$url).'.';
    echo $path['dirname'].'/'.str_replace('.', $ver, $path['basename']);
}

$bannercss = autoVer('/css/banner.css');


Edit: I'm getting the 'Cannot redeclare autover() in /home/yadayada/public_html/scripts/autoVer.php' error which makes no sense.

Another Update: apparently vB uses a function called autover(). So I changed it to myAutoVer and that error went away. Still, nothing is outputting. Any ideas?

Yet Another Update: The problem may be with my hook. I was using global_start and putting the $bannercss variable in the headinclude template. This outputs nothing. If I select the init hook, then it outputs the correct text but right at the top of the page rather than where the variable is employed. What hook should I be using?

Dismounted 03-11-2008 06:00 AM

You may as well just turn on the No-Cache header option in vBulletin Options. If you do insist on using your method, you need to return the value and not print it.

PHP Code:

function autoVer($url)
{
    
$path pathinfo($url);
    
$ver '.' filemtime('/home/yadayada/public_html/' $url) . '.';
    return 
$path['dirname'] . '/' str_replace('.'$ver$path['basename']);
}

$bannercss autoVer('/css/banner.css'); 


davide101 03-11-2008 01:41 PM

Thank you, Dismounted! That was a simple enough mistake on my part.

In regards to the no-cache headers, these are not effective for my purposes. I use three different types of content management systems and some global templates go above all of them. I need to ensure that when I update the template, each client will download a fresh copy. The rest of the time, I want clients to use the cached copy. The board slows down dramatically with no-cache headers on and it's a waste of a lot of bandwidth.

I highly recommend reading about this really clever and easy-to-implement versioning system. For those of us with environments that don't readily lend themselves to versioning, it makes it easy and automatic. What more could you ask for?


All times are GMT. The time now is 09:12 AM.

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.01002 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
  • (1)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)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