我想修改 phpBB(版本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 \ node \ php :: __ construct()的参数1必须是Twig_Node_Text的实例,给出Twig_Node的实例,在forum / 4_3_1 / phpbb中调用第35行的/template/twig/tokenparser/php.php,第21行的forum / 4_3_1 / phpbb / template / twig / node / php.php中定义
但是,我已经检查过 oauth 值是否存储为php数组$context['loops']['oauth']
中的数组。因此,遍历foreach
的{{1}}将提供所需的结果。
正确的方法是什么?或任何其他phpBB特定的替代方案?
答案 0 :(得分:2)
完成:
<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>