Arrive Hangzhou

应朋友之邀给一家航空杂志社《Arrive Hangzhou》做的官方网站,从设计到编码均为在下完成 – 。 – (虽然在对方boss要求下修改不少),采用WordPress实现。

欢迎大家关注 http://www.arrivehangzhou.com

新的主题,新的开始

总之,效果想必点击进来的也已经看到了,实际上这个主题我连名字也没有认真的想,一想现在是冬天,就随手命名成了vifix-winter。虽说春天都快到了。

使用了很多CSS 3.0的特性,所以在Firefox 3.5+和Chrome以及Safari的最新版本上才可以看到最好的效果。一些特性IE8上也得不到支持,写了专门的CSS修正,更不要说那个诡异的IE6了,所以IE6上访问本站将是一个缩水后的版本(并且还会有一个简单的提示) orz

背景的蓝色渐变是纯天然的,就是上面照片中的最右边的一个像素宽的内容,2009年10月摄于南京。

启用新主题

IMG_4324

周一开始设计的主题,最近这两天将其实际写了出来。

先前的vifix9有一个splash页,虽然比更久以前的splash的信息量要多,但是在功能方面总觉得是个鸡肋(但是又十分喜欢splash页这样的方案 —— 这样才觉得像是个人主页的感觉,而不只是一个单纯的个人博客)

因此这次vifix10准备在未来将splash页融入blog相同的设计,并且,嘛,就当vifix.cn是推介自己的一个平台吧~毕竟明年要开始找工作了呢~~~

整体的工作还远远没有完成,今天也只是先把最重要的部分赶了出来,还有一些细节的地方需要修改,另外~上面的banner条也考虑采用jQuery或者Flash来做成一个展示区域~

那么就是这些,未来几天有一个短途旅行的安排~~去一趟丽水缙云,祈祷天气晴好~阿门~~~

=============================

Updated @ 2010-02-03:

鉴于已经使用新主题,放出此主题的下载,点击此处获取

并不完善,许多地方也为我自己的网站写死了,所以其实可能利用价值不是那么高 ^^b

分发请遵守创作共用署名-非商业性使用-相同方式共享2.5版协议

WordPress同步QZone插件·改

qq

这两天在想写一个WordPress的插件练练手,因为正好看到了QZone也支持了用邮件发表的文章,因此在想是不是就写个插件让WordPress发表文章自动同步到QQ。一来可以吸引QQ上的好友来阅读我发表的内容,增进交互,二来也可以算是一定程度上的SEO。

但写完了SMTP连接部分时在找WordPress插件的文档时找到了已经有现成的插件,测试了一下已经把我想做的都做出来了,还支持添加额外的电子信箱,用来支持其它所有支持电子邮件发表的BSP的发表(不过Live.com的博客服务因为暂时被功·夫·网所以无法使用这个)

不过实际尝试了一下发现这个插件还很有问题:

  • 保存密码的表单密码将被重复加密导致不可用
  • 对于引号和斜线的转义过头导致数据丢失(似乎这个是WordPress本身转义提交信息带来的问题)

因此对这个插件进行了一番修改:

  • 纠正错误的转义
  • 放弃原版使用的PHPMailer(杀鸡用牛刀的感觉),换上一个较为简单的Socket SMTP发送函数修改的类
  • 修正密码被重复加密的Bug

我修改的版本在此下载:wp-qzone.0.4-mod.zip

原始的WP-Post2Qzone获取地址:http://code.google.com/p/qzone/

作者的博客:http://liguangming.com/

更新@2010-07-26

不明原因的插件可能暂时无法使用中,待检查

WordPress主题vifix9发布

vifix9-wp-theme-screenshot

最近三天做的东西,生平第一个WordPress的主题,主要是为了和splash页保持一致,顺便化解一下⑨的冲动(不知道我在说啥的无视这句)

效果嘛,见这个Blog目前的状态就知道了。

创作共用署名-非商业性使用-相同方式共享2.5版协议下发布,感兴趣的可以点击下面的图标链接获取。

vifix9.zip

右侧的About区域可以自定义使用的gravatar头像和信息(如果没有设定则使用用户列表中的第一位的电子邮件来生成头像)。上面的“⑨”位置的超级连接也可以修改(自带Options页面)。另外,用了一些WordPress 2.7才有的函数,所以在2.7之前的版本上是无法使用的。

目前仍然有诸多问题(好像每次发布点啥都有问题……)

  • 在添加自定义的widget添加上去的不美观,写CSS写到累了,还是以后再改了 orz
  • 一些文本调用了WordPress的本地化文件,而一些文本则没有调用,在中文的WordPress上,会看到自带的widget中英文标题共同显示的情况……

updated @ 2009-04-16

0.2版本发布,修改了链接的风格,解决一个HTML上的Bug

给WordPress模板加入Gravatar支持~

WordPress 2.5开始就已经直接将Gravatar这个全球统一头像服务的API包含在里面了,然而vifix.cn使用的模板是为WP 2.1设计的古老模板,自然没有调用到这么高级的东西,所以今天加上了,效果嘛,见blog文的评论区吧~

只要在模板的comments.php加入:

<?php echo get_avatar( get_comment_author_email(), '60' );?>

(这其中,60为生成的头像的尺寸)

详细的可以参考这个文档:http://codex.wordpress.org/Using_Gravatars

上传自己的gravatar头像可以去http://www.gravatar.com

话说回来,目前在IE6下面的显示还有点奇怪,不高兴管了 orz
这年头,IE8都已经正式发布了 – v -

WordPress加上站点地图

花了些时间整合了Blog的一些标签和tag,看上去应该干净了不少。

同时修改了一下主题,加大宽度。虽然很喜欢现在用的主题,但是却已经很古老了,里面用的一些WordPress内部函数都已经不被推荐继续采用,因此也都改为新的函数。顺便在侧栏也加上了Tag Cloud。

然后加上了一个Sitemap页面,里面是全站链接。

Sitemap的做成记录:

Read the rest of this entry >>

给wordpress做了伪静态化

嘛,研究了一下wordpress的持久链接和nginx的URL Rewrite,将自己的blog进行了伪静态化,链接已经全部转变为http://vifix.cn/blog/%postname%.html的形式

转帖一篇文章:

原文地址:http://shiningray.cn/nginx-de-wordpress-pei-zhi.html

Read the rest of this entry >>

开通blog的WAP浏览~

装了WP-T-Wap插件,Wordpress支持wap了~

具体地址:

http://vifix.cn/blog/wap

虽说自己其实不用wap上网……

利用__FILE__魔术常量来组织PHP项目文件

PHP中并没有明确的Application(或者与此类似)的概念,因此文件分类如果较多又有许多代码共用,在不使用框架的情况下,就比较难以组织,不得不说这是PHP的一个缺陷。最近在项目中就碰到了这个问题。有前台的页面和后台的页面,后台页面放在admin目录。前后台都有一定量的公用的代码,并且其中也包含了可以复用的函数,比如说输出出错信息,验证登录等等等的。我最初的方法是折中的在应用的根目录下面放一个includes目录,然后再在admin里面也放置一个同样的includes,两边的内容基本上是大同小异的。可以说实在谈不上优雅的解决方案。
后来想到了wordpress也是类似的结构,稍微看了一下代码,发现它有一个全局的wp-config.php文件,里面有如下行:

define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');

查了一下手册,发现__FILE__是PHP提供的一个魔术常量,永远返回PHP解析到它时的文件的绝对路径(似乎从这个角度来看应该是变量?),利用它可以很好的定位项目的绝对路径,也为进一步的项目中的其它目录提供一个基准,例如我目前的config.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/*
 * 配置文件
 */
 
//常量PATH_INC - /includes绝对路径
define("PATH_INC", dirname(__FILE__) . '/');
 
//常量PATH_APP - /路径
define("PATH_APP", PATH_INC . "../");
 
//常量PATH_LIB - /lib路径
define("PATH_LIB", PATH_INC . "../lib");
 
//常量PATH_ADMIN - /admin路径
define("PATH_ADMIN", PATH_INC . "../admin");
 
//数据库设置
define("DB_HOST", "YOUR_DATABASE_HOST");
define("DB_USER", "YOUR_DATABASE_USER");
define("DB_PASSWORD", "YOUR_DATABASE_PASSWORD");
define("DB_DBNAME", "YOUR_DATABASE_NAME");
 
?>

如此一来只要在任何这个项目的php文件中用相对路径包含这个config.php,再用如下方法include所需要的文件即可:

//载入配置文件
require_once 'includes/config.php';
 
//建立数据库连接
require_once PATH_INC . "conn.php";
Page 1 of 212