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

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

Version: 3.5.8 Rating:
Released: 12-15-2005 Last Update: 06-20-2008 Installs: 698
Uses Plugins Template Edits
Additional Files  
No support by the author.

(This hack is for vb version 3.5.x AND 3.6.x. For vb 3.0.x and 2.x see my profile for relevant threads.)

(For vb 3.7 version, please go to this thread)

"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.






WEBTEMPLATES 3.5.x BASIC FEATURES:
  • Very Easy Installation : Webtemplates can be installed to your board without modifying even a single vbulletin file. It is coded as an pluggin and supports phrase system for user interfaces.
  • 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.leatherneck.com/forums/view_aboutus.htm
http://www.hystersisters.com/vb2/view_funding.htm
http://www.theadminzone.com/forums/view.php?pg=aboutus
http://www.hystersisters.com/vb2/view_guidelines.htm
http://www.hystersisters.com/vb2/view_books.htm
http://www3.fertilethoughts.com/foru...hp?pg=acronyms
http://www.makeuptalk.com/forums/vie...alk-newsletter
http://www.bklab.com (entire site is designed with Webtemplates only!)

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..

Note in 6.August. 2006 : I've tested Webtemplates with vbulletin 3.6.0 gold version and they are compatible. So this hack released here is both for vb 3.5.x AND 3.6.x

Note for vb 3.7.x : (29.July.2008): For vb 3.7.x, I released a new version here:
https://vborg.vbsupport.ru/showthread.php?t=186644


Version Updates:
16.Dec.2005 - > Version 3.5.01
* Hack released.
16.Dec.2005 - > Version 3.5.02
* A webquery bug fix for boards which use table_prefix. To upgrade just overwrite hack .php files.
17.Dec.2005 - > Version 3.5.03
* A minor bug in WOL page fixed. To upgrade overwrite hack .php files + reinstall product XML
17.Dec.2005 - > Version 3.5.04
* A bug fix for edit webtemplate page not remembering webtemplate's showbrowsers setting.To upgrade overwrite hack .php files
16.Jan.2006 - > Version 3.5.05
* A bug fix for boards which has too many usergroups. To upgrade overwrite hack .php files + uninstall product, then reinstall (your existing webtemplates will be intact)
20.Aug.2006 - > Version 3.6.00
* A bug fix that can cause a MYSQL warning in a few servers in WT admin cp. A minor and unusual problem that happens in certain servers and you don't need to upgrade if you don't see such a message. To upgrade overwrite /includes/wt_include.php and /admincp/wt_wt.php files.
1.Oct.2006 - > Version 3.6.01
* A minor bug fix for showing user avatar and ipaddress in webtemplates. To upgrade overwrite /includes/wt_include.php and view.php files.
2.May.2007 - > Version 3.6.02
* IMPORTANT SECURITY UPDATE! A security problem has been fixed in this version. To upgrade overwrite /includes/wt_include.php and view.php files which is attached to this post.
21.June.2008 - > Version 3.6.03
* Two minor bugs (1 & 2) fixed.
29.July.2008 - > Version 3.7.00
* A new version for vbulletin 3.7.x is released in a seperate thread here:
https://vborg.vbsupport.ru/showthread.php?t=186644

Show Your Support

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

Comments
  #112  
Old 01-15-2006, 04:00 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 Kurisu
Didn't work either... Same error.

Could it have something to do with my PHP version (5.0.5)? I read that PHP 5 handles arrays different...
Yes sounds very possible.. I never tested it with PHP 5.x..
Reply With Quote
  #113  
Old 01-16-2006, 04:43 PM
apleschu apleschu is offline
 
Join Date: Aug 2005
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Seriously I was desperate after discovering that 3.5 doesn;t seem to have a portal system available (yet)

But even so, I like the concept of webtemplates MUCH better.

THANKS
Reply With Quote
  #114  
Old 01-17-2006, 05:51 AM
Reef Reef is offline
 
Join Date: May 2003
Location: USA
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent mod and support Logician, Thanks

I missed this somehow when released. I just saw it listed in the H/O/M poll .. Hmm, I think I'm gonna run back over there and vote
Reply With Quote
  #115  
Old 01-17-2006, 01:46 PM
tidy_boy tidy_boy is offline
 
Join Date: Jun 2005
Location: England
Posts: 134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey guys can anyone post a link to pages they have made with this hack so i can see the power of it


Thanks
Reply With Quote
  #116  
Old 01-17-2006, 03:21 PM
RaceJunkie RaceJunkie is offline
 
Join Date: Jun 2005
Posts: 371
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tidy_boy
Hey guys can anyone post a link to pages they have made with this hack so i can see the power of it


Thanks

Here you go

here
Reply With Quote
  #117  
Old 01-17-2006, 03:56 PM
tidy_boy tidy_boy is offline
 
Join Date: Jun 2005
Location: England
Posts: 134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice anyone else got any other examples then can show me
Reply With Quote
  #118  
Old 01-17-2006, 05:07 PM
WAR WAR is offline
 
Join Date: Jan 2004
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Logician
Edit wt_wt.php, find:

PHP Code:
print_membergroup_row("Disallowed Usergroups <br><font size='1'>Mark usergroups who can <b>NOT</b> display this page</font>"'webtemplate[banusergroupids]'2""); 
replace it as:
PHP Code:
  $usergroups $vbulletin->db->query_read("SELECT usergroupid,title FROM " TABLE_PREFIX "usergroup ORDER BY title");
  while (
$usergroup $vbulletin->db->fetch_array($usergroups))
  {
             
$usergrps_with_space .= $usergroup[usergroupid]." ";
  }
   
