【UCHOME二次开发】资料整理<下>
【UCHome二次开发】全局变量
UCHome定义了一些全局变量保存常用信息,了解这些变量存放的内容将大大方便我们的二次开发。
以下依次罗列各全局变量所保存的内容:
- $_SC:系统全局配置
- $_SBLOCK:未知
- $_SCONFIG:个人空间配置
- $_SCOOKIE:Cookie信息
- $_SGLOBAL:各类全局信息
- $_SN:昵称信息
- $_TPL:未知
- 举例说明
以上个别全局变量在不同页面的值会有所不同,使用前最好先测试一下值是否存在。
下面是用print_r函数打印出来的各全局变量信息,方便参考(为节省篇幅,删除了部分结构重复的数据):
$_SC:系统全局配置
$_SC: Array
(
[dbhost] => localhost
[dbuser] => root
[dbpw] => root
[dbcharset] => utf8
[pconnect] => 0
[dbname] => uchome
[tablepre] => uchome_
[charset] => utf-8
[gzipcompress] => 0
[cookiepre] => uchome_
[cookiedomain] =>
[cookiepath] => /
[attachdir] => ./attachment/
[attachurl] => attachment/
[siteurl] => http://localhost/uchome/
[tplrefresh] => 0
[founder] => 1
[allowedittpl] => 0
)
$_SCONFIG:个人空间配置
$_SCONFIG: Array
(
[sitename] => 我的空间
[sitelogo] => image/logo.gif
[template] => default
[adminemail] => webmaster@localhost
[onlinehold] => 1800
[timeoffset] => 8
[maxpage] => 50
[starcredit] => 100
[starlevelnum] => 5
[cachemode] => database
[cachegrade] => 0
[allowcache] => 1
[allowdomain] => 0
[allowrewrite] => 0
[allowwatermark] => 0
[allowftp] => 0
[holddomain] => www|*blog*|*space*|x
[mtagminnum] => 5
[feedday] => 15
[feedmaxnum] => 50
[feedfilternum] => 10
[importnum] => 100
[singlesent] => 50
[groupnum] => 8
[closeregister] => 0
[closeinvite] => 0
[close] => 0
[networkpublic] => 1
[networkpage] => 1
[networkupdate] => 300
[seccode_register] => 1
[uc_tagrelated] => 1
[manualmoderator] => 1
[linkguide] => 1
[showall] => 1
[sendmailday] => 0
[realname] => 0
[namecheck] => 0
[namechange] => 0
[name_allowfriend] => 1
[name_allowpoke] => 1
[name_allowdoing] => 1
[name_allowblog] => 1
[name_allowalbum] => 1
[name_allowthread] => 1
[name_allowshare] => 1
[name_allowcomment] => 1
[name_allowpost] => 1
[showallfriendnum] => 10
[feedtargetblank] => 1
[feedread] => 1
[uc_tagrelatedtime] => 86400
[privacy] => Array
(
[view] => Array
(
[index] => 0
[profile] => 0
[friend] => 0
[wall] => 0
[feed] => 0
[doing] => 0
[blog] => 0
[album] => 0
[share] => 0
[mtag] => 0
)
[feed] => Array
(
[doing] => 1
[blog] => 1
[album] => 1
[upload] => 1
[share] => 1
[thread] => 1
[post] => 1
[mtag] => 1
[friend] => 1
[comment] => 1
[trace] => 1
)
)
[cronnextrun] => 1254829800
[my_status] => 0
[sitekey] => 2a37854626AdS662
[siteallurl] => http://localhost/uchome/
[licensed] => 0
[debuginfo] => 0
[miibeian] =>
[headercharset] => 0
[avatarreal] => 0
[uc_dir] =>
[my_ip] =>
[closereason] =>
[feeddefaultfilter] => all
[my_closecheckupdate] => 0
[spacebarusername] =>
[defaultfusername] =>
[domainroot] =>
[ftpurl] =>
[login_action] => 1812d4b322672381d1dc7396a8a52ef7
[register_action] => 0d7f87d7c19770cac7d20679586b362f
)
$_SCOOKIE:Cookie信息
$_SCOOKIE:
Array
(
[loginuser] => admin
[checkpm] => 1
[synfriend] => 1
[sendmail] => 1
[auth] => 61087Cgwu3hoB35cDmXGpe3juvbjJQC2e+wlWJ79GPejIYhB1j/d9VwyKGy8DPYcKQCHUYvYg+EBqJoQS5Vc
)
$_SGLOBAL:各类全局信息
$_SGLOBAL: Array
(
[timestamp] => 1254829664
[supe_starttime] => 1254829664.1719
[db] => dbstuff Object
(
[querynum] => 3
[link] => Resource id #7
[charset] => utf8
)
[app] => Array
(
[1] => Array
(
[name] => 枫芸志
[url] => http://localhost/bbs
[type] => DISCUZ
[open] => 1
[icon] => discuz
)
[2] => Array
(
[name] => 个人家园
[url] => http://localhost/uch
[type] => UCHOME
[open] => 0
[icon] => uchome
)
)
[userapp] => Array
(
)
[ad] => Array
(
)
[supe_uid] => 1
[supe_username] => admin
[inajax] => 0
[ajaxmenuid] =>
[refer] => http://localhost/uchome/space.php?do=mtag
[session] => Array
(
[uid] => 1
[username] => admin
[password] => 8ae86ee69cba169f8691011ea3c5691f
[lastactivity] => 1254829662
[ip] => 127000000
)
[username] => admin
[my_menu] => Array
(
)
[my_userapp] => Array
(
)
[my_menu_more] => 0
[appmenu] => Array
(
[name] => 枫芸志
[url] => http://localhost/bbs
[type] => DISCUZ
[open] => 1
[icon] => discuz
)
[appmenus] => Array
(
)
[member] => Array
(
[uid] => 1
[sex] => 0
[email] =>
[emailcheck] => 0
[qq] =>
[msn] =>
[birthyear] => 0
[birthmonth] => 0
[birthday] => 0
[blood] =>
[marry] => 0
[birthprovince] =>
[birthcity] =>
[resideprovince] =>
[residecity] =>
[note] =>
[spacenote] =>
[authstr] =>
[theme] =>
[nocss] => 0
[menunum] => 0
[css] =>
[privacy] => Array
(
[view] => Array
(
[index] => 0
[profile] => 0
[friend] => 0
[wall] => 0
[feed] => 0
[doing] => 0
[blog] => 0
[album] => 0
[share] => 0
[mtag] => 0
)
[feed] => Array
(
[doing] => 1
[blog] => 1
[album] => 1
[upload] => 1
[share] => 1
[thread] => 1
[post] => 1
[mtag] => 1
[friend] => 1
[comment] => 1
[trace] => 1
)
)
[friend] =>
[feedfriend] =>
[sendmail] =>
[groupid] => 1
[credit] => 0
[username] => admin
[name] =>
[namestatus] => 0
[domain] =>
[viewnum] => 0
[notenum] => 0
[friendnum] => 0
[dateline] => 1245599521
[updatetime] => 0
[lastsearch] => 0
[lastpost] => 0
[lastlogin] => 1254829560
[lastsend] => 0
[attachsize] => 0
[addsize] => 0
[flag] => 1
[newpm] => 0
[avatar] => 0
[ip] => 127000000
[mood] => 0
[self] => 1
[friends] => Array
(
)
)
[space_1_uid] => Array
(
[uid] => 1
[sex] => 1
[email] =>
[emailcheck] => 0
[qq] =>
[msn] =>
[birthyear] => 0
[birthmonth] => 0
[birthday] => 0
[blood] =>
[marry] => 0
[birthprovince] =>
[birthcity] =>
[resideprovince] =>
[residecity] =>
[note] =>
[spacenote] =>
[authstr] =>
[theme] => t10
[nocss] => 0
[menunum] => 0
[css] =>
[privacy] => Array
(
[view] => Array
(
[index] => 0
[profile] => 0
[friend] => 0
[wall] => 0
[feed] => 0
[doing] => 0
[blog] => 0
[album] => 0
[share] => 0
[mtag] => 0
)
[feed] => Array
(
[doing] => 1
[blog] => 1
[album] => 1
[upload] => 1
[share] => 1
[thread] => 1
[post] => 1
[mtag] => 1
[friend] => 1
[comment] => 1
[trace] => 1
)
)
[friend] =>
[feedfriend] =>
[sendmail] =>
[groupid] => 1
[credit] => 0
[username] => admin
[name] => 晴枫
[namestatus] => 1
[domain] =>
[viewnum] => 0
[notenum] => 0
[friendnum] => 0
[dateline] => 1245599521
[updatetime] => 0
[lastsearch] => 0
[lastpost] => 0
[lastlogin] => 1254831926
[lastsend] => 0
[attachsize] => 0
[addsize] => 0
[flag] => 1
[newpm] => 0
[avatar] => 0
[ip] => 127000000
[mood] => 0
[self] => 1
[friends] => Array
(
)
)
[profield] => Array
(
[1] => Array
(
[fieldid] => 1
[title] => 自由联盟
[note] =>
[formtype] => text
[inputnum] => 100
[choice] =>
[mtagminnum] => 0
[manualmoderator] => 0
[manualmember] => 1
[displayorder] => 0
)
[2] => Array
(
[fieldid] => 2
[title] => 地区联盟
[note] =>
[formtype] => text
[inputnum] => 100
[choice] =>
[mtagminnum] => 0
[manualmoderator] => 0
[manualmember] => 1
[displayorder] => 0
)
)
[usergroup] => Array
(
[1] => Array
(
[gid] => 1
[grouptitle] => 站点管理员
[system] => -1
[creditlower] => 0
[maxfriendnum] => 0
[maxattachsize] => 0
[allowhtml] => 1
[allowcomment] => 1
[searchinterval] => 0
[postinterval] => 0
[allowblog] => 1
[allowdoing] => 1
[allowupload] => 1
[allowshare] => 1
[allowmtag] => 1
[allowthread] => 1
[allowpost] => 1
[allowcss] => 1
[allowpoke] => 1
[allowfriend] => 1
[allowtrace] => 1
[edittrail] => 0
[domainlength] => 1
[closeignore] => 1
[seccode] => 0
[color] => red
[icon] => image/group/admin.gif
[manageconfig] => 1
[managenetwork] => 1
[manageprofilefield] => 1
[manageprofield] => 1
[manageusergroup] => 1
[managefeed] => 1
[manageshare] => 1
[managedoing] => 1
[manageblog] => 1
[managetag] => 1
[managetagtpl] => 0
[managealbum] => 1
[managecomment] => 1
[managemtag] => 1
[managethread] => 1
[managespace] => 1
[managecensor] => 1
[managead] => 1
[managesitefeed] => 1
[managebackup] => 1
[manageblock] => 1
[managetemplate] => 1
[managestat] => 1
[managecache] => 1
[managecredit] => 1
[managecron] => 1
[managename] => 1
[manageapp] => 1
[managetask] => 1
[managereport] => 1
)
[5] => Array
(
[gid] => 5
[grouptitle] => 普通会员
[system] => 0
[creditlower] => 0
[maxfriendnum] => 100
[maxattachsize] => 20971520
[allowhtml] => 0
[allowcomment] => 1
[searchinterval] => 60
[postinterval] => 60
[allowblog] => 1
[allowdoing] => 1
[allowupload] => 1
[allowshare] => 1
[allowmtag] => 1
[allowthread] => 1
[allowpost] => 1
[allowcss] => 0
[allowpoke] => 1
[allowfriend] => 1
[allowtrace] => 1
[edittrail] => 0
[domainlength] => 0
[closeignore] => 0
[seccode] => 0
[color] =>
[icon] =>
[manageconfig] => 0
[managenetwork] => 0
[manageprofilefield] => 0
[manageprofield] => 0
[manageusergroup] => 0
[managefeed] => 0
[manageshare] => 0
[managedoing] => 0
[manageblog] => 0
[managetag] => 0
[managetagtpl] => 0
[managealbum] => 0
[managecomment] => 0
[managemtag] => 0
[managethread] => 0
[managespace] => 0
[managecensor] => 0
[managead] => 0
[managesitefeed] => 0
[managebackup] => 0
[manageblock] => 0
[managetemplate] => 0
[managestat] => 0
[managecache] => 0
[managecredit] => 0
[managecron] => 0
[managename] => 0
[manageapp] => 0
[managetask] => 0
[managereport] => 0
[credithigher] => 99
)
)
)
$_SN:昵称信息
(
[1] => 晴枫
)
举例:
在UCHome上增加一个功能,希望某些群组类别下只允许有群组管理的人才能新建群组,其他人无法新建这些类别的群组。只需修改模板中的cp_mtag.htm文件,将如下代码:
<div class="l_status">1. <strong>请选择一个群组分类</strong></div>
<table><tr>
<!--{eval $i=0;}-->
<!--{loop $fields $value}-->
<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>
<!--{if $i%3==2}--></tr><tr><!--{/if}-->
<!--{eval $i++;}-->
<!--{/loop}-->
</tr></table>
更改为:
<div class="l_status">1. <strong>请选择一个群组分类</strong></div>
<table><tr>
<!--{eval $i=0;}-->
<!--{loop $fields $value}-->
<!--{eval if(!($_SGLOBAL['usergroup'][$_SGLOBAL['member']['groupid']]['manageprofield'])){ /*判断当前用户是否有群组管理权限*/}-->
<!--{eval if(in_array($value[fieldid], array(1,4,5,6))) continue;/*过滤不允许普通用户创建的群组*/}-->
<!--{eval } }-->
<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>
<!--{if $i%3==2}--></tr><tr><!--{/if}-->
<!--{eval $i++;}-->
<!--{/loop}-->
</tr></table>
简单说明一下:$_SGLOBAL['member']['groupid']返回当前用户的用户组编号,$_SGLOBAL['usergroup'][用户组编号]['manageprofield']返回特定用户组是否有群组管理权限,结合起来判断当前用户是否有群组管理权限。
效果就是当管理员登陆后,新建群组可选择所有分类。

