zoukankan      html  css  js  c++  java
  • opencart 引入 TWIG 模板引擎

     1.首先将 twig 包放入 systemlibrary 目录。


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

  • 相关阅读:
    发送trim值
    关一些时钟
    不同频率下的pwm配置
    c#鼠标在控件上面,然后显示文字
    C#通过文件路径截取对应的文件夹路径
    C#随机生成连续多少个十六进制数字
    C#检测串口被拔掉等一些触发事件合集
    c#按键Up和Down对Textbox的内容加1减1
    软件架构师工作历程
    软件架构阅读6
  • 原文地址:https://www.cnblogs.com/caryfang/p/4535695.html
Copyright © 2011-2022 走看看