opencart 引入 TWIG 模板引擎

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,相信会更加的强大。

时间: 2024-10-11 13:34:35

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

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

Twig 模板引擎 模版引擎 twig 的模板就是普通的文本文件,也不需要特别的扩展名,.html .htm .twig 都可以.模板内的 变量 和 表达式 会在运行的时候被解析替换,标签(tags)会来控制模板的逻辑. 安装Twig 命令行运行: composer require "twig/twig:~1.0" 在services目录下创建Twig.php: <?php /** * Class Twig */ class Twig { public $view; public

yii2 使用twig 模板引擎

yii2 默认使用PHP 和html 混合的方式来写视图层,但我个人还是喜欢纯模板语言的方式.而且已经非常习惯使用twig的语法,最近想使用yii2进行开发,所以还是选择使用twig视图引擎. github 已经有人提供了这样的vendor ,可以直接comoser 配置一下进行使用. composer.json 文件 require 添加 "yiisoft/yii2-twig": "*" 然后 composer update  前往common/config 下

symfony2 twig模板引擎

1.基本语法 Says something:{{    }} Does something:{%  %} Comment something:{#    #} {% extends "AppWebBundle::layout.html.twig" %}继承模板 2.核心概念: 用类的继承关系去管理页面之间的关系 如果要访问某个bundle里的资源文件,需要将文件拷贝到/web 目录下,或者linux/mac 软连接映射到/web目录下 windows:  >php app/con

JavaScript模板引擎

JavaScript模板引擎实例应用 在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及如何使用,文末还提到了laytpl.artTemplate.doT.baiduTemplate.kissyTemplate等模板引擎. 本文将举实例向大家讲解几个常用模板引擎的简单使用. 演示地址:模板引擎示例http://demo.52fhy.com/jstemp/ 准备工作 演示数据:blog.json结构:

JavaScript模板引擎学习分享

为了将数据库中的一组记录转换成HTML输出到界面上,大家都采用哪些做法呢? 在WebForm时代我们经常使用datagrid.repeater,当MVC问世后我们开始直接在视图上编写C#循环语句,而现在我更喜欢使用JavaScript模板引擎来生成HTML.因为这种做法的最大好处是实现了前后端代码的解耦,前端开发人员也无需了解太多的C#知识. 用法与示例: 第一步,在页面中引入JavaScript模板引擎: function template(str, data) { var strFunc =

如何选择Javascript模板引擎(javascript template engine)?

译者 jjfat 日期:2012-9-17  来源: GBin1.com 随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下: 你的到了一个JSON对象,如下: var data={   email: '[email protected],   gender: 'male'  } 然后你需要将json数据组织成页面内容,如下: var email, gender; email= '<div class="mail&q

JavaScript模板引擎实例应用(转)

本文将举实例向大家讲解几个常用模板引擎的简单使用. 演示地址:模板引擎示例http://demo.52fhy.com/jstemp/ 准备工作 演示数据:blog.json结构: { "list": [ { "title": "这是title", "url": "http://www.cnblogs.com/52fhy/p/5271447.html", "desc": "摘要&

小D课堂【SpringBoot】常用Starter介绍和整合模板引擎Freemaker、thymeleaf

========7.SpringBoot常用Starter介绍和整合模板引擎Freemaker.thymeleaf 4节课========================= 1.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-starter

Spring Boot 整合模板引擎 Freemaker、thymeleaf

1.常用的 Spring Boot 2.x 模板引擎和官方推荐案例 1)JSP(后端渲染,消耗性能) Java Server Pages 动态网页技术,由应用服务器中的 JSP 引擎来编译和执行,再将生成的整个页面返回给客户端.优点是:可以写java代码.支持表达式语言(el.jstl).内建函数. 但 JSP 本质上是 Servlet,它非常占用 JVM 内存.Java Web 官方推荐,但 Spring Boot 不推荐https://docs.spring.io/spring-boot/d