如何从 html 模板文件中的 PHP 代码访问 phpBB 样式模板变量?

How to access phpBB style template variables from PHP codes within html template files?

我想修改phpBB( ver. 3.1.8) 主题风格变成这样:

<div class="content">
    <!-- BEGIN oauth -->
    <dl>
        <dt>&nbsp;</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 的实例,[= 的实例38=] 给定,在第 35 行的 forum/4_3_1/phpbb/template/twig/tokenparser/php.php 中调用,并在第 21 行的 forum/4_3_1/phpbb/template/twig/node/php.php 中定义

但是,我检查过 oauth 值作为数组存储在 php 数组 $context['loops']['oauth'] 中。因此,foreach 遍历 $context['loops']['oauth'] 将给出所需的结果。

正确的方法是什么?或任何其他 phpBB 特定替代方案?

完成:

<div class="content">
    <!-- BEGIN oauth -->
    <dl>
        <dt>&nbsp;</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>