帝国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

帝国CMS列表模板和内容模板过滤smalltext简介中的空格、换行

帝国CMS的内容简介如果采取自动生成的方式,会产生空格、换行,这种数据读取到页面上肯定是不行的,必须过滤处理。
ecms-smalltext.png

一、内容模板使用以下代码,可过滤smalltext简介中的空格、换行:

<?
$qian=array(" "," ","\t","\n","\r");
$hou=array("","","","","");
$smalltext=str_replace($qian,$hou,$navinfor[smalltext]);
echo $smalltext;
?>

二、列表模板过滤smalltext简介中的空格、换行,方法如下:
1、列表内容模板(list.var)右侧,勾选“使用程序代码”
2、采用以下代码:

$r[smalltext]=str_replace(array("\r\n", "\r", "\n", "<br />", "</p>"),"",str_replace("<p>","",$r[smalltext]));
$listtemp='<li><p>[!--smalltext--]</p></li>';

列表样式$listtemp中的内容自行修改。