vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=242)
-   -   [HOW TO - VB4] Adding Stylesheets to Your vB4 Mod via Plugins (https://vborg.vbsupport.ru/showthread.php?t=228833)

CarlitoBrigante 11-24-2009 10:00 PM

[HOW TO - VB4] Adding Stylesheets to Your vB4 Mod via Plugins
 
THIS ARTICLE IS NO LONGER NEEDED FOR vB 4.0.0+: you can now just use the hook in the headinclude_bottom template: headinclude_bottom_css. As I wrote at the beginning of this tutorial, this was to help people working with beta versions.

As many coders have noticed, we still don't have a template hook in headinclude to add our own CSS to the css.php call in the template. Additionally, the simple method I am listing here might still be useful in the future, even when we get that hook.

One of the great things of the new vBulletin, in fact, is that you can manipulate CSS generation as you have been used to in your scripts.

Here you go.

1. First, add a template in Style & Templates, and assign it to your product in development. Let's call this template yourproduct.css.
2. Now, add a plugin for your product for caching this template. Go to Plugin Manager -> Add Plugin, call the plugin as you prefer, then choose the cache_template hook, and finally put the following code in it:
Code:

if(THIS_SCRIPT=='css')
{
  $cache[] = 'yourproduct.css';
}

3. Add another plugin for your product. Choose the css_start hook, then place this code in it:
Code:

if(in_array('vbulletin.css',$matches[1]))
{
  $matches[1][] = 'yourproduct.css';
}

The in_array check makes sure that your CSS is added only to the main vbulletin.css call.

That's it - your CSS will be added to the generated CSS file.

Brother Malachi 01-01-2010 11:23 AM

How do you assign a template to a product?

CarlitoBrigante 01-01-2010 04:07 PM

Code:

$config['Misc']['debug'] = true;
Add this to your config file. If you are using it on a live site, I'd recommend putting a conditional to enable debug only for your IP:

Code:

if($_SERVER['REMOTE_ADDR']=='xxx.xxx.xxx.xxx') $config['Misc']['debug'] = true;
Once done, you will see a product selection box in your vBulletin Style manager when adding a template.

Shadab 01-03-2010 11:09 AM

Quote:

But you could also do a different check, for example in case you only need the CSS for users using google chrome:
vbulletin-chrome.css has nothing to do with Google Chrome.
vBulletin "chrome" refers to the main Header, Navigation and Footer elements. :)

CarlitoBrigante 01-03-2010 03:55 PM

Hehe right, changing this. Completely forgot about this tutorial, I wrote it a few days after the beta release to us.

NgocTam 01-13-2010 02:01 PM

Not work with 4.0.1 if choose "Store CSS Stylesheets as Files"

I need other solution. Merge our custom template with additional.css (?). How can I do it?

CarlitoBrigante 01-13-2010 06:04 PM

Hello,

yes, this article is now obsolete. You can now just use the headinclude_bottom_css hook to add your stylesheets. It would probably be even better if there was a hook into additional.css as well. As I wrote above, this was mostly for people working with the beta at the time of this writing.

If you still want to use this method, you can add a conditional to add the call for the static files in the template hook above only in case static CSS is enabled. But this would be really useless, I think.

NgocTam 01-14-2010 01:41 AM

includes\adminfunctions_template.php:

function: write_style_css_directory($styleid, $parentlist, $dir = 'ltr')

Query (in line 769):
PHP Code:

$set $vbulletin->db->query_read($sql "
        SELECT DISTINCT title
        FROM " 
TABLE_PREFIX "template
        WHERE styleid IN (" 
$parentlist ") AND title LIKE '%.css'
    "
); 

My css template like *.css. But in CSS file I don't see it. Is It a bug?

CarlitoBrigante 01-14-2010 02:03 AM

No, if you read the file further, you will see that the result of the query is used only to generate the css file into the directory. After that, you still have to add the path to the headinclude, as I said above. That is why I said the method in the article is still valid, but you need also to add the link to the CSS file... which makes the whole purpose of this article meaningless ;)

A way of having your custom CSS added to the generated files would be to assign it a template type of "css"; but I think you can do this via XML file only (or query), and I am not sure of consequences as I have not explored the possibility.

In brief, easier to use a simple template hook, even though I can understand that some want to have products self contained in an XML file. This would be possible if the developers added a template hook into additional.css.

MARCO1 01-15-2010 01:08 PM

Quote:

Originally Posted by CarlitoBrigante (Post 1955063)
No, if you read the file further, you will see that the result of the query is used only to generate the css file into the directory. After that, you still have to add the path to the headinclude, as I said above. That is why I said the method in the article is still valid, but you need also to add the link to the CSS file... which makes the whole purpose of this article meaningless ;)

A way of having your custom CSS added to the generated files would be to assign it a template type of "css"; but I think you can do this via XML file only (or query), and I am not sure of consequences as I have not explored the possibility.

In brief, easier to use a simple template hook, even though I can understand that some want to have products self contained in an XML file. This would be possible if the developers added a template hook into additional.css.

What's about open new project for that in vbulletin.com ? I think it will be very nice to use template hooks also we want our products automatically installation.


All times are GMT. The time now is 04:54 PM.

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

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01529 seconds
  • Memory Usage 1,747KB
  • 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
  • (4)bbcode_code_printable
  • (1)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete