spAddViewFunction

#1 zxyphp

spAddViewFunction('date_s','date');
这个函数怎么用啊。 文档没看明白
我直接注册 date 函数给 SMARTY 不行啊 ,或者在 SMARTY 里面
不会调用 date_s()函数 。

2010-01-21 17:26:27

#2 zxyphp

<{$one.time|date_format:"%Y年%m月%d号%H:%M"}>
我知道 SMARTY 可以这么用,
但是我的目的不是为了DATE.

2010-01-21 17:29:09

#3 jake

使用方式以spUrl的注册为例子:
1. spView.php文件40行:spAddViewFunction('spUrl', array(& $this, '__smarty_spUrl'));
这里是通过将$this(view的对象)中的__smarty_spUrl函数注册到smarty,别名是spUrl。请注意,是注册__smarty_spUrl函数,而并非spUrl函数本身。
2.spView.php文件90行,__smarty_spUrl函数的内容。可以看出这个函数只有一个参数$params,这是注册到模板的函数的标准形式。__smarty_spUrl函数内部是将spUrl需要的四个参数,从$params中获取然后再给spUrl函数,最后通过spUrl函数返回的。
3.同样,如果要用将date注册进去,首先要建立一个date_2($params)函数,大致上是:
function date_2($params){
// 内部要将$params转成date需要的参数,请注意$params的几个值,下面还会说明
$format = $params["format"];
$timestamp = $params["timestamp"];
return date($format, $timestamp); // 调用真正的date来返回
}
// 然后可以注册了
spAddViewFunction('date_s','date_2');

在模板中使用是
<{date_s format="Y-m-d" timestamp="1231212323"}>
这里的format和timestamp就对应了$params数组的值。

当然,spUrl是将一个已经实例化的对象的成员函数注册进去的。

将函数注册到模板是Smarty的高级功能,详细可以参考smarty手册
http://bbs.php.cn/Smarty/api.register.function.html

2010-01-21 21:09:48

#4 setlt

很详细,支持!

2010-01-22 21:22:53

#5 skyzong

晕,显示空白

2010-06-12 14:24:56

#6 jake的马甲

smarty空白很多时候就是出错,而且不显示任何出错信息,这点上smarty做得很不好。所以要一段一段代码来检查。

2010-06-12 17:46:38

#7 xpp1000

function utf8Substr($params)

{$str=$params["str"];
$from=$params["from"];
$len=$params["len"];
  return  return preg_replace('^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*s',
                       '$1',$str);
}
spAddViewFunction('utf8Substr','utf8Substr');
这样可以了吧,这个程序单独放一个文件还是要放到这个spView.php文件中呀,如果单独放要如何引入呀。

2010-11-11 16:49:33

#8 xpp1000

function utf8Substr($params)

{$str=$params["str"];
$from=$params["from"];
$len=$params["len"];
  return  return preg_replace('^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*s',
                       '$1',$str);
}
spAddViewFunction('utf8Substr','utf8Substr');
这样可以了吧,这个程序单独放一个文件还是要放到这个spView.php文件中呀,如果单独放要如何引入呀。

2010-11-11 16:49:54

#9 jake

function utf8Substr($params)

{$str=$params["str"];
$from=$params["from"];
$len=$params["len"];
  re ...
xpp1000 发表于 2010-11-11 16:49
在入口文件的require和spRun中间

require(SP_PATH.'/SpeedPHP.php');
//用include或者import引入文件也可以
include(APP_PATH.'/utf8.php');
//直接写在这里也可以
function utf8Substr(){...}
spAddViewFunction('utf8Substr','utf8Substr');
spRun();

2010-11-11 17:00:24

#10 xpp1000

date_default_timezone_set('Asia/Chongqing');
define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
define("APP_PATH",dirname(__FILE__)."/Park");
define("titles", "_厂房出租|厂房出售|园区招商_中工招商网
");
define("urls", "http://www.zhaoshang800.com/");
define("keywords", "经纪人,厂房,工业园区");
$spConfig = array(
/*'url' => array(
  'url_path_base' => "/changfan/changfan.php"),*///二级目录专用



"db" => array(
                'host' => '',
                'login' => '',
                'password' => '',
                'database' => '',
        ),
                  
'url' => array( // URL设置
  'url_path_info' => TRUE,//FALSE, // 是否使用path_info方式的URL
  'url_path_base' => '', // URL的根目录访问地址,默认为空则是入口文件index.php
),
      

      
   

     'view' => array(  

         'enabled' => TRUE, // Smarty  

         'config' =>array(  

            'template_dir' => APP_PATH.'/tpl', // ģŵĿ¼  

            'compile_dir' => APP_PATH.'/tmp', // ʱĿ¼  

             'cache_dir' => APP_PATH.'/tmp', // ʱĿ¼  

             'left_delimiter' => '<{',  // smarty޶  

             'right_delimiter' => '}>', // smarty޶  

         ),  
                 

     ),  
'mode'=>'running'
);
function utf8Substr($params)

{$str=$params["str"];
$from=$params["from"];
$len=$params["len"];
return preg_replace('^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*s',
                       '$1',$str);
}
spAddViewFunction('utf8Substr','utf8Substr');  
require(SP_PATH."/SpeedPHP.php");
spRun();

2011-01-27 11:21:31

#11 xpp1000

这样程序报错,执行不了,郁闷

2011-01-27 11:21:48

#12 jake

require(SP_PATH."/SpeedPHP.php");
spAddViewFunction('utf8Substr','utf8Substr');  
spRun();

http://speedphp.com/post/interaction-run.html

2011-01-27 12:24:37

#13 elick

很好 很详细 正好用到这里了

2011-07-12 15:14:38

#14 sp初学者

讲的和仔细!支持!:P

2012-08-27 14:34:53

#15 xpp1000

请教一个问题,如何用自定义标签呀,我要通过用户ID得到用户的信息,可能全站通用如何做

2013-02-11 13:22:23

#16 jake

xpp1000 发表于 2013-2-11 13:22
请教一个问题,如何用自定义标签呀,我要通过用户ID得到用户的信息,可能全站通用如何做 ...
自定义标签就是模板函数

2013-02-11 22:43:58

#17 h42rfd2xz

  网上真钱海洋之星游戏平台推荐,网上真人海洋之星游戏网站!         你的网上生意能够日赚十万吗!
        澳门网上真****娱乐平台,政府信誉担保! 记住爱拼才会赢,日赚10万 日赚100万,你也有机会搞到!
        http://www.baijialeyx.net  信誉好玩家多,是男人都喜欢!  点击注册!
         网上生意为什么难做,如何实现日赚10万 日赚100万!
        http://www.baijialeyx.net 记住爱拼才会赢!
飞禽走兽游戏
飞禽走兽游戏机


海洋之星游戏

真人美女发牌各种真****游戏任你选择!
100万提现5分钟到账!

金鲨银鲨游戏机
金鲨银鲨游戏

2014-02-11 22:55:16