售前咨询QQ:QQ412395521
业务合作QQ:QQ627174919
位置:首页 > 知新 > 帝国CMS > 教程发布

帝国CMS8.0版功能解密之:父子信息功能使用

时间:2025-03-18 15:02:08
帝国CMS8.0版新增父子信息功能,让一条信息也能成为一个信息、一个栏目、一个专题、甚至一个网站。本文共有四个部分:
一、父子信息功能使用流程。
二、调用子信息:可以用索引灵动标签调用。
三、父子信息列表访问地址的语法说明。
四、进阶:调用当前父子信息的子类及信息列表。

一、父子信息功能使用流程:
1、在管理信息页面,可将某一信息加入父信息,如下图:

(加入父信息前会显示“--”,点击进入增加父信息页面;加入父信息后会显示“父”字,点击进入管理子信息页面。)

2、增加父信息后,增加信息时就会有选择父信息选项设置,可以选择多个父信息及子信息分类:


3、除了增加信息页面可以增加子信息外,还可以在管理子信息页面批量推送子信息到父信息里:


二、调用子信息:可以用索引灵动标签调用
(一)、索引灵动标签语法:
[e:indexloop={索引分类ID,显示条数,操作类型,栏目ID,系统模型ID,附加SQL条件}]
模板代码内容
[/e:indexloop]

(二)、调用例子:
例子1、调用“父信息公共ID=1000010000000101”的最新子信息:(数量=10,操作类型=12)
[e:indexloop={'1000010000000101',10,12,'',''}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]

例子2、调用“一级分类=2”的最新子信息:(数量=10,操作类型=12)
方法一:
[e:indexloop={'父信息公共ID',10,12,'','',"bcid=2"}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]
方法二:用SQL调用 (分表=1,操作类型=11)
[e:indexloop={"select id,classid from {$dbtbpre}enewsfz_data_1 where bcid=2 order by newstime desc".do_dblimit(10),10,11,'',''}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]

例子3、调用“二级分类=5”的最新子信息:(数量=10,操作类型=12)
方法一:
[e:indexloop={'父信息公共ID',10,12,'','',"cid=5"}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]
方法二:用SQL调用 (分表=1,操作类型=11)
[e:indexloop={"select id,classid from {$dbtbpre}enewsfz_data_1 where cid=5 order by newstime desc".do_dblimit(10),10,11,'',''}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]

三、父子信息列表访问地址的语法说明:
(一)、基本语法:
/e/fzinfo/?fztid=父信息的表ID&fzid=父信息的信息ID&cid=子信息的分类ID
父信息的表ID:就是栏目使用的系统模型所属数据表ID (查看:后台>系统>管理数据表)
父信息的信息ID:父信息的信息ID。
子信息的分类ID:不限一级或二级分类,自动识别。-1为父信息下所有子信息列表(使用第一个列表式分类的设置)。

(二)、附加语法说明:
1、列出某一个系统模型下的子信息:
指定系统模型ID即可,模型ID变量名为:mid
例子:下面链接为显示新闻系统模型下的子信息:
/e/fzinfo/?fztid=父信息的表ID&fzid=父信息的信息ID&cid=子信息的分类ID&mid=1

2、列出多栏目的子信息列表:
栏目ID变量名:classid
显示多个栏目可以用逗号格开
例子:下面为显示栏目ID=2的子信息
/e/fzinfo/?fztid=父信息的表ID&fzid=父信息的信息ID&cid=子信息的分类ID&classid=2

3、列出某级头条的子信息:(为子信息单独的头条设置)
指定某级头条即可,头条变量名为:firsttitle。所有头条级别值可为-1
例子:下面链接为显示9级头条的子信息:
/e/fzinfo/?fztid=父信息的表ID&fzid=父信息的信息ID&cid=子信息的分类ID&firsttitle=9

4、列出某级推荐的子信息:(为子信息单独的推荐设置)
指定某级推荐即可,推荐变量名为:isgood。所有推荐级别值可为-1
例子:下面链接为显示8级推荐的子信息:
/e/fzinfo/?fztid=父信息的表ID&fzid=父信息的信息ID&cid=子信息的分类ID&isgood=8

