分类 Typecho文档 下的文章






 welcome.php  博客首次安装成功的欢迎界面
 common.php  检测是否为第一次登陆,检测程序是否可有升级
 common-js.php  消息处理及后台菜单展开的 js
 upgrade.php  程序升级引导
 login.php  登陆界面
 register.php  用户注册页面
 header.php  头部加载 css 和 js 等
 copyright.php  版权声明
 form-js.php  form 对应的 js
 table-js.php  table 对应的 js
 footer.php  页脚
 menu.php  菜单导航条
 extending.php  插件拓展后台菜单的接口
 page-title.php  页面标题
 index.php  进入后台的首页,对应菜单为网站概要
 profile.php  个人设置
 plugins.php  插件管理
 options-plugin.php  插件设置页面
 themes.php  网站外观
 theme-editor.php  编辑模板的页面
 options-theme.php  设置模板的页面即模板后台
 write-post.php  文章撰写页面
 write-js.php  撰写文章/页面时的发布时间,标签,分类,保存草稿等
 file-upload.php  文章 / 页面附件上传,及管理界面
 file-upload-js.php  文章 / 页面附件上传,及管理功能
 custom-fields.php  自定义字段界面
 custom-fields-js.php  自定义字段功能实现
 editor-js.php  编辑器
 write-page.php  创建页面
 manage-posts.php  管理文章界面
 manage-pages.php  管理页面界面
 manage-comments.php  管理评论界面
 manage-categories.php  管理分类界面
 category.php  某个分类的编辑页面
 manage-tags.php  管理标签界面
 manage-medias.php  所有文章的附件管理页面
 media.php  某个附件的管理
 manage-users.php  所有用户管理页面
 user.php  编辑某个用户
 options-general.php  网站基本设置页面
 options-discussion.php  评论设置页面
 options-reading.php  阅读设置页面
 options-permalink.php  永久链接设置页面
 Validate.php  评论信息验证




component/aside.php 左边导航栏
component/comments.php 评论区
component/footer.php 底部版权、音乐播放器之类
component/header.php 页面头,没啥要改的
component/headnav.php 顶部导航
component/say.php 时光机动态
component/sidebar.php 右侧栏目
component/third_party_comments.php 3.3.0新增,第三方评论
css/ 博客CSS,一般不要改
fonts/ 博客字体,一般不要改
img/ 图像,一般不要改
js/ js文件,一般不要改
lang/ 语言文件
libs/Content.php 文章内容
libs/... 一般不要改
usr/ 另一个语言文件?
404.php 404界面
archive.php 整合
booklist.php 书单
cross.php 时光机
files.php 归档
functions.php 配置界面的东西
guestbook.php 留言板
index.php 首页
links.php 友链
page.php 文章页面整合
post.php 文章输出

color: 选填,不填默认为success(绿色),可选值:
light:白色
info:蓝色
dark:深色
success:绿色
black:黑色
warning:黄色
primary:紫色
danger:红色

 文件名 作用  必须
style.css   主题样式文件  否
 screenshot.png 主题缩略图   否
 index.php  首页以及说明文件  是
 404.php  404页面文件  否
 archive.php  通用(分类、搜索、标签、作者)页面文件  否
 category.php  分类页面文件  否
 search.php  搜索页面文件  否
 tag.php  标签页面文件  否
 author.php  作者页面文件  否
 comments.php  评论页面文件  否
 footer.php  底部页面文件  否
 functions.php  主题函数文件  否
 header.php  头部页面文件  否
 page.php  独立页面文件  否
 post.php  日志页面文件  否
 sidebar.php  侧边栏页面文件  否

PS:如果archive.php不存在,index.php也会作为通用页面,实现archive.php的工作。




文件类型

