分类 帝国CMS 下的文章

帝国CMS列表模板list.var使用程序代码

1、增加模板时list.var模板需要勾选“使用程序代码”选项。
2、直接添加PHP代码,不需要加<??>程序开始和结束标记。
3、字段值数组变量为$r,对应的字段变量为$r[字段名],如:标题字段变量就是$r[title]。另外编号变量为$no。
这只是读取当前主表字段,如果是附表,要用副表或者其他表的字段值,要先用SQL取
4、将最终模板内容赋给$listtemp变量。





阅读剩余部分

帝国CMS批量提取正文内容到简介

代码:

<?php
define('EmpireCMSAdmin','1');
require("../class/connect.php");
require("../class/db_sql.php");
require("../class/functions.php");
require LoadLang("pub/fun.php");
require("../class/t_functions.php");
require("../data/dbcache/class.php");
require("../data/dbcache/MemberLevel.php");
$link=db_connect();
$empire=new mysqlquery();
$tbname="news";
$sid=(int)$_GET['startid'];
$b=0;
$rs=$empire->query("SELECT id,newstext FROM {$dbtbpre}ecms_{$tbname}_data_1 WHERE id>{$sid} limit 20");
        while($r=$empire->fetch($rs))
        {
                $smalltext='';
                !$r['newstext'] or $smalltext=SubSmalltextVal($r['newstext'],200);
                $smalltext=addslashes($smalltext);
                $smalltext &&
                $empire->query("UPDATE {$dbtbpre}ecms_{$tbname} SET smalltext='{$smalltext}' WHERE id=".$r[id]);
                $b=$r['id'];
        }
$b or exit('转换结束!');
echo "<meta http-equiv=\"refresh\" content=\"1;url=ChangeByID.php?startid=".$b."\">";
echo "已转换ID".$b;
db_close();
$empire=null;
?>

使用方法:
1、先备份数据库
2、以上代码保存到:/e/admin/ChangeSmallText.php
3、浏览器访问:www.xx.com/e/admin/ChangeSmallText.php

帝国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标签包起来

帝国cms自定义列表和内容的动态页面

当帝国CMS栏目启用静态生成之后,这种/action/ListInfo.php动态页面就访问不到了,系统做了跳转。有时候我们希望栏目生成静态html之后,还可以通过动态地址访问栏目,并且启用另外的模板。

下载附件,上传到网站根目录。

1,列表页面使用方法:http://你的域名/info/ListInfo.php?classid=64&tempid=2
classid是栏目ID,tempid是列表模板ID

2,内容页面使用方法:http://你的域名/info/ShowInfo.php?id=23&tempid=1&classid=64
id是文章ID,tempid是内容模板ID,classid是栏目ID

如果模板id不指定,程序会自动判断栏目或内容设置的模板。

可以灵活应用,比如同一个列表,可以通过不同的模板ID,组成不同的URL,看不同的页面效果。

这两个PHP程序文件就是官方的e/action/ListInfo.php和ShowInfo.php这两个文件,只不过拿来简单地修改了一下,做下判断,就可以单独拿出来用了。

我甚至通过这种方式,制作过帝国cms的接口API地址。

info.zip

帝国CMS以插件形式开发json格式的API接口

直接贴代码:

<?php
require('../../class/connect.php'); //引入数据库配置文件和公共函数文件
require('../../class/db_sql.php'); //引入数据库操作文件
require('../../data/dbcache/class.php'); //引入栏目缓存文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$editor=1; //声明目录层次

$bclassid = $_REQUEST['bclassid'];
$class_result = $empire->query("select classid,classname,bname,classing,classpagekey,intro from phome_enewsclass where bclassid = $bclassid");

$data_json = array();

while ($row=$empire->fetch($result)){
    $data_json[]=array(
        'classid'=>$row['classid'],
        'classname'=>$row['classname'],
        'classing'=>$row['classing'],
        'seotitle'=>$row['bname'],
        'keywords'=>$row['classpagekey'],
        'description'=>$row['intro']
    );
}
echo json_encode($data_json, json_unescaped_unicode);

db_close(); 
$empire=null; 
?>

使用说明:
1,将以上代码保存为sort_sub.php文件,上传到/e/extend/api/目录下,就可以通过:你的域名/e/extend/api/sort_sub.php?bclassid=1 访问接口,输出的是json格式
2,看文件中SQL语句的含义,这是获取指定栏目的下级子目录列表。
3,API地址后面的?bclassid是指定栏目的ID,在接口文件中是通过$_REQUEST['bclassid']获取。