我想将 phpBB(ver. 3.1.8) 主题样式的 Oauth 登录模板 (/styles/my_style/template/login_body_oauth.html) 修改为如下所示:
<div class="content">
<!-- BEGIN oauth -->
<dl>
<dt> </dt>
<dd><a href="{oauth.REDIRECT_URL}">
<!-- PHP -->
if({oauth.SERVICE_NAME}=='Facebook')
echo '<img src="fb.png">';
elseif({oauth.SERVICE_NAME}=='Google')
echo '<img src="google.png">';
<!-- ENDPHP -->
</a></dd>
</dl>
<!-- END oauth -->
</div>
结果:可捕获的致命错误:传递给 phpbb''template''twig'ode''php::__construct() 的参数 1 必须是 Twig_Node_Text
的实例,给定Twig_Node的实例,在第 35 行的论坛/4_3_1/phpbb/template/twig/tokenparser/php.php 中调用,并在论坛/4_3_1/phpbb/template/twig/node/php.php第 21 行定义但是,我已经检查了oauth值是否作为数组存储在php数组$context['loops']['oauth']
中。因此,循环$context['loops']['oauth']
的foreach
将给出所需的结果。
正确的方法是什么?或任何其他特定于 phpBB 的替代方案?
完成:
<div class="content">
<!-- BEGIN oauth -->
<dl>
<dt> </dt>
<dd><a href="{oauth.REDIRECT_URL}" class="social_login" title="Login with {oauth.SERVICE_NAME}">
<!-- IF oauth.SERVICE_NAME=='Facebook' --><img src="{T_THEME_PATH}/images/login_fb.gif" width="238" height="43" alt="facebook">
<!-- ELSEIF oauth.SERVICE_NAME=='Google' --><img src="{T_THEME_PATH}/images/login_google.gif" width="238" height="43" alt="google">
<!-- ELSE -->{oauth.SERVICE_NAME}
<!-- ENDIF -->
</a></dd>
</dl>
<!-- END oauth -->
</div>