Bo-Blog 2.0风格制作手册

| |
[不指定 03/30/2006 01:14 | by liuxyon ]
我把BO-BLOG相关资料整理在这里,以方便大家查阅提供帮助.

本手册最后修正于: 2005年12月15日
最后适用的版本: 2.0.1

第一部分 风格组成

一个完整的Bo-Blog 2.0的风格(以下简称风格)由以下几个部分组成:
风格文件夹,位于template/文件夹下
|- 风格的CSS文件 style.css;
|- 风格的图片文件夹;
|- 风格的信息文件 info.php;
|- 风格的结构定义文件 element.php;
|- 风格的缩略图文件。

其中,粗体字标出的文件为必需。

这些文件的作用和注释如下:
1. CSS文件
该文件是整个风格的最主要部分,我们建议所有的风格都尽力在配合默认架构 default/template.php 文件的基础上修改。也就是说,建议只修改CSS文件达到您想要的效果,而不是修改模板架构本身。CSS+DIV的网页排版方式符合标准,也能创造出风格迥异的丰富效果来。
有关CSS文件中各个Class的命名和对应区域,请阅读第三部分。

2. 风格的图片文件夹
我们建议您在专门建立一个文件夹以存放该风格用到的图片,而不是将所有图片都存放在风格的根目录下。
推荐您在风格所在的文件夹下建立images子文件夹,放置用到的图片文件。

3. 风格的信息文件 info.php
这个文件存放了风格的作者等重要信息。它必须是没有错误的PHP文件,编码必须采用UTF-8。(我们推荐使用的文本编辑器见第二部分。)
下面是默认风格的 info.php ,存在于 template/default/ 文件夹下。结合这个文件为您说明该文件的结构。注意:双斜杠 // 后面以及 和 /* 与 */ 之间的文字为注释,事实上您的文件不需要包括这些注释。



<?PHP
//PHP文件开始。
//请使用这样的形式而不是short tag,即:不要缩写成 <? ,也不要写成 <%,尽管这样可能也能被识别。

$template['id']="60A13BBE-C069-47A1-A0A1-FA7C4ECCAA47";
//这一行的引号中是这个风格的ID。ID是便于程序识别一个风格的一个字符串,可以是任何拉丁字符、数字等。比如 mystyle、style200601等都是允许的。但为了减少你的ID和任何人发布的其它风格重复的概率,建议您将ID设置得复杂一些。一个建议是像默认风格这样使用GUID。

$template['name']="Default";
//引号中是这个风格的名字。

$template['author']="Bob Shen";
//引号中是这个风格的作者。注意这里是支持HTML代码的。

$template['intro']="Default skin of Bo-blog 2.0.1.";
//引号中是这个风格的简介。

$template['dirname']="default";
//引号中是这个风格所在文件夹的名字。假如您的风格名为pure,那么它的所有文件就应该存放在 template/pure/ 下,而这里的值也应该改为 pure。

$template['thumbnail']="thumb.jpg";
//引号中是这个风格的缩略图文件的文件名。缩略图应该放置在这个风格文件夹下。文件名在此指定。

$template['structure']="template/default/elements.php";
//引号中是这个风格的结构定义文件的位置和文件名。对于只修改CSS就能完成的风格,您不必再在风格文件夹中放置一个 elements.php,而完全可以采用默认的,也就是保持该行不修改。

$template['images']="template/default/images";
//引号中指定了blog界面上的部分图片的位置。这些图片包括RSS图标、上/下一篇日志的图标等等。具体的文件名请阅读第四部分。

$template['css'][0]="template/default/styles.css";
/* 引号中是CSS文件的位置和文件名。Bo-Blog 2.0支持同一风格载入多个CSS。因此这里可以写成数组的形式。比如,如果您的风格用到了3个CSS文件,分别是 structure.css、style.css、extra.css,您可以写成:
$template['css'][0]="template/default/structure.css";
$template['css'][1]="template/default/style.css";
$template['css'][2]="template/default/extra.css";
注意数组上标从 0 开始。
这些css文件会被程序自动全部载入模板。*/



4. 风格的结构定义文件 element.php
这也是一个PHP文件,也必须使用UTF-8编码。它规定了模板的结构,也就是各个区域具体的HTML代码。有关这个文件的详细说明,请参考第五部分。

5. 风格缩略图文件
大小是400*300像素,建议为JPG、GIF和PNG格式。为了不增加额外的空间负担,不建议您截取精读太高的缩略图。
(第一部分完,待续)

第二部分 一些建议和要求

