Skip to content

Commit

Permalink
修复字段添加sql问题,添加字段注释字段,修复搜索翻页不重置问题
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoyao committed Dec 7, 2017
1 parent 1aaa1bb commit 6479073
Show file tree
Hide file tree
Showing 9 changed files with 106 additions and 89 deletions.
11 changes: 4 additions & 7 deletions App/Admin/Controller/PostController.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,11 @@ function __construct() {

public function index() {
// 分类,日期过滤
$tax = I('post.tax');
$date = I('post.date');
$tax = I('request.tax');
$date = I('request.date');
// 标题检索
$title = I('post.title');
$modelid = I('get.moduleid', false);
if (IS_POST) {
unset($_GET['p']);
}
$title = I('request.title');
$modelid = I('request.moduleid', false);
if (!$modelid) {
$this->error('模型参数缺失!');
}
Expand Down
1 change: 1 addition & 0 deletions App/Admin/View/v5/Member/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
</div>
<div class="portlet-body form">
<form id="searchform" name="searchform" action="<?php echo U('Member/index'); ?>" method="get" class="form-horizontal">
<input type="hidden" name="p" value="1"/>
<div class="control-group">
<label class="control-label">基础搜索</label>
<div class="controls">
Expand Down
5 changes: 4 additions & 1 deletion App/Admin/View/v5/ModelField/add.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ <h2 class="title-1 line-x f14 fb blue lh28">模型管理--<?php echo $model['nam
<th><strong>字段提示</strong><br />显示在字段别名下方作为表单输入提示</th>
<td><textarea name="info[tips]" rows="2" cols="20" id="tips" style="height:40px; width:80%"></textarea></td>
</tr>

<tr>
<th><strong>字段注释</strong><br />表字段注释</th>
<td><textarea name="info[comment]" rows="2" cols="20" id="comment" style="height:40px; width:80%"></textarea></td>
</tr>
<tr>
<th><strong>相关参数</strong><br />设置表单相关属性</th>
<td><div id="setting"></div></td>
Expand Down
4 changes: 4 additions & 0 deletions App/Admin/View/v5/ModelField/edit.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ <h2 class="title-1 line-x f14 fb blue lh28">模型管理--<?php echo $model['nam
<th><strong>字段提示</strong><br />显示在字段别名下方作为表单输入提示</th>
<td><textarea name="info[tips]" rows="2" cols="20" id="tips" style="height:40px; width:80%"><?php echo htmlspecialchars($model_field['tips']);?></textarea></td>
</tr>
<tr>
<th><strong>字段注释</strong><br />表字段注释</th>
<td><textarea name="info[comment]" rows="2" cols="20" id="comment" style="height:40px; width:80%"><?php echo htmlspecialchars($model_field['comment']);?></textarea></td>
</tr>

<tr>
<th><strong>相关参数</strong><br />设置表单相关属性</th>
Expand Down
3 changes: 2 additions & 1 deletion App/Admin/View/v5/Post/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@
</div>
</block>
<block name="main">
<form name="myform" action="<?php echo U('Post/listorder') . "?moduleid=" . $module['id']; ?>" method="post">
<form name="myform" action="<?php echo U('Post/listorder') . "?moduleid=" . $module['id']; ?>" method="get">
<input type="hidden" name="moduleid" value="<?php echo $module['id']; ?>">
<input type="hidden" name="p" value="1"/>
<div class="table-list">
<table width="100%" cellspacing="0">
<thead>
Expand Down
25 changes: 14 additions & 11 deletions App/Lib/PostField/add.sql.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?php

$defaultvalue = isset($_POST['setting']['defaultvalue']) ? $_POST['setting']['defaultvalue'] : '';
$comment = isset($_POST['info']['comment']) ? addslashes($_POST['info']['comment']) : '';
//正整数 UNSIGNED && SIGNED
$minnumber = isset($_POST['setting']['minnumber']) ? $_POST['setting']['minnumber'] : 1;
$decimaldigits = isset($_POST['setting']['decimaldigits']) ? $_POST['setting']['decimaldigits'] : '';
Expand All @@ -9,61 +10,63 @@
case 'varchar':
if(!$maxlength) $maxlength = 255;
$maxlength = min($maxlength, 255);
$sql = "ALTER TABLE `$tablename` ADD `$field` VARCHAR( $maxlength ) NOT NULL DEFAULT '$defaultvalue'";
$sql = "ALTER TABLE `$tablename` ADD `$field` VARCHAR( $maxlength ) NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'tinyint':
if(!$maxlength) $maxlength = 3;
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` TINYINT( $maxlength ) ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` TINYINT( $maxlength ) ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'");
break;

case 'number':
$minnumber = intval($minnumber);
$defaultvalue = $decimaldigits == 0 ? intval($defaultvalue) : floatval($defaultvalue);
$sql = "ALTER TABLE `$tablename` ADD `$field` ".($decimaldigits == 0 ? 'INT' : 'FLOAT')." ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'";
$sql = "ALTER TABLE `$tablename` ADD `$field` ".($decimaldigits == 0 ? 'INT' : 'FLOAT')." ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'smallint':
$minnumber = intval($minnumber);
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` SMALLINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL");
$defaultvalue = intval($defaultvalue);
$sql = "ALTER TABLE `$tablename` ADD `$field` SMALLINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'int':
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$sql = "ALTER TABLE `$tablename` ADD `$field` INT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'";
$sql = "ALTER TABLE `$tablename` ADD `$field` INT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'mediumint':
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$sql = "ALTER TABLE `$tablename` ADD `$field` INT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'";
$sql = "ALTER TABLE `$tablename` ADD `$field` MEDIUMINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'mediumtext':
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` MEDIUMTEXT NOT NULL");
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` MEDIUMTEXT NOT NULL COMMENT '{$comment}'");
break;

case 'text':
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` TEXT NOT NULL");
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` TEXT NOT NULL COMMENT '{$comment}'");
break;

case 'date':
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` DATE NULL". empty($defaultvalue) ? '1970-01-01' : $defaultvalue ."");
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` DATE NOT NULL '". empty($defaultvalue) ? '1970-01-01' : $defaultvalue ."' COMMENT '{$comment}'");
break;

case 'datetime':
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` DATETIME NOT NULL DEFAULT '". (empty($defaultvalue) ? '1970-01-01 08:00:01' : $defaultvalue) ."'");
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` DATETIME NOT NULL DEFAULT '". (empty($defaultvalue) ? '1970-01-01 08:00:01' : $defaultvalue) ."' COMMENT '{$comment}'");
break;

case 'timestamp':
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` TIMESTAMP NOT NULL DEFAULT '". (empty($defaultvalue) ? '1970-01-01 08:00:01' : $defaultvalue) ."'");
$this->db->execute("ALTER TABLE `$tablename` ADD `$field` TIMESTAMP NOT NULL DEFAULT '". (empty($defaultvalue) ? '1970-01-01 08:00:01' : $defaultvalue) ."' COMMENT '{$comment}'");
break;
}
?>
26 changes: 14 additions & 12 deletions App/Lib/PostField/edit.sql.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?php

$defaultvalue = isset($_POST['setting']['defaultvalue']) ? $_POST['setting']['defaultvalue'] : '';
$comment = isset($_POST['info']['comment']) ? addslashes($_POST['info']['comment']) : '';
$minnumber = isset($_POST['setting']['minnumber']) ? $_POST['setting']['minnumber'] : 1;
$decimaldigits = isset($_POST['setting']['decimaldigits']) ? $_POST['setting']['decimaldigits'] : '';

Expand All @@ -9,65 +10,66 @@
if(!$maxlength) $maxlength = 255;
$maxlength = min($maxlength, 255);
$fieldtype = $issystem ? 'CHAR' : 'VARCHAR';
$sql = "ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` $fieldtype( $maxlength ) NOT NULL DEFAULT '$defaultvalue'";

$sql = "ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` $fieldtype( $maxlength ) NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'tinyint':
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TINYINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TINYINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'");
break;

case 'number':
$minnumber = intval($minnumber);
$defaultvalue = $decimaldigits == 0 ? intval($defaultvalue) : floatval($defaultvalue);
$sql = "ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` ".($decimaldigits == 0 ? 'INT' : 'FLOAT')." ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'";
$sql = "ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` ".($decimaldigits == 0 ? 'INT' : 'FLOAT')." ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'";
$this->db->execute($sql);
break;

case 'smallint':
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` SMALLINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` SMALLINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'");
break;

case 'mediumint':
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` MEDIUMINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` MEDIUMINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'");
break;


case 'int':
$minnumber = intval($minnumber);
$defaultvalue = intval($defaultvalue);
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` INT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` INT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue' COMMENT '{$comment}'");
break;

case 'mediumtext':
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` MEDIUMTEXT NOT NULL");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` MEDIUMTEXT NOT NULL COMMENT '{$comment}'");
break;

case 'text':
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TEXT NOT NULL");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TEXT NOT NULL COMMENT '{$comment}'");
break;

case 'date':
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` DATE NULL". empty($defaultvalue) ? '1970-01-01' : $defaultvalue ."");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` DATE NOT NULL '". empty($defaultvalue) ? '1970-01-01' : $defaultvalue ."' COMMENT '{$comment}'");
break;

case 'datetime':
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` DATETIME NULL". empty($defaultvalue) ? '1970-01-01 00:00:01' : $defaultvalue ."");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` DATETIME NULL '". empty($defaultvalue) ? '1970-01-01 08:00:01' : $defaultvalue ."' COMMENT '{$comment}'");
break;

case 'timestamp':
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TIMESTAMP NOT NULL". empty($defaultvalue) ? '1970-01-01 00:00:01' : $defaultvalue ."");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TIMESTAMP NOT NULL '". empty($defaultvalue) ? '1970-01-01 08:00:01' : $defaultvalue ."' COMMENT '{$comment}'");
break;

case 'readpoint':
$defaultvalue = intval($defaultvalue);
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` smallint(5) unsigned NOT NULL default '$defaultvalue'");
$this->db->execute("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` smallint(5) unsigned NOT NULL default '$defaultvalue' COMMENT '{$comment}'");
break;

}
Expand Down
59 changes: 31 additions & 28 deletions App/Lib/PostField/number/field_add_form.inc.php
Original file line number Diff line number Diff line change
@@ -1,36 +1,39 @@
<table cellpadding="2" cellspacing="1" width="98%">
<tr>
<td width="100">取值范围</td>
<td><input type="text" name="setting[minnumber]" value="1" size="5" class="input-text"> - <input type="text" name="setting[maxnumber]" value="" size="5" class="input-text"></td>
<tr>
<td width="100">取值范围</td>
<td><input type="text" name="setting[minnumber]" value="1" size="5" class="input-text"> - <input type="text" name="setting[maxnumber]" value="" size="5" class="input-text"></td>
</tr>
<tr>
<td>小数位数:</td>
<td>
<select name="setting[decimaldigits]">
<option value="-1">自动</option>
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<tr>
<td width="100">字段长度</td>
<td><select name="setting[fieldtype]">
<option value="number">number</option>
<option value="int">int</option>
<option value="mediumint">mediumint</option>
<option value="smallint">smallint</option>
<option value="tinyint">tinyint</option>
</select></td>
</tr>
<tr>
<td>输入框长度</td>
<td><input type="text" name="setting[size]" value="" size="3" class="input-text"> px</td>
<td>小数位数:</td>
<td>
<select name="setting[decimaldigits]">
<option value="-1">自动</option>
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
</tr>
<tr>
<td>默认值</td>
<td><input type="text" name="setting[defaultvalue]" value="" size="40" class="input-text"></td>
<tr>
<td>输入框长度</td>
<td><input type="text" name="setting[size]" value="" size="3" class="input-text"> px</td>
</tr>
<tr>
<td>默认值</td>
<td><input type="text" name="setting[defaultvalue]" value="" size="40" class="input-text"></td>
</tr>
<tr>
<td>是否作为区间字段</td>
<td>
<input type="radio" name="setting[rangetype]" value="1"/> 是
<input type="radio" name="setting[rangetype]" value="0" checked />否   注:区间字段可以通过filters('字段名称','模型id','自定义数组')调用
</td>
</tr>
</table>
61 changes: 32 additions & 29 deletions App/Lib/PostField/number/field_edit_form.inc.php
Original file line number Diff line number Diff line change
@@ -1,35 +1,38 @@
<table cellpadding="2" cellspacing="1" width="98%">
<tr>
<td width="100">取值范围</td>
<td><input type="text" name="setting[minnumber]" value="<?php echo $setting['minnumber'];?>" size="5" class="input-text"> - <input type="text" name="setting[maxnumber]" value="<?php echo $setting['maxnumber'];?>" size="5" class="input-text"></td>
<tr>
<td width="100">取值范围</td>
<td><input type="text" name="setting[minnumber]" value="<?php echo $setting['minnumber'];?>" size="5" class="input-text"> - <input type="text" name="setting[maxnumber]" value="<?php echo $setting['maxnumber'];?>" size="5" class="input-text"></td>
</tr>
<tr>
<td>小数位数:</td>
<td>
<select name="setting[decimaldigits]">
<option value="-1" <?php if($setting['decimaldigits']==-1) echo 'selected';?>)>自动</option>
<option value="0" <?php if($setting['decimaldigits']==0) echo 'selected';?>>0</option>
<option value="1" <?php if($setting['decimaldigits']==1) echo 'selected';?>>1</option>
<option value="2" <?php if($setting['decimaldigits']==2) echo 'selected';?>>2</option>
<option value="3" <?php if($setting['decimaldigits']==3) echo 'selected';?>>3</option>
<option value="4" <?php if($setting['decimaldigits']==4) echo 'selected';?>>4</option>
<option value="5" <?php if($setting['decimaldigits']==5) echo 'selected';?>>5</option>
</select>
</td>
<tr>
<td width="100">字段长度</td>
<td><select name="setting[fieldtype]">
<option value="number" <?php if($setting['fieldtype']=='number') echo 'selected';?>)>number</option>
<option value="int" <?php if($setting['fieldtype']=='int') echo 'selected';?>)>int</option>
<option value="mediumint" <?php if($setting['fieldtype']=='mediumint') echo 'selected';?>>mediumint</option>
<option value="smallint" <?php if($setting['fieldtype']== 'smallint') echo 'selected';?>>smallint</option>
<option value="tinyint" <?php if($setting['fieldtype']== 'tinyint') echo 'selected';?>>tinyint</option>
</select></td>
</tr>
<tr>
<td>输入框长度</td>
<td><input type="text" name="setting[size]" value="<?php echo isset($setting['size']) ? $setting['size'] : '';?>" size="3" class="input-text"> px</td>
<tr>
<td>小数位数:</td>
<td>
<select name="setting[decimaldigits]">
<option value="-1" <?php if($setting['decimaldigits']==-1) echo 'selected';?>)>自动</option>
<option value="0" <?php if($setting['decimaldigits']==0) echo 'selected';?>>0</option>
<option value="1" <?php if($setting['decimaldigits']==1) echo 'selected';?>>1</option>
<option value="2" <?php if($setting['decimaldigits']==2) echo 'selected';?>>2</option>
<option value="3" <?php if($setting['decimaldigits']==3) echo 'selected';?>>3</option>
<option value="4" <?php if($setting['decimaldigits']==4) echo 'selected';?>>4</option>
<option value="5" <?php if($setting['decimaldigits']==5) echo 'selected';?>>5</option>
</select>
</td>
</tr>
<tr>
<td>默认值</td>
<td><input type="text" name="setting[defaultvalue]" value="<?php echo $setting['defaultvalue'];?>" size="40" class="input-text"></td>
<tr>
<td>输入框长度</td>
<td><input type="text" name="setting[size]" value="<?php echo isset($setting['size']) ? $setting['size'] : '';?>" size="3" class="input-text"> px</td>
</tr>
<tr>
<td>默认值</td>
<td><input type="text" name="setting[defaultvalue]" value="<?php echo $setting['defaultvalue'];?>" size="40" class="input-text"></td>
</tr>
<tr>
<td>是否作为区间字段</td>
<td>
<input type="radio" name="setting[rangetype]" value="1" <?php if($setting['rangetype']) echo 'checked';?> /> 是
<input type="radio" name="setting[rangetype]" value="0" <?php if(!$setting['rangetype']) echo 'checked';?> /> 否   注:区间字段可以通过filters('字段名称','模型id','自定义数组')调用
</td>
</tr>
</table>

0 comments on commit 6479073

Please sign in to comment.