用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就可以了。
每日壁纸