【UCHome二次开发】全局变量
      
 
       
       
        来源:
        发布时间:2010/5/12
        浏览次数:1277
       
 
        
        
       
     
      UCHome定义了一些全局变量保存常用信息,了解这些变量存放的内容将大大方便我们的二次开发。
以下依次罗列各全局变量所保存的内容:
- $_SC:系统全局配置 
 - $_SBLOCK:未知 
 - $_SCONFIG:个人空间配置 
 - $_SCOOKIE:Cookie信息 
 - $_SGLOBAL:各类全局信息 
 - $_SN:昵称信息 
 - $_TPL:未知 
 - 举例说明 
 
以上个别全局变量在不同页面的值会有所不同,使用前最好先测试一下值是否存在。
下面是用print_r函数打印出来的各全局变量信息,方便参考(为节省篇幅,删除了部分结构重复的数据):
$_SC:系统全局配置
12 | 
  [cookiepre] => uchome_  | 
 
15 | 
  [attachdir] => ./attachment/  | 
 
16 | 
  [attachurl] => attachment/  | 
 
  
$_SCONFIG:个人空间配置
004 | 
  [sitelogo] => image/logo.gif  | 
 
005 | 
  [template] => default  | 
 
006 | 
  [adminemail] => webmaster@localhost  | 
 
012 | 
  [cachemode] => database  | 
 
017 | 
  [allowwatermark] => 0  | 
 
019 | 
  [holddomain] => www|*blog*|*space*|x  | 
 
023 | 
  [feedfilternum] => 10  | 
 
032 | 
  [networkupdate] => 300  | 
 
033 | 
  [seccode_register] => 1  | 
 
035 | 
  [manualmoderator] => 1  | 
 
042 | 
  [name_allowfriend] => 1  | 
 
043 | 
  [name_allowpoke] => 1  | 
 
044 | 
  [name_allowdoing] => 1  | 
 
045 | 
  [name_allowblog] => 1  | 
 
046 | 
  [name_allowalbum] => 1  | 
 
047 | 
  [name_allowthread] => 1  | 
 
048 | 
  [name_allowshare] => 1  | 
 
049 | 
  [name_allowcomment] => 1  | 
 
050 | 
  [name_allowpost] => 1  | 
 
051 | 
  [showallfriendnum] => 10  | 
 
052 | 
  [feedtargetblank] => 1  | 
 
054 | 
  [uc_tagrelatedtime] => 86400  | 
 
088 | 
  [cronnextrun] => 1254829800  | 
 
090 | 
  [sitekey] => 2a37854626AdS662  | 
 
100 | 
  [feeddefaultfilter] => all  | 
 
101 | 
  [my_closecheckupdate] => 0  | 
 
102 | 
  [spacebarusername] =>  | 
 
103 | 
  [defaultfusername] =>  | 
 
106 | 
  [login_action] => 1812d4b322672381d1dc7396a8a52ef7  | 
 
107 | 
  [register_action] => 0d7f87d7c19770cac7d20679586b362f  | 
 
  
$_SCOOKIE:Cookie信息
7 | 
  [auth] => 61087Cgwu3hoB35cDmXGpe3juvbjJQC2e+wlWJ79GPejIYhB1j/d9VwyKGy8DPYcKQCHUYvYg+EBqJoQS5Vc  | 
 
  
$_SGLOBAL:各类全局信息
003 | 
  [timestamp] => 1254829664  | 
 
004 | 
  [supe_starttime] => 1254829664.1719  | 
 
005 | 
  [db] => dbstuff Object  | 
 
008 | 
      [link] => Resource id #7  | 
 
043 | 
  [supe_username] => admin  | 
 
051 | 
      [password] => 8ae86ee69cba169f8691011ea3c5691f  | 
 
052 | 
      [lastactivity] => 1254829662  | 
 
061 | 
  [my_userapp] => Array  | 
 
148 | 
      [dateline] => 1245599521  | 
 
152 | 
      [lastlogin] => 1254829560  | 
 
168 | 
  [space_1_uid] => Array  | 
 
237 | 
      [dateline] => 1245599521  | 
 
241 | 
      [lastlogin] => 1254831926  | 
 
243 | 
    &, nbsp; [attachsize] => 0  | 
 
268 | 
          [manualmoderator] => 0  | 
 
282 | 
          [manualmoderator] => 0  | 
 
295 | 
          [grouptitle] => 站点管理员  | 
 
302 | 
          [searchinterval] => 0  | 
 
320 | 
          [icon] => image/group/admin.gif  | 
 
323 | 
          [manageprofilefield] => 1  | 
 
324 | 
          [manageprofield] => 1  | 
 
325 | 
          [manageusergroup] => 1  | 
 
339 | 
          [managesitefeed] => 1  | 
 
342 | 
          [managetemplate] => 1  | 
 
359 | 
          [maxfriendnum] => 100  | 
 
360 | 
          [maxattachsize] => 20971520  | 
 
363 | 
          [searchinterval] => 60  | 
 
384 | 
          [manageprofilefield] => 0  | 
 
385 | 
          [manageprofield] => 0  | 
 
386 | 
          [manageusergroup] => 0  | 
 
400 | 
          [managesitefeed] => 0  | 
 
403 | 
          [managetemplate] => 0  | 
 
  
 
$_SN:昵称信息
举例:
在UCHome上增加一个功能,希望某些群组类别下只允许有群组管理的人才能新建群组,其他人无法新建这些类别的群组。只需修改模板中的cp_mtag.htm文件,将如下代码:
1 | 
<div class="l_status">1. <strong>请选择一个群组分类</strong></div>  | 
 
4 | 
<!--{loop $fields $value}-->  | 
 
5 | 
<td><input type="radio" id="fieldid_$value[fieldid]" name="fieldid" value="$value[fieldid]" onclick="fieldselect(this.value)"><label for="fieldid_$value[fieldid]">$value[title]</label></td>  | 
 
6 | 
<!--{if $i%3==2}--></tr><tr><!--{/if}-->  | 
 
  
更改为:
01 | 
<div class="l_status">1. <strong>请选择一个群组分类</strong></div>  | 
 
04 | 
<!--{loop $fields $value}-->  | 
 
06 | 
<!--{eval if(!($_SGLOBAL['usergroup'][$_SGLOBAL['member']['groupid']]['manageprofield'])){ }-->  | 
 
07 | 
<!--{eval if(in_array($value[fieldid], array(1,4,5,6))) continue;}-->  | 
 
10 | 
<td><input type="radio" id="fieldid_$value[fieldid]" name="fieldid" value="$value[fieldid]" onclick="fieldselect(this.value)"><label for="fieldid_$value[fieldid]">$value[title]</label></td>  | 
 
11 | 
<!--{if $i%3==2}--></tr><tr><!--{/if}-->  | 
 
  
简单说明一下:$_SGLOBAL['member']['groupid']返回当前用户的用户组编号,$_SGLOBAL['usergroup'][用户组编号]['manageprofield']返回特定用户组是否有群组管理权限,结合起来判断当前用户是否有群组管理权限。
效果就是当管理员登陆后,新建群组可选择所有分类。
 
管理员新建群组界面
 
而普通会员登录后,新建群组只能选个别分类。
 
普通会员新建群组界面