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

Reply
 
Thread Tools
WebTemplates 3.7.x: VB Integrated CMS (Content Management System) Details »»
WebTemplates 3.7.x: VB Integrated CMS (Content Management System)
Version: 3.7.00, by Logician Logician is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: Portal Software - Version: 3.7.x Rating:
Released: 07-28-2008 Last Update: 07-31-2008 Installs: 503
DB Changes Uses Plugins
Additional Files  
No support by the author.

(This hack is for vb version 3.7.x & 3.8.x ONLY. For vb 3.6.x, 3.5.x, 3.0.x and 2.x see my profile for relevant threads.)

"WebTemplates" is a vBulletin integrated Content Management System which allows you to create vb integrated "HTML" pages in your vb admin cp very easily. The pages can inherit your vbulletin skin/style, can recognize logged-in user, can be applied permissions per user or usergroup basis, can keep visit logs, hit counts and do many more.

VB4 version Update (9.9.2010): Please find 4.x version of WebTemplates4.x in its own thread.


WEBTEMPLATES 3.7.x BASIC FEATURES:
  • Very Easy Installation : Webtemplates can be installed to your board without modifying even a single vbulletin file. It is coded as a vb product and can be imported very easily.
  • Apply VB Permissions: You can ban any webtemplate to any user or usergroups easily. So for instance you can design a webtemplate which only members can see while guests can not, or only user A can not see etc.
  • Page Counter : Each webtemplate has a built-in counter and you can display page count to your visitors and you can edit it or turn it OFF/ON per webtemplate basis.
  • Visitor Logging&Tracking : You can track certain users' (by usergroup or userid) webtemplate visits to see who visited a webtemplate and when. This is configurable per webtemplate basis.
  • Site Contributers (Editor) Support : You can grant editing permissions for certain users or usergroups for your webtemplates individually and they will be able to update these webtemplates using their own editor interface. vB's WYSIWYG editor is supported in Editor interface.
  • Page Browsers & Who is Online Display: Webtemplates can display who is browsing that webtemplate while visitor is reading them (like default forum browse display of vbulletin). Webtemplate visits can also be monitored in who is online page.
  • Header/Footer Inclusion : Webtemplates can automatically use headers/footers (your default vb header/footer or custom ones)
  • Help Documents : The script comes with an extensive help document.
  • Admin Panel in Webtemplates : Your webtemplates can include an "admin panel" displayed to only admins and by using them you can access many details and stats of your page while you are browsing them.
  • SEO friendly URLs: You can make webtemplate URLs seo friendly in vb settings (Requires apache server).
  • XML Import/Export : XML Import/Export feature allows you to backup your webtemplates and use other hack users webtemplates in your board.
ADVANCED FEATURES FOR ADVANCED USERS:
  • Webquery Feature : With advanced "webquery" feature you can create dynamic webtemplates which include database query results. For instance you can easily add "last 10 threads forum X", "most active users list" etc. to your webtemplates with default webqueries that comes with installation or you can create your custom webqueries with basic SQL knowledge.
  • Multi Parsing : Webtemplates can parse PHP or HTML or TEXT (=smilie/img tags/bbcode parsing like vb posts). This means you can design a page just like vb posts (TEXT parsing), standart HTML (HTML parsing) or even in PHP (PHP parsing).
  • PHPINCLUDE per webtemplate : Every webtemplate has its own "phpinclude" field which you can run PHP codes before loading the Webtemplate
  • Theme Support : Webtemplates support "themes" which are parent webtemplates which include child webtemplates in them. For instance if you have 20 similiar pages which uses the same visual look, you can make a single theme for all of them, then just insert their content into this theme. If you change theme later, all 20 pages' visual will change automatically.
  • Conditionals : Webtemplates supports VB3 template conditionals so you can design webtemplates which change their display under different conditions.
  • Default variables : You can use/display certain variables in your webtemplates like username of the visitor, visitor email address, last visit time, page creation time, page last edit time, Last visitor name, last visit time etc.
