星期二 小雨转阴 10~16℃

UCH 2.0 群组名改为可更改

默认的,群主不可以更改群组名,现在改为可更改。

第一步

cp_mtag.php

$setarr['joinperm'] = $field['manualmember']?intval($_POST['joinperm']):0;

上方加一行

$setarr['tagname'] = getstr($_POST['tagname'], 80, 1, 1, 1, 1);

第二步

模板 cp_mtag.htm

<th width="100">群组名</th>
<td>$mtag[tagname]</td>

改为

<th width="100">群组名</th>
<td><input id="tagname" type="text" name="tagname" value="$mtag[tagname]" size="80" class="t_input" /></td>


SQL 关联表:SQL "WHERE"、"LEFT JOIN"

参考:WHERE 子句LEFT JOIN 关键字

现学现卖:UCH 2.0 随便看看调用“喜欢的运动”

第一步

index.php

原:

//20位热门用户
$query = $_SGLOBAL['db']->query("SELECT s.*, sf.resideprovince, sf.residecity
 FROM ".tname(‘space’)." s
 LEFT JOIN ".tname(‘spacefield’)." sf ON sf.uid=s.uid
 ORDER BY s.friendnum DESC LIMIT 0,20");

增加显示“喜欢的运动”:

//20位热门用户
$query = $_SGLOBAL['db']->query("SELECT s.*, sf.resideprovince, sf.residecity, si.title, si.friend
 FROM ".tname(‘space’)." s
 LEFT JOIN ".tname(‘spacefield’)." sf ON sf.uid=s.uid
 LEFT JOIN ".tname(‘spaceinfo’)." si ON si.uid=s.uid WHERE subtype=’sport’
 ORDER BY s.friendnum DESC LIMIT 0,20");

第二步

模板 index.htm

<!–{loop $spacelist $value}–>
 <li>
  <div class="d_avatar avatar48"><a href="space.php?uid=$value[uid]" title="{$_SN[$value[uid]]}" target="_blank"><!–{avatar($value[uid],small)}–></a></div>
  <p><a href="space.php?uid=$value[uid]" target="_blank">{$_SN[$value[uid]]}</a></p>
  <p>$value[resideprovince] $value[residecity]</p>
  <p>$value[friendnum] 位好友</p>
 </li>
<!–{/loop}–>

改,(显示条件:用户设置了“喜欢的运动”,并且隐私条件设置为“全用户可见”)

<!–{loop $spacelist $value}–>
 <!–{if $value[title] && $value[friend]==0}–>
 <li>
  <div class="d_avatar avatar48"><a href="space.php?uid=$value[uid]" title="{$_SN[$value[uid]]}" target="_blank"><!–{avatar($value[uid],small)}–></a></div>
  <p><a href="space.php?uid=$value[uid]" target="_blank">{$_SN[$value[uid]]}</a></p>
  <p>$value[resideprovince] $value[residecity]</p>
  <p>$value[friendnum] 位好友</p>
  <p>$value[title]</p>
 </li>
 <!–{/if}–>
<!–{/loop}–>


友吧今天

1、昨晚列出剩下的未完成页面,还有十来个,努力在这周完成。局部细节可以上线后再处理,不影响使用。

2、继续嵌套首页,扩展处理遇到的技术问题。

星期一 阴转小雨 9~17℃

UCH 2.0 随便看看增加推荐群组

在 index.php 或 source/network.php 增加,其中 $mtagcount 是群组总数,使用了随机显示:

//推荐群组
$mtaglist = array();
$mtagcount = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname(‘mtag’)), 0);
if($mtagcount) {
 $query = $_SGLOBAL['db']->query("SELECT tagid,tagname,pic,recommend FROM ".tname(‘mtag’)." WHERE recommend=1");
 while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  $mtaglist[] = $value;
 }
 $mtaglist = sarray_rand($mtaglist, 6);
}

模板页 index.htm / network.htm

<h2>已有 $mtagcount 个群组</h2>
<div class="i_mtag">
 <ul>
 <!–{loop $mtaglist $value}–>
  <li>
   <a href="space.php?do=mtag&tagid=$value[tagid]"><img src="$value[pic]" class="mainBg" /></a>
   <p><a href="space.php?do=mtag&tagid=$value[tagid]">$value[tagname]</a></p>
  </li>
 <!–{/loop}–>
 </ul>
</div>


邻居房间进小偷了

昨晚去外面买外卖打包回来没多久,听到房门外有声音,后来房东来了,听情形是邻居遭贼了,被偷的是放在床上的笔记本和游戏机。

没多久,楼上有一户也说丢东西了。

然后是保安来了,然后听到邻居打电话报警。

再后来听到邻居的哭声。丢东西的两户都是女孩子。

我一天都在家,并未听到外面有什么动静。五点半左右出门去买饭,不到六点左右回来。听他们谈话的情形,正是在五点半左右发生的。有人说看到楼下有两个男的鬼鬼祟祟。难道小偷瞄准我出门了就下手?以前短时间出门的话会想:“不要紧,反正就这几分钟,没事。”然后窗户和后门可能就不关了,现在不敢这么想了,尤其是年底小偷最猖獗的时候。

想起前不久记的“关好门窗,防止小偷”。出门切记要关好门窗,就连晚上睡觉都要小心。这次事件实在离自己太近,没准哪天就轮到自己了。昨晚把相机之类的易偷物品都放到了不太明显的地方。

进入二十一世纪后,贫富差距和失业率越来越大,住在中国的哪旮旯还能有些许的安全感呢?


友吧今天

嵌套网站首页。此前嵌套了一半,因为遇到技术问题,所以暂时搁置。现在内页套好了再回过来套首页,套内页时稍稍学了点 php 知识,此前遇到的技术问题也解决了。

第922天:嵌套“最喜欢的运动”

星期日 阴 8~16℃

友吧今天

把个人资料页里“喜欢的运动”改成“最喜欢的运动”,输入框改成单选项,用 js 实现传值。

星期六 晴 10~18℃

休息

天气好。洗衣晒被。


UCH 2.0 消息发送页收件人列表的关闭按钮始终显示在右上角

默认的关闭按钮会随着滚动条滚动,当需要关闭时,滚动条需要拉到最顶上才能看到关闭按钮。现在改成关闭按钮固定不动,不管滚动条怎么滚,都可以随时点击关闭。

模板页 cp_pm.htm

原:

<div id="username_menu" class="ajax_selector" onclick="$(‘username_menu’).style.display=’none’;" style="display:none">
 <div class="ajax_selector_option" style="width: 396px; height: 100px;">
  <a href="javascript:;" onclick="$(‘username_menu’).style.display=’none’;" class="float_del" style="margin-right: 5px;">a</a>
  <ul id="friendlist" class="blocklink">
   <!–{loop $friends $key $value}–>
    <!–{eval $fs[] = $value['username'];}–>
    <li>$value[username]</li>
   <!–{/loop}–>
  </ul>
 </div>
</div>

改,把关闭按钮提到上面一层,并加上 z-index:

<div id="username_menu" class="ajax_selector" onclick="$(‘username_menu’).style.display=’none’;" style="display:none">
 <a href="javascript:;" onclick="$(‘username_menu’).style.display=’none’;" class="float_del" style="right:0; left:362px; z-index:1">&nbsp;</a>
 <div class="ajax_selector_option" style="width: 396px; height: 100px;">
  <ul id="friendlist" class="blocklink">
   <!–{loop $friends $key $value}–>
    <!–{eval $fs[] = $value['username'];}–>
    <li>$value[username]</li>
   <!–{/loop}–>
  </ul>
 </div>
</div>

另外,这个关闭按钮有一个 hack,鼠标经过时有时会跳动,可能是因为出现滚动条的原因,解决方法是把相当右定位改成相对左定位:

right:0; left:362px;

这个 left 根据 div 的宽度来定。


友吧今天

嵌套消息发送页。

星期五 多云 7~16℃

早上断水,奢侈

昨晚十点多发现断水。早上起床还没来水,拿桶到楼下准备打些井水,正好看见一大妈在井边洗拖把,一问,这井水原来是脏的,只是用来洗衣服洗拖把的(估计洗好了的衣服还是要用清水过几遍才行)。去年刚搬进这小区还以为这小区风水好,每家每户楼下都有口小井,原来是这样。

打电话给房东,说断水了。房东说十五分钟后到。

回到房间,因为急着上班,准备下去买矿泉水来洗。女友说桌子底下不是有一箱吗?才想起是半年前买来准备打篮球时喝的,结果才买来没多久就查出膝盖滑膜炎,一箱水到现在还没开封,还以为再过段时间要过期扔掉了,没想到还能救急 ^____^

