PDA

View Full Version : Override Style on Custom Pages


tyrionlannister
29 Jun 2007, 03:07
I just spent a bit of time searching the forums for how to override a style on a custom page and I didn't find anything, so I thought I'd post this in case someone else searches for this in the future.

I spent some time reading through the vBulletin code and realized that regardless of which style variables you modify in your custom php page, they are redefined in init.php and global.php when you include global.php in your script. You can't add anything after global.php because the style has already been processed.

The only way it can be done without editing vBulleting files is through a hook.

Simply go to your AdminCP and click the "Add New Plugin" under the Plugins and Products manager. Since your custom page is a product (you should already have defined this), make sure to change the Product Name dropdown to whatever you've named it.

Select 'style_fetch' from the Hook Location dropdown, describe the plugin, and modify this based on your own code settings:

if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['forcedstyleid']);
}


This will work for simple scripts, but you will run into problems if you are using the vBulletin database class or input cleaner to help determine whether the style should be overwritten.

In this case, you could code your logic into an include script which is only called if this is a custom page.

In your custom pages, you should have

define('THIS_SCRIPT', 'yourcustomscriptname');

And your hook code should read:

if (THIS_SCRIPT == 'yourcustomscriptname') {
require ('./yourinclude.php');
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['forcedstyleid']);
}
}

fxdigi-cash
22 Apr 2014, 00:54
I tried it on vb4, but didn't work... I wish it could though

TheLastSuperman
22 Apr 2014, 22:48
I tried it on vb4, but didn't work... I wish it could though

Hmm not sure why it wouldn't unless the hook location is not present or similar but no I have not tested the above code I'm just going to say try this article and see if does the trick - it explains how to overwrite css based on certain conditions (or you can add-in/remove conditionals).

http://www.vbulletin.org/forum/showthread.php?t=3077394

tbworld
22 Apr 2014, 23:53
Hmm not sure why it wouldn't unless the hook location is not present or similar but no I have not tested the above code I'm just going to say try this article and see if does the trick - it explains how to overwrite css based on certain conditions (or you can add-in/remove conditionals).

http://www.vbulletin.org/forum/showthread.php?t=3077394

Hey buddy, for some reason the thread link is invalid. :)

fxdigi-cash
30 Apr 2014, 00:00
Hmm not sure why it wouldn't unless the hook location is not present or similar but no I have not tested the above code I'm just going to say try this article and see if does the trick - it explains how to overwrite css based on certain conditions (or you can add-in/remove conditionals).

http://www.vbulletin.org/forum/showthread.php?t=3077394

Thanks, but yes the link is invalid as mentioned...!!

would you mind to provide the correct one?? Thanks

--------------- Added 1398813444 at 1398813444 ---------------

can you kindly give an example, possibly I'm doing it wrong somewhere!!!

I tried changing the following though:

from this -->


if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['forcedstyleid']);
}


to this:


if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['1']);
}


and of course defined the script in the .php file like this:


define('THIS_SCRIPT', 'aforum');


Then not sure where to add the last code:


if (THIS_SCRIPT == 'aforum') {
require ('./global.php');
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['1']);
}
}


any idea???

--------------- Added 1398815083 at 1398815083 ---------------

ok, here is the whole story of what I'm up to just to avoid the confusion...

I wanted to have two pages of FORUMHOME where I can display some forums in one and other forums in the other one. I created a copy of forum.php file and named it aforum.php "exact copy", but changed any FORUMHOME inside the code to match the new copy FORUMHOME2.

I then created a template in all styles called "FORUMHOME2" exact copy of "FORUMHOME"

I could see almost everything there except that some plugins don't know what "FORUMHOME2" is... so they don't work on that page...

now I wanted to change the style of the new page "FORUMHOME2" so I created the plugin based on this article


if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['1']);
}

define('THIS_SCRIPT', 'aforum');


but still the style didn't work.... I think I missed something here!!!

any idea??

TTayfun
06 May 2014, 17:32
thanks