用destoon系统建站的站长都知道,destoon的首页其实是通过一个模块一个模块调用来实现内容的调用的,无法做到像织梦一样一个代码调用多个模块的内容。所以我们今天就就上一个代码,让destoon首页可以直接调用多个栏目的内容且直接随机排序。下面跟着音速seo小编一起来看一看吧。
一、修改调用程序
文件位置:include/global.func.php
添加代码:
//获取多表数据 limit 每个模块条数 modidx最多10个模块id
function GetDbList($limit,$modida=0,$modidb=0,$modidc=0,$modidd=0,$modide=0)
{
global $db,$DT_PRE, $MODULE;
$arr = array();
if($limit == null || $limit == 0){
return $arr;
}
if($modida>0){
$moda = $db->get_one("SELECT * FROM {$db->pre}module WHERE moduleid={$modida}");
if($moda){
$tablea = $DT_PRE.$moda['module'].'_'.$modida;
$resa = $db->query("SELECT * FROM {$tablea} ORDER BY itemid DESC LIMIT {$limit}");
while($ra = $db->fetch_array($resa)) {
$ra['linkurl'] = $moda['linkurl'].$ra['linkurl'];
$arr[] = $ra;
}
}
}
if($modidb>0){
$modb = $db->get_one("SELECT * FROM {$db->pre}module WHERE moduleid={$modidb}");
if($modb){
$tableb = $DT_PRE.$modb['module'].'_'.$modidb;
$resb = $db->query("SELECT * FROM {$tableb} ORDER BY itemid DESC LIMIT {$limit}");
while($rb = $db->fetch_array($resb)) {
$rb['linkurl'] = $modb['linkurl'].$rb['linkurl'];
$arr[] = $rb;
}
}
}
if($modidc>0){
$modc = $db->get_one("SELECT * FROM {$db->pre}module WHERE moduleid={$modidc}");
if($modc){
$tablec = $DT_PRE.$modc['module'].'_'.$modidc;
$resc = $db->query("SELECT * FROM {$tablec} ORDER BY itemid DESC LIMIT {$limit}");
while($rc = $db->fetch_array($resc)) {
$rc['linkurl'] = $modc['linkurl'].$rc['linkurl'];
$arr[] = $rc;
}
}
}
if($modidd>0){
$modd = $db->get_one("SELECT * FROM {$db->pre}module WHERE moduleid={$modidd}");
if($modd){
$tabled = $DT_PRE.$modd['module'].'_'.$modidd;
$resd = $db->query("SELECT * FROM {$tabled} ORDER BY itemid DESC LIMIT {$limit}");
while($rd = $db->fetch_array($resd)) {
$rd['linkurl'] = $modd['linkurl'].$rd['linkurl'];
$arr[] = $rd;
}
}
}
if($modide>0){
$mode = $db->get_one("SELECT * FROM {$db->pre}module WHERE moduleid={$modide}");
if($mode){
$tablee = $DT_PRE.$mode['module'].'_'.$modide;
$rese = $db->query("SELECT * FROM {$tablee} ORDER BY itemid DESC LIMIT {$limit}");
while($re = $db->fetch_array($rese)) {
$re['linkurl'] = $mode['linkurl'].$re['linkurl'];
$arr[] = $re;
}
}
}
if($arr){
//打乱顺序
shuffle($arr);
}
return $arr;
}
直接放在最下面?>前面就可以。
以上代码是可以直接调用固定的5个模块的内容,并将内容进行随机排序。
二、模板调用代码
{php $arr = GetDbList(10,57,47,48,54,21);}
{loop $arr $i $item}
<div>{$item[linkurl]}</div>
{/loop}
GetDbList后面的括号内第一个为调用条数,后面的为调用的模块ID
loop内可以设置显示的样式。
三、增加调用模块内容
1、模块通用代码
if($modid%>0){
$mod% = $db->get_one("SELECT * FROM {$db->pre}module WHERE moduleid={$modid%}");
if($mod%){
$table% = $DT_PRE.$mod%['module'].'_'.$modid%;
$res% = $db->query("SELECT * FROM {$table%} ORDER BY itemid DESC LIMIT {$limit}");
while($r% = $db->fetch_array($res%)) {
$r%['linkurl'] = $mod%['linkurl'].$r%['linkurl'];
$arr[] = $r%;
}
}
}
为了方便所以我们将需要替换的部分用%显示,如果有需要可以直接将%替换为需要的字符。
如果需要更多的模块可以将%替换后直接放在global.func.php的后面,需要几个就上几个,同时模板中调用代码继续增加模块ID就可以了。
每日壁纸