星期六 晴 8~18℃
去医院(25) 骨伤科
- 独一味胶囊(3瓶)
- 通络开痹片(5盒)
友吧今天
完成嵌套:发起/编辑话题。
星期六 晴 8~18℃
去医院(25) 骨伤科
友吧今天
完成嵌套:发起/编辑话题。
星期五 晴 6~18℃
javascript 返回上一页不刷新的方法
onclick="history.go(-1);"
如果把“返回上一页”的事件写在 <form> 标签里,用户点击返回上一页修改时,会发现之前填写的数据被清空了。
解决办法是把“返回上一页”写在 <form> 标签的外面,如果考虑到对齐问题,可以用 position:absolute 定位来解决。
2012-7-24 更新
如果要把“返回上一页”写在 form 里,不要使用 input,例如可以用 <a> 链接。
友吧今天
完成嵌套:圈子创建、圈子设置、圈子成员管理、邀请好友加入圈子。
星期四 昨夜小雨,今天晴(天空看起来被雨洗得很干净) 8~16℃
UCH2.0 显示 ajax 对话框的“开关”,方便调试页面
在 header.htm 有一句:
<div id="ajaxwaitid"></div>
这个是显示 ajax 对话框的 div。
以“加入该群组”为例:
在网速正常时,点击“加入该群组”,会弹出一个 ajax 对话框,但是在网速慢的时候,会直接跳转到一个新的网页。
在本地调试时,因为不会有网速不正常的现象,但是为了调试“网速慢”时出现的情况,可以把 header.htm 里的这行代码删除,就相当于是“网速慢”的情形了。
UCH2.0 加入退出群组的 ajax hack
在 IE / FF / Opera 下都正常,唯独在 chrome 下不正常:
在“加入”或者“退出”群组时,需要点击两次,第一次点击出现 ajax 对话框,点击按钮后又会跳到一个新的页面,再次点击按钮才能完成。
目前没有解决这个 hack,可能其他一些页面弹出的 ajax 对话框在 chrome 下也会有不兼容的现象。
链接去掉虚框(虚线)
同事问起,找了两个方法:
单个链接:
<a href="#@" onfocus="this.blur();"><img src="" />test</a>
批量链接,除 FF 外,其他几个浏览器都兼容。
<style>
a { pickbar:expression(this.hideFocus=true) }
</style>
<a href="#@"><img src="" />test</a>
2010-12-3 更新,applewar 分享的方法,兼容 IE / FF / chrome / Opera:
a{outline:none;blr:expression(this.onFocus=this.blur());}
友吧今天
嵌套页面:创建圈子、圈子设置。
处理一些细节。
星期三 大雾(中午有点阳光) 9~16℃
UCH2.0 随便看看使用 ajaxget 方法随机刷新头像
刚开始直接用:
function reloadHead() {
ajaxget(‘network.php’, ‘headPics’);
}
没有成功,后来看 script_ajax.js,看到这一行:
var url = url + ‘&inajax=1&ajaxtarget=’ + showid;
于是试一下在地址后面加个参数:
function reloadHead() {
ajaxget(‘network.php?uid=0′, ‘headPics’);
}
可以了。
事实上只要在地址后加个“?”就可以,ajaxget 函数在变量 url 后面加了参数,如果不用“?”连接的话,就变成直接用“&”连接,地址就错误了。
举个例子
这样可以正常访问:
但是这样不行:
以下是 uch2.0 随便看看使用 ajaxget 方法随机刷新头像。
模板 network.htm
<!–{if !empty($_SGLOBAL[inajax])}–>
<!–{loop $spaceRandom $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}–>
<!–{else}–>
(把原来的所有代码放到这里面,再加上下面这段)
<div style="cursor:pointer" onmouseover="this.style.textDecoration=’underline’" onmouseout="this.style.textDecoration=’none’" onclick="reloadHead()">随机刷新</div>
<ul class="s_clear" id="headPics">
<!–{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}–>
</ul>
<script>
function reloadHead() {
ajaxget(‘network.php?uid=0′, ‘headPics’);
}
</script>
<!–{/if}–>
network.php 修改
在
//是否公开
if(empty($_SCONFIG['networkpublic'])) {
checklogin();//需要登录
}
下方增加:
$cachefile = S_ROOT.’./data/cache_index.txt’;
$cachetime = @filemtime($cachefile);
$spacelist = $spaceRandom = array();
//(页面加载时调用)每隔900秒更新一次缓存,避免每次加载页面都读取数据库
if($_SGLOBAL['timestamp'] – $cachetime > 900) {
$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");
while ($value = $_SGLOBAL['db']->fetch_array($query)) {
$spacelist[] = $value;
}
$spacelist = sarray_rand($spacelist, 15);
swritefile($cachefile, serialize($spacelist));
} else {
$spacelist = unserialize(sreadfile($cachefile));
}
//ajax随机刷新
$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");
while ($value = $_SGLOBAL['db']->fetch_array($query)) {
$spaceRandom[] = $value;
}
$spaceRandom = sarray_rand($spaceRandom, 15);
//实名
foreach ($spacelist as $key => $value) {
realname_set($value['uid'], $value['username'], $value['name'], $value['namestatus']);
}
foreach ($spaceRandom as $key => $value) {
realname_set($value['uid'], $value['username'], $value['name'], $value['namestatus']);
}
realname_get();
UCH2.0 是通过 style.css 来判断站点模板
昨天把模板目录下原始的 style.css 移走(不需要了),今天发现在后台站点设置的“站点模板”里缺少了新增的模板,于是想到可能是这个 style.css 的原因。在模板目录下新建一个 .txt 文件,更名为 style.css,刷新试试,果然是这个原因。
大雾
昨晚十点左右发现外面好大雾,大概当时的能见度不足 200 米。早上起来雾还未散,不过比不上昨晚看到的阵势。到公司后看到新闻《大雾突袭浙江 高速、航空交通“瘫痪”》,下面是新闻中的一段描述:
晚上10点30分,在从高速彭埠入口赶回城里的途中,坐在副驾驶室的记者也亲身体验到了大雾的“杀伤性”,透过前挡风玻璃,最多只能看到大约三四米距离的车辆和物体,若遇到前方路灯不够明亮的地方,车子就有如被大雾“吃”了一样,整个埋没进去。
到下班仍然未散。
友吧今天
1、网站首页嵌套完成。
2、完成零碎页面:信息提示页、登录页、注册页。
星期二 小雨转阴 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"
现学现卖: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 知识,此前遇到的技术问题也解决了。
星期日 阴 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"> </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、嵌套“设置和管理”:个人资料、密码修改、我的头像、我的经验、隐私设置、动态屏蔽。