<div style="text-align:center;"><#HTML> (放在档案的开头与结尾)

  文件主题<#TITLE> (必须放在「文头」区块内)

  文头<#HEAD> (描述性资料,像是「主题」)

  文体<#BODY> (文件本体)

  标题<#H?> (从1到6,有六层选择)

  标题的对齐 <#H?ALIGN=LEFT|CENTER|RIGHT>

  区分<#DIV>

  区分的对齐 <#DIVALIGN=LEFT|RIGHT|CENTER|JUSTIFY>

  引文区块<#BLOCKQUOTE> (通常会内缩)

  强调<#EM> (通常会以斜体显示)

  特别强调<#STRONG> (通常会以加粗显示)

  引文<#CITE> (通常会以斜体显示)

  码<#CODE> (显示原始码之用)

  样本<#SAMP>

  键盘输入<#KBD>

  变数<#VAR>

  定义<#DFN> (有些浏览器不提供)

  地址 <#ADDRESS>

  大字<#BIG>

  小字<#SMALL>

  与外观相关的标签(作者自订的表现方式)

  加粗<#B>

  斜体<#I>

  底线<#U> (尚有些浏览器不提供)

  删除线<#S> (尚有些浏览器不提供)

  下标<#SUB>

  上标<#SUP>

  打字机体<#TT> (用单空格字型显示)

  预定格式<#PRE> (保留文件中空格的大小)

  预定格式的宽度<#PRE WIDTH=?>(以字元计算)

  向中看齐<#CENTER> (文字与图片都可以)

  闪耀<#BLINK> (有史以来最被嘲弄的标签)

  字体大小 <#FONTSIZE=?>(从1到7)

  改变字体大小 <#FONTSIZE=+|-?>

  基本字体大小 <#BASEFONTSIZE=?> (从1到7; 内定为3)

  字体颜色 <#FONTCOLOR="#$$"&gt;($$为颜色代码)</div>

1)贴图:<#img src="图片地址">

  2)加入连接:<#a href="所要连接的相关地址">写上你想写的字

  3)在新窗口打开连接:<#a href="相关地址" target="_blank">写上要写的字

  4)移动字体(走马灯):<#marquee>写上你想写的字</marquee>

  5)字体加粗:<#b>写上你想写的字

  6)字体斜体:<#i>写上你想写的字

  7)字体下划线: <#u>写上你想写的字 </u>

  8)字体删除线: <#s>写上你想写的字 </s>

  9)字体加大: <#big>写上你想写的字 </big>

  10)字体控制大小:<#h1>写上你想写的字 </h1> (其中字体大小可从h1-h5,h1最大,h5最小)

  11)更改字体颜色:<#font color="#value">写上你想写的字 </font>(其中value值在000000与ffffff(16位进制)之间

  12)消除连接的下划线:<#a href="相关地址" style="text-decoration:none">写上你想写的字

  13)贴音乐:<#embed src="音乐地址" width="宽度" height="高度" autostart=false>

  14)贴flash: <#embed src="flash地址" width="宽度" height="高度">

  15)贴影视文件:<#img dynsrc="文件地址" width="宽度" height="高度" start=mouseover>

  16)换行:<#br>

  17)段落:<#p>段落 </p>

  18)原始文字样式:<#pre>正文 </pre>

  19)换帖子背景:<#body background="背景图片地址">

  20)固定帖子背景不随滚动条滚动:<#body background="背景图片地址" body
  bgproperties=fixed>

  21)定制帖子背景颜色:<#body bgcolor="#value">(value值见10)

  22)帖子背景音乐:<#bgsound="背景音乐地址" loop=infinite>

  23)贴网页:<#iframe. src="相关地址" width="宽度" height="高度">

24)文字居中:<#div align="center">要居中的文字</div>  
25)<#span style="color:#00009C">新藏青色</span>

====== 模板制作快速入门 =====
模板的制作并非难事,只要你写好了HTML和CSS,嵌套模板就非常简单了,你无需了解标签的内部结构,你只要会使用,模板就能迅速完成。这篇文章只简单的介绍了常用标签的使用方法,希望能带你进入模板的世界。^_^

本篇文章以Typecho都默认模板为例,您可以打开默认模板default边看边学习。该模板所在的路径为 /usr/themes/default \
进入该目录后,我们可以看到有许多文件,别犯愁,我们将在下文一一介绍,所有在当前目录下的文件都能在后台的模板编辑页面进行编辑。

===== index.php =====

==== 模板信息 ====

我们先从主文件说起,打开这个文件,首先看到的是注释:

