帝国CMS最高效的几种随机文章的写法
php随机文章
方法1、WC写的高效随机调用
<?php
$randnum=1; //随机数量
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(18,30); //1为最小ID,100000为最大ID
$randdh=',';
}
?>
[e:loop={29,1,0,0,"id in ($randids)"}]
<a href="<?=$bqsr[titleurl]?>"><?=esub($bqr[title],42)?></a>
[/e:loop]
问题:因为在 $randids.=$randdh.rand(18,30); 这个里,ID改成1,10000,无法显示,只有改成当前栏目的最小和最大ID,才能显示出来。那么问题是:现在文章少,如果以 后文章增多,这里的最大ID要随时修改么?还是有其他的办法呢?
答案:增加个系统扩展变量,以后改扩展变量就可以,不用改模板
如:增加了一个<?=$public_r['add_listnum']?>扩展变量 写到“$randids.=$randdh.rand(18,30); ”
格式为: $randids.=$randdh.rand($public_r['add_listnum']>); 即:把<?和?>去掉
----------------------------------------------------------------------------------------------------------------------------------------------
方法2、
第一步:创建一个自定义页面:后台-栏目-自定义页面- 增加自定义页面
填写:①页面模式:直接页面式 ②页面名称(*):php随机文章 ③文件名(*): ../../test.php (在根目录) ④所属分类:有就选择没有就默认不选
⑤ 网页标题、网页关键词、网页描述:省略不填了 ⑥页面内容(*):看第二步
注释:填写大意为:位置为 ../../test.php,直接页面式
第二步:代码大致为(下面的要连接上数据库)
<!--code.start-->?php
require('e/class/connect.php'); //引入数据库配置文件和公共函数文件
require('e/class/db_sql.php'); //引入数据库操作文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$sql="SELECT * FROM {$dbtbpre}ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
?<!--code.end-->
<!--code.start-->?php
$str="";
for($i=1;$i<11;$i++){
$nr= $empire->fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'>".$nr['title']."</a></li> ";
}
db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
echo $str;
?<!--code.end-->
第三步:①模板中用[readhttp]'http://127.0.0.1/dg2/test.php'[/readhttp] 调用文件 (不成功,只有后台刷新才能随机变化)
②用框架代码:<iframe border=0 name=lantk src="http://127.0.0.1/dg2/test.php" width=400 height=400 allowTransparency scrollbars=yes frameBorder="0"></iframe> (成功,但不利于seo)
注释:①看看 code.start 和 code.end是干啥的(就是<和>):
//解析代码
function RepExeCode($string){
global $public_r;
if($public_r[candocode])
{
$string=str_replace('<!--code.start-->','<',$string);
$string=str_replace('<!--code.end-->','>',$string);
}
return $string;
}
②for($i=1;$i<11;$i++){ 这行中的11表示调用10条 举例:for($i=1;$i<6;$i++){ 表示条用5条
方法2----演变、
直接在根目录(目录自行选择更改)新建一个php文件把下面的代码复制进去
<?php
require('../class/connect.php'); //引入数据库配置文件和公共函数文件
require('../class/db_sql.php'); //引入数据库操作文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$sql="SELECT * FROM {$dbtbpre}ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
?>
<?php
$str="";
for($i=1;$i<6;$i++){
$nr= $empire->fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'><h3 class='title'>".$nr['title']."</h3></a></li> ";
}
db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
echo $str;
?>
相关文章
- 是否提取 getfirsttitlepic 1 缩略图宽度 getfirsttitlespicw 105 缩略图高度 getfirsttitlespich 118...2014-10-17
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01
- 用灵动标签(e:loop)可以实现各种幻灯效果,本节讲解制作幻灯的基本方法。 如本站JS焦点图频道里的大部分幻灯图片效果都可以用灵动标签调用的。 ...2015-12-30
帝国CMS把[!--list.pageno--]就替换成“第[!--list.pageno--]页
/*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 打开:e\class\functions.php 修改 $s...2017-07-06- 刚升级一会就出现 Multiple primary key definedalter table ***_ecms_infoclass_shop change classid classid int(10) unsigned NOT NULL default '0', DROP INDEX clas...2013-05-20
帝国CMS登录后台提示"您的Cookie没有开启,不能登陆成功"的解决方法
如果没有动过文件特别是/e/config/config.php文件的话!请按照如下操作肯定就OK了! 到你的主机或者服务器环境里找到php.ini文件(如果不知道在哪联系你的空间商就行了) 找到如下...2016-05-19- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) php随机文章 方法1、WC写的高效随...2017-07-06
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 用灵动标签调用最新最多评论文章: [...2016-08-27
- 帝国CMS安装以及恢复数据模板视频教程,主要讲解了墨鱼出品的帝国CMS源码的安装以及数据库模板的回复过程,请大家注意视频里的一些操作细节。选择超清模式播放!...2016-05-08
帝国CMS灵动标签调用当前父栏目下所有子栏目-支持选中状态/高亮
帝国CMS实现灵动标签调用当前父栏目下所有子栏目-支持选中状态及当前栏目高亮,支持栏目自定义排序。最适用于内容模板,显示父栏目下的子栏目。 支持静态栏目页与动态栏目页 代...2016-05-19- 商品加入购物车链接地址为:[!--news.url--]e/ShopSys/doaction.php?enews=AddBuycar&classid=[!--classid--]&id=[!--id--]...2015-12-30
- 给帝国CMS任意模型加上百度地图标注功能。 第一步:首先在模型建立三个字段: 字段名:map_x 字段类型:DOUBLE 字段名:map_y 字段类型:DOUBLE 字段名:map_z 字段类型:TINYINT...2016-05-19
- 针对帝国CMS7.0:有得同学开启了后台登陆验证码,但是由于种种原因后台验证码没有显示,然而不填写验证码又无法登陆后台关闭后台验证码,墨鱼给同学们一个解决方案用工具(一定要用工...2016-05-08
- 因为帝国CMS 7.0信息页不再有ztid字段,所以直接是查询不到的,但是可以用灵动标签sql调用,具体调下方法如下:灵动标签sql调用:select ztid from phome_enewsztinfo where classid=...2015-12-30
- 任意页面动态调用购物车数量,不用刷新数据。 同时适用于帝国CMS6.6、7.0 新建一个buycarjs.php文件放在/e/shopsys/buycar/下,代码如下: <?phprequire("../../class/co...2016-05-19
- 您是不是期待此插件很久了,帝国论坛上终于有用户开发出来了,首先非常感谢他,在此我整理收集了过来,此插件非常适合一些信息发布的站点使用,如果您正好有此类站点,不凡试试看或许能...2015-12-30
- 6、下载不采用弹出窗口式说明 ...2016-05-19
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国cms简单修改实现TAGS以TAGID的方...2016-08-27
- 帝国CMS功能确实非常强大。但为啥子做个单页面就这么麻烦呢。 在论坛找了很久,一般来有以下几个方法: 一、其实栏目有个“页面内容式”。但悲催的是居然不支持绑...2016-05-19
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 如下图所示,先填写购买数量,再添加购物...2016-11-01