1. 文本编辑器
编辑文本文件的编辑器可谓多如牛毛,您完全可以选择最顺手的使用。但是有一些情况您需要了解。
Bo-Blog采用 UTF-8 编码,因此所有文本文件(风格中涉及的是PHP文件)必须储存为 UTF-8 编码。另外,部分文本编辑软件,如Dreamweaver、记事本等,在保存UTF-8文件时会在文件最开始加入UTF-8识别记号(BOM)。BOM在WINDOWS下打开文件时不可见,但PHP在读取文件时仍会将其作为文件的一部分,由此会产生cookie失效(无法登入),模板无法顶住页面顶部等现象。

解决的方法:
建议您使用 Editplus 2.12 或者 EmEditor 编辑PHP文件。它们对无BOM的UTF-8文件兼容较好;
UltraEdit用户需将 Write UTF-8 BOM header to ALL UTF-8 files when saved 选项设置为关;
其它文本编辑器用户,在编辑完后如发现程序异常,可参考这篇文章解决。

2. 针对发布者的建议
您可以将您修改、制作的风格发布到论坛的2.0模板风格专版,我们会非常感谢您的分享。
对于出色的风格,将被收入官方网站的“风格”栏目(筹)。

对发布者有这样的一些建议:
1. 兼容性
建议您在制作风格时考虑到浏览器的兼容问题。由于 2.0 采用的是CSS+DIV布局,因此可能在不同的浏览器上存在不同的显示效果。建议您在发布时考虑到主流浏览器的兼容问题。一个方法是:在发布的帖子里注明:在IE下测试通过;暂不兼容Firefox;可在IE、Fx、Opera下正确显示 等等类似的字样。
对于收入官方风格栏目的风格,至少需要做到同时与IE和Firefox兼容。

2. thumb.db
Windows XP会在您的图片文件夹下生成一个名为 thumb.db 的隐藏文件。当您把这个文件也打包到压缩包里时,会导致压缩文件体积增大不少!所以建议您不要把这个文件放到压缩包里。以常用软件winrar为例,可以在压缩完成后,打开压缩文件,就能看到这个文件是否存在了。

3. 压缩格式
推荐的压缩包格式为: Zip和Gzip两种。

4. 源文件
您可以自主决定是否将图片的源文件放入压缩包。如果您不打算提供源文件的话,建议您提供一张没有加过自己站名的空白logo图,方便下载者修改。当然,这都出于自愿。

5. elements.php 文件
这个文件可能会随着程序的不断完善而不断修改,因此如果非必要,建议您使用默认的elements.php,也就是在风格的info.php中将structure指向template/default/elements.php(请参考第一部分的说明)。

(第二部分完,待续)

(接上,第三部分继续)

2. CSS详解
下面介绍主要的CSS类的用途和一些说明。请参考整体框架图阅读。

2.1 整体框架
#wrapper - 整个页面的框架。
#innerWrapper - 内嵌在wrapper里的整个页面的框架。

2.2 顶部框架
#header - 整个顶部框架
#innerHeader - 内嵌在header里的框架。
.blog-header - 包含blog标题和描述。
h1 - blog的标题。
.blog-desc - blog的描述语。
menu - blog的顶部模块(导航条)。

2.3 主体框架
#mainWrapper - 整个主体部分的框架,包含了侧边栏和主内容这两个框架。

2.4 侧边栏框架
.sidebar - 整个侧边栏框架。
#innerSidebar - 内嵌在sidebar内的框架。
.sidebar-hide - 当侧边栏关闭时的侧边栏样式。(display: none;)
.panel - 具体到某一个侧边栏项目的总框架。
.panel h5 - 侧边栏项目的抬头部分。
.panel-content - 侧边栏项目的主要内容区域。
.panel-content li - 侧边栏包含列表项的样式。
.panel-content li.indent - 侧边栏列表项缩进后的样式(如链接前的列表符号)。
.search-field - 搜索框样式。

2.5 主内容框架
.content - 主内容的总框架。
#innerContent - 内嵌于content的框架。
.announce - 公告框样式。
.announce-content - 公告内容样式。
.article-top - 分页条(位于顶部)样式。
.article-bottom - 分页条(位于底部)样式。
.pages - 分页条文字样式。
.pagelink-current - 当前页文字样式。
..textbox - 每篇日志的总框架。
.textbox-title - 日志标题位置样式。
.textbox-title h4 - 日志标题文字样式。
.textbox-label - 发表日期栏样式。
.textbox-fontsize - 日志工具条(字号选择等)样式。
.textbox-content - 日志内容样式。
.textbox-bottom - 日志底部工具条样式。
.textbox-adminbar - 管理工具条样式。
.textbox-tburl - Trackback地址条样式。
.tags - tags显示条样式。
.prev-article - 上一篇提示文字样式。
.next-article - 下一篇提示文字样式。

2.6 日历部分
#calendar - 日历总框架。
.calendar-main - 日历总体样式。
.calendar-top - 日历顶端文字样式。
.calendar-year - 年的样式。
.calendar-month - 月的样式。
.calendar-weekday-cell - 星期的样式。
.calendar-day - 普通工作日样式。
.calendar-saturday - 星期六的样式。
.calendar-sunday - 星期日的样式。
.calendar-today - 今日样式。

2.7 评论显示框
.commentbox - 单条评论(或留言,下同)整体框架。
.commentbox-title - 评论标题样式。
.commentbox-label - 评论日期文字样式。
.commentbox-content - 评论内容样式。
.trackbackbox - 单条trackback框架。
.trackbackbox-title - trackback标题样式。
.trackbackbox-label - trackback日期文字样式。
.trackbackbox-content - trackback内容样式。

2.8 表格样式
.listbox - 表格整体框架。
.listbox-table - 表格的宽度。
.listbox-header - 表格头部文字样式。
.listbox-entry - 表格正文文字样式。

2.9 添加评论框
.formbox - 评论表单所在框。
.formbox-title - 评论表单标题文字样式。
.panel-smilies - 表情选择栏。
.panel-smilies-title - 表情栏文字样式。
.panel-smilies-content - 表情栏内容样式。

2.10 提示页样式
.messagebox - 消息框整体。
.messagebox-title - 消息框标题。
.messagebox-content - 消息框内容样式。
.messagebox-bottom - 消息框底部文字样式。

2.11 细节样式
.code - 代码框样式。
.quote - 引用框整体框架。
.quote-title - 引用框标题文字样式。
.quote-content - 引用框内容样式。

2.12 底部框架
#footer - 底部总框架。
#innerFooter - 底部内嵌框架。

(第三部分完)

(接上)
第四部分 风格所需图片

以下介绍位于 $template['images'] 所在位置(参考第一部分)的图片名称和作用:

detail.gif - 查看用户列表时,点击查看用户资料的图标(默认:一个小人)
download.gif - 使用[ file ]下载UBB标签后,文件下载框中的图标(默认:一个磁盘)
email.gif - 评论和留言中,点击给他/她发邮件的图标(默认:一个信封)
folder.gif - 展开/折叠被折叠的置顶日志的图标(默认:两个向下的箭头)
homepage.gif - 评论和留言中,点击访问他/她的主页的图标(默认:一个外部链接箭头)
ip.gif - 评论和留言中,点击查看他/她的IP来源的图标(默认:一个放大镜)
readmore.gif - 查看更多内容(默认:多页纸重叠)
real.gif - Real文件播放框内的图标(默认:RealOne的图标)
rss.png - 侧边栏分类名称旁的RSS链接所用图标(默认:写有rss字样的方框)
swf.gif - Flash文件播放框内的图标(默认:Flash的图标)
toolbar_fontsize.gif - 日志阅读工具栏的字体大小提示图标(默认:一个向右的箭头)
toolbar_next.gif - 日志阅读工具栏的下一篇日志提示图标(默认:一个向下的箭头)
toolbar_previous.gif - 日志阅读工具栏的上一篇日志提示图标(默认:一个向上的箭头)
toolbar_rss.gif - 日志阅读工具栏的本文rss链接的图标(默认:写有rss字样的小方框)
toolbar_save.gif - 日志阅读工具栏的保存本文的图标(默认:一页纸)
trackback.gif - Trackback条目前的提示图标(默认:一个气泡)
viewimage.gif - 查看图片前的链接图标(默认:一张照片)
wmp.gif - Windows Media Player文件播放框内的图标(默认:WMP的图标)

提示:
IE 7.0以前的版本不能正确显示PNG的透明色。在制作 rss.png时需注意。

(第四部分完,待续)



第五部分 elements.php文件

下面解释elements.php文件的作用和内容。
这个文件里定义了各个部分的html表现代码。之所以设立这样一个文件,是为了满足在仅仅修改css无法达到布局更改时的需求。

这个文件的内容就是一些赋值语句。形式为 $elements[ElementName]=ElementHtmlCode; 。
Element的名称和含意对照如下:

$elements['header'] 文件开始
$elements['displayheader'] 顶部
$elements['mainpage'] 日志页面
$elements['otherpage'] 其它页面
$elements['displayside'] 侧边栏
$elements['displayfooter'] 底部
$elements['footer'] 文件结束
$elements['msgbox'] 出错/成功信息提示框
$elements['sideblock'] 侧栏项目
$elements['excerpt'] 摘要
$elements['excerptontop'] 置顶的摘要
$elements['viewentry'] 查看日志
$elements['listbody'] 日志列表
$elements['list'] 日志列表单行
$elements['comment'] 评论
$elements['trackback'] 引用
$elements['form_reply'] 评论发表框
$elements['endviewentry'] 查看日志的补充
$elements['entryadditional'] “查看更多”区域
$elements['login'] 登入表单
$elements['contentpage'] 内容页
$elements['taglist'] tags
$elements['register'] 注册表单
$elements['normaltable'] 一般表格
$elements['normaltablewithtitle'] 一般表格(带有表格标题)
$elements['form_eachline'] 表格一行
$elements['eachlink'] 链接页(单项)
$elements['linkdiv'] 链接页(组)
$elements['tips'] 提示信息的页面

1. 被替换标签以 {开头,以}结束,在模板解析时会被替换为实际的内容。例如,星标的标签为
由于这里的标签很多,时间有限暂不一一讲解,大部分标签都是可以顾名思义的,在制作模板时可以边测试边修改。

2. 不同侧边栏项目的区块可以分别定义。
例如,$elements['sideblock_categories'] 可定义名为 categories 的项目(即分类项目)的html。
形式为 sideblock_itemname 。当一个item显示时,如果有 $elements['sideblock_item'] ,则优先使用此处的定义,否则使用默认($elements['sideblock'])。

(全文完)

附:风格制作手册Flash阅读版下载:

[swf width=400 height=100]up/boblog-skintutorial.swf[/swf]



2.0 模块配置帮助  


1. 什么是模块?什么是项目?
在2.0中,规定了三个可以任意添加代码的地方,分别是顶部的导航栏(顶部模块)、侧边栏(侧边模块)和页面底部(底部模块)。每个“模块”允许用户通过自建“项目”的方法,添加一段代码,增添一个链接,起到扩充blog功能的作用。
模块和项目功能的意义在于,不必再为了添加代码(比如加一个计数器、加狗狗的广告)而修改模板甚至修改源程序,并且可以通过项目自动安装文件自动添加。

2. 如何添加一个项目?
项目有两种添加方式:手动或者自动。

3. 如何手动增加项目?
请依次点击:
常规管理 - 模块配置 - 新增/编辑项目,然后选择该项目应该出现的位置,即可出现添加页面。
添加完毕的项目将出现在模块的项目管理中,可启用、禁用、删除、编辑和排序。

4. 为什么我加入的广告/计数器/blog联播代码不显示?
这样的代码多半是j avascript脚本。由于系统的原因,您插入的代码中的换行符号将被清除。因此如果js代码中有注释行( // <!-- --> /* */ ),那么该行之后的所有内容都会被当成注释而不执行,也就出现了添加无效的问题。
要解决这个问题,请在添加时删除所有的注释行。这些注释删除并不会影响您的代码执行的效果。
比如,以google广告的部分代码为例:


以下是代码:

<script type="text/j avascript">
<!--
google_ad_client = "pub-12345678";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "660000";
google_color_bg = "7D2626";
google_color_link = "FFFFFF";
google_color_url = "DAA520";
google_color_text = "BDB76B";
//-->
</script>


其中的 <!-- 和 //--> 两行是注释*,直接添加进侧边模块后不能显示,需要删除这两行。
识别注释的方法很简单,// (两斜杠)符号所在的一行,从/*到*/之间的所有行,都是注释。
注: *这两个符号严格来说不是注释,而是为了兼容不支持js的浏览器而书写的。

5. 为什么添加的模块项目无法删除和修改?
在2.0.1 RC 1(含)以前的版本中,项目的名字不能为中文,否则会造成无法识别而无法删除。在2.0.1 RC 2中这个问题被修正。

6. 哪些东东可以通过项目添加而不必改源程序?
可以添加的代码种类包括:
顶部模块可添加:导航栏中的链接,适合添加转向链接等。
侧边模块可添加:与“日历”、“分类”等系统自带侧边项目风格一致的功能区,适合广告、flash音乐播放器、天气预报等大块显示的内容。
底部模块可添加:HTML内容,适合用于添加底部的横幅广告、放在页底的计数器、不出现实质内容的js(例如弹出窗口代码)等。

7. 为什么系统自带的项目无法编辑和删除?
因为这些项目的代码都写在了程序里,而不是像自定义项目那样用专门的数据文件储存。

8. 可以用php代码吗?
可以。侧边栏项目的内容和底部模块的内容是支持内嵌PHP代码的。不过,您需要将代码以base64_encode函数编码,然后以 <php>代码</php> 的形式插入。
在“模板选择器”这个侧边模块项目中,就采用了内嵌php代码的方法。否则这种动态内容靠html和js是无法实现的。

您可以将您自己改写、原创的项目制作成一个自动安装文件,分享给其他的用户。这样,别人就可以直接使用自动安装的功能来添加一个模块项目了。

Technology | 评论(0) | 引用(64) | 阅读(2894)