灌到热水瓶里烧热水,用了 3 瓶半矿泉水才装满热水瓶,想起来真有点奢侈。

快出门的时候房东来了,很快解决了问题,可能是昨天晚上修的时候把哪个开关给关了。


UCH2.0 站内消息增加表情解析

第一步

在模板(space_pm.htm)消息框(textarea)上方增加表情插入:

<a href="#@" id="message_face" onclick="showFace(this.id, ‘pm_message’);return false;"><img src="image/facelist.gif" align="absmiddle" /></a>

第二步

在 space_pm.php 的

$value['daterange'] = 5;

上方增加一行

$value['message'] = preg_replace("/\[em:(\d+):]/is", "<img src=\"image/face/\\1.gif\" class=\"face\">", $value['message']);


玩《红警2》原版(v1.006)

玩了有一段时间了,主要用来放松自己,一般玩个把小时,赢一局就不玩了。

玩原版就像打 CS,很快一局就没了,很有挑战性,如果能赢的话一局通常是半小时。玩这游戏还能体会到“创业起步阶段太艰难”,能顶住前面几波攻击基本上也就赢了。

比较喜欢玩的地图是冰天雪地和长征(因为难度大),用美国(据说用美国的话,敌国会更冷酷),敌国冷酷随机。最多只赢过一挑三,还没有赢过一挑四的纪录。


友吧今天

完成“消息”“通知”页面嵌套。接下去开始嵌套零碎页面,以及一些页面的细节。

上线在即。

星期四 多云 6~14℃

友吧今天

1、设计登录后的首页banner。

2、嵌套“设置和管理”:个人资料、密码修改、我的头像、我的经验、隐私设置、动态屏蔽。

第918天:做了个摇奖flash

星期三 多云转阴 8~15℃

做了个摇奖flash

以前在九天的时候做过一个,今天做的形式不太一样,那时是排列三,现在是单摇,比较简单。

说明:

  1. 同事设计图片,我写 as 和接口。
  2. 从图片看,理论上中奖概率是 50%,为了加大中奖难度,测试时设置了 1~100 的随机,只有 4 种情形可以中奖。
  3. 此处展示的是纯洁的纯随机无人工参与游戏(中奖概率 4%),大家可以试试自己的运气,中了奖别来问我要就行:)

友吧今天

嵌套个人设置页、高级管理页。

星期二 多云转晴 8~14℃

Microsoft OLE DB Provider for ODBC Drivers ’80004005′问题,用 access2003 修复 mdb 解决

下午有网友问:

Microsoft OLE DB Provider for ODBC Drivers ’80004005′
[Microsoft][ODBC Microsoft Access Driver] 不能打开数据库 ‘(未知的)’。应用程序可能无法识别该数据库,或文件可能损坏。
\conn.asp, line 23

刚开始怀疑是空间问题,后来想起是不是 mdb 数据库问题,因为我的 blog 也是 mdb 数据库,每周都要用 access2003 修复一下,所以和他说用 access2003 修复一下。问题解决。


UCH2.0 在个人中心首页显示“加入的群组”

昨晚发现 1.5 版本中有显示,不知道为什么在 2.0 中去掉了(把来访的人带到自己所加入的群组,有什么不好的呢?)。增加的方法是从 1.5 版本的 space_index.php 拷贝以下代码到 2.0 版本的 space_index.php “//留言板”上方。

$mtaglist = array();
if(ckprivacy(‘mtag’)) {
 $query = $_SGLOBAL['db']->query("SELECT field.* FROM ".tname(‘tagspace’)." main
  LEFT JOIN ".tname(‘mtag’)." field ON field.tagid=main.tagid
  WHERE main.uid=’$space[uid]‘ LIMIT 0, 100");
 while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  $mtaglist[$value['fieldid']][] = $value;
 }
 if($mtaglist) {
  ksort($mtaglist);
  @include_once(S_ROOT.’./data/data_profield.php’);
 }
}

space_index.htm 模板代码同样是参考 1.5 版本。

另外,如果要显示“加入的圈子总数”,需要加一个数组(例如名称使用 $mtagnum),变成:

