用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8803|回复: 3
收起左侧

[其它 Other] 在smarty中使用site_url和base_url

[复制链接]
发表于 2010-7-6 21:05:21 | 显示全部楼层 |阅读模式
本帖最后由 haohailuo 于 2010-7-6 21:07 编辑

刚看到有人发帖询问关于在smarty模板中使用site_url的求助,特分享代码,其实很简单,只需在smarty的plugins目录下新建一个名为function.site_url.php的文件,代码为:

PHP复制代码
 
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
 
function smarty_function_site_url($params, &$smarty) {
        if (!function_exists('site_url')) {
                if (!function_exists('get_instance')) {
                return "Can't get CI instance";
                }
                $CI= &get_instance();
                $CI->load->helper('url');
        }
        if (!isset($params['url'])) {
                return base_url();
        } else {
                return site_url($params['url']);
        }
}
 
 
复制代码

在模板中的用法如下:

PHP复制代码
 
<{site_url url='user/cp/profile_edit'}>即可
 
复制代码


附件下载: site_url.rar (629 Bytes, 下载次数: 55)
发表于 2010-7-7 10:38:14 | 显示全部楼层
感谢!
发表于 2010-7-13 16:27:21 | 显示全部楼层
好方法啊,谢谢分享
发表于 2010-8-9 16:27:17 | 显示全部楼层
本帖最后由 longjianghu 于 2010-8-9 16:40 编辑
PHP复制代码
 
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
function smarty_function_anchor($param, &$smarty) {
    if(!function_exists('site_url')) {
        $CI= &get_instance();
        $CI->load->helper('url');
    }
    if ($param['url']) {
        return site_url($param['url']);
    }else{
        return base_url();
    }
}
?>
 
复制代码

我把里面的方法改了一下,在调用的时候写成这相{anchorl url='abc/123'},如果调用base_url直接写成{anchor}

本版积分规则