函数:ReplaceListVars()
功效:替换列表模板/标签模板/搜索模板
位置:帝国CMS e/class/connect.php

 

例子一:最新信息图标

 

例子二:N分钟前信息 个性时间显示

 

 

修改例子一:最新信息 new图标

1.准备个图标放在e/trylife/common/images/title_new.gif
2.ReplaceListVars()函数体内 return $listtemp; 代码上方加入如下代码:


$new_icon='';
if((time()-$r[newstime])<86400)
{
$new_icon='<img src="'.$public_r[newsurl].'e/trylife/common/images/title_new.gif" />';
}
$listtemp=str_replace('[!----NewIcon--]',$new_icon,$listtemp);

3.列表模板VAR合适位置加入[!—-NewIcon–]
5.刷新列表(动态列表就不用刷新了)

修改例子二:若干分钟前信息

1.e/class/userfun.php加入如下函数

view plaincopy to clipboardprint?

  1. //若干小时以前  
  2. function trylife_TimePass($newstime,$formatdate)  
  3. {  
  4.     //已往的秒钟数  
  5.     $p=time()-$newstime;  
  6.   
  7.     if($p<60)  
  8.     {  
  9.         return ‘<span style=”color: red;”><strong>’.$p.‘</strong>秒前</span>’;  
  10.     }  
  11.     elseif($p<3600)  
  12.     {  
  13.         return ‘<span style=”color: green;”><strong>’.floor($p/60).‘</strong>分钟前</span>’;  
  14.     }  
  15.     elseif($p<86400)  
  16.     {  
  17.         return ‘<span style=”color: blue;”><strong>’.floor($p/3600).‘</strong>小时前</span>’;  
  18.     }  
  19.     elseif($p<2592000)//30天  
  20.     {  
  21.         return ‘<span style=”color: gray;”><strong>’.floor($p/86400).‘</strong>天前</span>’;  
  22.     }  
  23.     else  
  24.     {  
  25.         return format_datetime($newstime,$formatdate);  
  26.     }  
  27.   
  28. }  

2.ReplaceListVars() 函数体内修改片断

view plaincopy to clipboardprint?

  1. elseif($f==‘newstime’)//时间  
  2.   
  3. {  
  4.   
  5.     //$value=date($formatdate,$value);  
  6.   
  7.     //$value=format_datetime($value,$formatdate);  
  8.     $value=trylife_TimePass($value,$formatdate);  
  9.   
  10.     $spf=1;  
  11.   
  12. }  

讨论:

1.实现例子中效果的方式许多,好比使用列表模板VAR支持动态代码 在模板VAR中举行判断
2.若是不是整站需要此类的功效,照样讨论1中的方式会节约整体效率
3.ReplaceListVars()支持对列表模板/标签模板/搜索模板的替换,其他情形下好比使用灵动标签的情形还需要重写相同代码到模板中,使用情形多的话,照样将返回图标功效写成函数界说到e/class/userfun.php中,这样就可以重复使用~~
4.例子二 现实应用页面天生的是HTML的话 用JS更为合理~~ 节约资源和时间实时