制作模板

2018-06-13 16:54 更新

默認地,ModPHP 并不自帶模板,在安裝了 ModPHP 之后,你還需要為自己的網(wǎng)站制作或下載一套(主題)模板。

由于 ModPHP 是支持無限模塊擴展的,所以這篇文檔僅以默認的五個模塊為例,向你介紹開發(fā)一套 ModPHP 模板所需要進行的工作。

必需或者建議創(chuàng)建的模板文件:

  • index.php??索引文件,存放和展示站點的首頁內(nèi)容。
  • functions.php??模板函數(shù)文件,存儲與模板相關(guān)的自定義函數(shù)、Api Hook 回調(diào)函數(shù),以及模板將會使用的全局變量等。
  • header.php??公共頭部文件,顯示整站統(tǒng)一的網(wǎng)頁頭部內(nèi)容。
  • footer.php??公共腳部文件,顯示整站統(tǒng)一的網(wǎng)頁腳注內(nèi)容。
  • profile.php??用戶詳情頁,顯示登錄用戶的詳細信息。
  • category.php??分類目錄頁面,顯示分類目錄下的文章列表。
  • single.php??文章詳情頁,顯示文章的具體內(nèi)容。

除了 function.php,其他模板文件的命名都是可選的,但是要根據(jù)配置中的模板設(shè)定來選擇正確的命名,否則將會無法正確加載頁面。

調(diào)用并展示數(shù)據(jù):

要調(diào)用存儲在數(shù)據(jù)庫中的數(shù)據(jù),你可以使用函數(shù)或類方法來實現(xiàn),相關(guān)的函數(shù)可以在?文檔?>>?函數(shù)?的后面部分找到,類方法可以在?文檔?>>??>>?mod?中找到。 例如,要在文章詳情頁中顯示一篇文章,你可以這么做:

<article>
? ? <h1 class="title"><?php echo post_title(); ?></h1>
? ? <section class="content">
????? ? <?php echo post_content(); ?>
? ? </section>
</article>

在公共頭部文件中,你可以使用頁面面判斷函數(shù)類選擇在不同的頁面顯示不同的內(nèi)容:

<?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>

你可以在模板函數(shù)文件中定義一些函數(shù)或變量,將功能相同的代碼集中到一起,然后在模板中調(diào)用它們,也可以設(shè)置 Api Hook 回調(diào)函數(shù),定義自己對數(shù)據(jù)的過濾和修飾規(guī)則。

例如上面在公共頭部文件中進行頁面判斷代碼,也可以做成函數(shù)放在模板函數(shù)文件中:

<?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');
}

然后直接在頭部文件中調(diào)用這個函數(shù):

<head>
????<title><?php echo get_title(); ?></title>
</head>

要創(chuàng)作出漂亮又功能強大的模板,你需要更多地了解 ModPHP 所提供地各類函數(shù)、對象及其他特性,并且熟練掌握 HTML、CSS 和 JavaScript。 另外,你可以到互聯(lián)網(wǎng)上下載現(xiàn)有的網(wǎng)站模板,對其中的內(nèi)容進行一定的修改,加入 ModPHP 的元素,讓其成為一個 ModPHP 主題模板,從而加快你的開發(fā)進度。 在多套模板之間進行切換: ModPHP 所加載的模板,是由?config('mod.template.savePath') ?設(shè)定的,假如你的網(wǎng)站存在多套可供選擇的模板,你應(yīng)當將它們分別存放在不同的文件夾中,然后通過寫改配置來設(shè)置應(yīng)當調(diào)用的模板,例如可以設(shè)置?config('mod.template.savePath', 'template/default/') ?來調(diào)用 default 模板。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號