很多小伙伴制作帝国CMS模板中会遇到首页或者其他非内容页面需要调用新闻正文字段的需求。因为正文字段存放在副表,所以灵动标签直接调用是不可以的,那么就需要变通的做法或者写法了,以下提供几种方法供小伙伴们参考:
方法1、把内容字段转存到主表,就可以用灵动标签中<?=$bqr[newstext]?>调用,这种方法不推荐,能不用就不用!
-----------------------------------------------
方法2、直接读取副表。
[e:loop={栏目ID,显示条数,操作类型,只显示有标题图片}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
<?php
$fr=$empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_{$bqr[stb]} where id='$bqr[id]'");
?>
<?=$fr[newstext]?>
[/e:loop]
注释:
1、上面的是调用最新(或其他类型)的文章
2、{$dbtbpre}ecms_news 为新闻系统 id='$bqr[id]'为文章id(这里的id可以指定,如:id=88)
举例:调用最新的一片文章
[e:loop={0,1,3,0}]
<?php
$fr=$empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_{$bqr[stb]} where id='$bqr[id]'");
?>
标题:<?=$bqr[title]?><br>
副表内容字段:<?=$fr[newstext]?>
[/e:loop]
内容字数可限制
1、<?=substr($fr[newstext],0,900)?>中的900表示截取900个字符从0开始
2、或用灵动标签自带的 <?=esub($bqr[newstext],900)?>
------------------------------------------------------
方法3、
[e:loop={34,10,0,0}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
<?
$tbname=$class_r[$bqr[classid]][tbname];//获取表名
$fb=$bqr[stb];//副表
$ftbname=$dbtbpre."ecms_".$tbname."_data_".$fb;
$newstext = $empire->gettotal("select newstext as total from {$ftbname} where id='$bqr[id]'");
echo $newstext;
?>
[/e:loop]
[e:loop={34,10,0,0}]
<?
$tbname=$class_r[$bqr[classid]][tbname];//获取表名
$fb=$bqr[stb];//副表
$ftbname=$dbtbpre."ecms_".$tbname."_data_".$fb;
$newstext = $empire->gettotal("select newstext as total from {$ftbname} where id='$bqr[id]'");
?>
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <?=$newstext?><br>
[/e:loop]