帝國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] |
|
|
|
|