下面我的站长站分享一系列帝国cms插件开发制作教程,从安装到业务逻辑页面,今天先说帝国CMS插件安装卸载页面的开发制作。
前端页面示例:
<?php error_reporting(E_ALL ^ E_NOTICE); @set_time_limit(10000); define('EmpireCMSAdmin','1'); require('../../../class/connect.php'); require('../../../class/db_sql.php'); require('../../../class/functions.php'); $link=db_connect(); $empire=new mysqlquery(); $editor=2; if(file_exists("install.off")) { echo"安装程序已锁定。如果要重新安装或卸载,请删除插件目录下的<b>install.off</b>文件!"; exit(); } if($_GET['ecms']=="install") { $phome_db_dbchar=file_exists('../../../config/config.php')?$ecms_config['db']['dbchar']:$phome_db_dbchar; $doinstall=$_GET['doinstall']; if($doinstall=='install')//安装操作 { include('install.php'); $word='已安装完毕!</br>建议您立即删除install安装目录。'; } elseif($doinstall=='uninstall')//卸载操作 { include('uninstall.php'); $word='已卸载完毕!'; } echo $ename.$word; exit(); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title><?=$ename?>插件安装/卸载程序</title> <style> /* Basic Grey */ body{font:12px '微软雅黑',"Times New Roman",Times,serif;color:#000;background:url(body-bg.jpg) repeat;} div{margin:0} .basic-grey{margin-left:auto;margin-right:auto;max-width:600px;background:#F7F7F7;padding:25px 0;text-shadow:1px 1px 1px #FFF;border:1px solid #E4E4E4; margin-top:10%;} .basic-grey h1{font-size:25px;padding:0 10px 10px 40px;display:block;border-bottom:1px solid #E4E4E4;color:#333;} .basic-grey h1>span{display:block;font-size:11px;margin-top:10px} .basic-grey .row { margin-top:15px;padding-left: 40px;} input[type=radio]{margin-top:10px} .operation{height:50px;line-height:50px;padding-left:40px} .basic-grey .msg{padding:20px 0px;height:80px;font-family:'宋体'; color:#666;} .basic-grey .button{padding: 10px 30px 10px 30px; background: #66C1E4; border: none; color: #FFF; box-shadow: 1px 1px 1px #4C6E91; -webkit-box-shadow: 1px 1px 1px #4C6E91; -moz-box-shadow: 1px 1px 1px #4C6E91; text-shadow: 1px 1px 1px #5079A3;cursor:pointer} .basic-grey .button:hover{background:#3EB1DD} .clear{margin:5px 0; border-bottom:1px solid #E4E4E4;} </style> <script> function CheckUpdate(obj){ if(confirm('确认操作?')) { obj.updatebutton.disabled=true; return true; } return false; } </script> </head> <body> <div class="basic-grey"> <form method="GET" action="index.php" name="formupdate" onSubmit="return CheckUpdate(document.formupdate);"> <h1> <?=$ename?> <span>插件安装/卸载程序.</span> </h1> <div class="operation"> <span>选择操作:</span> <input name="doinstall" type="radio" value="install" checked> 安装 <input type="radio" name="doinstall" value="uninstall"> 卸载 </div> <div class="clear"></div> <div class="row"> <input type="submit" class="button" name="updatebutton" value="提交操作"> <input name="ecms" type="hidden" id="ecms" value="install"> </div> </form> </div> </body> </html>
首先连接数据库,然后判断当前目录是否存在install.off文件,有就代表已经安装,没有就可以继续安装。
接着给个表单,判断提交的是安装还是卸载请求,跳转到对应的PHP页面,前端页面就完成了。
安装PHP示例:
接着就是安装处理页面,一般都是写入数据库的操作,示例代码如下:
<?php if(!defined('InEmpireCMS')) { exit(); } if(file_exists("install.off")) { echo"安装程序已锁定。如果要重新安装,请删除<b>install.off</b>文件!"; exit(); } $empire->query(SetCreateTable("CREATE TABLE `{$dbtbpre}wdzzz` ( `id` int(6) auto_increment, `name` varchar(50) default '' ) TYPE=MyISAM;",$phome_db_dbchar)); $empire->query("insert into `{$dbtbpre}enewsmenuclass` values(NULL,'我的站长站插件','0','0','2','');"); $menuclassid=$empire->lastid(); $empire->query("insert into `{$dbtbpre}enewsmenu` values(NULL,'我的站长站插件1','../wdzzz/wdzzz1.php','1','$menuclassid',1);"); $empire->query("insert into `{$dbtbpre}enewsmenu` values(NULL,'我的站长站插件2','../wdzzz/wdzzz2.php','1','$menuclassid',2);"); $fp=@fopen("install.off","w"); @fclose($fp); function generate_code($length=32) { $chars = ''; $password = ''; for ( $i = 0; $i < $length; $i++ ) { $password .= $chars[ mt_rand(0, strlen($chars) - 1) ]; } return $password; } ?>
首先我们还是判断一下install.off文件,防止误操作。
接着我们创建了一个wdzzz表,然后创建了一个name的字段。
最后写入enewsmenuclass插件菜单数据表,这样打开后台的插件菜单,就自动显示刚刚安装的插件了。
这里要注意的是字段类型需要创建正确,可以参考下面的:
1. 整型(Integer):用于存储整数,如-2, 0, 1等,不包含小数部分。
2. 浮点型(Float):用于存储带有小数的数值,如3.14、-0.5等,精度比整型高。
3. 字符型(Character或String):用于存储文本数据,可以是单个字符或一串字符。
4. 布尔型(Boolean):用于存储逻辑值,通常只有两个状态,如True和False。
5. 日期/时间型(Date/Time):用于存储日期和时间信息,如"2022-01-01"或"12:00:00"。
6. 对象型(Object):在某些数据库系统中,用于存储复杂的数据结构,如数组、列表或字典。
7. 字节型(Byte):用于存储单个字节的数据,常用于处理二进制数据。
8. 数组或集合型(Array/Collection):用于存储一组有序的元素,可以是同类型的或者不同类型。
9. 指针型(Pointer):在编程语言中,用于存储内存地址,指向其他数据对象的位置。
卸载PHP示例:
卸载就是删除安装时写入的数据库内容,创建了哪些数据就删除哪些内容。示例代码:
<?php if(!defined('InEmpireCMS')) { exit(); } if(file_exists("install.off")) { echo"安装程序已锁定。如果要卸载,请删除<b>install.off</b>文件!"; exit(); } $empire->query("DROP TABLE IF EXISTS `{$dbtbpre}wdzzz`;"); $menuclassr=$empire->fetch1("select classid from {$dbtbpre}enewsmenuclass where classname='我的站长站插件' limit 1"); $empire->query("delete from {$dbtbpre}enewsmenuclass where classid='$menuclassr[classid]'"); $empire->query("delete from {$dbtbpre}enewsmenu where classid='$menuclassr[classid]'"); ?>
首先我们还是判断一下install.off文件,防止误操作。
然后删除刚刚创建的wdzzz数据表。
最后删除enewsmenuclass插件菜单数据表内名称等于“我的站长站插件”的选项。
安装的数据就全部删除完了。