urlRecord('网站首页');
}
//清除可能存在的栏目分类树id
cache(Data::CURR_CATEGORY_PATENT_ID, false);
//模板兼容性标签
$this->assign('id', false);
$this->assign('cid', false);
return $this->fetch();
}
/**
* 友链申请
* @param Request $request
* @return string
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
* @author 木子的忧伤
* @date 2021-10-17 1:03
*/
public function applylink(Request $request)
{
if (request()->isPost()) {
$data = Util::postMore([
['id', ''],
['title', ''],
['url', ''],
['image', ''],
['description', ''],
]);
$friendLinkValidate = new FriendLinkValidate();
if (!$friendLinkValidate->check($data)) {
$this->error($friendLinkValidate->getError());
}
//判断下用户是否存在
$info = friendLinkModel::where('url', $data['url'])->find();
if ($info) {
$this->error("记录已存在");
}
$data['status'] = 0;
$res = friendLinkModel::create($data);
if ($res) {
$this->success('申请成功,请耐心等待审核');
} else {
$this->error('提交失败,请联系站长查看');
}
} else {
//清除可能存在的栏目分类树id
cache(Data::CURR_CATEGORY_PATENT_ID, false);
//模板兼容性标签
$this->assign('id', false);
$this->assign('cid', false);
return $this->fetch();
}
}
/**
* 留言页面
* @param Request $request
* @return string
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
* @author 木子的忧伤
* @date 2021-10-17 1:03
*/
public function msg(Request $request)
{
if (request()->isPost()) {
$data = Util::postMore([
['author', ''],
['tel', ''],
['email', ''],
['content', ''],
]);
$data['create_time'] = time();
$data['reply_content'] = '';
$messageFormValidate = new MsgValidate();
if (!$messageFormValidate->check($data)) {
$this->error($messageFormValidate->getError());
}
$res = MessageFormModel::create($data);
if ($res) {
$this->success('留言成功');
} else {
$this->error('留言失败');
}
} else {
//清除可能存在的栏目分类树id
cache(Data::CURR_CATEGORY_PATENT_ID, false);
//模板兼容性标签
$this->assign('id', false);
$this->assign('cid', false);
return $this->fetch();
}
}
/**
* 关于页面
* @param Request $request
* @author 木子的忧伤
* @date 2022-06-21 23:48
*/
public function about(Request $request)
{
$id = "about";
//获取该文章
$documentModel = new Document();
$article = $documentModel->getInfo($id, Data::DOCUMENT_TYPE_PAGE);
if (!$article) {
$this->error('文章不存在或已删除!');
}
//添加当前页面的位置信息
$article['position'] = '首页>';
//更新浏览次数
$documentModel->where('id', $article['id'])->inc('view')->update();
$template = Data::DOCUMENT_TYPE_PAGE . '/' . ($article['theme'] ?: 'detail.html');
$templateFile = config('view.view_path') . $template;
if (!is_file($templateFile)) {
$this->error('模板文件不存在!');
}
$article['category_title'] = "单页";
//判断SEO 为空则取系统
$article['keywords'] = $article['keywords'] ?: web_config('keywords');
$article['description'] = $article['description'] ?: web_config('description');
//输出文章内容
$this->assign('apeField', $article);
$this->assign('id', $id);
//当前页面所属分类id
$this->assign('cid', $article['category_id']);
//设置文章的url
$article['link_str'] = make_detail_url($article);
//判断后台统计配置是否开启 1 开启
if (web_config("web_statistics") == 1) {
//统计url
$this->urlRecord($article['title']);
}
Log::info('详情页模板路径:' . $templateFile);
//去除后缀
$template = substr($template, 0, strpos($template, '.'));
return $this->fetch($template);
}
/**
* 标签列表
* @return mixed
* @author 木子的忧伤
* @date 2021-11-11 0:27
*/
public function tagList()
{
$where = Util::postMore([
['name', ''],
['page', 1],
['limit', 10]
]);
return app("json")->layui(TagModel::getList($where));
}
/**
* 生成sitemap.xml
* @return \think\Response
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public function sitemap(): \think\Response
{
//获取域名
$domain = request()->domain();
$cache_key = "sitemap.xml";
//先获取缓存是否存在
if ($content = cache($cache_key)){
return response($content)->header(['Content-Type'=>'application/xml']);
}
// 通过输出缓冲区内容,生成XML
$str = '';
$str.= '';
//首页
$str .= '';
$str .= '' . $domain . '';
$str .= '' . date("Y-m-d\TH:i:s+00:00",time()). '';
$str .= 'daily';
$str .= '1.0';
$str .= '';
//获取文章分类url
$documentCategoryModel = new DocumentCategoryModel();
$categoryInfo = $documentCategoryModel->field('id,alias,title,create_time')
->where('status', 1)
->order('id desc')->select();
foreach ($categoryInfo as $v) {
$str .= '';
$str .= '' . url('index/article/lists',["id"=>$v['id']],".html",$domain) . '';
$str .= '' . date("Y-m-d\TH:i:s+00:00",strtotime($v['create_time'])) . '';
$str .= 'always';
$str .= '0.8';
$str .= '';
}
//获取文章URL
$documentModel = new DocumentModel();
$documentInfo = $documentModel->field('id,alias,create_time')
->where('display', 1)
->order('id desc')->select();
foreach ($documentInfo as $v) {
$str .= '';
$str .= '' . url('/article/detail',["id"=>$v["alias"]?:$v['id']],".html",$domain) . '';
$str .= ''.date("Y-m-d\TH:i:s+00:00",strtotime($v['create_time'])) .'';
$str .= 'monthly';
$str .= '0.6';
$str .= '';
}
//获取文章标签页url
$documentModel = new TagModel();
$documentInfo = $documentModel->field('name,create_time')
->group('name')
->order('name desc')->select();
foreach ($documentInfo as $v) {
$str .= '';
$str .= '' . url('/article/tag',["t"=>$v["name"]],".html",$domain) . '';
$str .= ''.date("Y-m-d\TH:i:s+00:00",strtotime($v['create_time'])) .'';
$str .= 'monthly';
$str .= '0.6';
$str .= '';
}
$str .= '';
cache($cache_key,$str,24*60*60);//每日更新
// 将内容输出到浏览器
return response($str)->header(['Content-Type'=>'application/xml']);
}
}