管理员新建群组界面
而普通会员登录后,新建群组只能选个别分类。

普通会员新建群组界面
以上为个人实践的总结,如有不对之处,敬请指出!
本文链接:http://witmax.cn/uchome-global-variables.html
【UCHome二次开发】与UCenter的交互解析
UCHome中的一些信息是调用UCenter中的数据,比如说用户密码信息、站内消息、好友信息等。因而对UChome进行二次开发过程中免不了需要了解与UCenter的交互机制。
1、文件说明
UCHome中与UCenter交互的源码文件位于/uc_client/目录下。相关的数据调用函数都位于client.php中,因而在UCHome的代码中只需加入以下代码之后便可使用uc_client中的函数:
include_once S_ROOT.'./uc_client/client.php';
2、函数说明
函数功能及参数说明在源码中已给出,请参看源码。
函数名都是以uc_开头的,所以在UCHome中遇到以uc_开头的函数,便知道是在调用UCenter的数据。
3、配置说明
在/config.php有一系列配置与UCenter有关,如未正确配置将使系统运行不正常。相关配置如下:
//应用的UCenter配置信息(可以到UCenter后台->应用管理->查看本应用->复制里面对应的配置信息进行替换)
define('UC_CONNECT', 'mysql'); // 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fsocketopen(), mysql 是直接连接的数据库, 为了效率, 建议采用 mysql
define('UC_DBHOST', 'localhost'); // UCenter 数据库主机
define('UC_DBUSER', 'nzm'); // UCenter 数据库用户名
define('UC_DBPW', 'nzm'); // UCenter 数据库密码
define('UC_DBNAME', 'ucenter'); // UCenter 数据库名称
define('UC_DBCHARSET', 'gbk'); // UCenter 数据库字符集
define('UC_DBTABLEPRE', '`ucenter`.uc_'); // UCenter 数据库表前缀
define('UC_DBCONNECT', '0'); // UCenter 数据库持久连接 0=关闭, 1=打开
define('UC_KEY', 'Z396j27cL457LfS5t8k8k8mb18d5eb22N1v6p1xdx0x0ZfG585UbH4AbefxdGcy8'); // 与 UCenter 的通信密钥, 要与 UCenter 保持一致
define('UC_API', 'http://127.0.0.1/ucenter'); // UCenter 的 URL 地址, 在调用头像时依赖此常量
define('UC_CHARSET', 'gbk'); // UCenter 的字符集
define('UC_IP', '127.0.0.1'); // UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名有问题时, 请设置此值
define('UC_APPID', '1'); // 当前应用的 ID, 对应UCenter中的应用 ID
与UCenter的数据交互有两种方式,mysql直连数据库方式和socket端口连接方式,建议采用mysql直连数据库方式。
【UCHome应用】增加sns人气的客服秘籍
UCHome做为康盛创想推出的新产品受到站长们的普遍欢迎,安装量逐日增高,正加速覆盖地方网站和专业垂直领域的大小网站。伴随着这种普及,有一些站长 发现注册用户虽然已经有几千人了,但是活跃会员却不多。而UCHome这种模式尤其是是各种好玩的游戏,偏偏需要通过很多人之间的互动来提高网站粘性,除 了继续从其他地方拉人过来之外,在站内该怎样努力才好呢?
其实,在我之前写的很多文章里面都提到过网站当中一个重要的角色--“客服(客户服务帐号的简称)”,对于网站来说,除了从技术角度不断打磨和优化页面和代码之外,我们在运营中更多的要依靠”客服“来发挥作用。
我们可以利用网站管理员或者通过灵活的授权让热心会员,活跃会员担任起“客服”的职责。下面就来介绍一下UCH客服的秘籍吧!
秘籍一:基本功——设置客服为站点默认好友用户
<!--[if !vml]-->

