123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?php
- /**
- *
- * Module(模型管理)
- *
- */
- if(!defined("Ainaphp")) exit("Access Denied");
- class ModuleAction extends AdminbaseAction {
- protected $dao;
- function _initialize()
- {
- parent::_initialize();
- $this->dao=D('Admin/module');
- $this->Role = F('Role');
- $this->assign('Role',$this->Role);
- }
- function _before_index(){
- if($_REQUEST ['type']){
- $_REQUEST['where'] = 'type='.intval($_REQUEST ['type']);
- }else{
- $_REQUEST['where'] = 'type=1';
- }
- }
- function _before_add(){
- if(empty($_GET['type'])) $_GET['type']=1;
- }
- function _before_update(){
- $_POST['postgroup'] = implode(',',$_POST['postgroup']);
- }
- function insert(){
- if($_GET['isajax']){
- $name=$_GET['name'];
- $tablename = C('DB_PREFIX').$name;
- $db=D('');
- $db = DB::getInstance();
- $tables = $db->getTables();
- if(in_array($tablename,$tables)){
- echo 'false';
- }else{
- echo 'true';
- }
- exit;
- }
- $db=D('');
- $db = DB::getInstance();
- $tablename = C('DB_PREFIX').$_POST['name'];
- $_POST['name'] = ucfirst($_POST['name']);
- $model = $this->dao;
- if (false === $model->create ()) {
- $this->error ( $model->getError () );
- }
- $moduleid = $model->add();
- if(empty($moduleid)) $this->error (L('add_error').': '.$model->getDbError());
- if(empty($_POST['emptytable'])){
- $db->execute("CREATE TABLE `".$tablename."` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `catid` smallint(5) unsigned NOT NULL DEFAULT '0',
- `userid` int(8) unsigned NOT NULL DEFAULT '0',
- `username` varchar(40) NOT NULL DEFAULT '',
- `title` varchar(120) NOT NULL DEFAULT '',
- `title_style` varchar(40) NOT NULL DEFAULT '',
- `thumb` varchar(100) NOT NULL DEFAULT '',
- `keywords` varchar(120) NOT NULL DEFAULT '',
- `description` mediumtext NOT NULL,
- `content` mediumtext NOT NULL,
- `url` varchar(60) NOT NULL DEFAULT '',
- `template` varchar(40) NOT NULL DEFAULT '',
- `posid` tinyint(2) unsigned NOT NULL DEFAULT '0',
- `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `listorder` int(10) unsigned NOT NULL DEFAULT '0',
- `hits` int(11) unsigned NOT NULL DEFAULT '0',
- `createtime` int(11) unsigned NOT NULL DEFAULT '0',
- `updatetime` int(11) unsigned NOT NULL DEFAULT '0',
- `lang` tinyint(1) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `status` (`id`,`status`,`listorder`),
- KEY `catid` (`id`,`catid`,`status`),
- KEY `listorder` (`id`,`catid`,`status`,`listorder`)
- ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'catid', '".L('catid')."', '', '1', '1', '6', '', '".L('catid_error')."', '', 'catid', '','1','', '0', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'title', '".L('title')."', '', '1', '1', '80', '', '".L('title_error')."', '', 'title', 'array (\n \'thumb\' => \'1\',\n \'style\' => \'1\',\n \'size\' => \'55\',\n)','1','', '0', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'keywords', '".L('keywords')."', '', '0', '0', '80', '', '', '', 'text', 'array (\n \'size\' => \'55\',\n \'default\' => \'\',\n \'ispassword\' => \'0\',\n \'fieldtype\' => \'varchar\',\n)','1','', '2', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'description', '".L('description')."', '', '0', '0', '0', '', '', '', 'textarea', 'array (\n \'fieldtype\' => \'mediumtext\',\n \'rows\' => \'4\',\n \'cols\' => \'55\',\n \'default\' => \'\',\n)','1','', '3', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'content', '".L('content')."', '', '0', '0', '0', '', '', '', 'editor', 'array (\n \'toolbar\' => \'full\',\n \'default\' => \'\',\n \'height\' => \'\',\n \'showpage\' => \'1\',\n \'enablekeylink\' => \'0\',\n \'replacenum\' => \'\',\n \'enablesaveimage\' => \'0\',\n \'flashupload\' => \'1\',\n \'alowuploadexts\' => \'\',\n)','1','', '10', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'createtime', '".L('createtime')."', '', '0', '0', '0', '', '', '', 'datetime', '','1','3,4', '93', '1', '1')");
- //$db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'recommend', '".L('recommend')."', '', '0', '0', '1', '', '', '', 'radio', 'array (\n \'options\' => \'".L('recommend')."|1\r\n".L('norecommend')."|0\',\n \'fieldtype\' => \'tinyint\',\n \'numbertype\' => \'1\',\n \'labelwidth\' => \'\',\n \'default\' => \'\',\n)','1','3,4', '93', '0', '0')");
- //$db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'readpoint', '".L('readpoint')."', '', '0', '0', '5', '', '', '', 'number', 'array (\n \'size\' => \'5\',\n \'numbertype\' => \'1\',\n \'decimaldigits\' => \'0\',\n \'default\' => \'0\',\n)','1','3,4', '93', '0', '0')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'hits', '".L('hits')."', '', '0', '0', '8', '', '', '', 'number', 'array (\n \'size\' => \'10\',\n \'numbertype\' => \'1\',\n \'decimaldigits\' => \'0\',\n \'default\' => \'0\',\n)','1','3,4', '93', '0', '0')");
- //$db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'readgroup', '".L('readgroup')."', '', '0', '0', '0', '', '', '', 'groupid', 'array (\n \'inputtype\' => \'checkbox\',\n \'fieldtype\' => \'tinyint\',\n \'labelwidth\' => \'85\',\n \'default\' => \'\',\n)','1','3,4', '96', '0', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'posid', '".L('posid')."', '', '0', '0', '0', '', '', '', 'posid', '','1','', '97', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'template', '".L('template')."', '', '0', '0', '0', '', '', '', 'template', '','1','3,4', '98', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'status', '".L('status')."', '', '0', '0', '0', '', '', '', 'radio', 'array (\n \'options\' => \'".L('fabu')."|1\r\n".L('dingshi')."|0\',\n \'fieldtype\' => \'tinyint\',\n \'numbertype\' => \'1\',\n \'labelwidth\' => \'75\',\n \'default\' => \'1\',\n)','1','3,4','99', '1', '1')");
- }else{
- $db->execute("CREATE TABLE `".$tablename."` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `userid` int(8) unsigned NOT NULL DEFAULT '0',
- `username` varchar(40) NOT NULL DEFAULT '',
- `url` varchar(60) NOT NULL DEFAULT '',
- `listorder` int(10) unsigned NOT NULL DEFAULT '0',
- `createtime` int(11) unsigned NOT NULL DEFAULT '0',
- `updatetime` int(11) unsigned NOT NULL DEFAULT '0',
- `lang` tinyint(1) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'createtime', '".L('createtime')."', '', '1', '0', '0', '', '', '', 'datetime', '','0','3,4', '93', '1', '1')");
- $db->execute("INSERT INTO `".C('DB_PREFIX')."field` VALUES ('', '".$moduleid."', 'status', '".L('status')."', '', '0', '0', '0', '', '', '', 'radio', 'array (\n \'options\' => \'".L('isshenhe')."|1\r\n".L('noshenhe')."|0\',\n \'fieldtype\' => \'tinyint\',\n \'numbertype\' => \'1\',\n \'labelwidth\' => \'75\',\n \'default\' => \'1\',\n)','0','3,4', '99', '1', '1')");
- }
- if ($moduleid !==false) {
- $menu=M('Menu');
- $data=array();
- $data['parentid'] = $_POST['type']==2 ? 4 : 3;
- $data['model'] = $_POST['name'];
- $data['action'] = 'index';
- $data['type'] = 1;
- $data['status'] = 1;
- $data['name'] = $_POST['title'];
- $data['listorder']=9;
- $pmenuid = $menu->data($data)->add();
- $data['parentid'] = $pmenuid;
- $data['action'] ='add';
- $data['name'] = L('module_addmenu');
- $menu->data($data)->add();
- savecache('Module');
- savecache('Menu');
- savecache('Field',$moduleid);
- $this->assign ( 'jumpUrl', U(MODULE_NAME.'/index') );
- $this->success (L('add_ok'));
- } else {
- $this->error (L('add_error').': '.$model->getDbError());
- }
- }
- function delete() {
- $id =intval($_GET['id']);
- $r = $this->dao->find($id);
- if(empty($r)) $this->error (L('do_empty'));
- $tablename = C('DB_PREFIX').$this->module[$id]['name'];
- $m = $this->dao->delete($id);
- if($m){
- $t =$this->dao->execute("DROP TABLE IF EXISTS `".$tablename."`");
- $module = ucfirst($this->module[$id]['name']);
- $menu = M('Menu');
- $menu->where("model='".$module."'")->delete();
- $module = M('Field');
- $f = $module->where('moduleid='.$id)->delete();
- savecache('Module');
- savecache('Menu');
- @unlink(RUNTIME_PATH.'Data/'.$id.'_Field.php');
- $this->success (L('do_ok'));
- }
- }
- }
- ?>
|