制作模板
默认地,ModPHP 并不自带模板,在安装了 ModPHP 之后,你还需要为自己的网站制作或下载一套(主题)模板。
由于 ModPHP 是支持无限模块扩展的,所以这篇文档仅以默认的五个模块为例,向你介绍开发一套 ModPHP 模板所需要进行的工作。
必需或者建议创建的模板文件:
- index.php 索引文件,存放和展示站点的首页内容。
- functions.php 模板函数文件,存储与模板相关的自定义函数、Api Hook 回调函数,以及模板将会使用的全局变量等。
- header.php 公共头部文件,显示整站统一的网页头部内容。
- footer.php 公共脚部文件,显示整站统一的网页脚注内容。
- profile.php 用户详情页,显示登录用户的详细信息。
- category.php 分类目录页面,显示分类目录下的文章列表。
- single.php 文章详情页,显示文章的具体内容。
除了 function.php
,其他模板文件的命名都是可选的,但是要根据配置中的模板设定来选择正确的命名,否则将会无法正确加载页面。
调用并展示数据:
要调用存储在数据库中的数据,你可以使用函数或类方法来实现,相关的函数可以在 文档 >> 函数 的后面部分找到,类方法可以在 文档 >> 类 >> mod 中找到。 例如,要在文章详情页中显示一篇文章,你可以这么做:
<article>
<h1 class="title"><?php echo post_title(); ?></h1>
<section class="content">
<?php echo post_content(); ?>
</section>
</article>
在公共头部文件中,你可以使用页面面判断函数类选择在不同的页面显示不同的内容:
<?php
if(is_home()){
$title = '首页';
}elseif(is_category()){
$title = category_alias() ?: category_name();
}elseif(is_profile()){
$title = user_nickname() ?: user_name();
}
?>
<head>
<title><?php echo $title.' - '.config('site.name'); ?></title>
</head>
然后在其他模板文件中,你可以使用 include 命令引入这个头部文件:
<?php include 'header.php'; ?>
在分类目录页面,可以使用 get_multi_post() 来获取并列举文章:
<div class="container">
<ul>
<?php while(get_multi_post()): ?>
<li>
<h2 class="title"><a href="<?php echo post_link() ?: create_url(config('post.staticURI'), post_category('name'), post_id()); ?>"><?php echo post_title(); ?></a></h2>
<div class="desc"><?php echo substr(post_content(), 0, 100); ?>...</div>
<div class="meta">作者:<?php echo post_user('nickname') ?: post_user('name'); ?>,日期:<?php echo date('Y-m-d', post_time()); ?></div>
</li>
<?php endwhile; ?>
</ul>
</div>
你可以在模板函数文件中定义一些函数或变量,将功能相同的代码集中到一起,然后在模板中调用它们,也可以设置 Api Hook 回调函数,定义自己对数据的过滤和修饰规则。
例如上面在公共头部文件中进行页面判断代码,也可以做成函数放在模板函数文件中:
<?php
function get_title(){
if(is_home()){
$title = '首页';
}elseif(is_category()){
$title = category_alias() ?: category_name();
}elseif(is_profile()){
$title = user_nickname() ?: user_name();
}
return $title.' - '.config('site.name');
}
然后直接在头部文件中调用这个函数:
<head>
<title><?php echo get_title(); ?></title>
</head>
要创作出漂亮又功能强大的模板,你需要更多地了解 ModPHP 所提供地各类函数、对象及其他特性,并且熟练掌握 HTML、CSS 和 JavaScript。
另外,你可以到互联网上下载现有的网站模板,对其中的内容进行一定的修改,加入 ModPHP 的元素,让其成为一个 ModPHP 主题模板,从而加快你的开发进度。
在多套模板之间进行切换:
ModPHP 所加载的模板,是由 config('mod.template.savePath')
设定的,假如你的网站存在多套可供选择的模板,你应当将它们分别存放在不同的文件夹中,然后通过写改配置来设置应当调用的模板,例如可以设置 config('mod.template.savePath', 'template/default/')
来调用 default
模板。