1.首先将 twig 包放入 system\library 目录。

2.在 system/startup.php 文件最后添加引入语句。

require_once(DIR_SYSTEM . 'library/Twig-1.12.3/lib/Twig/Autoloader.php');

3.在 index.php 文件中,加入twig引擎初始化语句。

//twig

Twig_Autoloader::register();

$twigLoader = new Twig_Loader_Filesystem(DIR_TEMPLATE);

$twig = new Twig_Environment($twigLoader, array(

 'cache' => DIR_CACHE,

));

$registry->set('twig', $twig);

4.修改opencart框架控制层引擎类,添加 twigRender 渲染方法。(关键一步,此方法会保留原始的模板渲染方法,保证兼容性。)

protected function twigRender() {

 foreach ($this->children as $child) {

 $this->data[basename($child)] = $this->getChild($child);

 }

 if (file_exists(DIR_TEMPLATE . $this->template)) {

$this->output = $this->twig->render($this->template, $this->data); 

 return $this->output;

     } else {

 trigger_error('Error: Could not load template ' . DIR_TEMPLATE . $this->template . '!');

 exit(); 

     }

}

5.在控制层,调用新的渲染方法。

$this->response->setOutput($this->twigRender());

6.测试首页模板文件。

{{ header|raw }}{{ column_left|raw }}{{ column_right|raw }}

<div id="content">{{ content_top|raw }}

<h1 >{{ heading_title }}</h1>

{{ content_bottom|raw }}</div>

{{ footer|raw }}

7.加入twig模板引擎之后的OP,相信会更加的强大。

opencart 引入 TWIG 模板引擎的更多相关文章

  1. 构建自己的PHP框架(Twig模板引擎)

    完整项目地址:https://github.com/Evai/Aier Twig 模板引擎 模版引擎 twig 的模板就是普通的文本文件,也不需要特别的扩展名,.html .htm .twig 都可以 ...

  2. SSTI(以Twig模板引擎为例)

    一.模板注入与常见Web注入 就注入类型的漏洞来说,常见 Web 注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等.注入漏洞的实质是服务端接受了用户的输入,未 ...

  3. twig 模板引擎使渲染视图更加优雅

    在使用 laravel 的时候接触过 blade 模板引擎.在学习的时候,接触到了另外一个强大的模板引擎:twig 官网:https://twig.sensiolabs.org/ 中文手册:http: ...

  4. yii2 使用twig 模板引擎

    yii2 默认使用PHP 和html 混合的方式来写视图层,但我个人还是喜欢纯模板语言的方式.而且已经非常习惯使用twig的语法,最近想使用yii2进行开发,所以还是选择使用twig视图引擎. git ...

  5. 原生twig模板引擎详解(安装使用)

    最近在学习SSTI(服务器模板注入),所以在此总结一下 0x00 Twig的介绍 什么是Twig? Twig是一款灵活.快速.安全的PHP模板引擎. Twig的特点? 快速:Twig将模板编译为纯粹的 ...

  6. symfony2 twig模板引擎

    1.基本语法 Says something:{{    }} Does something:{%  %} Comment something:{#    #} {% extends "App ...

  7. thinkPhP 引入Smarty模板引擎及配置

    做配置:  TMPL_ENGINE_TYPE = “Smarty” 给smarty做配置: TMPL_ENGINE_CONFIG = array( 左标记, 右标记, )

  8. laravel Blade 模板引擎

    与视图文件紧密关联的就是模板代码,我们在视图文件中通过模板代码和 HTML 代码结合实现视图的渲染.和很多其他后端语言不同,PHP 本身就可以当做模板语言来使用,但是这种方式有很多缺点,比如安全上的隐 ...

  9. JavaScript模板引擎实例应用

    在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及如何使用,文末还提到了laytpl.art ...

随机推荐

  1. JS抽奖功能代码

    HTML <label for="awardListDom">奖项列表</label><br> <input type="tex ...

  2. Express开发实例(2) —— Jade模板引擎

    前一篇通过helloworld,简单介绍了Express中的开发,本篇继续深入的学习express的模板. 关于Jade的用法,网上有很多,本篇参考:Jade语法 安装相关模块 在实验代码前,应该先安 ...

  3. CodeForces 55D Beautiful numbers

    D. Beautiful numbers time limit per test 4 seconds memory limit per test 256 megabytes input standar ...

  4. CSS只是要点-收集

    1. CSS 浮动定位详解 请点击:css浮动定位详解

  5. 大型网站SEO优化策略框架

  6. C#获取文件/字节数组MD5值方法

    找了很多,就这个管用,有时间好好研究一番 public static string GetMD5Hash(string fileName) { try { FileStream file = new ...

  7. CentOS 6.5 zabbix 3.0.4 SendEmail报警

    官方介绍:http://caspian.dotconf.net/menu/Software/SendEmail/ 1.sendEmail部署 下载安装包到本地.解压 [root@localhost S ...

  8. JQuery选择器细节-遁地龙卷风

    1.层次选择器-子元素选择器 <body> <div> <p>lol</p> <div> <p></p> </ ...

  9. cocos2d-x 内存管理浅析

    Cocos2d-x用create创建对象, 这个方法已经被引擎封装成一个宏定义了:CREATE_FUNC, 下面是这个宏定义的实现: #define CREATE_FUNC(__TYPE__) \   ...

  10. php preg_库正则匹配

    <?php //preg_库提供的正则 preg_match();//进行正则表达式匹配 /* preg_match (pattern , subject, matches) 参数 描述 pat ...