WordPress中用Ctrl+Enter提交留言

由于某些软件和论坛的缘故,很多时候冰古blog上写完留言回复后,都习惯性地按下Ctrl+Enter进行提交留言,但基本上是不成功的,很多blog程序都没有加入这样的快捷键

Discuz等论坛都可以使用快捷键提交发贴和发贴,但因为觉得它们的代码太麻烦,所以一直没有去查找该快捷键的方法。直到有次在百度知道回复时,按下Ctrl+Enter提交竟然成功了,才打开它的源代码查看了下。一看才知道,实现的方法很简单,只需几行javascript就能搞定了。那么我们也在WordPress加上这个快捷键吧:

一、打开模板中的comments.php文件,查找到下面的内容:

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" name="commentform">
<?php if ( $user_ID ) : ?>

如果你的form标签中没有name=”commentform”属性,那么请加上。
二、再往下拉一点,你可以看到类似的两行:

<p><textarea name="comment" id="comment" cols="55" rows="10" tabindex="4"></textarea></p>
<p><input type="submit" id="submit" tabindex="5" value="提交留言" /></p>

如果textarea标签上没有id属性,请按照上面的内容加上。如果在第二行中发现name=”submit”,将之删除。如果你发现还是不行,把id=”submit”改为id=”submitit”,这样肯定是可以了。
三、最后,在</form>的下面,添加下面的一段javascript代码后保存就行了。

<script type="text/javascript">
var commenttextarea = document.getElementById('comment');
commenttextarea.onKeyDown = quickSubmit(event);
function quickSubmit(event){
  if (event.ctrlKey && event.keyCode == 13){
    document.submitform.submit();
  }
}
</script>

貌似上面这句我搞错了document.submitform.submit();,顺便把代码兼容性弄好点,用上下面的代码,应该没问题了。

<script type="text/javascript">
var commenttextarea = document.getElementById('comment');
commenttextarea.onkeydown = function quickSubmit(e) {
  if (!e) var e = window.event;
  //alert(e.keyCode);
  if (e.ctrlKey && e.keyCode == 13){
    //alert('good');
    document.getElementById('commentform').submit();
  }
};
</script>

20090619新版本

<script type="text/javascript><!--//--><![CDATA[//><!--
    var commenttextarea = document.getElementById('comment');
    commenttextarea.onkeydown = function quickSubmit(e) {
        if (!e) var e = window.event;
        if (e.ctrlKey && e.keyCode == 13){
            document.getElementById('submit').click();
        }
    };
//--><!]]></script>

试试吧。

BTW:google换了favicon?google/谷歌 favicon

n种可代替NotePad++的软件

由于某些众所周知的原因,冰古像很多朋友那样,很坚决地把NotePad++从硬盘上删除掉。最近一段时间,频繁地去小众善用佳软找寻能代替它的软件。
于是这段时间,硬盘装了有10+种文本编辑软件:SciTE,PSPad,Intype,notepad2,MadEdit,EditPadLite……

这里列出的软件都很不错,完全可以代替++:
代码编辑器软件 - SciTE
SciTE免费开源,定制性极强。也因为这样,还是用别人配置好的方便,代码高亮,自动完成,提示函数中的参数……强!因为平时只是写写PHP小程序,所以这个是主力编辑器。
代码编辑器软件 - PsPad
PSPad是个免费的IDE,功能很齐全,代码高亮、支持UTF-8、集成FTP、中文界面等等,不过功能太多,用来做文本编辑器有点大材小用了,还是用来做HTML编辑器吧。
代码编辑器软件 - Intype
Intype是个免费的测试软件,功能略显单薄,但也有代码高亮、支持UTF-8等实用的功能,加上内置了多种颜色配置,让人很难抗拒,如果能加上自动完成功能,那就太完美了。
代码编辑器软件 - EditPadLite
notepad2EditPadLite打开大的文本文件的速度一流,用来代替windows内置的鸡肋notepad是绰绰有余的了。
代码编辑器软件 - MadEdit
MadEdit,怎么说呢,该有的功能齐全,代码高亮、中文界面、UTF-8支持、可以轻松改变代码高亮的颜色……或许只有她的图标不能打动我了。

取消feedburner的统计链接

刚才看到scavin留言冰古blogFeedBurner使用转向让他很郁闷。这个冰古也是留意到了,之前也数次登录到FeedBurner想取消掉,不果。这次是决心要把它搞定了,Google后没有找到正确的解决方法,翻feedburner里的帮助文档那些,终于在FeedBurener的Group里找到了相关的答案。

解决方法是这样的:
如下图,来到要修改的供稿种子的Analyze页,点击1对应的“Dare to be different?”,然后去掉2上的勾,最后保存即可。
取消feedburner的统计链接

很奇怪的是,这个Feed的选项竟然是在“Site Stats”(网站统计)里设置的。

红色警戒3快来了?

星际争霸2不断跳票中,另一款即时战略游戏——红色警戒3,也是悄悄接近我们(为什么说“悄悄地”呢?因为红警3在三个月前已经宣布正在开发了。 “It’s been about three months since we announced Red Alert 3”)。有人说在今年十月就能出炉,但看上去今年能玩上的可能性很低(“we have a lot to talk about over the next six months.”)。
好吧,先来看看预览图在说。

3D版的基洛夫空艇。毫无疑问,这又是一款硬件杀手。
红色警戒3.RedAlert3
Read More »

WordPress模板中的作者函数(Author tags)

除了最后两个函数,这些函数都需在The_Loop中使用,并没有相关的参数。

the_author 显示文章的作者

the_author_description 显示文章作者的描述(作者个人资料中的描述)

the_author_login 显示文章作者的登录名

the_author_firstname 显示文章作者的firstname(名)

the_author_lastname 显示文章作者的lastname(姓)

the_author_nickname 显示文章作者的昵称

the_author_ID 显示文章作者的ID号

the_author_email 显示文章作者的电子邮箱

the_author_url 显示文章作者的网站地址

the_author_link (添加于2.1版本) 显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。例如一个名叫冰古的作者,他的网站地址为http://bingu.net,则显示为冰古

the_author_icq (不推荐使用) 显示文章作者的icq

the_author_aim 显示文章作者的aim

the_author_yim 显示文章作者的yim

the_author_msn (不推荐使用) 显示文章作者的msn

the_author_posts 显示文章作者已发表文章的篇数

the_author_posts_link 显示一个链接到文章作者已发表文章列表的链接

list_authors (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下:

<?php list_authors(optioncount, exclude_admin, show_fullname, hide_empty, 'feed', 'feed_image'); ?>

参数:
optioncount:是否显示各作者已发表文章的篇数,可选值为:TRUE 和 FALSE(默认值)
exclude_admin:是否不列出管理员,可选值为:TRUE(默认值) 和 FALSE
show_fullname :是否显示各作者的全名,可选值为:TRUE 和 FALSE(默认值)
hide_empty:是否不显示发表文章数为0的作者,可选值为:TRUE(默认值) 和 FALSE
feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子
feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空
例如:

<?php list_authors(FALSE, FALSE, TRUE, FALSE); ?>

代表不显示各个作者的发布文章数,列出管理员,显示各作者的全名,显示发布文章数为0的作者和不显示RSS供稿种子。

wp_list_authors 显示blog作者列表,如果作者发表过文章,则他的名字将链接到他发表的文章列表中。可定义是否显示其他信息。
参数:
optioncount:是否显示各个作者发表文章数,可选值:true 和 false(默认值)
exclude_admin:是否不显示“admin”用户,可选值:true(默认值) 和 false
show_fullname:是否显示各个作者的全名,如果不显示,将显示昵称。可选值:true 和 false(默认值)
hide_empty:是否不显示发表文章数为0的作者,可选值:true(默认值) 和 false
feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子
feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空
例如:

<?php wp_list_authors('show_fullname=1&optioncount=1'); ?>

代表显示全名和显示各个作者的发表文章数,其他都为默认值。

用YUM升级CentOS系统中PHP和MySQL

用上umVPS后,很多时候在虚拟主机不用自己动手的事情都要自己搞定了,例如:PHP和MySQL的升级。因为不用自己动手,也动不了,所以冰古不太清楚虚拟主机的PHP和MySQL是不是会及时地更新。但用VPS,可以动手玩一下也保证安全,冰古是很乐意进行更新的。以下就是用YUM升级CentOS系统中PHP和MySQL的过程:

yum是CentOS系统自带的用于方便地添加/删除/更新RPM包的工具,它能自动解决包的倚赖性问题。
用yum更新PHP,只需用一条命令就可以搞定:

#yum update php

但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而当前的PHP版本只是5.2.1,PHP官方已经更新到5.2.6了。
经过一番询问,才知道原来CentOS系统的源里PHP仍旧是5.2.1,需要额外的源才能升级PHP。
根据外国网友的介绍,冰古添加了额外的源
登录SSH后依次运行下列命令:

#rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

#vi /etc/yum.repos.d/utterramblings.repo #文中这里是使用nano,但VPS不能启动nano,用vi代替也是可以的

在打开的文档中加入下面内容:

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

保存。
再次运行下面的命令就可以完成php的升级了

#yum update php

同理,运行下面命令,升级mysql

#yum update mysql

用PHP得到访问者的真实IP

在php中,通常我们用$_SERVER[‘REMOTE_ADDR’]得到访问者的ip。但当访问者使用了代理,它只能得到代理的ip。这时使用下面的函数就能得到访问者的真实ip:

function getRealIpAddr(){
  if (!empty($_SERVER['HTTP_CLIENT_IP'])){//check ip from share internet
    $ip=$_SERVER['HTTP_CLIENT_IP'];
  }
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){//to check ip is pass from proxy
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }else{
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

事实上这个函数也不是万能,众所周知,头信息是可以伪造的。

在不同的浏览器上测试你的网页设计

Browsershots是一个在线截屏网站,输入你的网址,她会为你对该网站进行截屏。这样的网站也不稀奇,过去冰古也介绍过。但该网站包含的服务可能让你感到惊奇,Linux,Windows,Mac OS和BSD平台下共达59种浏览器可选,并且你可以定制“屏幕大小”,“颜色深度”,“JavaScript的开启”,“Java的开启”和“Flash的开启”。更为BT的是,这个服务你甚至可以利用她的API在你的机上架设同样的服务。

bingu.net在seamonkey 2.0 ubuntu 8.04上:
seamonky 2.0 ubuntu 8.04
bingu.net在safari 3.1 macOS X10.4上:
safari 3.1 mac os x 10.4
bingu.net在navigator 9.0.0.5 windows 2000上:
navigator 9.0.0.5 windows 2000