Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 7.2.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/phpcms/modules/member/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/modules/member/member_model.php
<?php

/**

 * 管理员后台会员模型操作类

 */



defined('IN_PHPCMS') or exit('No permission resources.');

pc_base::load_app_class('admin', 'admin', 0);

pc_base::load_sys_class('form', '', 0);

//模型原型存储路径

define('MODEL_PATH',PC_PATH.'modules'.DIRECTORY_SEPARATOR.'member'.DIRECTORY_SEPARATOR.'fields'.DIRECTORY_SEPARATOR);

//模型缓存路径

define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);



class member_model extends admin {

	

	private $db;

	

	function __construct() {

		parent::__construct();

		$this->db = pc_base::load_model('sitemodel_model');

	}



	/**

	 * 会员模型列表

	 */

	function manage() {

		$page = isset($_GET['page']) ? intval($_GET['page']) : 1;

		$member_model_list = $this->db->listinfo(array('type'=>2, 'siteid'=>$this->get_siteid()), 'sort', $page, 10);

		$pages = $this->db->pages;

		$big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=member&c=member_model&a=add\', title:\''.L('add_model').'\', width:\'700\', height:\'500\', lock:true}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('member_model_add'));

		include $this->admin_tpl('member_model_list');

	}

			

	/**

	 * 添加会员模型

	 */

	function add() {

		if(isset($_POST['dosubmit'])) {

			$info = array();

			$info['name'] = $_POST['info']['modelname'];

			$info['tablename'] = 'member_'.$_POST['info']['tablename'];

			$info['description'] = $_POST['info']['description'];

			$info['type'] = 2;

			$info['siteid'] = $this->get_siteid();

			

			if(!empty($_FILES['model_import']['tmp_name'])) {

				$model_import = @file_get_contents($_FILES['model_import']['tmp_name']);

				if(!empty($model_import)) {

					$model_import_data = string2array($model_import);				

				}

			}



			$is_exists = $this->db->table_exists($info['tablename']);

			if($is_exists) showmessage(L('operation_failure'),'?m=member&c=member_model&a=manage', '', 'add');



			$modelid = $this->db->insert($info, 1);

			if($modelid) {

				$model_sql = file_get_contents(MODEL_PATH.'model.sql');

				$tablepre = $this->db->db_tablepre;

				$tablename = $info['tablename'];

				$model_sql = str_replace('$tablename', $tablepre.$tablename, $model_sql);

				$this->db->sql_execute($model_sql);

				if(!empty($model_import_data)) {

					$this->sitemodel_field_db = pc_base::load_model('sitemodel_field_model');

					$tablename = $tablepre.$tablename;

					foreach($model_import_data as $v) {

						//修改模型表字段

						$field = $v['field'];

						$minlength = $v['minlength'] ? $v['minlength'] : 0;

						$maxlength = $v['maxlength'] ? $v['maxlength'] : 0;

						$field_type = $v['formtype'];

						require MODEL_PATH.$field_type.DIRECTORY_SEPARATOR.'config.inc.php';	

						if(isset($v['setting']['fieldtype'])) {

							$field_type = $v['setting']['fieldtype'];

						}

						require MODEL_PATH.'add.sql.php';

			

						$v['setting'] = array2string($v['setting']);

						$v['modelid'] = $modelid;

						unset($v['fieldid']);

							

						$fieldid = $this->sitemodel_field_db->insert($v, 1);

					}

				}



				//更新模型缓存

				pc_base::load_app_class('member_cache','','');

				member_cache::update_cache_model();

				showmessage(L('operation_success'),'?m=member&c=member_model&a=manage', '', 'add');

			} else {

				showmessage(L('operation_failue'),'?m=member&c=member_model&a=manage', '', 'add');

			}

		} else {

			$show_header = $show_scroll = true;

			include $this->admin_tpl('member_model_add');

		}

		

	}

	

	/**

	 * 修改会员模型

	 */

	function edit() {

		if(isset($_POST['dosubmit'])) {

			$modelid = isset($_POST['info']['modelid']) ? $_POST['info']['modelid'] :showmessage(L('operation_success'),'?m=member&c=member_model&a=manage', '', 'edit');

			$info['name'] = $_POST['info']['modelname'];

			$info['disabled'] = $_POST['info']['disabled'] ? 1 : 0;

			$info['description'] = $_POST['info']['description'];

			

			$this->db->update($info, array('modelid'=>$modelid));

			

			//更新模型缓存

			pc_base::load_app_class('member_cache','','');

			member_cache::update_cache_model();

			showmessage(L('operation_success'),'?m=member&c=member_model&a=manage', '', 'edit');

		} else {					

			$show_header = $show_scroll = true;

			$modelinfo = $this->db->get_one(array('modelid'=>$_GET['modelid']));

			include $this->admin_tpl('member_model_edit');		

		}

	}

	