<code php>/**
 * 这是typecho系统的一套默认皮肤。你可以在<a href="http://typecho.org">typecho的官方网站</a>获得更多关于此皮肤的信息
 * 
 * @package Typecho Default Theme 
 * @author typecho
 * @version 1.0.0
 * @link http://typecho.org
 */</code>

这是模板信息存放的地方,它将在后台都模板选择页显示。前两行是简短的介绍,每个“*”表示一个段落。@package 表示模板名,@author 表示作者名,@version 是模板的版本号,@link 是作者的网站连接。

紧挨着注释下方的 include('header.php'),在结尾处也会看到 include('sidebar.php') 和 include('footer.php')。这些语句用来调用模板的其它模块。header故名思议是页首,sidebar是侧栏,footer是页脚。

==== 显示文章 ====
<code php>
<?php while($this->next()): ?>
    <div class="post">
    <h2 class="entry_title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h2>
    <div class="entry_data">
        Published by <a href="<?php $this->author->permalink(); ?>"><?php $this->author(); ?></a> on <?php $this->date('F j, Y'); ?> in <?php $this->category(','); ?>.
        <?php $this->commentsNum('%d Comments'); ?>.
    </div>
    <div class="entry_text">
        <?php $this->content('Continue Reading...'); ?>
    </div>
    </div>
<?php endwhile; ?>
</code>

进入文章循环,输出文章,剥开html代码,一句一句介绍

|<php><?php $this->permalink() ?></php> | 文章所在的连接 |
|<php><?php $this->title() ?></php> | 文章标题 |
|<php><?php $this->author(); ?></php> | 文章作者 |
|<php><?php $this->author->permalink(); ?></php> | 文章作者地址 |
|<php><?php $this->date('F j, Y'); ?></php> | 文章的发布日期,格式可参考[[http://cn.php.net/manual/zh/function.date.php|PHP日期格式]] |
|<php><?php $this->category(','); ?></php> | 文章所在分类 |
|<php><?php $this->commentsNum('%d Comments'); ?></php> | 文章评论数及连接 |
|<php><?php $this->content('Continue Reading...'); ?></php> | 文章内容,其中的“Continue Reading...”是显示摘要时隐藏部分的邀请连接 |
好了,文章显示结束,别忘了结束循环。

==== 文章分页 ====

<code php><?php $this->pageNav(); ?></code>

文章输出结束后别忘了增加分页,至此,index.php的常见内容结束,应该不糊涂吧。
===== header.php =====

==== 编码 ====
打开这个文件,见到的第一个php代码就是:
<code php><meta http-equiv="content-type" content="text/html; charset=<?php $this->options->charset(); ?>" /></code>
调用默认的编码,现在最经常用的大都是utf-8吧。所以我通常是直接写成utf-8,省去php处理时间
=== 页面标题 ===
<code php><title><?php $this->options->title(); ?><?php $this->archiveTitle(); ?></title></code>

通常情况下直接复制使用,如果你没有时间的话。

==== 导入样式 ====
<code php><link rel="stylesheet" type="text/css" media="all" href="<?php $this->options->themeUrl('style.css'); ?>" /></code>
其中style.css是样式文件相对模板目录的路径和文件名。
==== 其它HTML头部信息 ====
<code php><?php $this->header(); ?></code>
别忘了这句,它关系到RSS信息、客户端程序以及插件的正常使用。
==== 页面导航 ====
<code php>
<ul class="clearfix" id="nav_menu">
    <li><a href="<?php $this->options->siteUrl(); ?>">Home</a></li>
    <?php $this->widget('Widget_Contents_Page_List')
               ->parse('<li><a href="{permalink}">{title}</a></li>'); ?>
</ul></code>
本处使用了无序列的页面列表,其中{permalink}是页面的地址,{title}是页面的标题
==== 网站名称 ====
<code php>
<h1><a href="<?php $this->options->siteUrl(); ?>"><?php $this->options->title() ?></a></h1>
<span><?php $this->options->description() ?></span>
</code>
| <php><?php $this->options->siteUrl(); ?></php> | 网站的首页地址 |
| <php><?php $this->options->title() ?></php> | 网站名称 |
| <php><?php $this->options->description() ?></php> | 网站的一些简短描述、介绍 |
==== 站内搜索 ====
<code html>
<form method="post" action="">
    <div><input type="text" name="s" class="text" size="32" /> <input type="submit" class="submit" value="Search" /></div>
</form>
</code>
当你的文章很多很多,这个搜索就必不可少。

===== sidebar.php =====

==== 最新文章列表 ====
<code php>
<ul>
    <?php $this->widget('Widget_Contents_Post_Recent')
               ->parse('<li><a href="{permalink}">{title}</a></li>'); ?>
</ul>
</code>
获取最新的10篇文章标题,得到的html是
<code html>
<ul>
    <li><a href="http://example.com/2008/12/31/sample-post-one">文章1的标题</a></li>
    <li><a href="http://example.com/2008/12/31/sample-post-two">文章2的标题</a></li>
    <!-- 省略n个重复 -->
    <li><a href="http://example.com/2008/12/31/sample-post-ten">文章10的标题</a></li>
</ul>
</code>
==== 最新回复列表 ====
<code php>
<ul>
    <?php $this->widget('Widget_Comments_Recent')->to($comments); ?>
    <?php while($comments->next()): ?>
        <li><?php $comments->author(false); ?>: <a href="<?php $comments->permalink(); ?>"><?php $comments->excerpt(10, '[...]'); ?></a></li>
    <?php endwhile; ?>
</ul>
</code>
获取最新的10个回复,得到的html是
<code html>
<ul>
    <li>回复人名字: <a href="http://example.com/2008/12/31/sample-post#comments-12">回复的内容[...]</a></li>
    <li>回复人名字: <a href="http://example.com/2008/12/31/sample-post#comments-11">回复的内容[...]</a></li>
    <!-- 省略n个重复 -->
</ul>
</code>
其中<php><?php $comments->excerpt(10, '[...]'); ?></php>,“10”代表要回复内容截取的字的个数,“[...]”代表省略的意思,你可以自行修改。
==== 文章分类列表 ====
<code php>
<ul>
    <?php $this->widget('Widget_Metas_Category_List')
               ->parse('<li><a href="{permalink}">{name}</a> ({count})</li>'); ?>
</ul>
</code>
输出:
<code html>
<ul>
    <li><a href="http://example.com/category/uncategories">Uncategories</a>(10)</li>
    <li><a href="http://example.com/category/category-1">Category-1</a>(2)</li>
</ul>
</code>
其中{count}是获取该分类下的文章数目。
==== 按月归档 ====
<code php>
<ul>
    <?php $this->widget('Widget_Contents_Post_Date', 'type=month&format=F Y')
               ->parse('<li><a href="{permalink}">{date}</a></li>'); ?>
    </ul>
</code>
输出:
<code html>
<ul>
    <li><a href="http://example.com/2008/11">November 2008</a></li>
    <li><a href="http://example.com/2008/10">October 2008</a></li>
</ul>
</code>
==== 其它连接 ====
<code php>
<ul>
    <?php if($this->user->hasLogin()): ?>
        <li class="last"><a href="<?php $this->options->index('Logout.do'); ?>">Logout (<?php $this->user->screenName(); ?>)</a></li>
    <?php else: ?>
        <li class="last"><a href="<?php $this->options->adminUrl('login.php'); ?>">Login</a></li>
    <?php endif; ?>
</ul>
</code>
这些是可有可无的,只是为了方便登录登出。

===== footer.php =====

==== RSS地址 ====

页脚文件,推荐大家把一些较大的js放在这个文件中最后载入,不会影响阅读。看看我们的footer要讲解些什么?
<code php>
<a href="<?php $this->options->feedUrl(); ?>">Entries (RSS)</a> <!-- 文章的RSS地址连接 -->
<a href="<?php $this->options->commentsFeedUrl(); ?>">Comments (RSS)</a>. <!-- 评论的RSS地址连接 -->
</code>
另外别忘了添加
<code html><a href="http://typecho.org">Typecho</a></code>
以示对Typecho的支持,简单吧。

现在,你已完成了75%的嵌套,休息一下,后面的会轻松许多 :-D

===== post.php =====

post页和index是差不多的,但是我们还是要说一下不同之处。

==== Tag 标签 ====

<code php>Tags: <?php $this->tags(',', true, 'none'); ?></code>
这是获取当前单篇文章的标签,用“,”符号隔开。

==== 调用评论页 ====

<code php><?php include('comments.php'); ?></code>

===== comments.php =====
==== 评论列表 ====

<code php>
<h4><?php $this->commentsNum('No Response', 'One Response to"' . $this->title . '"', '%d Responses to "' . $this->title . '"'); ?></h4>
<ol id="comment_list">
    <?php $this->comments()->to($comments); ?>
        <?php while($comments->next()): ?>
    <li id="<?php $comments->theId(); ?>">
        <div class="comment_data">
                <?php echo $comments->sequence(); ?>. 
                <strong><?php $comments->author(); ?></strong>
                on <?php $comments->date('F jS, Y'); ?> at <?php $comments->date('h:i a'); ?>
            </div>
        <div class="comment_body"><?php $comments->content(); ?></div>
    </li>
    <?php endwhile; ?>
</ol>
</code>

还是循环输出评论:

| <php><?php $comments->theId(); ?></php> | 每个评论的唯一ID |
| <php><?php $comments->sequence(); ?></php> | 评论所在楼层 |
| <php><?php $comments->responseUrl(); ?></php> | 回复地址 |
| <php><?php $comments->responseId(); ?></php> | 回复框ID |
| <php><?php $comments->trackbackUrl(); ?></php> | trackback地址 |
| <php><?php $comments->author(); ?></php> | 评论者的名字 |
| <php><?php $comments->date('F jS, Y'); ?></php> | 评论日期 |
| <php><?php $comments->date('h:i a'); ?></php> | 评论时间 |
| <php><?php $comments->content(); ?></php> | 评论内容 |
结束循环。我们用有序列表<ol>,因为评论的发表是有先后顺序的。

==== 评论输入表单 ====

<code php>
<!-- 判断设置是否允许对当前文章进行评论 -->
<?php if($this->allow('comment')): ?>

    <h4 id="response">Leave a Reply</h4>

    <!-- 输入表单开始 -->
    <form method="post" action="<?php $this->commentUrl() ?>" id="comment_form">

        <!-- 如果当前用户已经登录 -->
        <?php if($this->user->hasLogin()): ?>
            <!-- 显示当前登录用户的用户名以及登出连接 -->
            <p>Logged in as <a href="<?php $this->options->adminUrl(); ?>"><?php $this->user->screenName(); ?></a>. 
            <a href="<?php $this->options->index('Logout.do'); ?>" title="Logout">Logout &raquo;</a></p>

        <!-- 若当前用户未登录 -->
        <?php else: ?>
            <!-- 要求输入名字、邮箱、网址 -->
        <p><input type="text" name="author" class="text" size="35" value="<?php $this->remember('author'); ?>" /><label>Name (Required)</label></p>
        <p><input type="text" name="mail" class="text" size="35" value="<?php $this->remember('mail'); ?>" /><label>E-mail (Required *will not be published)</label></p>
        <p><input type="text" name="url" class="text" size="35" value="<?php $this->remember('url'); ?>" /><label>Website</label></p>
        <?php endif; ?>

        <!-- 输入要回复的内容 -->
     <p><textarea rows="10" cols="50" name="text"><?php $this->remember('text'); ?></textarea></p>
     <p><input type="submit" value="Submit Comment" class="submit" /></p>
    </form>
<?php endif; ?>
</code>

很多情况下并不对评论文件进行修改,可以直接拿来使用写入相应的css。

===== 其它文件 =====
^ page.php | 页面的显示方式,通常情况下和 single.php 无差别 |
^ archive.php | 显示某分类下的文章列表、搜索结果列表显示时调用的文件 |

===== 结束语 =====
OK,这篇简短的入门讲解结束了,希望你看着不累,同时能对Typecho的模板系统了解一二,这样文章的目的也就达到了,针对当前文章的不明白的地方,欢迎到社区提出问题。谢谢。:-D