EMLOG风格制作教程(结构分析之header篇)

作者Kuma 文章分类 分类:About Designs 文章评论 1条评论 阅读次数 已被围观 2418

        上一讲讲了EMLOG默认模板的主体结构,从这一讲开始我将给大家讲解EMLOG默认模板的各个文件的具体结构,好让大家最细致地了解EMLOG模板的脉络。而适逢本教程进行的时候EMLOG发布了3.4的新版本,本教程跟随官方进度,将以3.4的默认模板为例,3.4以下模板不适用。本讲将和大家一起分析EMLOG默认模板的header.php。

        前面说了,header.php一般是生成博客界面的上半部分,一般来说包括了博客名字,博客介绍,博客的各个菜单。有时候会包含一个搜索栏。其实大多网站在结构上都包括这这几个部分:header、content、footer。还有很多会包含sider。我们现在就来分析默认模板的header。

       现在用网页编辑软件打开默认模板的header.php,不要用记事本,用DW或者Notepad++以及其他网页编辑软件都可以,建议使用Notepad++。

        打开header之后,你会发现header事实上可以分为2个部分:模板信息和主题体HTML标记。这两部分以<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">为划分,上面部分为模板信息,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">及其下半部分为主体HTML标记。

        模板信息

       模板信息写在第一个PHP标签里面,即是第1到11行。模板信息主要是给后台的模板预览时读取模板信息使用的。下面来分析模板信息的各个项,括号内红色字体是我的注释:

  • Template Name:默认模板这里是模板的名字,例如此时你在后台看到的模板名字就是“默认模板”
  • Description:这是emlog的默认模板,简洁明快 ……(这是模板的简介
  • Author:emlog开发小组(这是作者名字
  • Author Url:http://www.emlog.net这是作者的主页
  • Sidebar Amount:1(这是边栏个数,如果你的模板有2个边栏,即是3栏式的话,这里就填2,默认模板是1个边栏,所以为1

        主体HTML标记

        主体HTML标记又可以分为2个部分,及包含在<head></head>标签内的为一个部分,包含在标签<body>后的为一个部分。下面分析两个部分的每一行,括号内的是我的分析注释。HTML标签我将不会讲解,看下面的部分请自学HTML标记。PHP代码已被我用蓝色标记。

  • head部分
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  3. <meta name="keywords" content="<?php echo $site_key; ?>" />(博客的关键字,这里的PHP代码提取的是你在后台博客设置里面“博客关键字”里面填写的信息。)
  4. <meta name="description" content="<?php echo $bloginfo; ?>" />(博客的描述,这里的PHP调用的是后台“博客描述”里面的信息
  5. <meta name="generator" content="emlog" />(generator公共头像服务预留位置
  6. <title><?php echo $blogtitle; ?></title>(博客名字
  7. <link rel="EditURI" type="application/rsd+xml" title="RSD" href="<?php echo BLOG_URL; ?>xmlrpc.php?rsd" />(远程过程调用开放接口,用于支持离线写作
  8. <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="<?php echo BLOG_URL; ?>wlwmanifest.xml" />(专门为Live Writer开放的离线写作接口
  9. <link rel="alternate" type="application/rss+xml" title="RSS"  href="<?php echo BLOG_URL; ?>rss.php">(RSS输出接口
  10. <link href="<?php echo TEMPLATE_URL; ?>main.css" rel="stylesheet" type="text/css" />(主体CSS样式加载,PHP代码为模板的网络绝对路径
  11. <script src="<?php echo BLOG_URL; ?>lib/js/common_tpl.js" type="text/javascript"></script>(前台公用JS文件加载,PHP代码为博客的网络绝对路径
  12. <?php doAction('index_head'); ?> header挂载点
  13. </head>
  • body部分
  1. <body>
  2. <div class="main">
  3.  <div class="header">
  4.   <ul>
  5.    <li id="title"><h1><a href="<?php echo BLOG_URL; ?>"><?php echo $blogname; ?></a></h1></li>(博客名字
  6.    <li id="tagline"><?php echo $bloginfo; ?></li>(博客描述
  7.   </ul>
  8.   <ul id="menus">(菜单开始标记
  9.    <li class="menus1"><a href="<?php echo BLOG_URL; ?>">首页</a></li>(首页
  10.    <?php (从这里开始将循环读取你的所有自定义页面的标题,并加入菜单中,例如你自定义了一个“留言”页面,那么这里将读取这个页面的标题“留言”将其加入到菜单里面
  11.    foreach ($navibar as $key => $val):
  12.    if ($val['hide'] == 'y'){continue;}
  13.    if (empty($val['url'])){$val['url'] = BLOG_URL.'?post='.$key;}
  14.    ?>
  15.    <li class="menus2"><a href="<?php echo $val['url']; ?>" target="<?php echo $val['is_blank']; ?>"><?php echo $val['title']; ?></a></li>
  16.    <?php endforeach;?>(循环读取自定义页面标题结束
  17.    <?php doAction('navbar', '<li class="menus2">', '</li>'); ?>(这里是将读取你所有插件生成的菜单,例如你安装了相册插件,并设置使之在菜单里出现“相册”,那么这里将读取“相册”到菜单里
  18.    <?php if(ROLE == 'admin' || ROLE == 'writer'): ?>(这里开始将后台登陆链接加入到菜单中,删掉本部分代码菜单中将不会显示“登陆”链接
  19.    <li class="menus2"><a href="<?php echo BLOG_URL; ?>admin/write_log.php">写日志</a></li>
  20.    <li class="menus2"><a href="<?php echo BLOG_URL; ?>admin/">管理中心</a></li>
  21.    <li class="menus2"><a href="<?php echo BLOG_URL; ?>admin/?action=logout">退出</a></li>
  22.    <?php else: ?>
  23.    <li class="menus2"><a href="<?php echo BLOG_URL; ?>admin/">登录</a></li>
  24.    <?php endif; ?>(后台登陆链接结束
  25.   </ul>(菜单结束标记
  26.   <div class="clear"></div>
  27.  </div>

         好了,header.php分析结束,重要的东西我都标注完了。这里没有讲HTML和DIV+CSS知识,不会的朋友可以自己看看相关书籍。在header.php里面我们需要特别注意这两个参数:<?php echo BLOG_URL;> <?php echo TEMPLATE_URL; ?>.前者是博客的网络绝对路径,如我的博客绝对路径即是“http://mouselife.cn/”。需要说明的是这里面已经包含了域名后面的那个斜杠,所以在使用的时候不要再多加一个斜杠了。后者是模板的网络绝对路径,也包含了“/”,使用的时候不要再加上“/”了,例如上面加载CSS的时候路径写的是“<?php echo TEMPLATE_URL; ?>main.css”而不是“<?php echo TEMPLATE_URL; ?>/main.css”。

        header.php相对于3.3的主要变化即是上面这两个参数,3.3使用的博客路径是相对路径,3.4变为了绝对路径。而模板路径的参数名字改变了,由<?php echo TPL_PATH; ?>变为<?php echo TEMPLATE_URL; ?>。另外新增了两个离线写作接口。

       《 EMLOG风格制作教程(结构分析之header篇)》就到这里结束了,有不懂的请在这篇博文下面留言,我会尽力一一回答。敬请期待《 EMLOG风格制作教程(结构分析之log_list篇)》。

分类:About Designs
标签: emlog theme 风格 教程

通告: http://mouselife.net/tb.php?sc=e2fe83&id=43

评论:

  1. [回复]小饶同学发表于 2010-10-06 10:46
    谢谢
    正想做个自己的模板
    • [回复]Kuma发表于 2010-10-06 11:47
      @小饶同学:努力,加油!

发表评论: