PDA

View Full Version : Anyway to detect current page in template?


ShikiSuen
01-03-2020, 07:57 AM
I want to let a template detect whether current page is "forumdisplay" or "index".

PinkMilk
01-03-2020, 04:27 PM
<if condition="THIS_SCRIPT == 'index']">
// do something
</if>

Change to desired page showthread, forumdisplay etc

ShikiSuen
01-04-2020, 09:16 AM
<if condition="THIS_SCRIPT == 'index'">
// do something
</if>

Change to desired page showthread, forumdisplay etc

PHP Warning: Use of undefined constant THIS_SCRIPT - assumed 'THIS_SCRIPT' (this will throw an Error in a future version of PHP) in ..../includes/adminfunctions_template.php(3959) : eval()'d code on line 36

I single-quoted the THIS_SCRIPT but looks like this renders it ineffective.

P.S.: I already tried this trick prior to creating this thread here. Wondering whether I messed up with something else. My board runs on PHP 7.4 .

------------

Update: Similar issue happens with MyBB:
https://github.com/mybb/mybb/issues/3017
https://github.com/mybb/mybb/pull/3092

Looks like some php files in the 'includes' folder needs modification to declare the "THIS_SCRIPT".
------------

Following-up: This warning can be dismissed. It won't cause template rendering error as it does not generate any similar error message in forumdisplay, index, etc. These php files already have "THIS_SCRIPT" defined. My conclusing is that the template system of vBulletin 3.8.11 needs some fix.

Solution: Editing "template.php" and add the following to "DEFINE IMPORTANT CONSTANTS":

define('THIS_SCRIPT', 'template');

Otherwise, PinkMilk's trick won't work if vBulletin 3.8.x runs on PHP 8 in the future.

lange
01-04-2020, 10:04 AM
Solution: Editing "template.php" and add the following to "DEFINE IMPORTANT CONSTANTS":

define('THIS_SCRIPT', 'template');
Your fix works fine for me. Thank you very much !

I had the same warning in the Navbar template for the responsive style of Sultantheme :
PHP Warning: Use of undefined constant THIS_SCRIPT - assumed 'THIS_SCRIPT' (this will throw an Error in a future version of PHP) in ..../includes/adminfunctions_template.php(3959) : eval()'d code on line 525

PinkMilk
01-04-2020, 05:00 PM
I'm running php 5.6.32 on my local vb version so probably can't recreate the error if you think its higher php related,

HOWEVER...
I noticed I missed the closing " (previous post fixed).

<if condition="THIS_SCRIPT == 'index'">
// do something
</if>