$mtaglist = $mtagnum = array();
if(ckprivacy(‘mtag’)) {
 $query = $_SGLOBAL['db']->query("SELECT field.* FROM ".tname(‘tagspace’)." main
  LEFT JOIN ".tname(‘mtag’)." field ON field.tagid=main.tagid
  WHERE main.uid=’$space[uid]‘ LIMIT 0, 100");
 while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  $mtaglist[$value['fieldid']][] = $value;
  $mtagnum[] = $value;//加入的圈子总数
 }
 if($mtaglist) {
  ksort($mtaglist);
  @include_once(S_ROOT.’./data/data_profield.php’);
 }
}

在模板中显示“加入的圈子总数”:<!–{eval echo count($mtagnum)}–>


关于 UCH2.0 好友分组的几个备忘


友吧今天

1、嵌套个人中心“好友”页。

2、开始零碎记录“友吧四岁生日”(昨晚临睡前用便签本记了一些)。名称由之前的“周年总结”改为“周岁生日”。

3、通知团队本月例会顺延至下周。

星期一 多云转晴 7~14℃

友吧今天

根据昨天的计划,统一了老用户的用户名与昵称,把用户名和昵称改成一样。大部分是用户名改成昵称一样,部分用户是昵称改成和用户名一样(见附一)。

  1. 备份 dede、uc、home 数据库及站点文件;
  2. 取消本地 hosts 指向到 www.friends8.com 的设置;
     
  3. 进入 dede 数据库把一个测试用户的用户名改成和昵称一样;
  4. 进入 uc 后台把同一个测试用户的用户名改成和昵称一样;
  5. 进入 home 后台关闭实名认证;
  6. 在 home 发帖测试,正常;
  7. 在 base 顶文章测试,正常;
  8. 用户链接从 dede 到 home 测试正常;
     
  9. 进入 dede 数据库修改所有需要修改的用户的用户名或昵称;
  10. 全选复制用户名和昵称字段到 dreamweaver 中,用查找功能检查是否完全一致,检查到一个错误;
     
  11. 进入 home 后台先把下面“附一”的用户的昵称修改好;
  12. 进入 uc 后台修改所有需要修改的用户的用户名;
  13. 进入 home 后台检查用户名昵称是否对应,检查到三个错误;
     
  14. 在 QQ 上对修改过的活跃老用户逐一通知以后使用昵称登录。

附一:以下用户是把昵称改成和用户名一样,有些是根据用户自身的喜好,有些是因为和前面的用户名有重复,有些是因为昵称使用了禁止字符。

用户名(昵称)

  • ryan(Ryan)
  • applewar(苹果战争)
  • 无根的草(九天)
  • kx1115(yy)
  • qiang(sadasd)
  • qcj(qcjq)
  • 52218812(20690873)
  • 原野(高)
  • michaellu(michael)
  • WING晟(晟)
  • flymin(fly 儿)
  • Apple-1128(apple)
  • Apple-515128(昵称12)
  • 393259065(爱在等待…)
  • sc00001(123456)
  • 84862258(メ路西斐爾シ)
  • darshan(darshan.zz)
  • ertry(,lll;llmm)
  • 1356560(232)
  • babygirl(love)
  • stella22(baby)
  • lbaliu(劉 Lets)[同时去掉了空格]
  • 刘晓芳(cqdjlxf)
  • 友吧啊(友吧)
  • xoogooo(丢丢~~茶)

附二:修改数据库一是体力活,二是细心活,出不得半点差错。改 dede 比较简单,直接在数据库里改,改 uc 比较费事,需要和 home 对照着在后台改,改完后 uc 会发送通知给 home 才算修改完成,有点延时(不少修改需要手动通知,在 uc 后台“首页”点击查看“未发送的通知数”,点击“未通知”即可向 home 发送通知)。庆幸老用户不多,一天就改完了。

星期日 小雨 8~19℃

UCH2.0 个人中心留言完成后手动跳转继续停留在当前页

默认的,留言完成后手动点击“进行的操作完成了”,会跳转到个人中心首页,不是停留在留言页。

space_wall.htm

原:

<input type="hidden" name="refer" value="space.php?uid=$space[uid]" />

改:

<input type="hidden" name="refer" value="space.php?uid=$space[uid]&do=wall" />


友吧今天

1、暂时关闭注册功能,将把所有老用户的“用户名”改为和“昵称”一致,重新开启注册功能后,使用昵称注册和登录。此举是为关闭“实名认证”以提高系统性能,同时也省去用户既注册用户名又注册昵称。为新版发布作准备。

2、完成个人中心“留言”页、“动态”页。