您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.1.3学习笔记-第五天
发布时间:2017-04-10 13:31:03编辑:雪饮阅读()
模板中可以直接嵌入php脚本
自定义模板标签:
建立文件TagLib/TagLibHd.class.php(与action目录同级)
<?php
//自定义标签库
import('TagLib');
Class TagLibHd extends TagLib{
Protected $tags=array(
'nav'=>array('attr'=>'limit,order','close'=>1)
);
Public function _nav($attr,$content){
$attr=$this->parseXmlAttr($attr);
$str=<<<str
<?php
\$dede_arcrank=M('arcrank')->order("{$attr['order']}")->limit({$attr['limit']})->select();
foreach(\$dede_arcrank as \$v):
?>
str;
$str.=$content;
$str.='<?php endforeach;?>';
return $str;
}
}
?>
当前项目配置文件中:
<?php
return array(
//'配置项'=>'配置值'
'APP_AUTOLOAD_PATH'=>'@.TagLib',
'TAGLIB_BUILD_IN'=>'Cx,Hd',
'DB_HOST'=>'localhost',
'DB_USER'=>'root',
'DB_PWD'=>'root',
'DB_NAME'=>'dedecmsv57utf8sp1',
'DB_PREFIX'=>'dede_',
);
?>
模板调用:
<nav limit='15' order='money ASC'>
<li>{$v.membername}</li>
</nav>
挂件式自定义标签:
于action同级目录Widget目录中建立HotWidget.class.php:
<?php
Class HotWidget extends Widget{
Public function render($data){
$data['blog']=M('area')->select();
return $this->renderFile('',$data);
}
}
?>
HotWidget.class.php同级目录建立Hot/Hot.html:
<ul>
<foreach name='blog' item='v'>
<li>{$v.name}</li>
</foreach>
</ul>
模板中调用:
{:W('Hot')}
数据缓存函数S的使用:
public function index(){
if(!$channes=S('Index_list')){
$m=M("channeltype");
$channes=$m->select();
//将数据缓存
S('Index_list',$channes,10);
}
$this->assign("channes",$channes);
$this->display();
}
ue编辑器的代码高亮:
<script type="text/javascript" src="/ueditor1_4_3_3-utf8-php/utf8-php/third-party/SyntaxHighlighter/shCore.js"></script>
<link rel="stylesheet" href="/ueditor1_4_3_3-utf8-php/utf8-php/third-party/SyntaxHighlighter/shCoreDefault.css">
<script type="text/javascript">SyntaxHighlighter.all();</script>
这样以来当前页面如果有代码就会高亮(前题是必需在ue编辑器中选择了代码语言所属):
选择代码语言后再该灰色输入框中所写的内容,最后就可以使用代码高亮
开启静态缓存:
在配置文件中开启静态缓存:
'HTML_CACHE_ON'=>true,
'HTML_CACHE_RULES'=>array(
'Index:index'=>array('{:module}_{:action}_{id}',10),
),
Index:index为缓存指定的控制器中的方法
{id}为缓存时地址栏的参数id
10为缓存时间参数,若为0,则是永久缓存
Redis动态缓存:
'DATA_CACHE_TYPE'=>'Redis',
'REDIS_HOST'=>'192.168.43.218',
'REDIS_PORT'=>6379,
'REDIS_TIMEOUT'=>'300',
REDIS_TIMEOUT务必配置,否则仅缓存了key,key的值并没有缓存
linux下redis默认端口6379并没有被防火墙例外,请先开启6379的例外,否则连接不上redis
添加图片水印:
import('ORG.Util.Image');
Image::water('./Public/Uploads/'.$info[0]['savename'],'./data/logo.png');
第一个参数为图片,第二个参数为水印图片
关键字词:thinkphp3.1.3,雪饮