设置,站点默认好友用户后,新注册用户会在第一时间自动加客服为好友,而且会自动接收到系统用客服帐号发出的一个简单的招呼——“打个招呼”。这样的好处 是系统帮你完成,起码让网友在第一次登录时发现有人接待。当然,这种默认好友也不宜设置过多,副作用是,用户会发现这样的好友是系统硬推过来的,感觉比较生硬。
秘籍二:批量打招呼提醒新注册用户更换头像;

用有用户管理权限的帐号登录后台,点用户,选择没有头像的用户,按照建立时间由近到远排序,就会轻松的找到刚刚注册,但是还没有更新头像的用户,全选之后选择

“向其打招呼”。打招呼的时候选择的语气不妨轻松随意一些,避免过于生硬。
例如,用一个漂亮妹妹的帐号,对“他们”说:“你好啊~换个头像呗~”。
虽然UCHome有换头像的任务,但是打招呼就更加人性化一些。
秘籍三:给在线会员打招呼,增加网站活跃气氛;
同样的道理,我们把用户按照“更新时间”递减排序,就会搜索出最近在线的用户,给这些用户打招呼的效率很高,几乎是一呼百应,可以立刻活跃网站气 氛,也方便做一些即时的通知。也比较适合站长或者网站管理员和活跃会员进行沟通,让活跃会员感觉到站长的存在和好客。而且通过打招呼会有很多网友主动加客服为好友,这个过程要比系统硬推给的好友要舒服而且自然的多。需要说明的是,用谁的帐号登录后台打招呼,这个招呼就是谁发出的。
秘籍四:客服留言的技巧
客服的留言的意义和普通会员的招呼不太一样,因为客服主要应付几种情况:
一、接待新注册用户;
二、适当的回应鼓励用户发表内容;
三、处理站内用户遇到的疑难问题;
四、代表网站官方发布信息,裁定争议;
但是,如果刻意的显示客服的存在会让用户感到受监视和不舒服的感觉,所以,在给普通用户留言的时候,应该尽量的采用网友之间常用的“网络语言”,例如下面这些:
给没有换模板的会员空间留言:
我换新模板了,来看看吧
你的主页什么都没有哦,来看看我的吧哈哈
给没有任何更新但是有登录的会员空间留言
最近什么都没弄?0..0….
一般性质的互踩:
路过帮你踩踩////
好啊 我来串串门 回啊
来看你啦
记得有时间来我空间看看哦!也帮我涨涨人气嘛!
给没有更换头像或者没有上传照片的会员留言
我怎么看不到你照片呀?
你好啊~换个头像呗~
这些基本上都是提醒和互踩性质的留言,而对于适当回应和鼓励用户发表内容的留言,其实在论坛或其他领域都有很多,比如,女孩上传照片,只要过得去都可以说 “漂亮”“挺有气质的”;有人写一些对爱情的感受,可以根据情况说一些不痛不痒的话,例如“爱情就是这样”“究竟什么才是爱“,这些都可以自由发挥了,总之要让作者有受重视的感觉。
秘籍五:客服批量邮件
首先,系统内置了类似功能,我们可以设置一个时间段,当用户超过该时间段没有登陆时,系统会自动的发送通知邮件以此提醒用户登录,通知的内容一般为“某某某加你为好友”,“某某某给你打招呼”。
<!--[if !vml]-->

同样的在批量管理中的“用户”栏目,我们可以自定义的针对特定的用户,批量的发送一些有意思的邮件,以此来通知暂时离开的会员回来继续参与互动。如下图
<!--[if !vml]-->

类似的还可以借鉴“开心网”的“病毒式的邮件”通知:
我是你的宠物,我有新情况汇报
你已经有15天不来开心了,敢来看看吗?
你已经有16天不来开心了,是去拯救金融危机了?
你已经17天不来开心了,你是不是怕了?
注意,有人去了你的开心农场
几天不见,太阳晒得地都干了,去经营一下我的农场
有人想在开心网上明确你俩之间的关系,点击下面链接查看
另外,有一些特殊活动的通知,也适合用邮件通知。但是由于这种大量的邮件发送会加重网站的负担,在执行是要注意避开上网高峰时段和掌握发送的频率。
浙公网安备 33010602011771号