常用扩展方法收集&整理(置顶-不断更新)

470 views 十一月 14, 09 by Timothy

扩展方法,是.NET 3.5中引入的新特性,在《扩展方法使用小结中》,我有具体的介绍。合理的使用扩展方法,能节约不少的代码量,甚至能在开发中给我们带来意想不到的效果,让代码更加的简洁、易懂。其实,网上早就有了不少的大牛写的各种出色的扩展方法,以至于我有了整理一个扩展方法库的想法,把一些实用、优秀的扩展方法收集起来,一来为资源共享,二来也是为了应用在以后的项目代码中,提高开发效率。 Read the rest of this entry »

Blog评论功能再次改进

134 views 二月 04, 10 by Timothy

自从实现了Ajax的评论后,俺还是对评论部分有点不太满意,于是又开始拿评论开刀了。

1.首先想到的,是评论没有分页显示的功能,如果评论数量太多,会把页面拖得很长,在google搜索了一下,原来WordPress原生已经支持评论分页的功能了,所以一不做二不休,继续改动。
其实改动很简单,打开模板的comments.php,在类似wp_list_comments();列出评论的代码后面,加入下面的代码即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
	// 如果用户在后台选择要显示评论分页
	if (get_option('page_comments'))
	{
		// 获取评论分页的 HTML
		$comment_pages = paginate_comments_links('echo=0');
		// 如果评论分页的 HTML 不为空, 显示导航式分页
		if ($comment_pages)
		{
?>
 
<div id="commentnavi">
		<?php echo $comment_pages; ?></div>
 
 
<?php
		}
	}
?>

2. 实现Enter+Ctrl快捷回复,这个比较简单,用jQuery实现,正好这两天也在学jQuery,就当练练手吧。为了增加代码可读性,方便以后维护,将这部分自定义的jQuery代码放在单独的js文件中:timothy.js

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function(){
 
    //Ctrl+Enter for fast submit
    $("#comment").keydown(
    	function(event){
        	if(event.ctrlKey && event.keyCode == 13)
        	{
            		$("#submit").click();
        	}
    	});
});

代码比较简单,检测评论框的keydown时间,并判断是否同时按下了Ctrl键和Enter键,如果条件成立,则直接出发提交按钮的点击事件。将此部分js代码上传,并在header.php引入此脚本文件,效果立马就有了。这下同学们可以通过Ctrl+Enter快捷提交评论了。不过后来发现一个问题,这种用Ctrl+Enter快捷提交的评论,不会触发Ajax评论的效果,后来仔细找了找原因,发现Ajax评论的jQuery脚本中,并没有绑定提交按钮的点击事件,而是绑定的整个Form的submit事件,所以把刚才的脚本小小修改一下即可:

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function(){
 
    //Ctrl+Enter for fast submit
    $("#comment").keydown(
    	function(event){
        	if(event.ctrlKey && event.keyCode == 13)
        	{
            		$("#commentform").submit();
        	}
    	});
});

这下就搞定了,支持Ctrl+Enter提交的Ajax评论,呵呵。

3.这个修改源自Zww同学的提议,在每条评论中增加”回复”按钮,原以为我的皮肤不支持嵌套评论的,尝试着在WordPress的设置项中,把嵌套评论给Enable了,这样的话,每条评论就自动有了个回复按钮。接下来,想实现点击回复的时候,自动把评论的同学的名字填入到评论框中,也就是类似 @XXX: 的形式。大体思路是通过jQuery来实现,绑定这些回复按钮的click事件,获取评论的同学的名称,设置到评论框中。其实Zww同学早就实现了这样的功能(前去围观),所以jQuery也可以偷师过来了:

?View Code JAVASCRIPT
1
2
3
4
5
    $(".reply").click(
	function(){
		var name = $(this).prevAll().find("cite:first").text();
		$("#comment").text("@"+name+":").focus();
	});

同样,放在$(document).ready里面即可。这次改动,俺意外的发现,原来我的皮肤支持嵌套评论……或许是加入了Ajax评论组件的原因,嘿嘿。

此文很菜,没啥技术含量, 算是学习jQuery的一点心得吧,前路茫茫,吾将继续折腾下去……

Blog再次改动–启用Ajax评论

158 views 二月 01, 10 by Timothy

我用的这个皮肤有点旧,很多东西都不支持,但是又舍不得换掉,于是留下了折腾的余地,生命在于折腾嘛。看着Zww同学和久酷同学的Blog,都支持Ajax无页面刷新评论,心里也痒痒的。好像WordPress最新的版本,已经支持Ajax评论了,但是又不知道怎么搞。在Google网上一阵乱搜,找到个不错的解决办法,一个老外同学的一篇文章,照着一步一步改下来,还真实现了,除心里一阵狂喜之外,心里还小有成就感……其实网页也是我的弱项,接下来需要一边学jQuery,一边在现有的皮肤上动刀,再美化美化,呵呵。
最后,推荐下老外同学的添加Ajax评论的文章:
http://zeo.unic.net.my/wordpress-ajax-commenting-revisited/

=========================威武的分割线=====================

updated: 2010.02.03

上面的文章较老,后来发现添加Ajax后,有bug,于是按照Zww同学推荐的方法,找到另一篇指导文章,捣鼓了半天, 总算搞定了。脚本中由于需要访问一些元素,但是由于我的皮肤本身不支持嵌套评论,所以也把.js脚本小改了一下,屏蔽掉部分东西。这篇文章非常不错,强烈推荐下:

http://willin.heliohost.org/?p=1271

Blog小规模改动

213 views 一月 31, 10 by Timothy

今天闲来没事,把Blog的边栏又改了一下,去掉了那个很长的Archives,从04年到现在的文章归档列表,太占空间了,灭掉!另外一个变化较大的地方,是以前的唠叨,一直用的腾讯的滔滔,没办法,国内很多微博都被停掉了。不过最近消息,腾讯也要把taotao和谐掉,当初用这个只是为了方便,腾讯滔滔其实算不上是个名副其实的微博,功能上限制太多,竟然还不能用手机浏览器的方式发表,只能算个怪胎。昨晚在Zww同学的博客看到文章,用php脚本的方式,把twitter的内容给“抓”过来。突然感觉茅塞顿开,以前一直想用js实现抓twitter的内容到自己blog,无奈js是客户端浏览器运行的,国内的用户访问不了twitter,又怎样能把twitter上发的推抓过来呢?如果用php,脚本是在服务端运行,那就不一样了,何况我的空间也本来就在墙外,呵呵,于是去wordpress的老家找了找,果然有twitter的插件,php的,Twitter Tools,这下可好了,毫不犹豫的把腾讯滔滔淘干掉,直接用上twitter才是正道!
Twitter Tools考虑的还挺周到,装上启用后,插件的后台管理页面,会给你提供一个发推的页面,其实我经常用的Firefox的TwitterBar插件,也挺不错,在此向各位同学推荐下。

一个不错的Firefox Add-ons: AutoProxy

276 views 一月 29, 10 by Timothy

不知道大家平时是用什么方式访问那些“不知道什么原因,突然就不能访问的”网站,其实最常用的,也是最简单的方式,就是通过VPN。网上有不少的免费VPN方式的客户端软件,比如Hotspot Shield,和theFreeVPN。自从Hotspot Shield挂了后,我就一直用的theFreeVPN,需要在你的机器单独安装客户端软件,并且要安装相关驱动,所以为了系统的干净,我一直在Win7的XP Mode下面用。这样也有很多不方便的地方,每次要访问那些“不知道什么原因,突然就不能访问的”网站,都要先启动虚拟机,然后再打开theFreeVPN,比较麻烦。最近theFreeVPN也开始收费,尽管免费的服务器也可以连接,不过也不稳定,还有随时掉线的情况。除了免费的VPN,也有收费的VPN,可以在万能的淘宝购买。某日,在一篇不知道某位大虾写的文章中,我知道了有AutoProxy这个东东,装在Firefox上,感觉这是个很有创意的插件,它能帮你自动切换是否需要用代理来访问某些站点,并且订阅的站点列表可以随时在线更新,你也可以通过设置插件,让所有的网站访问请求,都从代理服务器出去。假设你已经有了一个代理通道,暴露的代理端口是本机的端口,通过AutoProxy的设置,就能轻松的实现通过代理去访问网站了。

下面先介绍下AutoProxy的简单设置方法,在上面的AutoProxy连接,安装好插件后,你会发现Firefox上的状态栏,或者工具栏,会有下面的图标:

4

点击图标的弹出菜单,就会打开AutoProxy的主界面。

5

打开Edit ProxyServer,来到代理入口的管理界面,这里可以编辑、增加、删除代理入口,代理入口怎么来的呢?文章的后面我会介绍。

6

来到选择代理服务器入口的界面,把默认的代理服务器,设置为你刚才添加好的代理入口的名称。

7

到此为止,AutoProxy的设置,就完了。

其实关键的地方,还在后面,怎样建立代理入口呢?网上的方法很多的,首先推荐一个最近我发现的不错的软件:GTunnel。有了GTunnel,你就可以通过常用的方式,来建立自己的代理隧道,支持的方式有:Skype,GTalk Account,Tor。只要你有其中的一个帐号,就可以通过此软件,建立好代理隧道,比如下图中,隧道代理的入口地址,就是127.0.0.1:8081,还记得上面AutoProxy的那个地址管理界面吗?去AutoProxy设置好代理隧道的地址和端口,并把此代理设置为默认代理,就大功告成了,通过Firefox就能访问那些“不知道什么原因,突然就不能访问的”网站,并且速度还相当不错。我用我的GTalk Account,建立连接后,访问站点速度都令人满意,只是目前唯一让人不太满意的是GTunnel会在连接计时达到半个小时的时候,提示你是普通用户,已经达到使用限制,程序会自动退出。重新打开后,才可以继续使用。

1

还有个软件,值得推荐,也是我现在用的方法,SSH Account+MyEnTunnel+Firefox+AutoProxy。道理是一样的,只是替换了建立隧道代理的那部分,通过MyEnTunnel,你可以利用你的SSH帐号,建立一个加密的隧道代理,并且暴露出端口类似127.0.0.1:1080(端口可以自己设定)。把这个地址,同样的方法,加入到AutoProxy,就可以了。前提是你需要一个SSH帐号。(SSH帐号,其实就是一个Unix/Linux的可登陆的帐号,SSH只是一种远程加密访问的方式),国外有些网站可以免费申请到,或者追求速度和稳定的同学,可以去万能的淘宝购买。
另外,还有其他的软件,网上评价也不错,比如Puff

其实平时上网,也主要就是通过代理看一些网站,其他的用处还不大,所以感觉用代理的方式,比VPN要轻量级一些。如果你是为了游戏,那绝对推荐VPN了。自从用上了SSH Account+MyEnTunnel+Firefox+AutoProxy,从此惬意多了,那些“不知道什么原因,突然就不能访问的”网站,不知道为什么,突然就可以访问了,挖哈哈~~强烈推荐大家使用。

最近二三事

122 views 一月 24, 10 by Timothy

博客快一周没更新了,上来说说最近的二三事。

【关键词】头疼
从元旦开始,就感到头有莫名的疼痛,一直没当回事。只是有天老妈看到了我的qq签名,打电话问我怎么回事,我只是说头疼,没什么大不了。老妈却异常紧张,还惊动了我老爸。后来接到老爸的电话,口气很严厉,问我头疼为啥不去医院检查检查。其实他们这样担心是有原因的,因为老爸单位上的同事的女儿,也是我从小到大的邻居,前段时间得了脑瘤,所以在老爸的强烈要求下,我拿起电话拨了114,预约了省医院的号。到检查的那天,很早来到了医院,医生把我仔细检查了一翻,最后的结论:没问题。晕……本来以为还要照个CT之类的,结果医生说:你没问题,估计是平时休息不好,导致头疼。想了想,也对,可能是平时小孩半夜吵闹,晚上休息不好。老婆得知此事,晚上坚决不许我超过11点睡觉,并且还不许我碰电脑,杯具了……不过经过这几天的休息,明细感觉头疼得到了缓解。看来,平时还是应该多注意身体。

【关键词】卖卡
由于我换了新的手机号,自己以前的138的手机号,一直搁置在那里,由于之前参加了移动的存XX送XX的活动,被迫签下了霸王条款,09年年底之前,不能办理过户、销户的业务,所以多交了几个月的月租。终于迎来了2010年,可以把那卡给销户了。无意中看到第四城的交易区,竟然也有人在转让移动的不限流量GPRS的卡号,我自己138的那卡,也有这种套餐,这种套餐现在只能取消,不能新增订阅,所以这类套餐的卡,在网上也比较抢手。所以,在交易区发了个交易的帖子,报价450。本来没太在意有人来买,结果当天就有同学打电话来,要买我的卡,一翻讨价还价之后,以400元成交。额……为了小女的奶粉钱,老爸也过了一把号贩子的瘾。

【关键词】生日
今天是我的生日,27了。一大早,还在床上躺着,就收到了移动的短信,说今天是你生日,拨打一切网内的号码免费,看来不太厚道的移动,在一年当中,也难得有厚道的一天。27了,想想刚毕业那年,就好像昨天的事,一转眼,已经5年了。离30不远了,希望在30之前,我能找到自己的定位。

cake