ci 框架整合smarty

第一步:安装CodeIgniter

点击立即下载最新版本的Zip包>>

https://ellislab.com/codeigniter/user-guide/installation/downloads.html


解压后,复制文件夹下面的application、system、index.php至项目根目录中

wKiom1Qb5i-z6WLOAABGL4I3w1Y123.jpg


第二步:安装Smarty

点击下载最新的Zip包>>


解压之后再将下载之后的smarty模板中wKiom1Qb5wiANPtHAABiw4zuQfs185.jpg放到system文件目录


第三步:创建smarty.php

内容如下:


<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

  

 /**

  * Smarty Class

  *

  * @package        CodeIgniter

  * @subpackage    Libraries

  * @category    Smarty

  * @author        Kepler Gelotte

  * @link        http://www.coolphptools.com/codeigniter-smarty

  */

/*

echo APPPATH."\n";

echo BASEPATH.'libs/Smarty.class.php';die;*/

require_once( BASEPATH.'libs/Smarty.class.php' );


class CI_Smarty extends Smarty {

  

     function CI_Smarty()

     {

         parent::Smarty();

  

         $this->compile_dir = APPPATH . "views/templates_c";

         $this->template_dir = APPPATH . "views/templates";

         $this->assign( 'APPPATH', APPPATH );

         $this->assign( 'BASEPATH', BASEPATH );

  

         log_message('debug', "Smarty Class Initialized");

     }

  

     function __construct()

     {

         parent::__construct();

  

         $this->compile_dir = APPPATH . "views/templates_c";

         $this->template_dir = APPPATH . "views/templates";

         $this->assign( 'APPPATH', APPPATH );

         $this->assign( 'BASEPATH', BASEPATH );

  

         // Assign CodeIgniter object by reference to CI

         if ( method_exists( $this, 'assignByRef') )

         {

             $ci =& get_instance();

             $this->assignByRef("ci", $ci);

         }

  

         log_message('debug', "Smarty Class Initialized");

     }

  

  

     /**

      *  Parse a template using the Smarty engine

      *

      * This is a convenience method that combines assign() and

      * display() into one step. 

      *

      * Values to assign are passed in an associative array of

      * name => value pairs.

      *

      * If the output is to be returned as a string to the caller

      * instead of being output, pass true as the third parameter.

      *

      * @access    public

      * @param    string

      * @param    array

      * @param    bool

      * @return    string

      */

     function view($template, $data = array(), $return = FALSE)

     {

         foreach ($data as $key => $val)

         {

             $this->assign($key, $val);

         }

         

         if ($return == FALSE)

         {

             $CI =& get_instance();

             if (method_exists( $CI->output, 'set_output' ))

             {

                 $CI->output->set_output( $this->fetch($template) );

             }

             else

             {

                 $CI->output->final_output = $this->fetch($template);

             }

             return;

         }

         else

         {

             return $this->fetch($template);

         }

    }

 }

// END Smarty Class

  

 ?>


第四步:在application下config目录下的 autoload.php文件修改如下:

$autoload['libraries'] = array('smarty');


第五步:在application/views 下面创建templates_c 和 templates 二个文件夹  


你可能感兴趣的:(System,项目,文件夹,根目录,点击下载)