对于finecms的模板中不能愉快地写sql语句,好麻烦,对于手册上写的语法,表示脑容量不够没看懂,索性直接改造一下,模板的引擎吧

   protected function _listdata($param){if(strpos($param,"|")){$rule  =  '#\|.+?\|#i';preg_match($rule,$param,$result);if(!$result) return array();$sql=substr($result[0],1,-1);$dbcache=100;$db = Controller::model('content');$data = $db->execute($sql, true, $dbcache);// var_dump(array(  'result' => $data, 'sql' => $sql, 'total' => isset($total) ? $total : count($data)));return array(  'result' => $data, 'sql' => $sql, 'total' => isset($total) ? $total : count($data));}
//以下是原来的代码$_param = explode(' ', $param);$param = array();

这样的话,就可以愉快地写sql语句了

下面写了个demo,大家可以试下

{list  sql=|select * from  fn_position_data   RIGHT JOIN   fn_content_1 ON `fn_content_1`.`id`=`fn_position_data`.`contentid`  where posid=6   order by fn_position_data.listorder asc| }<a href="{$t['url']}" title="{$t['title']}"><span>{date('y-m-d',$t['inputtime'])}</span>
{/list}

但是有一个问题,如果看你的模板就可以直接看到sql语句了,另外了没有对sql语句进行过滤,所以要进一步处理一下,因为这个是临时应付一下,所以暂时先这样

对于模板容易被别人看到的问题,可行的解决办法是这样的,把模板文件的扩展名改为.php ,并在解析模板的时候,去掉php标记就可以了

所以做了以下几点改动

第一,把模板文件的扩展名改为php,并在文件的头部加入了这样一句话<?php exit();?>

第二,修改模板的解析文件,主要的改动

 /*** 获取视图文件的路径*/protected function get_view_file($file_name) {//return $this->view_dir . $file_name . ((substr($file_name, strrpos($file_name, '.')) == '.html') ? '' : '.html');return $this->view_dir . $file_name . ((substr($file_name, strrpos($file_name, '.')) == '.php') ? '' : '.php');}
 /*** 加载视图文件*/protected function load_view_file($view_file) {if (!is_file($view_file)) {App::display_error(lang('app-8') . ': ' . $view_file);}$view_content = file_get_contents($view_file);$view_content= substr($view_content, 15);return $this->handle_view_file($view_content);}

这样就完成了模板的改造问题,这样,别有用心的人浏览模板文件时就会出现空白页面,起到了保护模板的作用

在做这个改动的时候,查看源文件,发现是在dayrui/core/common.php中引入的文件解析类,
如果要兼容其他的模板可以做一个新的解析类来兼容其它模板文件(个人认为原view类写的太复杂,脑容量小的根本就看不懂啊)

对finecms模板的改造sql相关推荐

  1. 数据库设计模板 + Excel创建sql语句(VBA)

    数据库设计模板 + Excel创建sql语句-VBA 1. 表格设计 2. 效果展示 3. VB代码 4. Excel测试文件下载 1. 表格设计 直接看图,3个页签 <建表语句>页签,把 ...

  2. finereport报表设计中模板数据集的sql语句中if的用法_报表工具中动态参数的灵活运用...

    报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ...

  3. cf(聚簇因子)调优,计划调优,SQL改造

    ---------------1.---------数据.检测准备--------------------------------------------          drop table TE ...

  4. Java安全-注入漏洞(SQL注入、命令注入、表达式注入、模板注入)

    文章目录 注入 SQL注入 JDBC拼接不当造成SQL注入 框架使用不当造成SQL注入 不安全的反射 命令注入 代码注入 表达式注入 Spel表达式注入 OGNL表达式注入 模板注入 注入 SQL注入 ...

  5. sql server cdc 清理_基于CDC技术的ElasticSearch索引同步机制

    概述 ElasticSearch作为一个基于Lucene的搜索引擎被广泛应用于各种应用系统,比如电商.新闻类.咨询类网站.在使用ElasticSearch开发应用的过程中,一个非常重要的过程是将数据导 ...

  6. SQL Server 2012如何打开2016的profiler文件

    作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10980191.html 背景 在上星期,公司负责support的同事接到反馈 ...

  7. 网易游戏 Flink SQL 平台化实践

    摘要:本文整理自网易游戏资深开发工程师林小铂在 Flink Forward Asia 2021 平台建设专场的演讲.主要内容包括: 网易游戏 Flink SQL 发展历程 基于模板 jar 的 Str ...

  8. JFinal3.0 sql管理与动态生成

    原文: 本节学习目标主要是使用JFinal中自带的Template Engin来实现对sql的管理.JFinal中为sql管理提供了3个指令#sql.#para.#namespace,来增强sql功能 ...

  9. SQL Server Profiler工具

    SQL Server Profiler工具 原文:SQL Server Profiler工具 一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下 ...

  10. 一个提高SQL Server操作效率的软件

    哥做的一个SQL Server助手软件,尚未完工:先凑合用下: 两个界面: 一个通过点击即可输入各种sql:包括按功能分类的SQL.SQL 语法成分.常用SQL语句模板(基本SQL.SQL连接)等几部 ...

最新文章

  1. 使用OpenCV搭建违章停车检测系统
  2. phpmyadmin底部出现提示“The configuration file now needs a secret passphrase (blowfish_secret). ”...
  3. Router OS之禁止P2P下载
  4. Java之旅(二)--- ServletContext
  5. 【ZooKeeper Notes 9】ZooKeepr日志清理
  6. Java设计模式-观察者模式(订阅发布模式)
  7. 高性能编程:三级缓存(LLC)访问优化
  8. Misc混合halcon算子,持续更新
  9. java基础进阶(文件列表,线程,线程组)编程实例(4篇)
  10. 【原】unity shader(3)反射贴图
  11. vivo NEX 3探索5G手机极致新形态:99.6%瀑布屏让左右无界 未来无限
  12. linux系统中删除一次性任务流程,Linux系统中的计划任务
  13. 彻底删除SQL Server2005(转)
  14. IE XML漏洞官方补丁下载
  15. VSCode中文版快捷键
  16. Python基础之文件和数据格式化
  17. Xpose_HOOK入门教程
  18. 王阳明:志不立,天下无可成之事
  19. 儿童拼图游戏软件测试,宝宝益智英语字母拼图大全(测试版)
  20. MAC使用SSH连接IPhone

热门文章

  1. sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set的解决方案(linux)
  2. contest14 CF160div2 oooxx oooxx ooooo
  3. Android 做一个简单记事本app
  4. 目标检测——Faster RCNN
  5. auto.js 基于控件的操作
  6. 微信会员卡实现门店信息化会员管理
  7. STM32F4 ETR计数
  8. 因为毕业半年挣了100万,帅地在CSDN被喷上热榜
  9. 计算机开机后桌面放大,开机后桌面图标变大 桌面图标变大了怎么处理?
  10. 网站封装APP详细打包教程