很早就知道True Blue
这个K2 style了,设计得的确非常好看。5月份初识,推荐给了几个朋友,自己却一直没用。现在,K2 0.9已经发布了,True Blue也随之更新到1.3.3,也变得越来越漂亮了。所以,今天开始换用True Blue style,并把我自己的CSS文件整合进去。
K2模版本身有个style.css文件,里面放着K2自己的CSS。用户是挑剔的,谁不想自己的K2看起来更与众不同呢?所以,很多人会修改K2的style.css文件。为了免去用户升级K2时重新修改style.css文件之苦,K2设置了style功能,允许用户把自己的CSS代码写入一个CSS文件放入K2的style目录里,并在后台提供了选项,可以很方便的选择当前使用哪个CSS文件,此为"style"。 我以前就是自己写一个style自己用的,不过有很多人做了很漂亮的style放在网上供大家使用,比如这个True Blue。但是,我们也不想受限于这个style,还想在它的基础上再加上自己的CSS代码,该怎么办呢?True Blue本身提供了一个可定制的办法,就是在主文件里import一个custom.css文件。只要把自己的CSS写到这个custom.css文件里,访问者在访问Blog时在读取K2的CSS和True Blue的CSS之后,也会读取custom.css文件里我们定制的CSS代码。当升级True Blue的时候,只要不覆盖网站上的custom.css文件就可以了。不过import是在文件开头import的,所以只能添加CSS,要是想覆盖就必须加important。我想修改一下,让custom.css在主CSS之后载入。
Update:查了一下,@import语句载入的CSS文件是在原CSS之后处理的。True Blue里也是在core.css之后import custom.css的。具体的问题是CSS的匹配问题,True Blue的CSS里用了#page #primary .entry-content,而我的CSS里学着K2用了#primary .hentry .entry-content。虽然我的CSS后解析,但是前者的匹配度更高,所以前者生效,覆盖了后者。
True Blue还提供了对IE的支持,不仅修正了在IE下的显示效果,还把所有图片文件都备了两份,一份给Firefox和Opera等非IE浏览器用的有透明背景的PNG文件,一份给IE用的jpeg和gif文件,这样就不会象原版K2那样,在IE下小图标的透明部分显示成灰色了。另外,作者steveo还提供了各个图片文件的psd原文件,使用者可以自行用PhotoShop修改。psd文件做的非常好,在PS里直接把相应地方的文字修改成自己的,颜色和特效都不会变,真的是很方便。看看页面上方的标题图片,只用了半分钟就改好了哦。修改完保存成PNG文件,覆盖原来的文件就可以了,有些则是对应IE下显示效果的,存成jpeg文件覆盖即可。
具体的效果看我的Blog就知道了,也可以去看看True Blue Screenshots。如果你想用它的话,记得True Blue只是一个style,它要在K2模版下才能工作哦。steveo这个人好像很厉害耶,《true blue updated for k2 0.9》一文中第一个评论者是matt,这个名字好熟啊,难道是WordPress的开发者之一Matt Mullenweg?还有K2在页面下面显示当前style的那段代码也是steveo提供的,以前在K2的设置页面还有"(code by steveo)"这样的字样,不过最近给去掉了。
Update:照着花儿开了的CSS,加了这么一段:
::-moz-selection{
background: #c8c8c8;
}
::selection {
background: #c8c8c8;
}
这样就可以用background和color定义选中后文字的效果了。前一个应该是Mozilla和Firefox特有的,后面的应该是CSS标准里的,Opera应该支持。不过我的IE6 SP1不支持这个效果,不知道IE7行不行。(Update:::-moz-selection时Mozilla和Firefox浏览器特有的CSS属性,::selection是CSS3里定义的,目前Firefox、Opera和IE都不支持,只有Safari和Konqueror浏览器提供了支持。[via])如果想要背景色透明还可以用transparent。
Update2:transparent的效果就好像选中和没选一样,我想到一个好用处就是用来防止copy,某些笨一点的,看到复制不上,应该就不会再动copy的主意。另外今天还发现这儿还可以填background-color:Highlight;color:HighlightText,效果可以参考这个页面。
今天看到又有人困扰于数据库备份的问题。WordPress Database Backup插件设计上没有考虑非英语用户,导致IE浏览器的用户在使用WordPress中文包后无法正常备份。
2个多月前已经写过一篇文章《Wordpress中文包导致数据库备份插件出错》详细说明了这个问题。给出的解决办法是不要自行备份,而是配合WP-Cron插件进行自动备份。今天看到还是有人困扰于此,毕竟用IE浏览器和以IE为核心的浏览器(比如Maxthon)的人非常多,再加上我的PHP水平也比两个月前高了那么一点点,就去仔细看了下wp-db-backup.php文件。改了一下,到IE里测试了一下,解决了
修改方法为,在backup_fragment()函数开头加上一句:
header( 'Content-Type: text/html; charset=utf-8' );
您可以自行修改,不过要注意这个文件的格式是UNIX的,记事本编辑不了。也可以下载我改好的:wp-db-backup.txt
注意:我是在WordPress 2.0.4自带的WordPress Database Backup插件的基础上修改的。做为WP自带的插件,WordPress开发组也会对其进行安全修正,所以不同WP版本带的文件会有一些差别,但是兼容性上应该没问题,推荐使用最新的2.0.4自带的。
在下载地址上点击右键->另存为,把文件下载到电脑上。下载后,要么将扩展名改成php然后上传覆盖,要么上传后,先删除原来的文件再把这个文件的扩展名修改为php。注意扩展名php是小写,不要弄两个同名文件一个扩展名大写一个扩展名小写在服务器上,linux可不象Windows那样不区分大小写。我用UEStudio删除了所有行尾空白字符,所以文件变小了一点。
效果如图:

Update:看到这篇文章提到一些解决办法,包括:用IE 7.0;用Firefox或者Opera;临时修改wp-config.php文件;使用英文版。IE7没用过,或许IE7修正了bug,在默认的情况下使用UTF-8解码,又或许是因为现在的IE7还在测试,默认使用ASCII方式解码。
Update:我只改动了一行,但是WordPress 2.0.4自带的这个插件还有一个问题,在我的《WordPress 2.0.4中WordPress Database Backup插件的定时备份功能失效》有详细的描述。如果需要在WordPress 2.0.4下使用自动备份功能的朋友请自行修改。我这里就不再改了,因为那个问题不是个bug,而是WordPress开发组加的语句,因为安全问题还没有查清楚。所以,按照那篇文章里的方法进行修改是有风险的。还是等WordPress开发组发布新的版本以彻底解决了这个问题吧。
on 2006.8.15
归类于 网络服务
1,727字
好久没上Google Sitemaps看看了。今天过去看了一下,Google Sitemaps的界面又变了。摘要那儿显示的信息更全了,各项信息一目了然,包括上次Googlebot访问的时间;Sitemap的个数,有无错误;每类访问错误的名称,错误个数。
在“网络抓取”里,可以看到分门别类的出错信息。
- “HTTP错误”有33个,日期全部是8月3日,错误信息是找不到域名,这是因为当时给域名换了DNS服务器,参见我8月3日的文章《解决了DNS解析的问题》。
- “无法访问的网址”则是因为网络连接不正常而导致。
- “未找到”里都是找不到页面,返回404的。如果你删除了文章或者给文章换了缩略名,都会导致原来的页面404。我还看到了两个奇怪的链接:"http://yskin.net/%E6%A1%91%E6%A4%B9","http://yskin.net/K2%20Navigation%20System",这是因为我加链接的时候不小心犯了错误。我写Blog时习惯使用可视化编辑器,然后点击html按钮直接编辑html代码。加链接的时候我用Firefox里的BBCode扩展,先把链接的名称复制上去,再将链接的地址copy到剪贴板,选中链接名称,右键,Make Selection URL from clipboard,这样链接的代码就会被加上了。这两个错误显然是因为复制链接地址时没复制上,剪贴板里还是原来的链接名称。直接进数据库,把两处错误搜出来,改正。
- “没有附带网址”不太清楚,我这里显示为0,或许是指<a>标签里href部分错误?
- “网址受 robots.txt 限制”就是Google知道这个网址存在,不过由于网站的robots.txt文件限制不能把他们加入索引数据库。这里可以检查robots.txt工作是否正常,该限制的地址是否被限制住了,不该限制的地址是否有被错误限制的。
- “网址超时”好理解,就是time out嘛,访问超时了,我这里是0。如果有超时的情况发生,可能是你的服务器的网页执行速度或者网络访问速度太慢咯。
以前的Google Sitemaps可以让错误按照时间顺序排序,在上一次改版中这个功能取消了,而这一次改版则增加了显示某段时间的错误信息的功能。这样也不错,选择一次就对所有的分类生效,不用再象以前那样换一个分类又要选按时间排序。如果隔上几天就进Google Sitemaps里看一下的话,可以让他只显示这几天的错误信息,很方便。
“robots.txt 分析”页面可以显示出Google当前cache的你的网站的robots.txt文件。你可以在里面进行测试,修改上面的robots.txt文件,再在下面添上你要测试的网址,点“拼写检查”(汗一个,这是怎么翻的啊),就会显示出每个网址被允许还是被禁止,被禁止的理由又是什么。
“管理网站验证”和“首选域”都是新加上去的,最初通过了网站验证的话现在就不用管第一项了,“首选域”则是指如果你有"yskin.net"和"www.yskin.net"两个域名,访问他们是等价的,那么指示Google索引以哪个域名为主。
“统计信息”中:
- “查询统计信息”可以显示通过Google搜索进入你的Blog的热门关键词。
- “抓取统计信息”可以显示网站中PageRank的分布。我以前只有“低”和“未分配”两项,现在终于有了“中”了。刚刚发现《Wordpress中文包导致数据库备份插件出错》有5点PR值,也许是因为太多人遇到过这个问题吧。下面是“您 PageRank 最高的网页”,6,7,8月份都显示的是《Wordpress中文包》,好奇怪,查这个页面的PR值只有3啊。
- “网页分析”页面可以显示网页的类型(比如text/html)、编码(比如UTF-8)、以及“在您网站内容中”和“在指向您网站的外部链接中”的常用字词。
- “索引统计信息”则是指向Google对你的网站的各类查询的链接,有网站的索引网页、链接网页、相似网页以及缓存。
我觉得Google Sitemaps对于Google的收录没多大作用,反而是Dagon Design Sitemap Generator插件更有用点。不过这里可以显示出Google收录的状况,经常过来看一下还是不错的。
刚换了新的K2,从旧版K2 r406直接跳到新版K2 r123。
突然想起懶懶喵早在4月就发布的Ajax Comments-Reply V1.0
。老早就想在K2上也实现这个功能,可是一直懒,今天去下载了她的代码看了一下,照着她的代码改了K2的comment.php文件。
9点到现在,升级K2只花了半个小时,只要修改几个文件,再有K2换了一些class名称,在我的CSS里替换了一下。剩下的两个小时,专心致志的调代码。懶懶喵写的代码有点看不懂,也没有个注释;我对PHP也不太了解,去恶补了一下$GLOBALS数组的知识;我的服务器又关闭了错误信息显示,唉,真是痛苦啊。改到现在终于改成了,脖子好酸。懶懶喵的插件是基于WordPress默认模版的,K2和默认模版的差异太大,很多地方都不一样。改到现在,基本已经能正常分级显示留言,在CSS里修改了下,让第二层评论往右20px,现在看起来像模像样了。PHP和C的差别还是满大的,PHP外面定义的变量在函数里无效,这一点和C不同。具体效果可以看这篇文章。
其他的我就实现不了了,现在只能自己到数据库里修改每条评论的上级评论ID,从而实现分级显示评论的功能。我看到程序里代码并没有考虑上级评论ID有错的情况,比如指向了属于其他文章的ID。所以改数据库的时候要很小心,改错了这条评论就显示不出来了。我的水平也只能修改到此了,发表评论是选择加到哪个评论下的功能,我恐怕做不来,那要大改K2的AJAX comment部分。两种选择,一个是让懶懶喵帮忙改;一个是让K2开发组改。当然最好是让K2开发组做修改,这样就不怕K2升级后功能实效了,况且懶懶喵也满懒的,嘻嘻。
好了,就这样了,先放在这儿。K2最近刚发布了0.9版,以前一天升级近10次,现在终于缓了下来。让他们先休息下吧,等闲的时候报上去,让他们改去,嘿嘿。
on 2006.8.14
归类于 PHP
1,936字
今天听wp群里有人介绍PhpProxy,去找了一下,找到一个软件PhpProxy 2.1,还找到http://www.phpproxy.com/这个网站。
PhpProxy 2.1是中国人写的,上传文件到服务器上打开页面,可以看到一个输入URL地址的框。输入地址按确定,将会显示这个URL的页面。程序的原理也满简单,通过HTTP访问类使用fsockopen函数访问目标URL,然后处理一下得到的html代码,将其中的各个链接加上前缀,以便让浏览器仍然通过PhpProxy访问各个图片和CSS,js文件。他还可以支持https,这样就不怕关键词屏蔽了。我安装上去后访问了一下www.blogger.com,页面很快显示出来了,说明厦门那边没有屏蔽Blogger.com。不过是界面是英文的,输入用户名和密码后回车发现没反应,仔细一看才发现,登陆的按钮没了,哈哈。
http://www.phpproxy.com/网站用的是另一个同类软件,只不过可选择的项更多些。
这类程序一般都加密了URL,可以躲过URL检测。如果再开https,那么就无所不能了。当然,你的服务器必须在国外,国内一样没用。这类程序比较适合浏览文本页面,比如一些新闻网站,其他方面恐怕就不行了。另外还要注意,虽然程序名里也包含proxy这个词,可是和浏览器用的HTTP代理,socks代理可不是同一个东西。
那个人之所以提到这个东西是因为他说Tor不安全,“有间谍”。Tor每个连接都要经过3个地方,而由最后的连接点访问目标网站。如果这个点在做嗅探的话,确实可以截获密码。可是现在除了Tor,我没别的办法访问Blogger.com,只能将就着用。最好的办法还是由服务器端提供https链接,比如gmail的登陆时就是用的https。
Update:看了Dre.J的《给用Tor的朋友提个醒》,又仔细想了想Tor的问题。Tor每个连接要经过3个点,这三个点的选择方式我不知道,不过我经常用Vidalia看network map,好像大多数连接都是连到国外的,仅有一次是先连到北京,再连到广州的。而且在有访问请求时Tor会维持3条以上的连接,Tor肯定会依次询问各条连接是否能访问到目标服务器,如果能访问到则一直用这条线路访问目标服务器。所以我觉得即使一条连接经过3个点后仍然在国内,然后受GFW影响,也不会造成影响。Tor开发出来就是为了能够突破访问的,各个细节方面都考虑的非常到位,比如访问要求使用socks4a协议,Tor不会一根绳子上吊死,如果一条连接不能访问的话,它会自动切换到其他连接访问的。就算一条连接返回了无法访问或者返回404,它也会继续尝试其他连接,即使所有连接都返回无法访问,它也会新建连接继续请求访问直到超时的。另外还有节点会记录访问记录的问题。成为Tor服务器必须提交申请获得通过才行的,作为Tor服务器,当然会知道某个IP通过本服务器访问了哪个URL。如果有人恶意记录下来这些信息的话,确实会有点问题。不过,只要你不访问FLG的站点,只是访问个blogger.com或者VOA,应该不至于被关起来吧。再有就是,Tor每个连接要经过3个节点,我不清楚这个通讯是怎么进行的。Tor的访问无疑是这样的:比如一条连接上依次是美国节点A,欧洲节点B,日本节点C。访问一个URL,本机将访问请求提交给A,A再提交给B,B再提交给C,C访问目标URL得到html代码再依次返回回来。我的想法是这样的:正如上面所说,Tor对细节考虑的很充分,Tor的图标就是洋葱onion,他形容自己的访问象洋葱一样要一层一层拨开。访问请求提交给A的时候,A自然知道本机的IP和目标URL,但是A在通知B 的时候,应该只会告诉他目标URL,并不会告诉他本机的IP。然后A自身做一个记录,哪个IP请求的这个URL,以便返回的时候知道该返回给谁。同样B也只告诉C目标URL,不告诉它本机和A的IP。最后返回的时候,C返回给B得到的数据,并告诉它数据是直接访问得到的;B返回给A数据,并告诉A数据是从C得到的。A返回给本机数据,并告诉本机数据是从B和C得到的。最后本机知道A,B,C的存在,知道链路的具体情况,但是A,B,C只知道后面链路的情况,比如A知道所有,B知道A和C,不知道本机,C只知道B。这样3层的连接过去,C和目标URL根本不可能知道本机的具体情况,这才是Tor每条连接要经过3点的原因。
综上所述,我觉得“Tor服务器会记录每个IP的访问记录”并不准确,现在有Vidalia,看network map很方便,最好经常看一下,保证第一个连接点也就是上面所说的A不在国内就好了。
写了这么多,应该给本文加个"Tor"的标签了,呵呵。
on 2006.8.14
归类于 网络服务
2,761字
刚才去Bloglines看了下。很久没有进Bloglines了,当时换用了GreatNews,后来又开始用抓虾。我还是比较懒的,虽然订的feed也就10多个,但是还是懒的看。GreatNews可以绿色化,装到U盘里就可以带着到处跑,不过他是使用SQLite数据库的,一更新就要重写数据文件,U盘狂闪,有点怕把我的U盘给搞坏咯。抓虾呢,还算不错,虽然他默认的CSS把分段<p>的上下距离都设为0了,看起来很不舒服,不过我们用的是Firefox嘛,很容易搞定。少了Bloglines的快捷键,多了只显示标题的功能,看一些新闻feed时,按下只显示标题,有感兴趣的按下标题右边的空白就可以单独展开这一项,非常的方便。只显示标题时,一页10个标题正好一屏幕,从上到下浏览一遍,点一下下一页就可以了,如果一直没有感兴趣的,鼠标可以一直停在下一页的按钮上。
继续阅读《FeedBurner订阅数统计的问题》
on 2006.8.12
归类于 网络服务
3,064字
我上网的线路应该是深圳电信,123cha查到的结果是“您的ip:[219.134.63.61] 来自: 广东省 深圳市 电信”。我从2005年10月就开始在blogger.com上写Blog,当时基本上每天都要上blogger.com网站,一直到2006年4月1日,我完成了所有文章和评论向WordPress的迁移,在blogger.com上发表了最后一篇文章告知大家访问新Blog。从最开始我就不能直接访问blogger.com,而且利用普通国外代理服务器也没法访问,感觉是典型的关键词屏蔽。每天通过Tor访问blogger.com的同时,我也会隔上两个小时就直接访问blogger.com看一下,期待着能在解封的时候及时的得到消息。我还记得当时虽然文章发布到了sitesled.com,访问者可以直接访问了,但是发布评论仍然是要连接到blogger.com网站上发,导致不会用Tor的访问者无法发布评论,所以有人写了一段发布评论的代码,只要粘贴到模版里,替换原来的代码,访问者就可以直接在页面上写评论,而不用连接到blogger.com网站了。网络上可以看到很多文章都谈到“blogger.com被封”的事情,所以“blogger.com被GFW关键词屏蔽,必须使用Tor才能登陆;blogspot.com也被屏蔽了,不过可以通过普通国外代理访问”在我的眼里就是一条网络基本常识。一直到现在,我都对此深信不疑。
继续阅读《blogger.com到底封了没?》
on 2006.8.10
归类于 网页设计
5,247字
很久很久以前(大概2005年10月~2006年3月),当时在blogger.com写Blog。当时blogger.com有中文界面,对中文用户也算是比较关心了,不过blogger.com的所有模版里都有一个问题,那就是<title>标签被放在<meta>标签前面。当title为中文的时(比如Blog名为中文或者文章标题为中文),在IE下会出现显示空白页的问题。昨天Dre·J在群里又问到这个问题,今天过来好好研究一下。
这个问题只存在于blogger.com中,WordPress系统中不存在。先说一下在blogger.com中这个问题的解决办法:在模版的<body>标签下面找到<title>标签,调整成这样:
<$BlogMetaData$>
<title><$BlogPageTitle$></title>
保证meta在前面就可以了。可以参考《感谢Yskin》和《UTF-8字符集网页在IE上会显示空白问题的解决方案》。
继续阅读《IE中打开UTF-8编码title为中文的网页会显示空白页的问题》
on 2006.8.10
归类于 建站日志
1,772字
昨天中午12点40上网,发现访问不了Blog,ping了一下,DNS解析到的IP正确,但是服务器ping不通。以为服务器又出点小故障,但是想到百优的反应速度一向很快,估计过个10分钟,等服务器重启一下就好了。开QQ,到WordPress群跟大家说了一下这事,哪知大家都能访问,最后一致认为是我的rpwt。晕倒,赶紧从头开始查:nslookup,DNS解析正常;ping,ping不通;tracert过去,发现问题了。
C:\\DOCUME~1\\cface>tracert -d yskin.net
Tracing route to yskin.net [218.85.132.28]
over a maximum of 30 hops:
1 <10 ms 10 ms <10 ms 192.168.0.1
2 <10 ms 10 ms <10 ms 219.134.63.62
3 <10 ms <10 ms <10 ms 219.133.30.133
4 <10 ms <10 ms <10 ms 59.40.49.98
5 <10 ms 10 ms <10 ms 58.60.24.30
6 <10 ms 10 ms <10 ms 202.97.64.34
7 10 ms 10 ms 10 ms 202.97.41.145
8 61.154.236.157 reports: Destination host unreachable.
Trace complete.
查61.154.236.157这个IP,显示是“福建省 厦门市 电信”。直接ping 61.154.236.157,发现可以ping通,而且也是10ms。说明这个路由器好着,但是包过不去,可能是因为路由表出问题之类的吧。这样子的话,起码深圳电信的用户都访问不到我的Blog,不知道其他城市怎么样。到百优网站看了下,8月3号有个通知,说是“接厦门电信局IDC通知,218.5.76.*,218.85.132.*段的某些服务器网络故障,需要变更IP”。也不知厦门电信在搞什么,群里Dre·J说是在调整服务器为了学重庆那样上网需要备案,哈哈。昨天ping -t了一天,一直到晚上12点也没好,郁闷。今天中午1点上网时还是老样子,不过2点时好了,呼,终于可以上来处理一下评论了。
C:\\DOCUME~1\\cface>tracert -d yskin.net
Tracing route to yskin.net [218.85.132.28]
over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 192.168.0.1
2 10 ms <10 ms <10 ms 219.134.63.62
3 <10 ms 10 ms <10 ms 219.133.30.133
4 <10 ms 10 ms <10 ms 59.40.49.98
5 <10 ms 10 ms <10 ms 58.60.24.30
6 <10 ms 10 ms <10 ms 202.97.64.34
7 10 ms 10 ms 20 ms 202.97.41.145
8 10 ms 10 ms 20 ms 61.154.236.157
9 741 ms 751 ms 761 ms 222.76.222.142
10 30 ms 30 ms 30 ms 222.76.222.182
11 20 ms 20 ms 20 ms 222.76.221.50
12 10 ms 10 ms 20 ms 218.85.132.28
Trace complete.
Update:又从5点坏到6点,这次是11号222.76.221.50那儿过不去,郁闷。
Update2:终于,百优开始换地方了。8月12日的公告上说:“最近客户反映218.85.132.27/29/30服务器,部分地区访问缓慢,或者无法访问,技术人员将情况上报给机房IDC查询故障原因,经查证后发现 因为骨干路由问题,造成这些问题,需要处理时间比较长”这几台机器换了IP,不过我所在的服务器是28,唉。8月16日的公告,所有服务器开始搬迁。“搬迁工作将于2006年8月16日晚10点开始,到2006年8月17日早上7:00恢复。”我的网站的IP也从218.85.132.28换成了220.162.244.64。到123cha查了下,220.162.244.64 福建省 福州市(福建电信数据中心机房) 电信IDC。这下到福州了,省会城市应该会好点吧。不过我ping不通,tracert过去到202.97.41.210就过不去了。估计是福州那边封了ICMP包,郁闷!唉,能用就行,其他的管不了了。