<?php
include('./lib/fc.php');
include('../../mvc/lib/LibDb.php');
$cfg = include('../../config/database.php');
$cmd = trim($argv[1]);
$project = trim($argv[2]);
$mod = trim($argv[3]);
$caption = trim($argv[4]);
$table_name = ''.$mod; //给表加前缀

$path = '../../'.$project.'/';
$pathMod = '../../mod/';
$pathItem = '../../mod/element/';
$pathAction = $path.'action/';
$pathTpl = $path.'tpl/'.$mod.'/';
if($project=='' || $mod=='' || $caption==''){
	quit("错误:请输入项目与模板名称及主要显示字段");
}
//初始化一些创建信息
if($cmd=='create'){
	$db = new LibDb($cfg['db']['main_read']);
	$sql=sprintf("SELECT table_comment FROM information_schema.tables WHERE table_schema = '%s' AND table_name ='%s'", $cfg['db']['main_read']['db_name'], $table_name);
	$table_comment = $db->One($sql);
	$sql=sprintf("SELECT COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_SCALE,COLUMN_TYPE,COLUMN_KEY,COLUMN_COMMENT
				FROM information_schema.columns WHERE table_schema = '%s' AND table_name = '%s'", $cfg['db']['main_read']['db_name'], $table_name);
	$element_arr = [];
	$keyField = '';
	$table = $db->Table($sql);
	foreach($table as $row){
		$iskey = ($row['COLUMN_KEY']=='PRI') ? 'true' : 'false';
		if($iskey=='true') $keyField = $row['COLUMN_NAME'];
		$maxlength = ($row['CHARACTER_MAXIMUM_LENGTH']) ? $row['CHARACTER_MAXIMUM_LENGTH'] : $row['NUMERIC_PRECISION'];
		if($row['NUMERIC_SCALE']>0) {
			$maxlength = $maxlength - $row['NUMERIC_SCALE'] + 1; //浮点型
		}
		if($row['DATA_TYPE']=='time') $maxlength= 8;
		if($row['DATA_TYPE']=='date') $maxlength= 10;
		if($row['DATA_TYPE']=='timestamp' || $row['DATA_TYPE']=='datetime') $maxlength= 19;

		if($row['COLUMN_NAME'] == $caption){
			$list = "\r\n\t\t\t'list'=>['formatter'=>'link'], //列格式化";
		}else{
			$list ='';
		}
		$editor_type = ($iskey=='true') ? "'hidden'" : "'text'";
		$element_arr[] = sprintf("\t\t'%s'=>[
			'field'=>'%s',
			'name'=>'%s', //字段描述
			'type'=>'%s',
			'key'=>%s, //是否为主键
			'unique'=>false, //是否唯一
			'maxlength'=>%s, //长度(含有小数)
			'scale'=>%s, //小数位数
			'issearch'=>true, //是否参入查询
			'islist'=>true, //是否在列表中显示
			'isview'=>true, //是否在详情视图中显示
			'isorder'=>true, $list
			'editor'=> [
				'required'=> true, //是否为必须项
				'type'=> $editor_type, //text,hidden,select,checkbox,radio,textarea
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
				'minlength'=>0
			]
		]", 
		$row['COLUMN_NAME'],
		$row['COLUMN_NAME'],
		$row['COLUMN_COMMENT'],
		$row['DATA_TYPE'],
		$iskey,
		$maxlength,
		($row['NUMERIC_SCALE']) ? $row['NUMERIC_SCALE'] : '0',
		$editor_type
		);
	}
	$element_fields = implode(",\r\n",$element_arr);
}
$files = [
	[
		'tpl'=>'./tpl/talbe_view_element.php',
		'dir'=>$pathItem,
		'filename'=>$mod.'.php',
		'replaces'=>["<{mod}>"=>$mod,"<{fields}>"=>$element_fields,"<{key}>"=>$keyField,"<{title}>"=>$table_comment,"<{caption}>"=>$caption]
	]
];
if($cmd=='create'){
	foreach($files as $file){
		copyTpl($file['tpl'],$file['dir'],$file['filename'],$file['replaces']);
	}
	quit("创建完成");
}else if($cmd=='delete'){
	foreach($files as $file){
		unlink($file['dir'].$file['filename']);
	}
	quit("删除完成");
}