Example #1
0
 function doEditField()
 {
     $fid = (int) $_POST['fid'];
     $mid = (int) $_POST['mid'];
     $name = dhtmlspecialchars($_POST['name']);
     $field = dhtmlspecialchars($_POST['field']);
     $ofield = dhtmlspecialchars($_POST['ofield']);
     if (empty($field)) {
         include iPATH . 'include/cn.class.php';
         $field = CN::pinyin($name);
     }
     $type = $_POST['type'];
     $show = $_POST['show'];
     $default = dhtmlspecialchars($_POST['default']);
     $validate = $_POST['validate'];
     $description = dhtmlspecialchars($_POST['description']);
     $option = addslashes(serialize($_POST['option']));
     $hidden = isset($_POST['hidden']) ? 1 : 0;
     !preg_match("/[a-zA-Z]/", $field[0]) && javascript::alert('字段只能以英文字母开头');
     !preg_match("/[a-zA-Z0-9_\\-~]/", $field) && javascript::alert('字段只能由英文字母或数字组成');
     model::isDefField($field) && javascript::alert('您所填写的字段是默认字段!请重新填写.');
     $model = model::data($mid);
     $oFieldA = explode(',', $model['field']);
     $sql = "ALTER TABLE `#iCMS@__" . model::tbn($model['table']) . "`";
     if ($fid) {
         iCMS_DB::getValue("SELECT `id` FROM `#iCMS@__field` where `field` = '{$field}' and `mid`='{$mid}' and `id`!='{$fid}'") && javascript::alert('该字段已经存在!请检查是否重复');
         iCMS_DB::query("UPDATE `#iCMS@__field` SET `name` = '{$name}', `field` = '{$field}', `mid` = '{$mid}', `type` = '{$type}',`show` = '{$show}', `default` = '{$default}', `validate` = '{$validate}', `hidden` = '{$hidden}', `description` = '{$description}', `option` = '{$option}' WHERE `id` = '{$fid}';");
         $sql .= " CHANGE COLUMN `{$ofield}` `{$field}`";
         if ($field != $ofield) {
             $fKey = array_search($ofield, $oFieldA);
             unset($oFieldA[$fKey]);
         }
     } else {
         iCMS_DB::getValue("SELECT `id` FROM `#iCMS@__field` where `field` = '{$field}' and `mid`='{$mid}'") && javascript::alert('该字段已经存在!请检查是否重复');
         iCMS_DB::query("INSERT INTO `#iCMS@__field` (`name`, `field`, `mid`, `type`,`show`, `default`, `validate`, `hidden`, `description`, `option`) VALUES ('{$name}', '{$field}', '{$mid}', '{$type}', '{$show}', '{$default}', '{$validate}', '{$hidden}', '{$description}', '{$option}');");
         $sql .= " ADD COLUMN `{$field}`";
         //新增
         $col = iCMS_DB::getCol("describe `#iCMS@__" . model::tbn($model['table']) . "`");
         $AfterSql = ' after `' . end($col) . '`';
     }
     $SqlType = model::SqlType($type, $default);
     iCMS_DB::query($sql . $SqlType . $AfterSql);
     if ($field != $ofield) {
         array_push($oFieldA, $field);
         $mField = implode(',', array_unique($oFieldA));
         iCMS_DB::query("update `#iCMS@__model` SET `field`='{$mField}' where id='{$mid}'");
     }
     model::cache();
     javascript::dialog('字段添加完成!<br />10秒后返回字段管理', "url:" . __SELF__ . "?mo=models&do=managefield&id=" . $mid);
 }