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:
PHP Code:
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
PHP Code:
define('THIS_SCRIPT', 'yourcustomscriptname');
And your hook code should read:
PHP Code:
if (THIS_SCRIPT == 'yourcustomscriptname') {
require ('./yourinclude.php');
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['forcedstyleid']);
}
}
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).
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).
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).
Thanks, but yes the link is invalid as mentioned...!!
would you mind to provide the correct one?? Thanks
--------------- Added [DATE]1398813444[/DATE] at [TIME]1398813444[/TIME] ---------------
can you kindly give an example, possibly I'm doing it wrong somewhere!!!
I tried changing the following though:
from this -->
Code:
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['forcedstyleid']);
}
to this:
Code:
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['1']);
}
and of course defined the script in the .php file like this:
Code:
define('THIS_SCRIPT', 'aforum');
Then not sure where to add the last code:
Code:
if (THIS_SCRIPT == 'aforum') {
require ('./global.php');
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['1']);
}
}
any idea???
--------------- Added [DATE]1398815083[/DATE] at [TIME]1398815083[/TIME] ---------------
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
Code:
if ($youroptions['forcestyle'] == true) {
$styleid = ($youroptions['1']);
}
Code:
define('THIS_SCRIPT', 'aforum');
but still the style didn't work.... I think I missed something here!!!