haohailuo 发表于 2010-7-6 21:05:21

在smarty中使用site_url和base_url

本帖最后由 haohailuo 于 2010-7-6 21:07 编辑

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


<?phpif (!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']);
        }
}


在模板中的用法如下:


<{site_url url='user/cp/profile_edit'}>即可


附件下载:

longjianghu 发表于 2010-7-7 10:38:14

感谢!:loveliness:

荒野无灯 发表于 2010-7-13 16:27:21

好方法啊,谢谢分享

longjianghu 发表于 2010-8-9 16:27:17

本帖最后由 longjianghu 于 2010-8-9 16:40 编辑


<?phpif (!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();
    }
}
?>

我把里面的方法改了一下:lol,在调用的时候写成这相{anchorl url='abc/123'},如果调用base_url直接写成{anchor}
页: [1]
查看完整版本: 在smarty中使用site_url和base_url