	/**

	 * 删除会员模型

	 */

	function delete() {

		$modelidarr = isset($_POST['modelid']) ? $_POST['modelid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);

		$newmodelarr = '';

		foreach ($modelidarr as $modelarr) {

			if($modelarr!=10) {

				$newmodelarr[] = intval($modelarr);

			}

		}

		$where = to_sqls($newmodelarr, '', 'modelid');



		$modelinfo = $this->db->select($where);

		foreach($modelinfo as $v) {

			$this->db->drop_table($v['tablename']);

		}



		if ($this->db->delete($where)) {

			//删除模型字段

			$this->sitemodel_field_db = pc_base::load_model('sitemodel_field_model');

			$this->sitemodel_field_db->delete($where);

			//修改用户模型组为普通会员

			$this->member_db = pc_base::load_model('members_model');

			$this->member_db->update(array('modelid'=>10), $where);

			

			//更新模型缓存

			pc_base::load_app_class('member_cache','','');

			member_cache::update_cache_model();

			

			showmessage(L('operation_success'), HTTP_REFERER);

		} else {

			showmessage(L('operation_failure'), HTTP_REFERER);

		}

	}



	/**

	 * 导入会员模型

	 */

	function import(){

		include $this->admin_tpl('member_model_import');

	}

	

	/**

	 * 导出会员模型

	 */

	function export() {

		$modelid = isset($_GET['modelid']) ? $_GET['modelid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);

		$modelarr = getcache('member_model', 'commons');

		

		$this->sitemodel_field_db = pc_base::load_model('sitemodel_field_model');

		$modelinfo = $this->sitemodel_field_db->select(array('modelid'=>$modelid));

		foreach($modelinfo as $k=>$v) {

			$modelinfoarr[$k] = $v;

			$modelinfoarr[$k]['setting'] = string2array($v['setting']);

		}



		$res = var_export($modelinfoarr, TRUE);

		header('Content-Disposition: attachment; filename="'.$modelarr[$modelid]['tablename'].'.model"');

		echo $res;exit;

	}

	

	/**

	 * 修改会员模型

	 */

	function move() {

		if(isset($_POST['dosubmit'])) {

			$from_modelid = isset($_POST['from_modelid']) ? $_POST['from_modelid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);

			$to_modelid = !empty($_POST['to_modelid']) && $_POST['to_modelid'] != $from_modelid ? $_POST['to_modelid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);

			

			//更新会员表modelid

			$this->db->change_member_modelid($from_modelid, $to_modelid);

			

			showmessage(L('member_move').L('operation_success'), HTTP_REFERER, '', 'move');

		} else {

			$show_header = $show_scroll = true;

			$modelarr = $this->db->select(array('type'=>2));

			foreach($modelarr as $v) {

				$modellist[$v['modelid']] = $v['name'];

			}

					

			include $this->admin_tpl('member_model_move');

		}

	}

	

	/**

	 * 排序会员模型

	 */

	function sort() {		

		if(isset($_POST['sort'])) {

			foreach($_POST['sort'] as $k=>$v) {

				$this->db->update(array('sort'=>$v), array('modelid'=>$k));

			}

			

			//更新模型缓存

			pc_base::load_app_class('member_cache','','');

			member_cache::update_cache_model();

			

			showmessage(L('operation_success'), HTTP_REFERER);

		} else {

			showmessage(L('operation_failure'), HTTP_REFERER);

		}

	}

	

	/**

	 * 检查模型名称

	 * @param string $username	模型名

	 * @return $status {0:模型名已经存在 ;1:成功}

	 */

	public function public_checkmodelname_ajax() {

		$modelname = isset($_GET['modelname']) ? trim($_GET['modelname']) : exit('0');

		if(CHARSET != 'utf-8') {

			$modelname = iconv('utf-8', CHARSET, $modelname);

			$modelname = addslashes($modelname);

		}

		

		$oldmodelname = $_GET['oldmodelname'];

		if($modelname==$oldmodelname) exit('1');

		

		$status = $this->db->get_one(array('name'=>$modelname));		

		if($status) {

			exit('0');

		} else {

			exit('1');

		}

		

	}

	

	/**

	 * 检查模型表是否存在

	 * @param string $username	模型名

	 * @return $status {0:模型表名已经存在 ;1:成功}

	 */

	public function public_checktablename_ajax() {

		$tablename = isset($_GET['tablename']) ? trim($_GET['tablename']) : exit('0');

		

		$status = $this->db->table_exists('member_'.$tablename);

		if($status) {

			exit('0');

		} else {

			exit('1');

		}

		

	}

	

}

?>