在外部PHPBB页面中启用IF语句

时间:2014-05-22 12:01:08

标签: php if-statement phpbb

我在PHPBB模板中使用if语句,例如

<!-- IF S_USERNAME eq 'Stoker' -->Some content here<!-- ENDIF -->

这非常有效。但是,我添加了一些其他页面,为了确保我仍然可以调用其用户名等值,我必须将此代码添加到新页面的每个标题中。

define('IN_PHPBB', true);
define('ROOT_PATH', "../");

if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
    exit();
}

$phpEx = "php";
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);

这很好用,我可以调用并回显用户名。例如。

但是,如果语句不起作用,那么如果我尝试了

<!-- IF S_USERNAME eq 'Stoker' -->Some content here<!-- ENDIF -->

它只是不起作用,&#34;这里的一些内容&#34;显示,但我知道if语句不起作用。我错过了标题中的一些代码,以便我可以在PHPBB中使用if语句吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是原始PHP,那么您可以使用以下内容:

if ($user->data['username'] == 'Stoker') {
    // Do whatever needs doing
}

或者,为了使结束代码看起来更清晰,将$user->data['username']分配给不那么混乱的外观变量,例如:

$username = $user->data['username'];
if ($username == 'Stoker') {
    // Do whatever needs doing
}

或者,您可以使您的额外页面使用模板系统看起来与他们“属于”与论坛相同的网站......

extrapage.php将与您的根index.php位于同一目录中,如下所示: (如果你想在子文件夹中使用它,只需更改$phpbb_root_path以适应)

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

page_header('Title Here'); // this is used in the page title

$template->set_filenames(array(
    'body' => 'extrapage.html',
));

// Any PHP you need to use goes here, including assigning any additional template variables etc

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>

然后在/styles/your_style/template/中,您将获得模板文件extrapage.html ...

<!-- INCLUDE overall_header.html -->

<p>Your HTML goes here, you can use any global template variable in addition to variables declared in the above PHP file</p>

<!-- INCLUDE overall_footer.html -->

答案 1 :(得分:0)

由于此处没有任何进展,因此在分析和与支持沟通时 团队,已经确认它不可能这样做,因为引擎只支持 它自己的模板文件。

外部页面必须使用本机PHP如果语句,并且不能使用模板If语句。