网站教程

当前位置:首页>教程新闻>网站教程
全部 网站教程 SEO优化 网站建设 网站设计
pbootcms制作sitemap.html网站地图
所属栏目:网站教程 发布日期:2021-10-24

方法和之前说的生成TXT地图差不多。

1:我们先复制一个模型文件,具体的路径如图,如果之前做过txt的,则直接复制TXT的模型文件即可,否则复制sitmapxmodel.php并改名为:SitehtmlModel.php,请注意大小写。


image.png

2:复制之后,需要对此文件进行修改。 一是CLASS后面调用的模型名称,改成本文件的名称。

    第二步是增加 a.title,这个一共加两处,第二处在下面一点。一看就懂的。这个很重要。因为如果这里不添加的话,后面在生成HTML的时候无法引用到文章的标题出来。

image.png


3:控制器里面复制一个文件。如图并修改名称。

image.png

4:打开SitehtmlController.php

    image.png


醉顶部增加一个网站手页的标题。不加也可以。这里。

  在列表位置处。每一个$link = 的下面增加一行: $title2  (此处名字自取,我为了方便记和容易识别,采用了标题加数字。)

同时将下面的字符串连接处改为:

 $str .= $this->makeNode($link, $title2);


image.png


对于内容区内容,我修改为:

image.png


醉后,将节点位置改成:title2

image.png



5: 添加自定义路由.  我用的是:  sitehtml.html  ,这里请记住不能使用:sitemap.html,至于是什么原因,我也没有研究过。可能是因为和上面sitemap有重复,所以打开:sitemap.html会也打开XML格式。不重要

image.png

image.png


6: 此时,已经大功完成了。但是我们发现它太丑了,不像是一个HTML应该有的样子。好吧。那我们再给它加的CSS样式吧。并且加上HTML的头部和尾部。


image.png


7: 我们在上面位置添加HTML标题输出。


image.png


在醉底部添加HTML页面的尾部并写上CSS样式。

image.png


刷新一下看看效果吧。

image.png



到此,完全结束。相信你已经会了。

由于SitehtmlController.php代码修改比较多,为了帮大家省点时间。故贴出代码,可直接复制过去。

<?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 '<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>网站地图</title>
</head>
<body>
<div>
';
        $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 . "
</urlset>";
    }

    // 生成结点信息
   
    private function makeNode($link,$title2)
    {

        $node = '<a href="' . get_http_url() . $link.'"  target="_blank" style="display:block"> ' . $title2.'</a> ';
        return $node;

    }
     

}
 echo '</div></body></html>';
  echo '<style>
  html,body{margin:0; padding:0; font-size:14px; line-height:24px;}
   a{text-decoration:none; color:#000;}
   .main{width:1200px; margin:50px auto; border:1px solid #ddd; padding:30px;}
  </style>
  ';