最近经常看到不少用户因为 PHPWind BLOG的用户模板太少而放弃使用,我觉得实在是很可惜。因为PHPWind BLOG也可以按照设计的意见,任意改变Blog风格。当然想做到非常美观的模板并不是很容易的,但并不是不能实现的。下面我来讲讲我对PHPWind BLOG的用户风格的认识,看这篇文章之前,请先阅读YiSong的风格模版制作说明 这篇文章。

一、用户模板文件
  YiSong文章中提到/template/defaut文件夹下有3个文件夹,另外还有一个文件夹skin,就是用户前台模板文件。模板文件包含:

·article:文章页
·bbs:论坛文集
·footer:页面尾
·gbook:留言本
·header:页面头
·list:列表页(个人首页)
·photo:相册
·side:侧栏


二、用户模板数据库
  在数据库中,我们知道用户风格是存放在pw_skinconfig表中(默认),其中几个字段表示的意思分别为:

·id:编号(主键)
·sid:模板套系编号(对应/template/defaut/skin文件夹下的数字文件夹,默认为1)
·uid:模板作者编号
·name:模板名
·demo:模板缩略图(对应setting中设置的图片文件夹下的图片文件)
·commend:推荐模板(是否其他用户可用)
·config:风格设置(包括侧栏设置和模板风格设置,就是各种颜色、字体和边框背景什么的)

  如果要想制作自由风格的模板,就主要修改sid及config两字段。

三、用户模板制作方法

  最开始当然是设计阶段了,不管是由美工设计,还是从别的网站扒,最重要的是有一个参考标准。然后就是制作模板文件了,即制作放在/template/defaut/skin/n文件夹下的几个文件。如果是从别的网站扒下来的,就方便一些,可以直接借用网页的结构,包括CSS。当然什么都不做那是不可能的,接下来就要在模板里整合咱们PWBLOG的代码了,就是<!-- -->这些。只要稍微了解一点PHP模板知识和PHP语言的就可以改写,基本都能看懂,无非是一些循环和判断,可以参考/template/defaut/skin/1写。

  如果是自己设计的网页,还想让用户自己能改一些页面设置,就要在CSS样式里加一些动态元素。下面帖一段/template/defaut/skin/1中的代码:

#head{
   width:96%;
   padding:3px;
   margin: auto;
   color:$sconfig[headcolor];
}
#head a{
   color:$sconfig[headcolor];
}
#head_left{
   width:70%;
   float:left;
   text-align:left;
   font-weight:bold;
   font-size:$sconfig[headsize];
}

  其中$sconfig[]数组中存的就是用户自定义的风格。而这个风格就以数组的形式存在数据库pw_skinconfig表的config字段中。当然如果你想多让用户有些设置的项目,你也可以在CSS加一些样式,比如:

.skin_input{
   border: 1px solid $sconfig[input_border_color];
   background-color: $sconfig[input_background_color];
}

  响应的在用户风格设置页面及程序里也应加上对应的项目。

  出于一些考虑,51CTO BLOG没有把用户自定义风格打开,而是让用户在固定的几个模板里选择,这样就方便许多了。因为每个用户的风格只保存在PW_user表中的style字段中,对应的就是pw_skinconfig的id字段。如果不是这样,用户每个人都可以根据推荐风格再改的话,每个用户都会在pw_skinconfig表中产生一条记录。

四、一些小技巧

  比如51CTO BLOG的设置,完全可以整个扒sohu或者新浪的BLOG模板,然后可以根本不在数据库pw_skinconfig表中保存页面CSS设置,而把CSS完全写成静态不改动的。

  改的时候请注意PHPWind BLOG的侧栏逻辑,如果改乱了的话,页面整个就乱了,51CTO BLOG关了用户自定义风格的设置,但是侧栏的设置是开的,用户仍然可以改侧栏的位置。设置仍然保存在pw_skinconfig表的config字段中。

  如果想要好风格又不想付出努力的那真的一点办法也没有了,毕竟PHPWind BLOG是一个开源的产品,就是让大家来研究和开发的。不过感觉PHPWind BLOG的bug还是挺多的,功能上相比别的产品也确实有距离,开源和免费不应该是这些缺陷的理由,只有精益求精才能把产品做好。