$webtemplatebanusergroups[membergroupids] = convert_WTfield_to_usergroup_array($usergrps_with_space);
  

  
print_membergroup_row("Disallowed Usergroups <br><font size='1'>Mark usergroups who can <b>NOT</b> display this page</font>"'webtemplate[banusergroupids]'2,  $webtemplatebanusergroups); 


Run this query and see if it will help:
PHP Code:
ALTER TABLE `wt35_webtemplateCHANGE `banusergroups` `banusergroupsMEDIUMTEXT NOT NULL ,
CHANGE `logvisitors` `logvisitorsMEDIUMTEXT NOT NULL ,
CHANGE `editors` `editorsMEDIUMTEXT NOT NULL 
Logician,

Thanks for the quick reply and the fix. It worked as far as it was designed, but unfortunately my original request was flawed.

I have 12 "Primary" usergroups. All members belong to at least one of these groups. I also have a couple hundred "Secondary" usergroups, most members belong to several of these each. Using the "Opt-out" paradigm you have here, it is impossible for me to allow access to secondary usergroups without also granting access to entire primary usergroups

Example: If a user is a member of primary group 1 and secondary group A, If I try and block access to Primary Group 1 and allow access to Secondary Group A then the user will still not be allowed access because the way you have it written all users that are in primary group 1 are denied access.

So I re-wrote your permissions function in your include file to switch the whole system to an "Opt-in" paradigm so that it better matches how vbulletin usually treats permissions. Can you take a look at this and let me know if it looks ok? I have tested it out and it seems to work fine. The only thing I needed to disable was the "Restrict individual users" function that you had, other wise granting access to a user with userid = 20 also grants access to the usergroup with usergroupid = 20.

PHP Code:
function WT_UsergroupPermission($userinfo$return10 1$usergroupname '')
{
    global 
$WT;  

    
$permitted 0;

    
$WT['banusergroups'] = trim($WT['banusergroups']);

    if (
$WT['banusergroups'])
    {
        
$WT_banusergroups explode(" "$WT['banusergroups']);
        
        if (
WTis_member_of($userinfo$WT_banusergroups)) 
        {
            
$permitted 1;
        } 
        else 
        {
            
$permitted 0;
        }
        
    
/*    if ($userinfo[userid] > 0 AND in_array('('.$userinfo[userid].')', $WT_banusergroups)) 
        {
            $permitted = 0;
        } */
    
}


    
    if (
$WT['draft'] == AND !WTis_member_of($userinfo, array("6"))) //draft webtemplate
    
{
        
$permitted 0;
    }

    if (
$return10//return 1 or 0
    
{
        return 
$permitted;
    }
    else 
//return usergroup name with color (permitten green, banned red)
    
{
        if (
$permitted
        {
            return 
'<font color="#006600">'.$usergroupname.'</font>';
        }
        else 
        {
            return 
'<font color="#C40000">'.$usergroupname.'</font>';
        }
    }


Reply With Quote
  #119  
Old 01-17-2006, 07:41 PM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
The only thing I needed to disable was the "Restrict individual users" function that you had, other wise granting access to a user with userid = 20 also grants access to the usergroup with usergroupid = 20.
I really don't think so. Individual user info is kept between paranthesis () and checked this way too. So if you grant access to userid 20, the DB record is (20) but if you grant access to usergroupid, the record is just 20.

The section you commented out checks for paranthesis too so I wouldn't think it is allowing usergroupid 20 when you allowed userid 20.

Quote:
Example: If a user is a member of primary group 1 and secondary group A, If I try and block access to Primary Group 1 and allow access to Secondary Group A then the user will still not be allowed access because the way you have it written all users that are in primary group 1 are denied access.
I see what you are saying but this algorithm matches with its logic. Because this section of the hack is for marking "banned" usergroups so when you mark a usergroup, this means the hack shouldn't give access to any user who is part of this group. If the hack would give access due to that users belonging to another usergroup, it would be impossible to ban primary usergroups as their users might get access due to secondary usergroups which they join themselves.

I'm sure you'll agree that most of the admin's permission system would depend on "primary usergroups", not "secondary usergroups" so IMO how it is designed is make sense.
Reply With Quote
  #120  
Old 01-17-2006, 08:38 PM
WAR WAR is offline
 
Join Date: Jan 2004
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I never meant to imply that it worked any way other than what you intended. It is an exceptionally well-written hack. For my own purposes though, I need it to work a different way, I just wanted to have you look over what I did above for a sanity check.

Thanks for clarifying the issue with the ()'s and the individually specified users, it makes much more sense that what I had assumed was going on.

Quote:
If the hack would give access due to that users belonging to another usergroup, it would be impossible to ban primary usergroups as their users might get access due to secondary usergroups which they join themselves.
This is why vbulletin lets you designate a primary usergroup to not allow inherited permissions from any secondary groups for its in-built group permissions.

Again, this is an incredible hack, many thanks for sharing!
Reply With Quote
  #121  
Old 01-18-2006, 01:38 AM
Bluestrike2 Bluestrike2 is offline
 
Join Date: Nov 2005
Posts: 53
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I hate to be a bother, but I'm in need of some help. I searched through the support document, and I've skimmed most of this thread. I'm sorry if this has been asked before.

BUT - I was wondering how could I use the two column theme, but have the content of the one column user-editable while keeping it "moron proof." Actually, if there was a way for them to enter the number (its for scrim record) in a text box, that would be grande (and then another text box to enter the teams they scrimmed).

Also, is it possible to add another user editable field (editor I mean) that would show up another main table (for lack of a better word). If you need clarification, I'll post it. Thank you so much!
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 12:48 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.08666 seconds
  • Memory Usage 2,363KB
  • 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
  • (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
  • (3)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • 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