<?php /** * @copyright (C)2016-2099 Hnaoyun Inc. * @author XingMeng * @email hnxsh@foxmail.com * @date 2018年2月14日 * 标签解析引擎控制器 */ namespace apphomecontroller; use corebasicController; use apphomemodelParserModel; use corebasicUrl; use apphomemodelDoModel; use apphomemodelMemberModel; class ParserController extends Controller { protected $model; protected $pre = array(); protected $var = array(); public function __construct() { $this->model = new ParserModel(); } public function _empty() { _404('您访问的地址有误,请核对后重试!'); } // 解析全局前置公共标签 public function parserBefore($content) { // 处理模板中不需要解析的标签 $content = $this->savePreLabel($content); $content = $this->parserSingleLabel($content); // 单标签解析 $content = $this->parserUserLabel($content); // 自定义标签 return $content; } // 解析全局后置公共标签 public function parserAfter($content) { // 默认页面信息替换 $content = str_replace('{pboot:pagetitle}', $this->config('other_title') ?: '{pboot:sitetitle}-{pboot:sitesubtitle}', $content); $content = str_replace('{pboot:pagekeywords}', '{pboot:sitekeywords}', $content); $content = str_replace('{pboot:pagedescription}', '{pboot:sitedescription}', $content); $content = str_replace('{pboot:keyword}', get('keyword', 'vars'), $content); // 当前搜索的关键字 // 解析个人扩展标签,升级不覆盖 if (file_exists(APP_PATH . '/home/controller/ExtLabelController.php')) { if (class_exists('apphomecontrollerExtLabelController')) { $extlabel = new ExtLabelController(); $content = $extlabel->run($content); } } $content = $this->parserSiteLabel($content); // 站点标签 $content = $this->parserCompanyLabel($content); // 公司标签 $content = $this->parserMemberLabel($content); // 会员标签 $content = $this->parserNavLabel($content); // 分类列表 $content = $this->parserSelectAllLabel($content); // CMS筛选全部标签解析 $content = $this->parserSelectLabel($content); // CMS筛选标签解析 $content = $this->parserSpecifySortLabel($content); // 指定分类 $content = $this->parserListLabel($content); // 指定列表 $content = $this->parserSpecifyContentLabel($content); // 指定内容 $content = $this->parserContentPicsLabel($content); // 内容多图 $content = $this->parserContentCheckboxLabel($content); // 内容多选调取 $content = $this->parserContentTagsLabel($content); // 内容tags调取 $content = $this->parserSlideLabel($content); // 幻灯片 $content = $this->parserLinkLabel($content); // 友情链接 $content = $this->parserMessageLabel($content); // 留言板 $content = $this->parserFormLabel($content); // 自定义表单 $content = $this->parserSubmitFormLabel($content); // 自定义表单提交 $content = $this->parserSqlListLabel($content); // 自定义SQL输出 $content = $this->parserQrcodeLabel($content); // 二维码生成 $content = $this->parserPageLabel($content); // CMS分页标签解析(需置后) $content = $this->parserIfLabel($content); // IF语句(需置最后) $content = $this->parserLoopLabel($content); // LOOP语句(需置后,不可放到if前面,否则有安全风险) $content = $this->restorePreLabel($content); // 还原不需要解析的内容 $content = $this->parserReplaceKeyword($content); // 页面关键词替换 return $content; } // 保存保留内容 public function savePreLabel($content) { $pattern = '/{pboot:pre}([sS]*?){/pboot:pre}/'; if (preg_match_all($pattern, $content, $matches)) { $count = count($matches[0]); for ($i = 0; $i < $count; $i ++) { $this->pre[] = $matches[1][$i]; end($this->pre); $content = str_replace($matches[0][$i], '#pre:' . key($this->pre) . '#', $content); } } return $content; } // 还原保留内容 public function restorePreLabel($content) { $pattern = '/#pre:([0-9]+)#/'; if (preg_match_all($pattern, $content, $matches)) { $count = count($matches[0]); for ($i = 0; $i < $count; $i ++) { $content = str_replace($matches[0][$i], $this->pre[$matches[1][$i]], $content); } } $content = str_replace('pboot@if', 'pboot:if', $content); // 还原系统解析if标签 return $content; } // 解析单标签 public function parserSingleLabel($content) { $content = str_replace('{pboot:ucenter}', Url::home('member/ucenter'), $content); // 用户中心 if (! ! $url = get("backurl")) { // 获取会跳地址 $content = str_replace('{pboot:login}', Url::home('member/login', null, "backurl=" . urlencode($url)), $content); // 登录地址 } else { $content = str_replace('{pboot:login}', Url::home('member/login'), $content); // 登录地址 } $content = str_replace('{pboot:register}', Url::home('member/register'), $content); // 注册地址 $content = str_replace('{pboot:isregister}', Url::home('member/isRegister'), $content); // 检查是否注册地址 $content = str_replace('{pboot:umodify}', Url::home('member/umodify'), $content); // 修改资料地址 $content = str_replace('{pboot:logout}', Url::home('member/logout'), $content); // 推出登录 $content = str_replace('{pboot:upload}', Url::home('member/upload'), $content); // 上传资料 if (strpos($content, '{pboot:sendemail}')) { session('sendemail', true); // 避免非法外部提交 $content = str_replace('{pboot:sendemail}', Url::home('member/sendEmail'), $content); // 上传资料 } else { session('sendemail', false); } $content = str_replace('{pboot:islogin}', session('pboot_uid') ? 1 : 0, $content); // 是否登录 if (strpos($content, '{pboot:mustlogin}') !== false) { $content = str_replace('{pboot:mustlogin}', '', $content); if (! session('pboot_uid')) { // 没有经登录 if ($this->config('login_no_wait')) { location(Url::home('member/login', null, "backurl=" . urlencode(get_current_url()))); } else { error('您的权限不足,无法浏览本页面!', Url::home('member/login', null, "backurl=" . urlencode(get_current_url()))); } } } $content = str_replace('{pboot:msgaction}', Url::home('message'), $content); // 留言提交路径 $content = str_replace('{pboot:scaction}', Url::home('search'), $content); // 搜索提交路径 $content = str_replace('{pboot:msgcodestatus}', $this->config('message_check_code') === '0' ? 0 : 1, $content); // 是否开留言启验证码 $content = str_replace('{pboot:formcodestatus}', $this->config('form_check_code') === '0' ? 0 : 1, $content); // 是否开启表单验证码 $content = str_replace('{pboot:checkcode}', CORE_DIR . '/code.php', $content); // 验证码路径 $content = str_replace('{pboot:lgpath}', Url::get('home/Do/area'), $content); // 多语言切换前置路径,如{pboot:lgpath}?lg=cn $content = str_replace('{pboot:appid}', $this->config('api_appid'), $content); // API认证用户 $content = str_replace('{pboot:t
相关知识
宠物网站模板图片网页UI素材免费下载(图片编号:788792)
bootstrap5实现宠物商店网站 Cat
HTML学生个人网站作业设计:宠物网站设计——萌宠有家(5页) HTML+CSS 简单DIV布局宠物介绍网页模板代码 DW学生个人网站制作成品下载
HTML5期末大作业:宠物网站设计——布偶猫(7页)带留言板 HTML+CSS+JavaScript web结课作业的源码 web网页设计实例作业 html大学生网站开发实践作业
【全源码及文档】基于JAVA的宠物网站设计与实现
[附源码]计算机毕业设计JAVAssm宠物交易网站论文
宠物网站素材图片
宠物网站设计的重要元素
简单宠物网页设计作业 静态HTML动物介绍网页作业 DW宠物网站模板下载 大学生简单野生动物网页作品代码
HTML5期末大作业:宠物网站设计——蓝色版爱宠之家带留言板宠物(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码
网址: (自适应手机端)宠物商店宠物网站源码宠物装备类网站pbootcms模板主题下载资源 https://m.mcbbbk.com/newsview6262.html
上一篇: 宠物市场app下载 |
下一篇: 【沈阳宠物网站】 |