5、指定信息发布时间起始和结束时间范围:
起始时间变量名:starttime ;结束时间变量名:endtime
时间格式:'2025-01-18',不指定起始时间则表示显示结束时间之前的所有信息
例子:下面为显示2025-01-18当天的子信息列表
/e/fzinfo/?fztid=父信息的表ID&fzid=父信息的信息ID&cid=子信息的分类ID&starttime=2025-01-18&endtime=2025-01-18

四、进阶:调用当前父子信息的子类及信息列表
(一)、获取当前父信息ID与当前父子分类ID:
1、当在父信息页面时:
当前父信息ID为:$navinfor['id']
当前父信息所属栏目ID为:$navinfor['classid']
所以当前父信息的公共ID为:$uget_pubid=ReturnInfoPubid($navinfor['classid'],$navinfor['id']);

2、当在父子分类页面时:
当前子类分类ID为:$GLOBALS['navclassid'],负数为所有分类。
当前父信息表内容数组为:$GLOBALS['navinfor']
当前父信息的公共ID为:$GLOBALS['navinfor']['pubid']

(二)、调用当前父信息下的子信息分类:(两级分类)
1、当在父信息页面时:
<?php
$uget_fzid=(int)$navinfor['id'];
$uget_fzclassid=(int)$navinfor['classid'];
$uget_fztid=(int)$class_r[$uget_fzclassid]['tid'];
$uget_pubid=ReturnInfoPubid($uget_fzclassid,$uget_fzid);
//一级分类
$ufzdatabcsql=$empire->query("select cid,bcid,cname from {$dbtbpre}enewsfz_class where pubid='$uget_pubid' and bcid=0 order by myorder");
while($ufzdatabcr=$empire->fetch($ufzdatabcsql))
{
    $ufzdatabc_id=$ufzdatabcr['cid'];
    $ufzdatabc_name=$ufzdatabcr['cname'];
    $ufzdatabc_url=eReturnRewriteFzUrl($uget_fztid,$uget_fzid,$ufzdatabcr['cid'],1);
    ?>
    
    <b>一级分类ID:<?=$ufzdatabc_id?>,一级分类名称:<?=$ufzdatabc_name?>,一级分类地址:<?=$ufzdatabc_url['pageurl']?></b><br>

    <?php
    //二级分类
    $ufzdatacsql=$empire->query("select cid,bcid,cname from {$dbtbpre}enewsfz_class where bcid='".$ufzdatabcr['cid']."' order by myorder");
    while($ufzdatacr=$empire->fetch($ufzdatacsql))
    {
        $ufzdatac_id=$ufzdatacr['cid'];
        $ufzdatac_name=$ufzdatacr['cname'];
        $ufzdatac_url=eReturnRewriteFzUrl($uget_fztid,$uget_fzid,$ufzdatacr['cid'],1);
        ?>
        
        二级分类ID:<?=$ufzdatac_id?>,二级分类名称:<?=$ufzdatac_name?>,二级分类地址:<?=$ufzdatac_url['pageurl']?><br>
        
        <?php
    }
    ?>
    <br>
<?php
}
?>