Sample WebTemplates from Sites using this hack:
(Some 3.5 and some are 3.0 versions but WebTemplate look and feel didn't change much so both will give you the idea.)

http://www.worldwideknights.com/view_mission.htm
http://www.theadminzone.com/forums/view.php?pg=aboutus
http://www.hystersisters.com/vb2/view_guidelines.htm
http://www.worldwideknights.com/view_info.htm
http://www.hystersisters.com/vb2/view_books.htm
http://www.worldwideknights.com/view_spread.htm
http://www3.fertilethoughts.com/forums/view.php?pg=acronyms
http://www.makeuptalk.com/forums/view.php?pg=makeuptalk-newsletter
http://www.bklab.com (entire site is designed with Webtemplates only)
(Actually this hack is one of the most popular vb hacks so it is used by hundreds -if not thousands- of vbulletin sites and you can easily find them if you go to google and search "Logician's WebTemplates" WITH quotation marks)

3.5 version Admin CP screenshot attached to this post. 3.0.x screenshots (here and here) also still applies for this version.

If you use the hack, clicking here will make sure you'll know about updates&bug fixes. It will also help me understand how many people is using the hack so please click the install button if you use it. Thank you..

About this 3.7.xx Version: This 3.7.xx version is same as previous 3.6.x version. 3.6.x version was already working in vbulletin 3.7.x except a few minor bugs and these bugs are fixed in this version to make it dedicated solely to vbulletin 3.7.x. Please see "what's new" in the next post for more details.

Version Updates:
29.July.2008 - > Version 3.7.00
* Hack 3.7.00 is released.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
2 благодарности(ей) от:
Xexiu

Comments
  #252  
Old 11-03-2008, 09:00 PM
segwayon segwayon is offline
 
Join Date: Mar 2008
Posts: 152
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Logician, for a really cool mod. It works like a charm. I am having a minor template issue, though, and can't figure out where it's coming from.

In the navbar template, there's the top row which contains the "navbits_start.gif" folder-looking icon file. Using this webtemplate, while that folder icon sits okay to the lefthand side, the beadcrumbs next to this image file centered inside its TD column rather than sitting justified to the left next to that folder icon. It only happens with our default "Transparencity+" style, as all other selected styles render the navbar within your webtemplates okay. And when I compare word for word, both navbar templates look identical to me (the one which is mysteriously centered and another which is fine), and so it might be in a CSS section perhaps. I wish I knew where to look to find out why the breadcrumbs want to float away to the center.

Any pointers appreciated.
Reply With Quote
  #253  
Old 11-05-2008, 12:46 PM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ishare View Post
Can not find the right variable for the forum title :
When i list the threads of forumid=2, i can sort them through the letterbar. In the current letterbar, there are "Title", "Author" and "Date" sections. I did add another section called "Forum" which will show the forum title of the thread which it belongs to.
query changes as

PHP Code:
SELECT t.threadidt.titlet.postusername,t.postuserid,t.datelinef.title as forumtitle 
FROM 
" . TABLE_PREFIX . "thread t
LEFT JOIN 
" . TABLE_PREFIX . "forum f ON f.forumid=t.forumid
WHERE t
.sticky=AND t.visible=AND t.forumid=3 $letterquery 
ORDER BY t
.dateline DESC
LIMIT 500 
and Query PHPInclude Code (Before) as:

PHP Code:
$myletter1 substr($myletter01);
if (
$myletter == '_')
{
        
$letterquery "AND (t.title LIKE '0%'  OR t.title LIKE '1%'  OR t.title LIKE '2%'  OR t.title LIKE '3%'  OR t.title LIKE '4%'  OR t.title LIKE '5%'  OR t.title LIKE '6%'  OR t.title LIKE '7%'  OR t.title LIKE '8%'  OR t.title LIKE '9%') ";
}
else
{
     
$letterquery "AND t.title LIKE '$myletter1%'";




Quote:
Originally Posted by ishare View Post
Is it possible to pull threads from different forums at same time ?
WHERE sticky=0 AND visible=1 AND (forumid=103 OR forumid=104 OR forumid=105) $letterquery
Reply With Quote
  #254  
Old 11-05-2008, 12:49 PM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by segwayon View Post
Thanks Logician, for a really cool mod. It works like a charm. I am having a minor template issue, though, and can't figure out where it's coming from.

In the navbar template, there's the top row which contains the "navbits_start.gif" folder-looking icon file. Using this webtemplate, while that folder icon sits okay to the lefthand side, the beadcrumbs next to this image file centered inside its TD column rather than sitting justified to the left next to that folder icon. It only happens with our default "Transparencity+" style, as all other selected styles render the navbar within your webtemplates okay. And when I compare word for word, both navbar templates look identical to me (the one which is mysteriously centered and another which is fine), and so it might be in a CSS section perhaps. I wish I knew where to look to find out why the breadcrumbs want to float away to the center.

Any pointers appreciated.
Webtemplates does not have a different CSS section. It just inherits your CSS. You must make sure you use "default vb header/footer" in your webtemplates. If you already do, I'd say it should be an issue of your custom style. Please also compare CSS sections (before </head> tag) with word. You can maybe catch a pattern there
Reply With Quote
  #255  
Old 11-05-2008, 05:43 PM
maidos maidos is offline
 
Join Date: Jul 2006
Posts: 925
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

do you allow css coding on webtemplate, i wish to add rounded boxes
Reply With Quote
  #256  
Old 11-05-2008, 07:45 PM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by maidos View Post
do you allow css coding on webtemplate, i wish to add rounded boxes
You can add it to your vb css as:

<if condition="THIS_SCRIPT==view">
your css for webtemplates
</if>
Reply With Quote
  #257  
Old 11-05-2008, 09:04 PM
maidos maidos is offline
 
Join Date: Jul 2006
Posts: 925
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks but exactly where do i add it, i added on style manager, forum skin, main css but it doesnt work
please be a little more specific
have this
PHP Code:

<if condition="THIS_SCRIPT==view">
.
rtop,.rbottom{display:block}
.
rtop *,.rbottom *{display:block;height1px;overflowhidden}
.
r1{margin0 5px}
.
r2{margin0 3px}
.
r3{margin0 2px}
.
r4{margin0 1px;height2px}

.
rs1{margin0 2px}
.
rs2{margin0 1px}
</if> 

i dont want to use image to get the corners so i chose js instead but where will i add this js file?

PHP Code:
function NiftyCheck()
{
if(!
document.getElementById || !document.createElement)
    return(
false);
var 
b=navigator.userAgent.toLowerCase();
if(
b.indexOf("msie 5")>&& b.indexOf("opera")==-1)
    return(
false);
return(
true);
}

function 
Rounded(selector,bk,color,size){
var 
i;
var 
v=getElementsBySelector(selector);
var 
l=v.length;
for(
i=0;i<l;i++){
    
AddTop(v[i],bk,color,size);
    
AddBottom(v[i],bk,color,size);
    }
}

function 
RoundedTop(selector,bk,color,size){
var 
i;
var 
v=getElementsBySelector(selector);
for(
i=0;i<v.length;i++)
    
AddTop(v[i],bk,color,size);
}

function 
RoundedBottom(selector,bk,color,size){
var 
i;
var 
v=getElementsBySelector(selector);
for(
i=0;i<v.length;i++)
    
AddBottom(v[i],bk,color,size);
}

function 
AddTop(el,bk,color,size){
var 
i;
var 
d=document.createElement("b");
var 
cn="r";
var 
lim=4;
if(
size && size=="small"){ cn="rs"lim=2}
d.className="rtop";
d.style.backgroundColor=bk;
for(
i=1;i<=lim;i++){
    var 
x=document.createElement("b");
    
x.className=cn i;
    
x.style.backgroundColor=color;
    
d.appendChild(x);
    }
el.insertBefore(d,el.firstChild);
}

function 
AddBottom(el,bk,color,size){
var 
i;
var 
d=document.createElement("b");
var 
cn="r";
var 
lim=4;
if(
size && size=="small"){ cn="rs"lim=2}
d.className="rbottom";
d.style.backgroundColor=bk;
for(
i=lim;i>0;i--){
    var 
x=document.createElement("b");
    
x.className=cn i;
    
x.style.backgroundColor=color;
    
d.appendChild(x);
    }
el.appendChild(d,el.firstChild);
}

function 
getElementsBySelector(selector){
var 
i;
var 
s=[];
var 
selid="";
var 
selclass="";
var 
tag=selector;
var 
objlist=[];
if(
selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
    
s=selector.split(" ");
    var 
fs=s[0].split("#");
    if(
fs.length==1) return(objlist);
    return(
document.getElementById(fs[1]).getElementsByTagName(s[1]));
    }
if(
selector.indexOf("#")>0){ //id selector like "tag#id"
    
s=selector.split("#");
    
tag=s[0];
    
selid=s[1];
    }
if(
selid!=""){
    
objlist.push(document.getElementById(selid));
    return(
objlist);
    }
if(
selector.indexOf(".")>0){  //class selector like "tag.class"
    
s=selector.split(".");
    
tag=s[0];
    
selclass=s[1];
    }
var 
v=document.getElementsByTagName(tag);  // tag selector like "tag"
if(selclass=="")
    return(
v);
for(
i=0;i<v.length;i++){
    if(
v[i].className==selclass){
        
objlist.push(v[i]);
        }
    }
return(
objlist);

Reply With Quote
  #258  
Old 11-09-2008, 06:35 AM
rapidphim rapidphim is offline
 
Join Date: Feb 2007
Posts: 733
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is there a way for me to create an html frameset page? I want to create a page with top fixed frame and second frame with scrollable.

How can I do that with this hack? Thanks.
Reply With Quote
  #259  
Old 11-09-2008, 03:08 PM
sparklywater sparklywater is offline
 
Join Date: Jun 2008
Posts: 248
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm using the '$WQ_testpagination' query to fetch a list of all the posts on my forum, see here http://www.sparklywater.com/posts.html. I have set the 'rows per page' setting to 30 in the 'PHP include' section of the webtemplate, like this:

Code:
$vbulletin->input->clean_array_gpc('r', array(
		'pagenumber'	  => TYPE_INT,
		'perpage'		  => TYPE_INT,
	));

	$pagenumber = $vbulletin->GPC['pagenumber'];
	$perpage = $vbulletin->GPC['perpage'];

	// ----------------------------------------------
	// Pagination
	// ----------------------------------------------
	//total actions records
	$totalrecordsC = $db->query_first("
SELECT COUNT(*) AS record FROM 
" . TABLE_PREFIX . "thread AS thread
INNER JOIN " . TABLE_PREFIX . "post AS post on (post.postid = thread.lastpostid)
INNER JOIN " . TABLE_PREFIX . "forum AS forum on (thread.forumid = forum.forumid)
");
	$totalrecords = intval($totalrecordsC['record']);

	// set defaults for pagination
	if ($perpage == 0 or $perpage > 1000) {$perpage = 30;}
	if (!isset($pagenumber) or $pagenumber == 0) {$pagenumber = 1;}
	$limitlower = ($pagenumber - 1) * $perpage + 1;
	$limitupper = $limitupper = ($pagenumber) * $perpage;
	if ($limitupper > $totalrecords) 
	{
	$limitupper = $totalrecords;  
			if ($limitlower > $totalrecords) {$limitlower = $totalrecords - $perpage;}
	}
	if ($limitlower <= 0) {$limitlower = 1;}
	$sel_limitlower = $limitlower;
                $sel_limitlowerminus1 = $sel_limitlower -1;

$pagenav = construct_page_nav($pagenumber, $perpage, $totalrecords, "$WT_Option_NameOFviewphp?$session[sessionurl]pg=$pg&perpage=$perpage");

	// -- /Pagination}


On the third page of my results, there are currently 25 rows / posts listed, so this should be the last page in the results (ie. no fourth page). However, in the pagenav at the bottom-right hand side, the 4th page number is listed and when clicking on page 4, the table simply states "No threads to List" (ie. the 'No Results Row' value). This 4th page is unnecessary because the final rows of results already ended on page 3.

Is there any way to fix this?
Reply With Quote
  #260  
Old 11-09-2008, 03:57 PM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by sparklywater View Post
I'm using the '$WQ_testpagination' query to fetch a list of all the posts on my forum, see here http://www.sparklywater.com/posts.html. I have set the 'rows per page' setting to 30 in the 'PHP include' section of the webtemplate, like this:

Code:
$vbulletin->input->clean_array_gpc('r', array(
        'pagenumber'      => TYPE_INT,
        'perpage'          => TYPE_INT,
    ));
 
    $pagenumber = $vbulletin->GPC['pagenumber'];
    $perpage = $vbulletin->GPC['perpage'];
 
    // ----------------------------------------------
    // Pagination
    // ----------------------------------------------
    //total actions records
    $totalrecordsC = $db->query_first("
SELECT COUNT(*) AS record FROM 
" . TABLE_PREFIX . "thread AS thread
INNER JOIN " . TABLE_PREFIX . "post AS post on (post.postid = thread.lastpostid)
INNER JOIN " . TABLE_PREFIX . "forum AS forum on (thread.forumid = forum.forumid)
");
    $totalrecords = intval($totalrecordsC['record']);
 
    // set defaults for pagination
    if ($perpage == 0 or $perpage > 1000) {$perpage = 30;}
    if (!isset($pagenumber) or $pagenumber == 0) {$pagenumber = 1;}
    $limitlower = ($pagenumber - 1) * $perpage + 1;
    $limitupper = $limitupper = ($pagenumber) * $perpage;
    if ($limitupper > $totalrecords) 
    {
    $limitupper = $totalrecords;  
            if ($limitlower > $totalrecords) {$limitlower = $totalrecords - $perpage;}
    }
    if ($limitlower <= 0) {$limitlower = 1;}
    $sel_limitlower = $limitlower;
                $sel_limitlowerminus1 = $sel_limitlower -1;
 
$pagenav = construct_page_nav($pagenumber, $perpage, $totalrecords, "$WT_Option_NameOFviewphp?$session[sessionurl]pg=$pg&perpage=$perpage");
 
    // -- /Pagination}


On the third page of my results, there are currently 25 rows / posts listed, so this should be the last page in the results (ie. no fourth page). However, in the pagenav at the bottom-right hand side, the 4th page number is listed and when clicking on page 4, the table simply states "No threads to List" (ie. the 'No Results Row' value). This 4th page is unnecessary because the final rows of results already ended on page 3.

Is there any way to fix this?
Make sure you use the same query in your webquery and also in the section :

Quote:
$totalrecordsC = $db->query_first("
SELECT COUNT(*) AS record FROM
" . TABLE_PREFIX . "thread AS thread
INNER JOIN " . TABLE_PREFIX . "post AS post on (post.postid = thread.lastpostid)
INNER JOIN " . TABLE_PREFIX . "forum AS forum on (thread.forumid = forum.forumid)
");
You can be using different queries which causes the problem.
Reply With Quote
  #261  
Old 11-09-2008, 10:01 PM
rapidphim rapidphim is offline
 
Join Date: Feb 2007
Posts: 733
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

logician, would you able to help me with above question?
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 06:50 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.10286 seconds
  • Memory Usage 2,413KB
  • Queries Executed 25 (?)
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
  • (2)bbcode_code
  • (4)bbcode_php
  • (6)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (1)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
  • (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_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete