前端时间,在网上查了下资料,在CI下自己配好了smarty模板。
1、下载Smarty-3.1.11
解压后里面有委多文件我们不管,把一个名叫libs的文件夹复制出来命名为smarty,当然你也可以命其它名字
放到ci的application/libraries/目录下,一般是放这里面。 但我项目有要求不能放在怕个目录里,我是放在项目的同级目录中
如:我项目文件夹是iptv_m 我把风smarty放在跟它同级
2、在ci的application/libraries/目录下,新建一个文件命名为Cismarty.php
内容如下
require_once('../smarty/Smarty.class.php'); class Cismarty extends Smarty{ protected $ci; public function __construct(){ parent::__construct(); $this->ci = & get_instance(); $this->ci->load->config('smarty_config'); $this->caching = $this->ci->config->item('caching'); $this->cache_lifetime = $this->ci->config->item('cache_lifetime'); $this->setTemplateDir($this->ci->config->item('TemplateDir')); $this->setCompileDir($this->ci->config->item('CompileDir')); $this->setCacheDir($this->ci->config->item('CacheDir')); $this->setConfigDir($this->ci->config->item('ConfigDir')); $this->left_delimiter = $this->ci->config->item('left_delimiter'); $this->right_delimiter = $this->ci->config->item('right_delimiter'); $this->php_handling = $this->ci->config->item('php_handling'); } }
require_once('../smarty/Smarty.class.php'); //引用smarty模板
$this->ci = & get_instance(); //获取ci的实例,这样就可以使用ci的方法了 如:$this->ci->load->config('smarty_config');
$this->ci->load->config('smarty_config'); //加载配置文件,接下来就要建这个文件
3、在ci的application/config/目录下,新建smarty_config.php 用于设置smarty初始信息及目录
$config['base_skin'] = 'default'; $config['resource_domain'] = 'http://'.$_SERVER['HTTP_HOST'].'/iptv_m/resource'; //$config['cookie_domain'] = '.abc.com'; $config['cookie_encrypt'] = md5('www.test01.com.prefixxtt'); $config['base_res_upload'] = $config['resource_domain'].'/image/upload/'; $config['base_res_admin_image'] = $config['resource_domain'].'/image/admin/'; $config['base_res_image'] = $config['resource_domain'].'/image/'.$config['base_skin'].'/'; $config['base_res_style'] = $config['resource_domain'].'/style/'.$config['base_skin'].'/'; $config['base_res_script'] = $config['resource_domain'].'/script/'; $config['base_res_plugin'] = $config['resource_domain'].'/plugin/'; $config['base_res_kindeditor'] = $config['resource_domain'].'/plugin/kindeditor/'; $config['default_face'] = $config['resource_domain'].'/image/default/conpic1.gif';
然后application/config/目录下找到autoload.php 修改$autoload['libraries'] = array('Cismarty'); 目的是自动加载Cismarty.php 我们在页面上用的时候就不用手动去加载。
在ci的application/core/MY_Controller.php里,加上方法
public function assign($key,$val){ $this->cismarty->assign($key,$val); } public function display($html){ $this->cismarty->display($html); }
在控制器里面直接调用
$this->assign('youhui',$youhui);
$this->display('index.html');
在views里
{foreach from=$youhui item="yhq"}
<div><a href="{$yhq["url"]}" target="_blank"><img src="{getimg_mb fid="{$yhq["image"]}"}" title="{$yhq["title"]}" /></a>
</div>
{/foreach}
好了,ci配置smarty到此,配置完毕
浙公网安备 33010602011771号