Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-02-2012, 05:02 PM
DetroitYES's Avatar
DetroitYES DetroitYES is offline
 
Join Date: Mar 2009
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How does the blog product implement custom skins?

Okay, this was mind numbingly simple in the long run.

It involves making a plugin, and making a vb option, both of which can be achieved in debug mode and exported into the XML:

for the blog, the plugin code is here:

Code:

		<plugin active="1" executionorder="5">
			<title>Style: Override Style and Setup Group Blog Permissions</title>
			<hookname>style_fetch</hookname>
			<phpcode><![CDATA[if (defined('VBBLOG_STYLE') AND $vbulletin->options['vbblog_style'])
{
	$styleid = $vbulletin->options['vbblog_style'];
	$vbulletin->userinfo['styleid'] = $styleid;
	$userselect = true;
	$vbulletin->options['allowchangestyles'] = false;
}]]></phpcode>
		</plugin>

and the setting code is here

Code:
			<setting varname="vbblog_style" displayorder="1">
				<datatype>number</datatype>
				<optioncode><![CDATA[select:eval
require_once(DIR . '/includes/adminfunctions_template.php');
global $stylecache;
cache_styles();
$options = array(0 => $vbphrase['none']);
foreach($stylecache AS $style)
{
	$options["$style[styleid]"] = construct_depth_mark($style['depth'], '--') . " $style[title]";
}]]></optioncode>
				<defaultvalue>0</defaultvalue>
			</setting>
obviously, replace vbblog with your product name were applicable.

hope this saves you some time, it took me 5 hours of digging through every file prefixed with blog_ to figure this out and was right under my nose as usual.






//----------
when the blog is installed, you are given the option to assign a particular skin to the blog, that is different from the default style of the forum...

I would like to implement this in a product I am developing as well. Where/how in the code does this happen? Can anyone give me an abstract or point to a particular file?

I noticed the following line in blog.php, but can't find any further refrence:

PHP Code:

define
('VBBLOG_STYLE'true); 
I also see this in the product-vbblog.xml, and have located the var in the database, but cannot figure out where it gets called back into the php from mysql:

Code:
		<settinggroup name="vbblog" displayorder="678">
			<setting varname="vbblog_style" displayorder="1">
				<datatype>number</datatype>
				<optioncode><![CDATA[select:eval
require_once(DIR . '/includes/adminfunctions_template.php');
global $stylecache;
cache_styles();
$options = array(0 => $vbphrase['none']);
foreach($stylecache AS $style)
{
	$options["$style[styleid]"] = construct_depth_mark($style['depth'], '--') . " $style[title]";
}]]></optioncode>
				<defaultvalue>0</defaultvalue>
			</setting>

Update, this is quite a rabbit hole. I found this in /includes/class_bootstrap.php however it is a protected var:

PHP Code:

    
/**
    * A particular style ID to force. If specified, it will be used even if disabled.
    *
    * @var    int
    */
    
protected $force_styleid 0
Thanks.
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 02:06 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.03696 seconds
  • Memory Usage 2,163KB
  • Queries Executed 11 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete