为phpMyAdmin加入HTTP验证

一般的免费空间只有一个FTP和MySQL数据库,却没有一个数据库管理的界面。为了以后观察数据库的方便,只好自己安装了一个phpMyAdmin。安装过程颇费周折。 Read the rest of this entry »

开始迁移域名

programmingnote.com这个域名要到期了,原先是在Lunarpages上连着空间一块买的,当时说是域名免费。不料后来Lunarpages改变策略,说域名只是免费使用一年,以后的费用还是要交,而且一年$9.99美元。现在域名要到期了,也不想把它放在Lunarpages上,有点贵,而且域名管理的功能也很不齐全。考虑到name.com的服务不错,而且价钱比较便宜(com域名一年$7.99),所以打算着手到域名迁移到name.com上。 Read the rest of this entry »

用限制游客的方法吸引用户注册并不可取

我承认这个标题的确有些长,但也找不到一个更加简单贴切的标题。起因是今天我通过Google进入到了一个论坛里,结果却显示“Sorry,您的身份为游客,查看全部内容:请登录或者注册”。 Read the rest of this entry »

升级到WordPress 2.8

很久没登录WordPress,今天一进后台就提示我2.8版出来了。其实升不升级对我来说意义不大,不过为了不让它总是提示我升级,我想还是听话一些比较好,反正也不是很麻烦。 Read the rest of this entry »

会写插件真爽

前一段时间flickr上不去了,当然我知道这不是flickr自己的问题,因为国外还能上去。正巧我的文章里的图片都是放在flickr里的,这么一来看我的文章的人就看不到文章里的图片了。不过我会写WordPress插件,想到我的服务器在美国,我当然可以利用这一优势让flickr上的图片在我的Blog上显示出来。 Read the rest of this entry »

抓网页的PHP Class

这两天时不时的鼓捣一下Google的账户验证机制,也就是传说中的AuthSub,产生了一个我觉得不错的副产品:Http_Fetch类。这是我从大量的重复代码中提出来的。 Read the rest of this entry »

用ab进行性能测试

ab是Apache服务器自己带的性能测试工具,用它可以对指定的URL进行模拟访问,然后生成一份有关访问效率的报表,从中可以大概看出网站在高压力情况下的表现。 Read the rest of this entry »

我为什么要回帖

现在有太多的内容都在向你灌输“回帖是一种美德”之类的话了,甚至都恨不得让你在论坛里看帖子时,先回帖再看。我真的无语了,这样的回帖除了制造信息垃圾还能制造出什么来? Read the rest of this entry »

Discuz新插件机制

Discuz新的制件机制已经开始进行开发体验了。和以前的相比,新的插件核心要好得多,起码不用动不动就改模板代码了。新版本的Discuz在模板里预留了很多的插件输出位置,这样用户在升级时就不用一个个修改原来的代码,再把插件重新安装一次。 Read the rest of this entry »

Discuz编辑器的一个Bug及解决方法

当在后台设置Discuz的默认编辑器模式为“所见即所得模式”时,在对某一楼帖子进行回复时(帖内左下方点回复),应该显示该发帖人的楼号和ID,如1# admin 这样的模式,但是却显示源码,且右侧源码框是没有勾选的。将源码框勾选后再取消,才会显示发帖人信息。如图:
dz_editor

这个Bug其实是由默认模板中的JavaScript引起的,原因在于没有对相应的情况进行正确的处理。因为涉及的代码不多,解决的方法也比较简单。

在Discuz的templates/default/post.htm文件中,找到openEditor函数(大约在814行附近),如下:

814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
function openEditor() {
	try {
	{if $action == 'reply' && !$message}
		if($('fastpostmessage') && $('fastpostmessage').value) {
			textobj.value = $('fastpostmessage').value;
			$('fastpostmessage').value = '';
		}
	{/if}
	{if $action == 'edit' || $action == 'reply' && $repquote}
		if(wysiwyg) {
			initialized = false;
			newEditor(1, bbcode2html(textobj.value));
		} else {
			newEditor(0);
		}
		setCaretAtEnd();
	{else}
		newEditor(wysiwyg);
		if(editbox) {
		{if ($action != 'edit' || !$attachments) && (!$swfupload || !$swfattachs)}
			editbox.className = 'autosave max';
		{else}
			editbox.className = 'autosave';
		{/if}
		}
	{/if}
	// ....
}

问题出在831行的newEditor(wysiwyg)上,并没有进行BBCode到HTML的转换,所以看到的仍然是BBCode的代码形式。把这一行改成下面五行就应该可以解决了:

if(wysiwyg) {
	newEditor(1, bbcode2html(textobj.value));
} else {
	newEditor(0, textobj.value);
}
setCaretAtEnd();

其中最后的setCaretAtEnd的作用是将光标定位到1# xxx这类的文字末尾,感谢kissmile的建议。

另外,以后我会挑选一些Discuz的Bug记在这里,一方面是为了我自己的记录,另一方面也是为了在新版本尚未发布时能给大家一个解决方案,避免等待新版本的无奈。