<?php
include('./lib/fc.php');
$cmd = trim($argv[1]);
$project = trim($argv[2]);
$mod = trim($argv[3]);
$cmdfile = trim($argv[4]);

$path = '../../'.$project.'/';
$pathMod = '../../mod/';
$pathItem = '../../mod/element/';
$pathAction = $path.'action/';
$pathTpl = $path.'tpl/'.$mod.'/';
if($project=='' || $mod==''){
	quit("错误:请输入项目与模板名称");
}
//初始化一些创建信息
if($cmd=='create'){
	$e = require('../../mod/element/'.$mod.'.php');
	$list_arr = [];
	foreach($e['fields'] as $field){
		if($field['islist']){
			$field['key'] = ($field['key']) ? 'true' : 'false';
			$sorttype  = ($field['type']=='int' || $field['type']=='decimal') ? ", sorttype:'integer'" : '';
			$search  = ($field['issearch']) ? ", searchoptions:{sopt:['cn','eq','ne','le','lt','gt','ge','nc','nu','nn']}" : ', search:false';
			$formatter = '';
			if($e['caption']==$field['field']){
				$formatter = ", formatter:viewLink,unformat:function(text){return text;}";
			}
			$sortable  = ($field['isorder']) ? "" : 'sortable:false,';
			$list_arr[] = sprintf("\t\t\t{ label: '%s', name: '%s', key: %s, width: 120 %s%s%s%s}",
				$field['name'],
				$field['field'],
				$field['key'],
				$sorttype,
				$sortable,
				$search,
				$formatter
			);
		}
	}
	$list_fields = implode(",\r\n",$list_arr);
	$form_arr = [];
	foreach($e['fields'] as $field){
		if($field['editor']){
			$required = ($field['editor']['required']) ? 'required' :'';
			$must = ($required!='') ? ' has-warning' : '';
			$fieldtype = ($field['editor']['fieldtype']=='string') ? '' : $field['editor']['fieldtype'].'="true"';
			switch($field['editor']['type']){
				case 'hidden':
					$form_arr[] = 
sprintf("\t\t".'<input type="hidden" name="f_%s" id="f_%s" class="form-control" %s minlength="%s" maxlength="%s" %s>',
					$field['field'],
					$field['field'],
					$required,
					$field['editor']['minlength'],
					$field['maxlength'],
					$fieldtype
				);
				break;
				case 'text':
					$form_arr[] = 
sprintf("\t\t".'<div class="form-group%s">
			<label class="col-sm-2 control-label">%s</label>
			<div class="col-sm-10">
				<input type="text" name="f_%s" id="f_%s" class="form-control" %s minlength="%s" maxlength="%s" %s>
			</div>
		</div>',
					$must,
					$field['name'],
					$field['field'],
					$field['field'],
					$required,
					$field['editor']['minlength'],
					$field['maxlength'],
					$fieldtype
				);
				break;
				case 'select':
					$form_arr[] = 
sprintf("\t\t".'<div class="form-group%s">
		<label class="col-sm-2 control-label">%s</label>
		<div class="col-sm-10">
			<select class="form-control m-b" name="f_%s" id="f_%s">
				<option value="1">宜配网</option>
				<option value="2">跑街令</option>
			</select>
		</div>
	</div>',
					$must,
					$field['name'],
					$field['field'],
					$field['field'],
					$field['editor']['minlength'],
					$field['maxlength']
				);
				break;
				case 'checkbox':
					$form_arr[] = 
sprintf("\t\t".'<div class="form-group%s">
		<label class="col-sm-2 control-label">%s</label>
		<div class="col-sm-10">
			<label class="checkbox-inline i-checks">
				<input type="checkbox" name="f_%s" value="1">宜配网</label>
			<label class="checkbox-inline i-checks">
				<input type="checkbox" name="f_%s" value="2">跑街令</label>
		</div>
	</div>',
					$must,
					$field['name'],
					$field['field'],
					$field['field'],
					$field['field'],
					$field['field']
				);
				break;
				case 'radio':
					$form_arr[] = 
sprintf("\t\t".'<div class="form-group%s">
		<label class="col-sm-2 control-label">%s</label>
		<div class="col-sm-10">
			<label class="radio-inline i-checks">
				<input type="radio" value="1"  name="f_%s" checked> <i></i>宜配网</label>
			<label class="radio-inline i-checks">
				<input type="radio" value="2"  name="f_%s"> <i></i>跑街令</label>
		</div>
	</div>',
					$must,
					$field['name'],
					$field['field'],
					$field['field'],
					$field['field'],
					$field['field']
				);
				break;
				case 'textarea':
					$form_arr[] = 
sprintf("\t\t".'<div class="form-group%s">
		<label class="col-sm-2 control-label">%s</label>
		<div class="col-sm-10">
			<textarea name="f_%s" id="f_%s" %s minlength="%s" maxlength="%s" rows="5" style="width:100%%"></textarea>
		</div>
	</div>',
					$must,
					$field['name'],
					$field['field'],
					$field['field'],
					$required,
					$field['editor']['minlength'],
					$field['maxlength']
				);
				break;
			}
		}
	}
	$form_fields = implode("\r\n",$form_arr);

	$view_arr = [];
	foreach($e['fields'] as $field){
		if($field['isview']){
			$view_arr[] = 
sprintf("\t\t\t".'<div class="row">
			<label class="col-xs-2 control-label">%s</label>
			<div class="col-xs-10">
				<p class="form-control-static" id="%s"></p>
			</div>
		</div>
		<div class="hr-line-dashed"></div>',
				$field['name'],
				$field['field']
			);
		}
	}
	$view_fields = implode("\r\n",$view_arr);
}
$replaces = [
	"<{mod}>"=>$mod,
	"<{list_fields}>"=>$list_fields,
	"<{form_fields}>"=>$form_fields,
	"<{view_fields}>"=>$view_fields,
	'<{title}>'=>$e['title'],
	'<{key}>'=>$e['key'],
	'<{caption}>'=>$e['caption'],
	'<{captionName}>'=>$e['fields'][$e['caption']]['name']
];
$files = [
	'mod'=>[
		'tpl'=>'./tpl/talbe_view_mod.php',
		'dir'=>$pathMod,
		'filename'=>$mod.'Mod.php',
		'replaces'=>$replaces
	],
	'action'=>[
		'tpl'=>'./tpl/talbe_view_action.php',
		'dir'=>$pathAction,
		'filename'=>$mod.'Action.php',
		'replaces'=>$replaces
	],
	'common'=>[
		'tpl'=>'./tpl/talbe_view_common.php',
		'dir'=>$pathTpl,
		'filename'=>'common.php',
		'replaces'=>$replaces
	],
	'list'=>[
		'tpl'=>'./tpl/talbe_view_list.php',
		'dir'=>$pathTpl,
		'filename'=>'list.php',
		'replaces'=>$replaces
	],
	'form'=>[
		'tpl'=>'./tpl/talbe_view_form.php',
		'dir'=>$pathTpl,
		'filename'=>'form.php',
		'replaces'=>$replaces
	],
	'view'=>[
		'tpl'=>'./tpl/talbe_view_view.php',
		'dir'=>$pathTpl,
		'filename'=>'view.php',
		'replaces'=>$replaces
	],
];
if($cmd=='create'){
	if($cmdfile=='all'){
		foreach($files as $file){
			copyTpl($file['tpl'],$file['dir'],$file['filename'],$file['replaces']);
		}
		quit("创建完成");
	}else if(isset($files[$cmdfile])){
		copyTpl($files[$cmdfile]['tpl'],$files[$cmdfile]['dir'],$files[$cmdfile]['filename'],$files[$cmdfile]['replaces']);
		quit("创建完成");
	}else{
		quit($cmdfile." 不存在");
	}
}else if($cmd=='delete'){
	foreach($files as $file){
		unlink($file['dir'].$file['filename']);
	}
	quit("删除完成");
}