之前發(fā)布過一篇文章講如何用PBOOTCMS生成txt后綴的地區(qū)圖。
pbootcms制作sitemap.txt網站地圖
http://www.zuoan.com.cn/News3/449.html
請自行查閱。
當時由于沒有開發(fā)需要,所以沒有繼續(xù)探討生成sitemap.html。
正好今天頭來無事,我們來探討一下如何生成sitemap.html吧。
歡迎隨便轉載,不需要注明來源和出處,我們的目的是讓知識和內容得到分享和傳播。
方法和之前說的生成TXT地圖差不多。
1:我們先復制一個模型文件,具體的路徑如圖,如果之前做過txt的,則直接復制TXT的模型文件即可,否則復制sitmapxmodel.php并改名為:SitehtmlModel.php,請注意大小寫。
2:復制之后,需要對此文件進行修改。 一是CLASS后面調用的模型名稱,改成本文件的名稱。
第二步是增加 a.title,這個一共加兩處,第二處在下面一點。一看就懂的。這個很重要。因為如果這里不添加的話,后面在生成HTML的時候無法引用到文章的標題出來。
3:控制器里面復制一個文件。如圖并修改名稱。
4:打開SitehtmlController.php
醉頂部增加一個網站手頁的標題。不加也可以。這里。
在列表位置處。每一個$link = 的下面增加一行: $title2 (此處名字自取,我為了方便記和容易識別,采用了標題加數字。)
同時將下面的字符串連接處改為:
$str .= $this->makeNode($link, $title2);
對于內容區(qū)內容,我修改為:
醉后,將節(jié)點位置改成:title2
5: 添加自定義路由. 我用的是: sitehtml.html ,這里請記住不能使用:sitemap.html,至于是什么原因,我也沒有研究過??赡苁且驗楹蜕厦鎠itemap有重復,所以打開:sitemap.html會也打開XML格式。不重要
6: 此時,已經大功完成了。但是我們發(fā)現(xiàn)它太丑了,不像是一個HTML應該有的樣子。好吧。那我們再給它加的CSS樣式吧。并且加上HTML的頭部和尾部。
7: 我們在上面位置添加HTML標題輸出。
在醉底部添加HTML頁面的尾部并寫上CSS樣式。
刷新一下看看效果吧。
到此,完全結束。相信你已經會了。
由于SitehtmlController.php代碼修改比較多,為了幫大家省點時間。故貼出代碼,可直接復制過去。
namespace apphomecontroller;
use core/basic/Controller;
use app/home/model/SitehtmlModel;
use core/basicUrl;
class SitehtmlController extends Controller
{
protected $model;
public function __construct()
{
$this->model = new SitehtmlModel();
}
public function index()
{
echo '
網站地圖 ';
';
$str .= $this->makeNode('', '網站首頁'); // 根目錄
$url_break_char = $this->config('url_break_char') ?: '_';
$sorts = $this->model->getSorts();
foreach ($sorts as $value) {
if ($value->outlink) {
continue;
$title2 = $value->name;
} elseif ($value->type == 1) {
$value->urlname = $value->urlname ?: 'list';
if ($value->filename) {
$link = Url::home('/home/Index/' . $value->filename);
$title2 = $value->name;
} else {
$link = Url::home('/home/Index/' . $value->urlname . $url_break_char . $value->scode);
$title2 = $value->name;
}
$str .= $this->makeNode($link, $title2);
} else {
$value->urlname = $value->urlname ?: 'list';
if ($value->filename) {
$link = Url::home('home/Index/' . $value->filename);
$title2 = $value->name;
} else {
$link = Url::home('home/Index/' . $value->urlname . $url_break_char . $value->scode);
$title2 = $value->name;
}
$str .= $this->makeNode($link,$title2);
$contents = $this->model->getSortContent($value->scode);
foreach ($contents as $value2) {
if ($value2->outlink) { // 外鏈
continue;
$title2 = $value2->title;
} else {
$value2->urlname = $value2->urlname ?: 'list';
if ($value2->filename && $value2->sortfilename) {
$link = Url::home('home/Index/' . $value2->sortfilename . '/' . $value2->filename, true);
$title2 = $value2->title;
} elseif ($value2->sortfilename) {
$link = Url::home('home/Index/' . $value2->id, true);
$title2 = $value2->title;
} elseif ($value2->contentfilename) {
$link = Url::home('home/Index/' . $value2->urlname . $url_break_char . $value2->scode . '/' . $value2->filename, true);
$title2 = $value2->title;
} else {
$link = Url::home('home/Index/' . $value2->urlname . $url_break_char . $value2->scode . '/' . $value2->id, true);
$title2 = $value2->title;
}
}
$str .= $this->makeNode($link, $title2);
}
}
}
echo $str . "
";
}
// 生成結點信息
private function makeNode($link,$title2)
{
$node = ' ' . $title2.' ';
return $node;
}
}
echo '
echo '
';