2、当在父子分类页面时:
<?php
$uget_fzcid=(int)$GLOBALS['navclassid'];
$uget_pubid=RepPostVar($GLOBALS['navinfor']['pubid']);
$uget_fzid=(int)$GLOBALS['navinfor']['id'];
$uget_fzclassid=(int)$GLOBALS['navinfor']['classid'];
$uget_fztid=(int)$class_r[$uget_fzclassid]['tid'];
//一级分类
$ufzdatabcsql=$empire->query("select cid,bcid,cname from {$dbtbpre}enewsfz_class where pubid='$uget_pubid' and bcid=0 order by myorder");
while($ufzdatabcr=$empire->fetch($ufzdatabcsql))
{
    $ufzdatabc_id=$ufzdatabcr['cid'];
    $ufzdatabc_name=$ufzdatabcr['cname'];
    $ufzdatabc_url=eReturnRewriteFzUrl($uget_fztid,$uget_fzid,$ufzdatabcr['cid'],1);
    ?>
    
    <b>一级分类ID:<?=$ufzdatabc_id?>,一级分类名称:<?=$ufzdatabc_name?>,一级分类地址:<?=$ufzdatabc_url['pageurl']?></b><br>

    <?php
    //二级分类
    $ufzdatacsql=$empire->query("select cid,bcid,cname from {$dbtbpre}enewsfz_class where bcid='".$ufzdatabcr['cid']."' order by myorder");
    while($ufzdatacr=$empire->fetch($ufzdatacsql))
    {
        $ufzdatac_id=$ufzdatacr['cid'];
        $ufzdatac_name=$ufzdatacr['cname'];
        $ufzdatac_url=eReturnRewriteFzUrl($uget_fztid,$uget_fzid,$ufzdatacr['cid'],1);
        ?>
        
        二级分类ID:<?=$ufzdatac_id?>,二级分类名称:<?=$ufzdatac_name?>,二级分类地址:<?=$ufzdatac_url['pageurl']?><br>
        
        <?php
    }
    ?>
    <br>
<?php
}
?>

(三)、调用当前父信息下面的子信息:(当在父信息页面时)
<?php
$uget_fzid=(int)$navinfor['id'];
$uget_fzclassid=(int)$navinfor['classid'];
$uget_fztid=(int)$class_r[$uget_fzclassid]['tid'];
$uget_pubid=ReturnInfoPubid($uget_fzclassid,$uget_fzid);
?>
[e:indexloop={$uget_pubid,10,12,'',''}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]

(四)、调用当前分类下面的子信息:(当在父子分类页面时,数量=10、自动识别一级与二级分类、自动识别分表)
1、方法一:
<?php
$uget_fzcid=(int)$GLOBALS['navclassid'];
$uget_pubid=RepPostVar($GLOBALS['navinfor']['pubid']);
$uget_fzdatacwhere='';
if($uget_fzcid>0)//非不限分类
{
    $uget_fzdatacr=$empire->fetch1("select pubid,bcid,cname from {$dbtbpre}enewsfz_class where cid='$uget_fzcid'");
    $uget_pubid=$uget_fzdatacr['pubid'];
    if($uget_fzdatacr['bcid'])
    {
        $uget_fzdatacwhere="cid='".$uget_fzcid."'";
    }
    else
    {
        $uget_fzdatacwhere="bcid='".$uget_fzcid."'";
    }
}
?>
[e:indexloop={$uget_pubid,10,12,'','',$uget_fzdatacwhere}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]

2、方法二:(SQL调用)
<?php
$uget_fzcid=(int)$GLOBALS['navclassid'];
$uget_pubid=RepPostVar($GLOBALS['navinfor']['pubid']);
$uget_fzstb=(int)$GLOBALS['navinfor']['fzstb'];
$uget_fzdatacwhere="bpubid='$uget_pubid'";
if($uget_fzcid>0)//非不限分类
{
    $uget_fzdatacr=$empire->fetch1("select pubid,bcid,cname from {$dbtbpre}enewsfz_class where cid='$uget_fzcid'");
    $uget_pubid=$uget_fzdatacr['pubid'];
    if($uget_fzdatacr['bcid'])
    {
        $uget_fzdatacwhere="cid='".$uget_fzcid."'";
    }
    else
    {
        $uget_fzdatacwhere="bcid='".$uget_fzcid."'";
    }
}
//SQL语句
$uget_fzdatasql="select id,classid from {$dbtbpre}enewsfz_data_".$uget_fzstb." where ".$uget_fzdatacwhere." order by newstime desc".do_dblimit(10);
?>
[e:indexloop={$uget_fzdatasql,10,11,'',''}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:indexloop]

 
旗下其它产品:【帝国备份王】    【EBMA系统】    【帝国下载系统
Powered by EmpireCMS
版权所有 ©2002-2024 EmpireSoft Inc.