同步(统一) Destoon 与 UCenter 的 UID

作者:Goney Won 发布时间:May 29, 2012 分类:技术语言 1 Comment

前阵子接触 Destoon,觉得这套程序做得很不错!完全开源且商业授权仅需¥3262。值得拥有~
噢 有点软文了,赶紧回到正题来,因为 Destoon 整合 UCenter 后,Destoon 是有自个的 userid 的,它是按注册或通过 UCenter 登录叠加的,所以 userid 跟 UID 是不同的,也就是说同一个用户他的 userid 是 101,UID 可以是 201/202/102.... 噢,卖糕的~这样 userid 跟 UID 会混淆的。因为项目需求,必须让这两个字段保持一样,看了下代码,要实现是很简单的。
打开 Destoon 的 /module/member/register.inc.php 大概 88 行处的 if($MOD['passport'] == 'uc')
修改后为:
if($MOD['passport'] == 'uc') {
	$uid = uc_user_register($passport, $post['password'], $post['email']);
	// BEGIN by Goney
	if($uid < 1) {
		list($uid, $rt_username, $rt_password, $rt_email) = uc_user_login($passport, $post['password']);
	}
	$db->query("UPDATE {$DT_PRE}member SET userid='$uid' WHERE username='$username'");
	$db->query("UPDATE {$DT_PRE}company SET userid='$uid' WHERE username='$username'");
	$db->query("SELECT MAX(userid) AS maxuid FROM {$DT_PRE}member");
	$db->query("ALTER TABLE {$DT_PRE}member AUTO_INCREMENT=".($maxuid + 1));
	// END by Goney
	if($uid > 0 && $MOD['uc_bbs']) uc_user_regbbs($uid, $passport, $post['password'], $post['email']);
}

删除 MAPn 添加虚拟主机时自动生成的提示页面

作者:Goney Won 发布时间:April 7, 2012 分类:MAPn 5 Comments

运行 MAPn adv 添加虚拟机后会自动产生域名提醒页面(如下图),部分用户不需要这个功能想要去掉



修改很简单,打开 /usr/local/mapn/scripts/addvhosts.sh,在大概 237行-241行处,将代码删除或注释即可~

阅读剩余部分……

IE 6 层宽度被撑开(width 100%)的问题

作者:Goney Won 发布时间:March 29, 2012 分类:技术语言 1 Comment



说明:灰色为父层,使用 position:absolute;right:0; 绝对定位;蓝色为子层。

图中可以看出,IE 6 的表现太糟糕了,有两种情况,一种是因为层触发了 haslayout,导致宽度被撑开(width 100%),正如网上所说的:避免触发 haslayout,去掉 zoom:1 或者改为 zoom:normal

阅读剩余部分……

神奇的 BurstNET

作者:Goney Won 发布时间:March 26, 2012 分类:无所不谈 2 Comments

话说我用 BurstNet 可以用年来计算了吧,不过没有用来建站,所以不重视,所以到昨天为止我从没用过它的工单系统,从来都没有提交过支持单
这回也终于是用到了,真是神奇的巴斯,我昨天订购了一台 VPS,付款后就关掉了没理会(因为不是即时开通的),隔了应该有三个钟头吧,我登录查看信息,服务是已经生效的了,然而 VPS 竟然是暂停状态,我是一头雾水,没办法只能提交服务单了,那个服务速度真是高效啊,等了我十多个小时终于回复了~

阅读剩余部分……

解决整合 UCenter 首次注册同步登录与自动激活

作者:Goney Won 发布时间:March 20, 2012 分类:技术语言 17 Comments

多程序整合 UCenter,在新用户首次注册后是没有同步登录到其它程序的,也就是说用户得在其它程序用密码再登录一次,以后才能同步登录,还有就是用户不是在 Discuz 程序注册的话,在 Discuz 登录时得手动激活,这些都导致用户体验很不好,不过解决方法很简单~
修改各个程序目录下的 ./uc_client/model/user.php 文件,大概在 129 行处的 function add_user 函数里添加代码
如 Discuz X 的:

$this->db->query("INSERT INTO `dbname`.pre_common_member SET uid='$uid', username='$username', password='$password', email='$email', adminid='0', groupid='10', regdate='".$this->base->time."', credits='0', timeoffset='9999'");
$this->db->query("INSERT INTO `dbname`.pre_common_member_status SET uid='$uid', regip='$regip', lastip='$regip', lastvisit='".$this->base->time."', lastactivity='".$this->base->time."', lastpost='0', lastsendmail='0'");
$this->db->query("INSERT INTO `dbname`.pre_common_member_profile SET uid='$uid'");
$this->db->query("INSERT INTO `dbname`.pre_common_member_field_forum SET uid='$uid'");
$this->db->query("INSERT INTO `dbname`.pre_common_member_field_home SET uid='$uid'");
$this->db->query("INSERT INTO `dbname`.pre_common_member_count SET uid='$uid', extcredits1='0', extcredits2='0', extcredits3='0', extcredits4='0', extcredits5='0', extcredits6='0', extcredits7='0', extcredits8='0'");

阅读剩余部分……