帝国CMS创建网站地图Sitemap.xml文件

在后台找到自定义页面,添加自定义页面,可直接复制下面的代码放入页面内容内即可。文件名选择存放路径:../../sitemap.xml

<?='<?xml version="1.0" encoding="UTF-8"?>'?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>[!--news.url--]</loc>
<lastmod> <?php echo date("Y-m-d"); ?></lastmod>
<changefreq>daily</changefreq>
<priority>1.000</priority>
</url>
[e:loop={"select * from [!db.pre!]enewsclass order by myorder",0,24,0}]
<?
if($bqr['classurl']=='')
{
$sccurl=$public_r['newsurl'].$bqr['classpath']."/";
}
else
{
$sccurl=$bqr['classurl']."/";
}
?>
<url>
<loc><?=$sccurl?></loc>
<changefreq>daily</changefreq>
<priority>0.8000</priority>
</url>
[/e:loop]
[e:loop={"select * from [!db.pre!]enewszt order by ztid",0,24,0}]
<?
if($bqr['zturl']=='')
{
$sccurl=$public_r['newsurl'].$bqr['ztpath']."/";
}
else
{
$sccurl=$bqr['zturl']."/";
}
?>
<url>
<loc><?=$sccurl?></loc>
<lastmod><?=date('Y-m-d',$bqr[newstime])?></lastmod>
<changefreq>monthly</changefreq>
<priority>0.6000</priority>
</url>
[/e:loop]
[e:loop={"select * from [!db.pre!]ecms_news order by newstime desc",0,24,0}]
<url>
<loc><?=$bqsr[titleurl]?></loc>
<lastmod><?=date('Y-m-d',$bqr[newstime])?></lastmod>
<changefreq>monthly</changefreq>
<priority>0.5000</priority>
</url>
[/e:loop]
</urlset>

上面设置之后就创建了地图生成页面,如果运行正常,那么在保存的时候就会自动在根目录创建sitemap.xml文件,如果没有自动创建文件请检查根目录是否有写入权限。

另外,可以设置自动刷新任务,添加新的定时刷新计划任务,来保持sitemap.xml的自动更新。

帝国CMS屏蔽在/d/file/附件文件夹下创建栏目目录的方法

如果网站的栏目较多,图片上传保存的文件夹是不太适合存在栏目目录下的,我喜欢存在/d/file/Y-m/,放在统一的文件夹下,而且按年月目录存放,设置如下:
ecms01.png

但是有一个问题就是,每次在后台执行 “数据更新 → 恢复栏目目录” 时,程序就会自动在/d/file/附件文件夹下创建网站的所有栏目目录,尤其是当网站栏目很多时,就会造成大量的空目录。

当然你可以不管他,但我有洁癖,看不得那些毫无意义的空目录,屏蔽生成的方法如下:

一、找到文件/e/class/functions.php
二、搜索:function CreateClassPath($classpath)
三、讲执行操作的代码屏蔽掉,如下图:
ecms02.png

本文转自:http://www.dongchuanmin.com/archives/563.html

帝国CMS 用关键字做出Tags链接效果

思路:
1,帝国CMS的关键字一般是用英文逗号分隔,比如:小红,小明,小华
2,需要把英文逗号去掉,并且给每个关键字用html标签包起来,比如:<li>小红</li><li>小明</li><li>小华</li>

代码:

<?php 
$cr=$empire->fetch1("select classpagekey from {$dbtbpre}enewsclass where classid='$GLOBALS[navclassid]'");
$source=$cr[classpagekey];
$hello = explode(',',$source); 
for($index=0;$index<count($hello);$index++) 
{ 
echo "<li><a href='/e/tags/?tagname=$hello[$index]&tempid=8'>"; echo $hello[$index];echo "</a></li>"; 
} 
?>

说明:
1、先把关键字内容取出来
2、用php的explode函数,把字符串打散为数组
3、然后用for循环,把数组中的每个词语用指定的HTML标签包起来

本文转自:http://www.dongchuanmin.com/archives/623.html

帝国CMS列表内容模板,判断是否登录调用不同的内容

页面模板内容部分:

<?php
include("e/class/connect.php");  
$lguserid=intval(getcvar('mluserid'));//登陆用户ID
$lgusername=RepPostVar(getcvar('mlusername'));//登陆用户
$lggroupid=intval(getcvar('mlgroupid'));//会员组ID

if($lggroupid){
?>
    <div class="zinfo">“[!--class.name--]”共<em>[totaldata]$GLOBALS[navclassid],0,0[/totaldata]</em>条信息。欢迎<em><?php echo $lgusername;?></em>,用完记得<a href="/e/member/doaction.php?enews=exit">[退出]</a></div>
<?php
}else{
?>
    <div class="zinfo">“[!--class.name--]”共<em>[totaldata]$GLOBALS[navclassid],0,0[/totaldata]</em>条信息。列表仅显示条数,请<a href="/e/member/login/" target="_blank">登录</a>刷新页面后,查看详细信息。</div>
<?php
}
?>

列表内容模板部分(使用程序代码)

include("e/class/connect.php");  
$lguserid=intval(getcvar('mluserid'));//登陆用户ID
$lgusername=RepPostVar(getcvar('mlusername'));//登陆用户
$lggroupid=intval(getcvar('mlgroupid'));//会员组ID

if($lggroupid){
$listtemp='<li><a href="[!--titleurl--]"><img src="[!--titlepic--]" alt="[!--oldtitle--]" /><span>[!--title--]<span></a></li>';
}else{
$listtemp='<li><img src="/skin/images/p.png" alt="代用名" /><span>[<a href="/e/member/login/" target="_blank">登录后显示</a>]</span></li>';
}

帝国CMS,复选项输出值的灵活调用

<?php
$shyashuasx=$navinfor[yashuasx];
$shyashuasx=rtrim($shyashuasx, "|");
$shyashuasx=ltrim($shyashuasx, "|");
$shyasarry = explode('|',$shyashuasx); 
for($index=0;$index<count($shyasarry);$index++) 
{ 
?>
  <div class="fl feature">
    <img src="[!--news.url--]skin/images/i/<?=$shyasarry[$index]?>.png" alt="<?=$shyasarry[$index]?>">
    <br>
    <?=$shyasarry[$index]?>
  </div>
<?php
} 
?> 

图示效果:
ECMS-Check-box.jpg

帝国CMS灵动标签调用栏目,可高亮当前栏目的样式

帝国CMS灵动标签调用栏目,可定义当前栏目的class样式,高亮当前栏目的样式。

[e:loop={"select classid,classname from {$dbtbpre}enewsclass where bclassid=5 and classid<>25 order by myorder,classid asc",0,24,0}]<?php
$classurl=sys_ReturnBqClassname($bqr,9);
$classname="";
if($bqr[classid]==$GLOBALS[navclassid])
{
$classname="tzzs_active";
} 
?><li class="<?=$classname?>"><a href="<?=$classurl?>"><?=$bqr[classname]?></a></li>[/e:loop]

其中classid<>25为排除指定栏目
增加代码可不调用隐藏设置的栏目:and showclass=0 //0为显示,1为不显示

本文转自:https://nipang.cn/ecms-code.html