将 Opencart .tpl 转换为 .twig



我目前正在尝试向我已经与PHP一起使用的Twig文件添加一些代码。根据 https://twig.symfony.com/进行了一些更改,但仍然无法使其正常工作。以下是使用 php 的.tpl文件:

<?php foreach (array('catalog'=>'frontend', 'admin'=>'backend') as $k=>$v ) { ?>
    <label class="btn btn-default <?php if($interface==$k){ echo 'active'; } ?>">
    <input type="radio" name="interface" value="<?php e($k); ?>" autocomplete="off" <?php if($interface=="$k"){ echo 'checked'; } ?>> <?php e(${'tab_'.$v}); ?>
    </label>
?>

进入这个:

{% for k,v in array_path %}
catalog: {{frontend}}
admin: {{ backend }}
<label class="btn btn-default  {% if interface == k %} {{ active }} {% endif %} >
    <input type="radio" name="interface" value="{{ k }}" autocomplete="off" {% if interface == k %} {{ checked }} {% endif %}> {{tab_.v}}
</label>

还有expression

<?php e($page == '_main_lang_file' ? $text_main_lang_file : $page); ?> 
<?php 
    echo (isset($translations[$l['directory']]) && $translations[$l['directory']] != '') ? 
    hs($translations[$l['directory']]) : '<span class="notTranslatedSpan text-danger">'.h($text_not_translated).'</span>';
?>

进入这个:

{{ page == '_main_lang_file' ? text_main_lang_file : page }}
{% translations l.directory && translations l.directory != '') ? 
    hs translations l.directory : '<span class="notTranslatedSpan text-danger">'.h text_not_translated'</span>'} %}

但我不明白究竟应该怎么做才能让它工作。

免费资源:

1 openconverter.io - 在线转换器,仅适用于某些情况。

2 https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=29835 - Twig Manager(为您的Opencart 2.x添加.twig

支持) - 在Opencart版本2.x上使用twig主题。

3 https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=31589 - OpenCart 模板切换器。

引用:启用此模块后,OpenCart 会根据模板文件扩展名(例如".tpl"、".twig"、".smarty"等)自动检测正确的模板引擎。

扩展和 Web 主题现在可以同时使用 PHP 模板和 Twig 模板。这允许开发人员轻松地将带有 PHP 模板(*.tpl 文件)的旧 OC 2.x Web 主题移植到新的 OC 3.0.x 版本中。

您的 Twig 语法可能存在一些问题。如果您了解以前的OpenCart版本的工作原理,请查看这些示例。

最新更新