vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Programming Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=188)
-   -   Skinning: Understanding A Template-Based System (https://vborg.vbsupport.ru/showthread.php?t=124576)

Princeton 08-20-2006 10:00 PM

Skinning: Understanding A Template-Based System
 
1 Attachment(s)
vBulletin uses a "template-based system" to render all web pages.

[imglft]https://vborg.vbsupport.ru/images/portal/puzzle.gif[/imglft] In order to modify the design of your site, you will need to first understand WHAT? and WHY? a template-based system.

WHAT IS A TEMPLATE-BASED SYSTEM?
First of all, a template-based system (eg. vBulletin) is not the same as "templates" purchased at monstertemplate.com.

Template-based system are files used by a particular program (eg vBulletin) that are not complete HTML files - they contain only parts of the HTML that the system puts together to build a web page.

WHY A TEMPLATE-BASED SYSTEM?
Templating is an easy way to create a web site without a lot of work in maintaining a consistent look and feel across the entire site. For example, all you have to do is modify a template and the modifications will reflect across every web page.

SHOW ME AN EXAMPLE
Are you still puzzled? OK, let's jump right in and play with an example.

Let's say, we have 2 sections in our site: Site Policies and Site Rules.
To render these sections, we have a total of 4 templates.

TEMPLATE 1 (Template Name: PAGE)
Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
$HTML
</body>
</html>

TEMPLATE 2 (Template Name: page_content)
Code:

<h1>$title</h1>
<table class="tborder" width="100%" border="0" cellspacing="1" cellpadding="5">
  <tr>
    <td class="alt1" width="180">$sidebar_content</td>
    <td class="alt1" width="100%"><p>$text</p></td>
  </tr>
</table>

TEMPLATE 3 (Template Name: page_footer)
Code:

<div class="smallfont">? Copyright 2006 GO-TOTAL LLC </div>
TEMPLATE 4 (Template Name: page_sidebar)
Code:

<table class="tborder" width="100%" border="0" cellspacing="1" cellpadding="5">
  <tr>
    <td class="thead">Sidebar Title</td>
    <td class="alt1"><div>This is the sidebar content.</div></td>
  </tr>
</table>

When visiting each section, the script will build the HTML by using the variables for the specific page and putting the following templates together: PAGE + page_sidebar + page_content + page_footer

The title and content for each page is as follow:
Variables for our policy page:
$title= 'Site Policies';
$text= 'Hello world! This are my policies...';
Variables for our rules page:
$title= 'Site Rules';
$text= 'In order to participate you must follow our rules...";
The Site Policies page will look this when completed:
Attachment 52422
(click on thumbnail to view content)

The Site Rules page will look this when completed:
Attachment 52423
(click on thumbnail to view content)

Now, just imagine this on a larger scale ... let's say 1000's of pages; and, you need to modify the copyright notice.

Well, with a template-based system, all you have to do is modify the page_footer template; and the changes will be displayed on all your pages! Now, isn't that great? :up:

What a great way to save time. Time is money!

So you see, the idea behind a "template-based system" is that you only have to write the HTML 1 time; and, you can use it over and over again. It's similar to CSS (that's another tutorial) -- you only have to write it once and it affects the whole site.

smacklan 08-23-2006 02:16 PM

very good info Princeton...thanks! :)

Princeton 08-23-2006 03:02 PM

appreciate the comments :up:

hopefully, it can help someone new to "Skinning vbulletin"

HPIA 10-15-2006 12:29 AM

A good article leaves not a doubt in my mind. Good work!

Triky 03-20-2007 01:05 PM

Nice tutorial, Princeton. :)

cdembek 03-25-2007 10:21 PM

how are the templates stored.. I know they are stored in a DB but which table do they get stored in.. lets say the header, navbar and footer templates... good read.. thanks for the post

Antivirus 04-04-2007 12:39 AM

Are you asking which database table holds the templates?

pappy1961 04-10-2007 09:42 PM

I for one would be VERY Grateful to Princeton for many more of those type explanations.

By the way Princeton, you have a frsh start newbie goin right here!!

Princeton 04-16-2007 12:51 PM

thanks pappy ... when I have time, I'll write some new articles. :)

mktrilogy 06-16-2007 01:58 AM

Is there a way to change one style and it also changes other styles that u have? or my question is not the same as ur topic ? :)

Princeton 06-18-2007 01:33 PM

I have no idea what you are referring to.

But I'm going to say .. no, it has nothing to do with this topic. ;)

Pc 1203 09-30-2007 06:41 PM

Quote:

Originally Posted by cdembek (Post 1212204)
how are the templates stored.. I know they are stored in a DB but which table do they get stored in.. lets say the header, navbar and footer templates... good read.. thanks for the post

I'm also wondering about that.

- Pc1203

S.McAvoy 12-07-2007 01:56 PM

Same here

pyd 12-09-2007 09:13 AM

Are there any complete "Walkthrouhgs" on how to create a complete style?

Jasem 04-23-2008 08:13 PM

Thank you very much

David_R 05-28-2008 02:27 PM

What template engine vbulletin uses ?
Is it smarty or something else (inhouse)

King Kovifor 06-03-2008 07:46 PM

It is an in house template engine.

ElizeF 06-14-2008 11:22 AM

Thanks, now I understand a little more of how the "vbulletin" template-system works.

Abdu 07-20-2008 08:06 PM

Do you Joe do you perform custom skin work for others at the moment?

Princeton 07-21-2008 12:18 PM

Quote:

Do you Joe do you perform custom skin work for others at the moment?
sorry, too busy

if you want something quick I suggest purchasing a skin from a company such as vbskinworks.com .. if you are looking for some custom work you can post within the
Requests For Paid Services forum

brhoom 12-17-2008 02:40 AM

very good info

...

thanks

mmoore5553 03-12-2009 01:11 AM

i am willing to pay princeton for a tutorial on skinning


All times are GMT. The time now is 12:09 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.01408 seconds
  • Memory Usage 1,757KB
  • 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
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (22)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