帝国cms二次开发手册(帝国cms调用api接口)
PHP 代码将内容复制到剪贴板?php Define('EmpireCMSAdmin','1'); require('././class/connect.php');//引入数据库配置文件和公共函数文件require(ECMS_PATH .'e/class/db_sql.php');//引入数据库操作文件require(ECMS_PATH.'e/class/functions.php');//导入编译标签文件require(ECMS_PATH.'e/class/userfun.php');//引入自定义函数require(ECMS_PATH.'e/class /com_functions.php'); require(ECMS_PATH.'e/data/dbcache/class.php');//引入列缓存文件require( ECMS_PATH.'e/member/class/user.php');//引入成员文件require(ECMS_PATH.' e/class/memberfun.php');//成员处理文件require(ECMS_PATH.'e/data/dbcache /MemberLevel.php');//引入成员缓存文件requireECMS_PATH.'e/data/'.LoadLang( 'pub/fun.php');//引入分页语言包文件$link=db_connect(); $帝国=newmysqlquery(); $编辑器=1; //--------分页参数-------- $page=(int)$_GET['page']; $开始=0; $line=30;//每页显示的记录数$page_line=8;//每页显示的分页链接数$offset=$page*$line;//总偏移量//---- ----查询SQL -------- //获取信息总数$totalquery='selectcount(*)astotalfrom{$dbtbpre}release_moneyorderbyiddesc'; $num=$empire-gettotal($totalquery); //选择查询SQL $query=' select*from{$dbtbpre}release_money'; $query.='orderbyiddesclimit$offset,$line'; $sql=$帝国查询($query); $listpage=page2($num,$line,$page_line,$start,$page,$search);//获取分页导航? html head metahttp-equiv='Content-Type'content='text/html;charset=utf-8' title 用户消费记录预览/title linkhref='?=$public_r['newsurl']?e/admin/adminstyle/1/adminstyle.css'rel='stylesheet'type='text/css' /head body tablewidth='100%'border='0'align=' center'cellpadding='3'cellspacing='1'tbody tr tdwidth='50%'位置:ahref='index.php'用户消费记录/a/td /tr /tbody /table formname='form1'method=' get'action='?act=a' tablewidth='800'border='0'cellpadding='3'cellspacing='1'class='tableborder' tbodytr tdheight='25'bgcolor='#FFFFFF'会员名: inputname='keyboard'type='text'id='keyboard'value='' inputtype='submit'name='Submit'value='搜索' inputname='sear'type='hidden'id='sear'value='1'/td /tr /tbody /table /form tablewidth='800'class='tableborder'cellpadding='3' tbody trclass='header'height='30' tdID/td td用户名/userID/td td信息/td td 推导/td td 时间/td /tr ?php while($row=$empire-fetch($sql))//循环获取查询记录/表格分页显示同上面的$sql {? trheight='30'bgcolor='#FFFFFF' td?=$row['id']?/td td?=$row['userid']?/td td?=$row['infoid']?/td td ?=$row['money']?/td td?=$row['time']?/td /tr ?php } ? trbgcolor='#FFFFFF' tdcolspan='5'?=$listpage?/td/tr /table /body /html ? db_close(); $帝国=空;
CMS COOKIE及其管理员/会员登录信息获取方法
PHP 代码将内容复制到剪贴板?php include('./e/class/connect.php'); //后端$ecmsdodbdata=getcvar('ecmsdodbdata',1); $eloginlic=getcvar('eloginlic ',1);//用户许可证证书名称$loginadminstyleid=getcvar('loginadminstyleid',1);//样式ID $loginecmsckpass=getcvar('loginecmsckpass',1);//密码加密$loginlevel=getcvar('loginlevel ',1);//群组ID $loginrnd=getcvar('loginrnd',1);//验证码加密$loginuserid=getcvar('loginuserid',1);//用户ID $ loginusername=getcvar('loginusername' ,1);//用户名$logintime=getcvar('logintime',1);//登录时间UNIX 时间戳//前端$groupid=getcvar('mlgroupid');//会员组ID $rnd=getcvar('mlrnd');//验证码加密$userid=getcvar('mluserid');//会员ID $username=getcvar('mlusername');//会员用户名echo$username. 'br/';
例子:
PHP代码复制内容到剪贴板?php //会员信息$tmgetuserid=(int)getcvar('mluserid');//用户ID $tmgetusername=RepPostVar(getcvar('mlusername'));//用户名$tmgetgroupid=( int)getcvar('mlgroupid');//用户组ID if($tmgetuserid)//已登录{ }else{//未登录};
PHP 代码将内容复制到剪贴板define('ECMS_PATH',substr(dirname(__FILE__),0,-7));
Imperial CMS封装后的增删改查语句:
PHP代码将内容复制到剪贴板//修改$res=$empire-query('update{$dbtbpre}t_reportset`handle`='{$handle}'where`id`=$id'); //插入$res=$empire-query('insertinto{$dbtbpre}t_app_version(`version_code`,`version_name`,`log`,`time`)values('{$version_code}','{$version_name}' ,'{$log }',$time)'); //删除$res=$empire-query('deletefrom{$dbtbpre}school_location_v1_1where`id`=$id'); //查询单条数据$res=$empire-fetch1(' select*from{$dbtbpre}t_circle_comment_commentwhere`comment_id`='{$comment['id']}''); //查询多条数据$sql=$empire-query('select*from{$dbtbpre}t_circle_praisewhere` user_id`='$id''); while($praise=$empire-fetch($sql)){ $res=$empire-fetch1('select*from{$dbtbpre}t_circle_about_mewhere`from_id`='{$praise ['id']}'and`type `=1'); if($res){ $empire-query('deletefrom{$dbtbpre}t_circle_about_mewhere`from_id`='{$praise['id']}'and `type`=1');//Like 为1 } }
设置指定表的索引字段,提高查询效率
PHP 代码将内容复制到剪贴板ALTERTABLE`mcc_service_question_category`ADDINDEX(`category_id2`)
FIND_IN_SET(str,strlist) 函数
PHP 代码将内容复制到剪贴板//过滤包含product的内容并删除重复的question_id SELECT*FROM`mcc_service_question_options`WHEREFIND_IN_SET('product',TYPE)GROUPBYquestion_id //过滤不包含product的内容并删除重复的question_id SELECT*FROM `mcc_service_question_options `GROUPBYquestion_idHAVING!FIND_IN_SET('产品',GROUP_CONCAT(TYPE))
str 需要查询的字符串
strlist字段名参数用“,”分隔如(1,2,6,8)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
演示:
PHP代码将内容复制到剪贴板//查询区域中包含参数“1”的记录SELECT*fromtestwhereFIND_IN_SET('1',area) //查询btype字段中包含参数“15”的值SELECT* fromtestwhereFIND_IN_SET('15',btype)
FIND_IN_SET 和like 的区别
Like 是广泛模糊匹配,字符串中没有分隔符。 Find_IN_SET是精确匹配,字段值用英文“,”分隔。 Find_IN_SET 查询的结果小于Like 查询的结果。
读取单个数据库记录的函数:(不循环)
PHP 代码将内容复制到剪贴板$empire-fetch1('SQL 语句') 用法示例: $r=$empire-fetch1('select*from{$dbtbpre}ecms_newswhereid=1'); echo '标题:'.$r['标题']; 4、统计SQL查询记录条数的函数:$empire-num('SQL语句') $empire-num1($sql) 注意:两者的区别是:num()直接写SQL语句,而$sql num1()中是查询执行SQL返回的结果。用法示例:$num=$empire-num('selectidfrom{$dbtbpre}ecms_news'); echo '新闻表共有'.$num.'新闻';
统计SQL查询记录数函数2:(相比num更高效的函数)
PHP 代码将内容复制到剪贴板$empire-gettotal('统计SQL 语句');注意:gettotal()和num()的区别在于:gettotal()使用SQL本身的count(*)函数进行统计,而num()是PHP本身的函数,gettotal()效率更高。 gettotal()中统计的数字必须是atotal,如:“count(*)astotal”。用法示例: $num=$empire-gettotal('selectcount(*)astotalfrom{$dbtbpre}ecms_news'); echo '新闻表共有'.$num.'新闻';
获取刚刚插入表的自增ID值函数
使用PHP 代码将内容复制到剪贴板的示例: $empire-query('insertinto{$dbtbpre}ecms_news(title)values('title')'); $lastid=$帝国-lastid(); echo '刚才插入的信息ID 为:'.$lastid;
移动SQL查询结果记录指针
PHP 代码将内容复制到剪贴板$empire-seek($sql,$pit) 注:$sql 是查询执行SQL 返回的结果,$pit 是指针的偏移量。用法示例:$sql=$empire-query('select*from{$dbtbpre}ecms_news'); $empire-seek($sql,2);
发布SQL查询结果功能:(一般不需要)
PHP 代码将内容复制到剪贴板$empire-free($sql) 说明:$sql 是查询执行SQL 返回的结果。用法示例:$sql=$empire-query('select*from{$dbtbpre}ecms_news'); $帝国自由($sql);
帝国CMS常用功能介绍
1. esub()截取字段函数语法:esub(字符串,截取的单词数,后缀) 说明:后缀是截取字符附加的内容,该参数可以省略。使用示例:=esub('12345678',6)?返回结果为:123456?=esub('12345678',6,'.')?返回结果为:123456.
2、Date()转换时间格式函数语法:date(时间格式、时间戳) 说明:PHP自带函数,说明请参考:http://cn2.php.net/manual/en/function.date.php 使用示例:=date('Y-m-d H:i:s',1277865010)?返回结果为:2010-06-30 10:30:10
3、format_datetime()转换时间格式函数2语法:format_datetime(普通时间,时间格式) 说明:与date()的区别在于format_datetime转换普通时间,而date转换unix时间戳。使用示例:=format_datetime('2010-06-30 10:30:10','m/d')?返回结果为:06/30
4、通过ID获取列地址函数语法:sys_ReturnBqClassname($r,9) 说明:$r是包含列ID的数组,变量名可以任意命名。使用示例:获取列ID=2的列地址。php$cr['classid']=2;$classurl=sys_ReturnBqClassname($cr,9);echo $classurl;
其他通过ID获取列地址的方法: (1)、/e/public/ClassUrl/?classid=列ID (2)、/?=$class_r[列ID]['classpath']?
5、获取信息内容页地址函数语法:sys_ReturnBqTitleLink($r) 说明:$r是一个数组,包含“id, classid, newspath, filename, groupid, titleurl”字段内容,变量名可以是任意命名。使用示例:获取信息ID=8的新闻页地址?php$nr=$empire-fetch1('select id,classid,newspath,filename,groupid,titleurl from {$dbtbpre}ecms_news where id='8' limit 1 ' );$titleurl=sys_ReturnBqTitleLink($nr);echo $titleurl;
其他通过ID获取信息内容页面地址的方式:/e/public/InfoUrl/?classid=栏目IDid=信息ID
6、提示信息函数1 语法:printerror($error,$gotourl,$ecms,$noautourl,$novar) 说明:$error:提示信息内容,可以是语言包变量,也可以是直接提示内容。 $gotourl:提示信息重定向链接地址$ecms:0为后台提示信息,1为前台提示信息,8为后台提示信息(警报模式),9为前台提示信息(警报模式) $noautourl:0为自动重定向页面,1表示不自动重定向到该页面。该参数可以省略,默认为0$novar:0表示提示信息内容使用语言包变量,1表示提示信息内容使用直接
提示内容。此参数可以省略,默认为0使用范例:printerror('DbError','http://www.phome.net',1),前台提示,提示信息内容为语言包DbError变量内容,转向帝国网站printerror('数据库出错','http://www.phome.net',1,0,1),前台提示,提示信息内容为“数据库出错”,转向帝国网站附加说明:此函数需结合$editor变量来确定目录层次。默认$editor变量为0。当程序文件在/e/path/目录,$editor不用设置,也就是用默认0。当程序文件在/e/path/path2/目录,$editor=1。当程序文件在/e/path/path2/path3/目录,$editor=2。当程序文件在/e/path/path2/path3/path4/目录,$editor=3。 七、提示信息函数2 (直接提示内容)语法:printerror2($error,$gotourl,$ecms,$noautourl)说明:$error:直接提示信息的内容。$gotourl:提示信息转向链接地址$ecms:0为默认提示信息方式、9为弹出提示信息方式(alert方式)。此参数可省略,默认为0$noautourl:0为自动转向页面,1为不自动转向页面。此参数可省略,默认为0使用范例:printerror2('添加完毕','http://www.phome.net'),提示信息内容为“添加完毕”,转向帝国网站附加说明:此函数不需要结合其他变量,可以在任意目录层次使用。不支持使用语言包变量。 八、设置系统COOKIE变量函数语法:esetcookie($var,$val,$life,$ecms)说明:$var:为变量名$val:为变量值$life:为COOKIE有效时间,单位秒,0为不保存。此参数可省略,默认为不保存。(设置变量名用 双引号; ? ?设置过期时间,用当前时间戳+要过期的秒数)$ecms:0为设置前台COOKIE变量,1为设置后台COOKIE变量。此参数可省略,默认为0。使用范例:esetcookie('mybody','帝国'),定义前台“COOKIE前缀+mybody”变量,变量内容为“帝国”esetcookie('mybody','帝国',0,1),定义后台“COOKIE前缀+mybody”变量,变量内容为“帝国”附加说明:此设置COOKIE函数会给变量名加上COOKIE前缀,你可也可以直接用PHP本身的setcookie来定义。 九、取得系统COOKIE变量函数语法:getcvar($var,$ecms)说明:$var:为变量名$ecms:0为设置前台COOKIE变量,1为设置后台COOKIE变量。此参数可省略,默认为0。使用范例:getcvar('mlusername'),取得前台登陆会员的用户名getcvar('loginusername',1),取得后台登陆管理员的用户名附加说明:此取得COOKIE函数是取得变量名加上COOKIE前缀的变量,你可也可以直接用PHP本身的$_COOKIE['变量名']来取得。 十、取得IP地址函数语法:egetip()使用范例: 十一、动态页面显示分页函数语法:page1($num,$line,$page_line,$start,$page,$search)说明:$num:总记录数$line:每页显示数量$page_line:每页显示分页链接数$start:预设变量,设置0即可。$page:当前页码(0为起始页码)$search:链接附加参数 十二、通过栏目ID取得栏目名和栏目别名方法:栏目名:=$class_r[栏目ID]['classname']?>栏目别名:=$class_r[栏目ID]['bname']?>? 1、如果开启了“关闭前台所有动态页面”选项,二次开发的文件如何能访问?答:可以在开发的程序代码顶部一行加: PHP Code复制内容到剪贴板 define('EmpireCMSAdmin','1');??就可以不受此设置影响。 2、LoadLang()导入语言包文件路径是如何表示的答:导入语言包文件地址是相对于 ../data/language/ 目录,例子:(1)、如果程序文件在/e/extend/目录,比如:/e/extend/a.php,则导入语言包可以用: PHP Code复制内容到剪贴板 require?LoadLang('pub/fun.php');??(2)、如果程序文件在/e/extend/helloworld/目录,比如:/e/extend/helloworld/a.php,则导入语言包可以用:require '../'.LoadLang('pub/fun.php');?(3)、如果程序文件在根目录,比如:/a.php,则导入语言包可以用:require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php'); 3、$editor声明目录层次变量是如何表示的:答:此变量如果没有使用printerror()等函数可以不设置。默认$editor变量为0。当程序文件在/e/path/目录,$editor不用设置,也就是用默认0。当程序文件在/e/path/path2/目录,$editor=1。当程序文件在/e/path/path2/path3/目录,$editor=2。当程序文件在/e/path/path2/path3/path4/目录,$editor=3。 4、导入文件介绍:导入栏目、专题、标题分类缓存文件:/e/data/dbcache/class.php导入会员组缓存文件:/e/data/dbcache/MemberLevel.php导入标签函数文件:/e/class/t_functions.php导入编译标签文件:/e/class/functions.php 5、推荐变量过滤处理(1)、数字型变量可以用(int)或intval函数处理,例子: PHP Code复制内容到剪贴板 $page=(int)$_GET['page'];?? 或?? $page=intval($_GET['page']);??(2)、带小数点的数字型变量可以用(float)或floatval函数处理,例子: PHP Code复制内容到剪贴板 $money=(float)$money;?? 或?? $money=floatval($money);??(3)、字符型处理:不带空格或其他特殊符号的,用 PHP Code复制内容到剪贴板 RepPostVar()??带空格或其他特殊符号的用: PHP Code复制内容到剪贴板 RepPostVar2()??写入数据库的用: PHP Code复制内容到剪贴板 RepPostStr()??? ? ? ? 帝国CMS栏目缓存是存放帝国每个栏目的设置信息 合理利用可以极大减少制作模板的工作量帝国CMS系统缓存存放地址:edatadbcacheclass1.php调用方法:$class_r[栏目ID][变量名] 引入栏目缓存 PHP Code复制内容到剪贴板 require(ECMS_PATH."e/data/dbcache/class.php");?//引入栏目缓存文件???? ?? print_r($class_r[2]);//打印栏目ID为2的所有缓存记录?? ?? ?? Array?? (?? ????[classid]?=>?2?? ????[bclassid]?=>?0?? ????[classname]?=>?女仆?? ????[sonclass]?=>??? ????[featherclass]?=>??? ????[islast]?=>?1?? ????[classpath]?=>?maid?? ????[classtype]?=>?.html?? ????[down_num]?=>?2?? ????[online_num]?=>?2?? ????[islist]?=>?0?? ????[tid]?=>?9?? ????[tbname]?=>?maid?? ????[modid]?=>?9?? ????[lencord]?=>?25?? ????[link_num]?=>?10?? ????[newstempid]?=>?10?? ????[listtempid]?=>?9?? ????[filetype]?=>?.html?? ????[openadd]?=>?1?? ????[checked]?=>?1?? ????[bname]?=>?女仆?? ????[reorder]?=>?newstime?DESC?? ????[dtlisttempid]?=>?9?? )??? 'classid'=>栏目ID'bclassid'=>父栏目id,?'classname'=>'栏目名',?'sonclass'=>'子栏目集合',?'featherclass'=>'父栏目集合',?'islast'=>是否终极栏目 1为终极栏目,0为非终极栏目 ,?'classpath'=>'栏目目录',?'classtype'=>'栏目首页扩展名',?'down_num'=>每行下载地址数,?'online_num'=>每行在线观看地址数,?'islist'=>页面显示模式:0为封面式,1为列表式,2为页面内容式,?'tbname'=>栏目对应模型数据表,?'modid'=>栏目对应模型ID,?'lencord'=>每页显示信息数,?'link_num'=>相关链接数,?'newstempid'=>内容模板ID,?'listtempid'=>列表模板ID,?'filetype'=>'内容页文件扩展名',?'checked'=> 信息默认是否审核 1为直接审核,0为未审核 ,?'bname'=>栏目别名,?'reorder'=>'列表式页面排序方式', ? global $ecms_config; PHP Code复制内容到剪贴板 Array?? (?? ????[db]?=>?Array?? ????????(?? ????????????[usedb]?=>?mysql?? ????????????[dbver]?=>?5.0?? ????????????[dbserver]?=>?localhost?? ????????????[dbport]?=>??? ????????????[dbusername]?=>?demo14?? ????????????[dbpassword]?=>?m123456,?? ????????????[dbname]?=>?demo14?? ????????????[setchar]?=>?utf8?? ????????????[dbchar]?=>?utf8?? ????????????[dbtbpre]?=>?phome_?? ????????????[showerror]?=>?1?? ????????)?? ?? ????[sets]?=>?Array?? ????????(?? ????????????[pagechar]?=>?utf-8?? ????????????[setpagechar]?=>?1?? ????????????[elang]?=>?gb?? ????????????[txtpath]?=>?/www/web/demo14/public_html/d/txt/?? ????????????[saveurlimgclearurl]?=>?0?? ????????????[deftempid]?=>?0?? ????????????[selfmoreportid]?=>?0?? ????????????[tranpicturetype]?=>?,.jpg,.gif,.png,.bmp,.jpeg,?? ????????????[tranflashtype]?=>?,.swf,.flv,.dcr,?? ????????????[mediaplayertype]?=>?,.wmv,.asf,.wma,.mp3,.asx,.mid,.midi,?? ????????????[realplayertype]?=>?,.rm,.ra,.rmvb,.mp4,.mov,.avi,.wav,.ram,.mpg,.mpeg,?? ????????)?? ?? ????[esafe]?=>?Array?? ????????(?? ????????????[openonlinesetting]?=>?3?? ????????????[openeditdttemp]?=>?1?? ????????????[loginauth]?=>??? ????????????[ecookiernd]?=>?VyoesTyryHcy0NIdw8LW042dojB5Zt?? ????????????[ckhloginip]?=>?0?? ????????????[ckhsession]?=>?0?? ????????????[ckhanytime]?=>?0?? ????????????[theloginlog]?=>?0?? ????????????[thedolog]?=>?0?? ????????????[ckfromurl]?=>?2?? ????????????[ckhash]?=>?0?? ????????)?? ?? ????[epassport]?=>?Array?? ????????(?? ????????????[open]?=>?0?? ????????)?? ?? ????[member]?=>?Array?? ????????(?? ????????????[tablename]?=>?phome_enewsmember?? ????????????[changeregisterurl]?=>?ChangeRegister.php??//多会员组中转注册地址 ????????????[registerurl]?=> ? ?//会员注册地址 ????????????[loginurl]?=> ? ? ? ?//会员登录地址 ????????????[quiturl]?=> ? ? ? ? ?//会员退出地址 ????????????[chmember]?=>?0?? ????????????[pwtype]?=>?2 ? ? ? ? ? ? ? ? //密码保存形式,0为md5,1为明码,2为双重加密,3为16位md5 ????????????[regtimetype]?=>?1 ? ? ? ??//注册时间保存格式,0为正常时间,1为数值型 ????????????[regcookietime]?=>?0 ? ?//注册后登录保存时间(秒) ????????????[defgroupid]?=>?0?? ????????????[saltnum]?=>?6?? ????????????[utfdata]?=>?0?? ????????)?? ?? ????[memberf]?=>?Array?? ????????(?? ????????????[userid]?=>?userid?? ????????????[username]?=>?username?? ????????????[password]?=>?password?? ????????????[rnd]?=>?rnd?? ????????????[email]?=>?email?? ????????????[registertime]?=>?registertime?? ????????????[groupid]?=>?groupid?? ????????????[userfen]?=>?userfen?? ????????????[userdate]?=>?userdate?? ????????????[money]?=>?money?? ????????????[zgroupid]?=>?zgroupid?? ????????????[havemsg]?=>?havemsg?? ????????????[checked]?=>?checked?? ????????????[salt]?=>?salt?? ????????????[userkey]?=>?userkey?? ????????)?? ?? ????[cks]?=>?Array?? ????????(?? ????????????[ckdomain]?=>??? ????????????[ckpath]?=>?/?? ????????????[ckvarpre]?=>?kxnbd?? ????????????[ckadminvarpre]?=>?fuecm?? ????????????[ckrnd]?=>?v9Amlxzj6oJIDtZGBMfj9Et63AEi9j?? ????????????[ckrndtwo]?=>?l1ouovVZBqoypoZVxuUSu98ZyrePWo?? ????????)?? ?? ????[fw]?=>?Array?? ????????(?? ????????????[eopen]?=>?0?? ????????????[epass]?=>??? ????????????[adminloginurl]?=>??? ????????????[adminhour]?=>??? ????????????[adminweek]?=>??? ????????????[adminckpassvar]?=>??? ????????????[adminckpassval]?=>??? ????????????[cleargettext]?=>??? ????????)?? ?? )??? ? ? 获取会员用户信息: PHP Code复制内容到剪贴板 $UserAdd?=?getAllUserInfo($tmgetuserid);?? $userpic?=?$UserAdd['userpic']?$UserAdd['userpic']:$public_r['newsurl'].'e/data/images/nouserpic.gif';?? //获取会员全部信息?? function?getAllUserInfo($userId,$field?=?'*'){?? ????global?$empire,$dbtbpre,$class_r;?? ????$info?=?$empire->fetch1("select?".$field."?from?{$dbtbpre}enewsmember?a?left?join?{$dbtbpre}enewsmemberadd?b?on?a.userid=b.userid?left?join?{$dbtbpre}enewsmembergroup?c?on?a.groupid=c.groupid?where?a.userid=$userId");?? ????return?$info;?? };??? ?随机调用五个终极栏目的信息(非栏目下的文章信息) PHP Code复制内容到剪贴板 ?$v)?{?? ????????if?($v['islast']?==?1)?{?? ????????????$all[]=?$v['classid'];?? ????????}?? ????}?? ????$rand_key?=?array_rand($all?,?5);//随机取5个?? ????foreach?($rand_key?as?$k?=>?$v)?{?? ????????????$classall.=?$v.',';?? ????}?? ????$classall?=?trim($classall?,?',');?? ????$classall?=?$classall???$classall?:?0?;?? ????return?$classall;?? }?? ?? $class_sql=$empire->query('select?*?from?'.$dbtbpre.'enewsclass?where?classid?in?('.IslastClassid().')?order?by?myorder');?? while($class_row=$empire->fetch($class_sql)){?? $classurl=sys_ReturnBqClassUrl($class_r[$class_row['classid']]);?//栏目链接地址?? ?>??