Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
United-Forum CSS Sprites - ludicrous speed - NOW! Details »»
United-Forum CSS Sprites - ludicrous speed - NOW!
Version: 0.7.2, by Osbes Osbes is offline
Developer Last Online: Feb 2013 Show Printable Version Email this Page

Category: Board Optimization - Version: 4.x.x Rating:
Released: 07-11-2011 Last Update: 08-05-2011 Installs: 267
Uses Plugins Auto-Templates
Additional Files Is in Beta Stage  
No support by the author.

tl;dr Makes your forum faster.

Want an easy one-click installation for this addon? . Vote for this jira-entry

Add on currently is in beta stage

When visiting a website, speed is a very important factor not only for users but crawlers as well. Long loading times are a nuisance since your time is basically wasted during the waiting period. Hence, we are trying everything we can in order to speed up our site. One great way to improve loading times is by the use of css sprites. Unfortunately these are not implemented by vBulletin.

We therefore decided to develop our own css-sprite add on for vBulletin boards and want to share this code with the worldwide vBulletin community.

Live demo
The add on is permanently running in our vBulletin board ( > 2.000.000 posts), take a look:
http://www.united-forum.de

The add on will be supported via this thread. If you have any questions, issues, improvements or feedback regarding this add on, please feel free to post a comment or write us a pm at any time. We are happy to discuss

vBulletin performance using css sprites
Our tests are based on version 0.7.0. We used the analytic tools firebug network utility and the googlelabs.com page speed site

on the client side the following parameter were used:
download speed: 5.7 MBit/s
ping: 31ms




css sprites - what are they?
The intention behind css sprites is the bundling of many small graphics into one large graphic in order to decrease the number of required http requests. This shortens the loading times of the given website. In addition, the the accumulated size of all small graphics is higher than the size of the sprite due to reasons of compression.
You can find further information in a great article by Chris Coyier.
What is the gain in using css sprites?
Aside from the technical implementation, the question on how much one actually does gain by using css sprites is of the most interest. Obviously they decrease loading times - but how important are small loading times and what is the impact on vBulletin overall loading times?

A short time ago, Jasper Aguila pointed out that speed is one crucial stickiness factor in his blog on vBulletin.com.
Quote:
Originally Posted by Jasper Aguila vBulletin Support
The internet has unfortunately contributed to the exponential decrease in attention span for many individuals. That's why this decade is seeing a trend in emerging technologies emphasizing the importance of speed request. It's crucial for your content to be promptly distributed in a timely manner, else bounce rate will increase - making you lose returning visitors. It's also important to note that slow sites may be penalized by search engines.

With better browsers, more powerful processors, and improved technologies constantly releasing each year, it's becoming quite difficult to provide excuses for slow loading pages. Therefore, try optimizing your server for speed. Read up and learn optimization techniques at vBulletin.com's Server Configuration forum.
In addition, the google ranking is influenced by the site speed as well.

Google Webmaster Central Blog
Quote:
Originally Posted by 09.04.2010 - Google Webmaster Central Blog
You may have heard that here at Google we're obsessed with speed, in our products and on the web. As part of that effort, today we're including a new signal in our search ranking algorithms: site speed. Site speed reflects how quickly a website responds to web requests.
vBseo Webmaster Mert G?k?eimam
Quote:
CSS sprites is a huge bonus for big boards , any big board owner definately should use it.
Last but not least, not only the user's loading time is reduced, but also does the server load decrease as the server will have to handle a lot less of http requests. This clears available connections and cpu time.
Add on features
In the current released beta version 0.7.2, sprites are available for FORUMHOME and FORUMDISPLAY. Coming up next SHOWTHREAD.

Sprites are created style based for all forum styles and saved in a folder which you can set via the imgdir_sprite stylevar. You have one additional button in the ACP (CSS-Sprites -> Refresh) which automatically creates all sprites, the according css definitions and includes those css definitions in the vBulletin css rollup files.
Installation

