W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
默認(rèn)地,ModPHP 并不自帶模板,在安裝了 ModPHP 之后,你還需要為自己的網(wǎng)站制作或下載一套(主題)模板。
由于 ModPHP 是支持無(wú)限模塊擴(kuò)展的,所以這篇文檔僅以默認(rèn)的五個(gè)模塊為例,向你介紹開發(fā)一套 ModPHP 模板所需要進(jìn)行的工作。
除了 function.php
,其他模板文件的命名都是可選的,但是要根據(jù)配置中的模板設(shè)定來(lái)選擇正確的命名,否則將會(huì)無(wú)法正確加載頁(yè)面。
要調(diào)用存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),你可以使用函數(shù)或類方法來(lái)實(shí)現(xiàn),相關(guān)的函數(shù)可以在?文檔?>>?函數(shù)?的后面部分找到,類方法可以在?文檔?>>?類?>>?mod?中找到。 例如,要在文章詳情頁(yè)中顯示一篇文章,你可以這么做:
<article>
? ? <h1 class="title"><?php echo post_title(); ?></h1>
? ? <section class="content">
????? ? <?php echo post_content(); ?>
? ? </section>
</article>
在公共頭部文件中,你可以使用頁(yè)面面判斷函數(shù)類選擇在不同的頁(yè)面顯示不同的內(nèi)容:
<?php
? ? if(is_home()){
????? ? $title = '首頁(yè)';
? ? }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 命令引入這個(gè)頭部文件:
<?php include 'header.php'; ?>
在分類目錄頁(yè)面,可以使用 get_multi_post() 來(lái)獲取并列舉文章:
<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ù),定義自己對(duì)數(shù)據(jù)的過(guò)濾和修飾規(guī)則。
例如上面在公共頭部文件中進(jìn)行頁(yè)面判斷代碼,也可以做成函數(shù)放在模板函數(shù)文件中:
<?php
function get_title(){
? ? if(is_home()){
? ? ? ? $title = '首頁(yè)';
? ? }elseif(is_category()){
? ? ? ? $title = category_alias() ?: category_name();
? ? }elseif(is_profile()){
? ? ? ? $title = user_nickname() ?: user_name();
? ? }
? ? return $title.' - '.config('site.name');
}
然后直接在頭部文件中調(diào)用這個(gè)函數(shù):
<head>
????<title><?php echo get_title(); ?></title>
</head>
要?jiǎng)?chuàng)作出漂亮又功能強(qiáng)大的模板,你需要更多地了解 ModPHP 所提供地各類函數(shù)、對(duì)象及其他特性,并且熟練掌握 HTML、CSS 和 JavaScript。
另外,你可以到互聯(lián)網(wǎng)上下載現(xiàn)有的網(wǎng)站模板,對(duì)其中的內(nèi)容進(jìn)行一定的修改,加入 ModPHP 的元素,讓其成為一個(gè) ModPHP 主題模板,從而加快你的開發(fā)進(jìn)度。
在多套模板之間進(jìn)行切換:
ModPHP 所加載的模板,是由?config('mod.template.savePath')
?設(shè)定的,假如你的網(wǎng)站存在多套可供選擇的模板,你應(yīng)當(dāng)將它們分別存放在不同的文件夾中,然后通過(guò)寫改配置來(lái)設(shè)置應(yīng)當(dāng)調(diào)用的模板,例如可以設(shè)置?config('mod.template.savePath', 'template/default/')
?來(lái)調(diào)用 default
模板。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: