DedeCMS自定义宏标记静态页面部分动态显示
原创重庆seo 2017-02-14 21:04:02 阅读() dedecms
静态页面相对动态页面更利于优化,其实本来没有太大区别,动态页面维护更方便,但用户每次访问都读取数据库,对服务器有一定要求。如果需要在静态页面增加动态内容主要有以下方法,一是用Ajax异步加载文章;二是用自定义宏标记。
自定义宏标记并不是实时的,有缓存时间,本文将介绍的修改方法。
建立自定义宏标记随机动态调用文章
增加名为Hot的标记,在正常显示内容里面填写随机文章通用标签(orderby根据实际情况修改),其他默认即可。
{dede:arclist row="10" titlelen="38" orderby="rand"} <li><a href="[field:arcurl/]" target="_blank">[field:title/]</a></li> {/dede:arclist}
用js调用并取消缓存才能动态显示,下面橙色部分是增加内容。
<script src='/plus/mytag_js.php?aid=1&nocache=1' language='javascript'></script>
另一种自定义宏标记动态调用方法
找到/plus/mytag_js.php,复制一份并另存为mytag_js_hot.php。打开该文件,替换成下面代码
<?php /** *自定义标签js调用方式(调用热点文章) */ require_once(dirname(__FILE__).'/../include/common.inc.php'); require_once(DEDEINC.'/arc.partview.class.php'); if(isset($arcID)) $aid = $arcID; $arcID = $aid = (isset($aid) && is_numeric($aid)) ? $aid : 0; if($aid==0) die(" document.write('Request Error!'); "); //这是新加的代码,表示typeid if(isset($typeID)) $tid = $typeID; $typeID = $tid = (isset($tid) && is_numeric($tid)) ? $tid : 0; if($tid==0) die(" document.write('Request Error!'); "); $pv = new PartView($typeid=$typeID); $row = $pv->dsql->GetOne(" SELECT * FROM `dede_mytag` WHERE aid='$aid' "); if(!is_array($row)) { $myvalues = " "; } else { $tagbody = $row['normbody']; $pv->SetTemplet($tagbody, 'string'); $myvalues = $pv->GetResult(); $myvalues = str_replace('"','\"',$myvalues); $myvalues = str_replace("\r","\\r",$myvalues); $myvalues = str_replace("\n","\\n",$myvalues); $myvalues = " \r\n"; //file_put_contents($cacheFile, $myvalues); echo $myvalues; //不写入缓存文件,直接输出JS代码 }
这个方法本人未测试成功,推荐用第一种方法。
扩展阅读
- DedeCMS移动栏目导航channelartlist判断当前栏目错误
- DedeCMS更换内容模型后文章不显示无损迁移数据
- DedeCMS表单自定义字段地区三级联动下拉选择修改优化版
- DedeCMS显示当前访问用户地域PHP方法
- DedeCMS自定义表单导出当天、两天的部分Excel数据
- DedeCMS缩略图引用HTTPS站外图片显示错误
- DedeCMS自定义表单批量审核增加删除全选取消全选按钮
- DedeCMS上传图片相对路径改为绝对路径有效处理办法
- DedeCMS实现URL不变PC和移动端展示不同模板
- DedeCMS不能正常删除栏目及文件夹的解决方案
- DedeCMS网站搬家后有效解决列表无法调用子栏目内容
- DedeCMS栏目不调用排除指定栏目的文章
本文地址:https://www.vi586.com/web/386.html
版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处
赞
赞(3)