First of all, if you didnt want to change the templates manually, install the Template Modification System (TMS). Now proceed with the installation:
  • upload the contents of the upload folder into your forum home directory.
  • import the add on in the ACP
  • upon installation a new stylevar imgdir_sprite will be created. Update this stylevar based on your file structure - default value is the vbulletin sprite directory. Make sure the folder is writable, else the sprites can't be saved!
  • create the sprites via the ACP at CSS-Sprite using the Refresh option.
  • If you have installed TMS, you are done now. This was an easy gained speed up, not? If you didnt installed TMS and didnt want to do it, proceed with the next point:
  • in order to use the sprites, you then will have to edit some templates. The diffs (xou will find it in the do_not_upload folder show which parts you have to delete '<' and which parts to add '>' In addition, on top find the lines in which you will find the respective code.[/b]

Download Now

File Type: xml product-sprite-0.7.2.xml (51.9 KB, 1699 views)
File Type: zip sprite_0.7.2.zip (22.0 KB, 2769 views)

Screenshots

File Type: jpg forumdisplay_default.jpg (151.3 KB, 0 views)
File Type: png forumdisplay_sprites_070.png (70.8 KB, 0 views)
File Type: jpg forumhome_default.jpg (145.6 KB, 0 views)
File Type: png forumhome_sprites_070.png (66.6 KB, 0 views)
File Type: jpg nachher_forumdisplay.jpg (96.6 KB, 0 views)
File Type: jpg nachher_forumhome.jpg (94.1 KB, 0 views)

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #292  
Old 08-12-2011, 03:16 PM
steeler7 steeler7 is offline
 
Join Date: Oct 2009
Posts: 141
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Osbes View Post
Hello steeler7,

sorry for my late answer.

It seems you have already find the solution? Just to make sure, this are the needed template changes:

Code:
6c14
<    <a href="{vb:link thread, {vb:raw threadinfo}, {vb:raw pageinfo_lastpost}}#post{vb:raw lastpostinfo.lastpostid}"><img src="{vb:stylevar imgdir_button}/lastpost-{vb:stylevar right}.png" alt="{vb:rawphrase go_to_last_post}" /></a>
---
>    <a href="{vb:link thread, {vb:raw threadinfo}, {vb:raw pageinfo_lastpost}}#post{vb:raw lastpostinfo.lastpostid}"><span class="sprite_button_lastpost" title="{vb:rawphrase go_to_last_post}"></span></a>
18c26
<    <a href="{vb:link thread, {vb:raw threadinfo}, {vb:raw pageinfo_lastpost}}#post{vb:raw lastpostinfo.lastpostid}"><img src="{vb:stylevar imgdir_button}/lastpost-{vb:stylevar right}.png" alt="{vb:rawphrase go_to_last_post}" /></a>
---
>    <a href="{vb:link thread, {vb:raw threadinfo}, {vb:raw pageinfo_lastpost}}#post{vb:raw lastpostinfo.lastpostid}"><span class="sprite_button_lastpost" title="{vb:rawphrase go_to_last_post}"></span></a>
Best regards
Sebastian
Thanks!

i'll go check those out.

One other question. I've been having the issue with the Attachment clip graphic that was mentioned earlier in this thread. I asked my host to upgrade my GD to 2.0.36 like you had recommended and this was the response I received :

Quote:
The version of the 'gd' package installed on your VPS is 2.0.33. As we have found out from the official repository https://bitbucket.org/pierrejoye/gd-libgd, this is the latest stable version. So the version 2.0.36 of this library couldn't be installed.
Reply With Quote
  #293  
Old 08-12-2011, 04:15 PM
Osbes Osbes is offline
 
Join Date: Jul 2008
Posts: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello steeler7,

the versioning in the repo is a little bit messed up, since the tags shown by bitbucket (latest 2.0.33 / 2.0.34RC1) dont correspond to the .hgtags (latest 2.0.35) and it also didnt correspond to the NEWS (latest 2.0.36).

To bring some order in this mess, its best to look at the official site for this. Since this site is currently down, please us the waybackmachine for this:
http://web.archive.org/web/201012240....org/Main_Page

As you can see, the latest official release is 2.0.36 RC1 and the latest stable release is 2.0.35.

Since 2.0.36 RC1 is now nearly 4 years old and fixes some security issues, it is mostly addressed as 2.0.36 and - as example - used by the stable release of debian (http://packages.debian.org/squeeze/libgd2-noxpm) and was even used two years before by the oldstable release (http://packages.debian.org/lenny/libgd2-noxpm).

If you use gd2 embeded in php and want to know which is the minimum required php-version which had this patch embeded, we need to look a little bit closer.

This was the patch for the support of png "gray+alpha": https://bitbucket.org/pierrejoye/gd-...g-src/gd_png.c
Now we need to look into the php repo to make sure since which php version this patch was included.

You will find, that this patch is included in the embeded version since PHP 5.3.0 (https://svn.php.net/repository/php/p...libgd/gd_png.c).

For comparison PHP 5.2.17 (latest version before 5.3.0) in which this patch wasn't included: https://svn.php.net/repository/php/p...libgd/gd_png.c


If it isn't possible to update the gdlib, you can always switch your images from "gray+alpha" with an version using "color RGBA". But i mostly recommend the update of the gdlib, since 3.0.36(RC1) also fixes some serious security issues.

I hope this helps you

Best regards
Sebastian
Reply With Quote
  #294  
Old 08-12-2011, 08:46 PM
steeler7 steeler7 is offline
 
Join Date: Oct 2009
Posts: 141
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Osbes View Post
Hello steeler7,

the versioning in the repo is a little bit messed up, since the tags shown by bitbucket (latest 2.0.33 / 2.0.34RC1) dont correspond to the .hgtags (latest 2.0.35) and it also didnt correspond to the NEWS (latest 2.0.36).

To bring some order in this mess, its best to look at the official site for this. Since this site is currently down, please us the waybackmachine for this:
http://web.archive.org/web/201012240....org/Main_Page

As you can see, the latest official release is 2.0.36 RC1 and the latest stable release is 2.0.35.

Since 2.0.36 RC1 is now nearly 4 years old and fixes some security issues, it is mostly addressed as 2.0.36 and - as example - used by the stable release of debian (http://packages.debian.org/squeeze/libgd2-noxpm) and was even used two years before by the oldstable release (http://packages.debian.org/lenny/libgd2-noxpm).

If you use gd2 embeded in php and want to know which is the minimum required php-version which had this patch embeded, we need to look a little bit closer.

This was the patch for the support of png "gray+alpha": https://bitbucket.org/pierrejoye/gd-...g-src/gd_png.c
Now we need to look into the php repo to make sure since which php version this patch was included.

You will find, that this patch is included in the embeded version since PHP 5.3.0 (https://svn.php.net/repository/php/p...libgd/gd_png.c).

For comparison PHP 5.2.17 (latest version before 5.3.0) in which this patch wasn't included: https://svn.php.net/repository/php/p...libgd/gd_png.c


If it isn't possible to update the gdlib, you can always switch your images from "gray+alpha" with an version using "color RGBA". But i mostly recommend the update of the gdlib, since 3.0.36(RC1) also fixes some serious security issues.

I hope this helps you

Best regards
Sebastian
Here's my hosts response after providing to them your explanation :

Quote:
As you know you have cPanel on the server and we use all libraries from the official repositories. And the latest version of GD library in the official repositories is 2.0.33-9.4, which is currently installed on your VPS. Any custom install may cause problems to Apache + PHP, so this can be done at your own risk and we can't guarantee that everything will be working properly after the upgrade.
I';m to novice to install stuff like this myself , but I figured posting this for you and others just in case anyone else happens to run into this issue
Reply With Quote
  #295  
Old 08-13-2011, 01:10 AM
FReeSTER FReeSTER is offline
 
Join Date: Jun 2006
Location: Rome
Posts: 730
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I might be dumm but do I have to do all those template edits on the dfff file?

I dont get the way is been done, which templates I edit, or remove?
Reply With Quote
  #296  
Old 08-13-2011, 04:38 AM
FReeSTER FReeSTER is offline
 
Join Date: Jun 2006
Location: Rome
Posts: 730
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

damn the more I try with this mod the more problems I get. errr
Reply With Quote
  #297  
Old 08-13-2011, 07:38 AM
Osbes Osbes is offline
 
Join Date: Jul 2008
Posts: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello FReeSTER,

the easiest way is to install the Template Modification System and than install this addon. Than all template-changes will be done automatically.



If you do it manually you need to do all the template-changes within the TEMPLATE_CHANGES.diff.

In the diff-format, "<" means remove and ">" means add. in a combination like

Code:
Template: block_blogentries
5c5
<    <img src="{vb:stylevar imgdir_cms}/widget-blog.png" alt="" />
---
>    <span class="cms_widget_blog"></span>
It would mean

replace
Code:
<img src="{vb:stylevar imgdir_cms}/widget-blog.png" alt="" />
with
Code:
<span class="cms_widget_blog"></span>
Best regards
Sebastian
Reply With Quote
  #298  
Old 08-13-2011, 03:22 PM
kingMOB kingMOB is offline
 
Join Date: Nov 2007
Posts: 69
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Up there is saying "vB Version: 4.x.x", but when trying to install in a 4.0.8 version the plugin says it is incompatible.
Reply With Quote
  #299  
Old 08-13-2011, 03:28 PM
Mooff Mooff is offline
 
Join Date: Mar 2010
Posts: 301
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

nvm.
Reply With Quote
  #300  
Old 08-13-2011, 03:39 PM
Osbes Osbes is offline
 
Join Date: Jul 2008
Posts: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello kingMOB,

the addon has internally vBulletin 4.1.3 and above as depency.

product-sprite-0.7.2.xml
Code:
<dependency dependencytype="vbulletin" minversion="4.1.3" maxversion="" />
You can change this to
Code:
<dependency dependencytype="vbulletin" minversion="4.0.8" maxversion="" />
or lower to run it with vBulletin 4.0.8.

I have set this thread to vB Version: 4.x.x, since it should work with 4.x.x theoretically (as far as i can see), but until now it wasnt independent and practically confirmed, thats why the minversion is currently set to 4.1.3, the lowest vBulletin version for which it was confirmed in a live system.

Best regards
Sebastian
Reply With Quote
  #301  
Old 08-14-2011, 02:23 AM
FReeSTER FReeSTER is offline
 
Join Date: Jun 2006
Location: Rome
Posts: 730
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Osbes View Post
Hello FReeSTER,

the easiest way is to install the Template Modification System and than install this addon. Than all template-changes will be done automatically.



If you do it manually you need to do all the template-changes within the TEMPLATE_CHANGES.diff.

In the diff-format, "<" means remove and ">" means add. in a combination like

Code:
Template: block_blogentries
5c5
<    <img src="{vb:stylevar imgdir_cms}/widget-blog.png" alt="" />
---
>    <span class="cms_widget_blog"></span>
It would mean

replace
Code:
<img src="{vb:stylevar imgdir_cms}/widget-blog.png" alt="" />
with
Code:
<span class="cms_widget_blog"></span>
Best regards
Sebastian
Got it mate, thanks

I went to page speed from google and Im getting this

Suggestions for this page
The following images served from myfreeneeds.com should be combined into as few images as possible using CSS sprites.

Suggestions for this page

The following images served from myfreeneeds.com should be combined into as few images as possible using CSS sprites.
I also have this problem on the subforums showing no images

Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:24 AM.


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.06931 seconds
  • Memory Usage 2,414KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (9)bbcode_code
  • (8)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (17)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (8)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete