PbootCms扩展控制器源码分享

准备工作

PbootCms自V2.0.6开始新增了扩展控制器功能,的优点是升级不被覆盖,再也不懂担心自己二开的内容被升级覆盖啦。

每个人都有自己习惯的一些代码风格、方式,以下是我个人对PbootCms的一些扩展集合,会不定期更新一些内容。

各位只需要将以下代码复制到:/apps/home/controller/ExtLabelController.php

这个路径下就好啦。

当然还是要做一点点修改,如下:

文件路径:/apps/home/controller/ParserController.php大约在50行的如下代码:

//解析个人扩展标签,升级不覆盖

if(file_exists(APP_PATH.’/home/controller/ExtLabelController.php’)){

if(class_exists(‘apphomecontrollerExtLabelController’)){

$extlabel=new ExtLabelController();

$content=$extlabel->run($content);

}

}

移动到该方法的最下面,也就是在该方法的:

return$content;

之前,这个代码之前,最终方法如下:

//解析全局后置公共标签

public function parserAfter($content)

{

//默认页面信息替换

$content=str_replace(‘{pboot:pagetitle}’,'{pboot:sitetitle}-{pboot:sitesubtitle}’,$content);

$content=str_replace(‘{pboot:pagekeywords}’,'{pboot:sitekeywords}’,$content);

$content=str_replace(‘{pboot:pagedescription}’,'{pboot:sitedescription}’,$content);

$content=$this->parserSingleLabel($content);//单标签解析

$content=$this->parserSiteLabel($content);//站点标签

$content=$this->parserCompanyLabel($content);//公司标签

$content=$this->parserUserLabel($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->parserQrcodeLabel($content);//二维码生成

$content=$this->parserPageLabel($content);//CMS分页标签解析(需置后)

$content=$this->parserLoopLabel($content);//LOOP语句(需置后)

$content=$this->parserIfLabel($content);//IF语句(需置最后)

$content=$this->restorePreLabel($content);//还原不需要解析的内容

$content=$this->parserReplaceKeyword($content);//页面关键词替换

//解析个人扩展标签,升级不覆盖

if(file_exists(APP_PATH.’/home/controller/ExtLabelController.php’)){

if(class_exists(‘apphomecontrollerExtLabelController’)){

$extlabel=new ExtLabelController();

$content=$extlabel->run($content);

}

}

return$content;

}

为什么要这么做?因为实际开发过程中,会需要对后台输出的字段进行二次处理,那么如果扩展控制器放在前面处理,就会发生无法获取后台字段的情况。

那么我们只要将扩展控制器放到最后来执行,就可以啦。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/115551.html<

(1)
运维的头像运维
上一篇2025-02-18 03:36
下一篇 2025-02-18 03:37

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注