我在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语句吗?
答案 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语句。