destoon首页如何调用多个模块内容

用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就可以了。

每日壁纸

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注