对finecms模板的改造sql
对于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相关推荐
- 数据库设计模板 + Excel创建sql语句(VBA)
数据库设计模板 + Excel创建sql语句-VBA 1. 表格设计 2. 效果展示 3. VB代码 4. Excel测试文件下载 1. 表格设计 直接看图,3个页签 <建表语句>页签,把 ...
- finereport报表设计中模板数据集的sql语句中if的用法_报表工具中动态参数的灵活运用...
报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ...
- cf(聚簇因子)调优,计划调优,SQL改造
---------------1.---------数据.检测准备-------------------------------------------- drop table TE ...
- Java安全-注入漏洞(SQL注入、命令注入、表达式注入、模板注入)
文章目录 注入 SQL注入 JDBC拼接不当造成SQL注入 框架使用不当造成SQL注入 不安全的反射 命令注入 代码注入 表达式注入 Spel表达式注入 OGNL表达式注入 模板注入 注入 SQL注入 ...
- sql server cdc 清理_基于CDC技术的ElasticSearch索引同步机制
概述 ElasticSearch作为一个基于Lucene的搜索引擎被广泛应用于各种应用系统,比如电商.新闻类.咨询类网站.在使用ElasticSearch开发应用的过程中,一个非常重要的过程是将数据导 ...
- SQL Server 2012如何打开2016的profiler文件
作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10980191.html 背景 在上星期,公司负责support的同事接到反馈 ...
- 网易游戏 Flink SQL 平台化实践
摘要:本文整理自网易游戏资深开发工程师林小铂在 Flink Forward Asia 2021 平台建设专场的演讲.主要内容包括: 网易游戏 Flink SQL 发展历程 基于模板 jar 的 Str ...
- JFinal3.0 sql管理与动态生成
原文: 本节学习目标主要是使用JFinal中自带的Template Engin来实现对sql的管理.JFinal中为sql管理提供了3个指令#sql.#para.#namespace,来增强sql功能 ...
- SQL Server Profiler工具
SQL Server Profiler工具 原文:SQL Server Profiler工具 一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下 ...
- 一个提高SQL Server操作效率的软件
哥做的一个SQL Server助手软件,尚未完工:先凑合用下: 两个界面: 一个通过点击即可输入各种sql:包括按功能分类的SQL.SQL 语法成分.常用SQL语句模板(基本SQL.SQL连接)等几部 ...
最新文章
- 使用OpenCV搭建违章停车检测系统
- phpmyadmin底部出现提示“The configuration file now needs a secret passphrase (blowfish_secret). ”...
- Router OS之禁止P2P下载
- Java之旅(二)--- ServletContext
- 【ZooKeeper Notes 9】ZooKeepr日志清理
- Java设计模式-观察者模式(订阅发布模式)
- 高性能编程:三级缓存(LLC)访问优化
- Misc混合halcon算子,持续更新
- java基础进阶(文件列表,线程,线程组)编程实例(4篇)
- 【原】unity shader(3)反射贴图
- vivo NEX 3探索5G手机极致新形态:99.6%瀑布屏让左右无界 未来无限
- linux系统中删除一次性任务流程,Linux系统中的计划任务
- 彻底删除SQL Server2005(转)
- IE XML漏洞官方补丁下载
- VSCode中文版快捷键
- Python基础之文件和数据格式化
- Xpose_HOOK入门教程
- 王阳明:志不立,天下无可成之事
- 儿童拼图游戏软件测试,宝宝益智英语字母拼图大全(测试版)
- MAC使用SSH连接IPhone
热门文章
- sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set的解决方案(linux)
- contest14 CF160div2 oooxx oooxx ooooo
- Android 做一个简单记事本app
- 目标检测——Faster RCNN
- auto.js 基于控件的操作
- 微信会员卡实现门店信息化会员管理
- STM32F4 ETR计数
- 因为毕业半年挣了100万,帅地在CSDN被喷上热榜
- 计算机开机后桌面放大,开机后桌面图标变大 桌面图标变大了怎么处理?
- 网站封装APP详细打包教程