PbootCMS修改自定义标签获取标签备注名

发布时间:11个月前 作者:超级管理员 热度:494℃
今天客户反馈自己不会修改模板中的一些文字,故所以有了以下二开教程!尽量让后台可以控制的更多,这样方便用户自己操作,也避免很多絮叨!

今天客户反馈自己不会修改模板中的一些文字,故所以有了以下二开教程!尽量让后台可以控制的更多,这样方便用户自己操作,也避免很多絮叨!

PbootCMS修改自定义标签获取标签备注名

开发步骤

修改后的函数

函数位置:/apps/home/controller/ParserController.php

    // 解析自定义标签
    public function parserUserLabel($content)
    {
        $pattern_value = '/{label:value_([w]+)(s+[^}]+)?}/';
        $pattern_name = '/{label:name_([w]+)(s+[^}]+)?}/';
        if(preg_match_all($pattern_value, $content, $matches))
        {
            $data = $this->model->getLabel();
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i ++) {
                if (! $data) { // 无数据时直接替换为空
                    $content = str_replace($matches[0][$i], '', $content);
                    continue;
                }
                $params = $this->parserParam($matches[2][$i]);
                switch ($matches[1][$i]) {
                    default:
                        if (isset($data[$matches[1][$i]])) {
                            if ($data[$matches[1][$i]]['type'] == 3 && $data[$matches[1][$i]]['value']) {
                                if (! preg_match('/^http/', $data[$matches[1][$i]]['value'])) {
                                    $data[$matches[1][$i]]['value'] = $this->adjustLabelData($params, SITE_DIR . $data[$matches[1][$i]]['value']);
                                } else {
                                    $data[$matches[1][$i]]['value'] = $this->adjustLabelData($params, $data[$matches[1][$i]]['value']);
                                }
                            }
                            $content = str_replace($matches[0][$i], $this->adjustLabelData($params, $data[$matches[1][$i]]['value']), $content);
                        }
                }
            }
        }
        if(preg_match_all($pattern_name, $content, $matches))
        {
            $data = $this->model->getLabel();
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i ++)
            {
                if (! $data)
                {
                    // 无数据时直接替换为空
                    $content = str_replace($matches[0][$i], '', $content);
                    continue;
                }
                $params = $this->parserParam($matches[2][$i]);
                switch ($matches[1][$i])
                {
                    default:
                        if (isset($data[$matches[1][$i]]))
                        {
                            $content = str_replace($matches[0][$i], $this->adjustLabelData($params, $data[$matches[1][$i]]['description']), $content);
                        }
                }
            }
        }
        return $content;
    }

修改模型

模型位置:/apps/home/model/ParserModel.php

    // 自定义标签,不区分语言,兼容跨语言
    public function getLabel()
    {
        return parent::table('kaifa_label')->decode()->column('value,type,description', 'name');
    }

至此通过{label:value_XXX}可以调用标签内容  通过{label:name_XXX}可以调用标签名称

优化点击名称快速复制标签

新增js复制函数

// 快捷复制调用标签
function copyText(text)
{
      var input = document.getElementById("copyText");
      input.value = '{'+text+'}'; // 修改文本框的内容
      input.select(); // 选中文本
      document.execCommand("copy"); // 执行浏览器复制命令
      layer.msg('复制标签成功')
}

修改模板给名称和内容增加触发事件

<a href="javascript:;" onclick="copyText('label:value_[value->name]');">
<a href="javascript:;" onclick="copyText('label:name_[value->name]');">
<!-- 内容复制区域 -->
<textarea id="copyText" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;"></textarea>

这样就不用一个一个去拼调用标签了,相对便捷!又想法的同学可以尝试一下。

文章链接:https://www.94kaifa.com/kf/10025.html

文章标题:PbootCMS修改自定义标签获取标签备注名

文章版权:94KAIFA(www.94kaifa.com) 所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

本文最后更新发布于 2023-08-23 17:41:23 ,某些文章具有时效性,若有错误或已失效,请联系客服处理:75109479@qq.com

关于我们
本站上线于2023年09月01日,专注PbootCMS模板制作及整合,提供优质的企业网站模板、建站技术教程、网页素材、网站源码下载,更有仿站开发、网站维护等业务。做中小站长企业快速建站好帮手。
站长QQ:532088631
微信群聊
微信群聊
联系方式
技术交流QQ群号201010290
电话:400-0707-327
邮箱:kefu@kaifacn.com
坐标:西安市雁塔区高新路6号
陕ICP备2020015383号 陕公网安备61019002001930号

Copyright © 2023 94KAIFA All Rights Reserved.本站采用创作共用版权 CC 4.0 BY-SA 许可协议