| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
                        - <?php
 - /**
 -  * 编辑自定义表单字段
 -  *
 -  * @version        $Id: diy_field_edit.php 1 18:31 2010年7月12日Z tianya $
 -  * @package        DedeBIZ.Administrator
 -  * @copyright      Copyright (c) 2022, DedeBIZ.COM
 -  * @license        https://www.dedebiz.com/license
 -  * @link           https://www.dedebiz.com
 -  */
 - require_once(dirname(__FILE__)."/config.php");
 - //增加权限检查
 - require_once(DEDEINC."/dedetag.class.php");
 - require_once(DEDEADMIN."/inc/inc_admin_channel.php");
 - if (empty($action)) $action = '';
 - //获取模型信息
 - $mysql_version = $dsql->GetVersion();
 - $mysql_versions = explode(".", trim($mysql_version));
 - $mysql_version = $mysql_versions[0].".".$mysql_versions[1];
 - $row = $dsql->GetOne("SELECT `table`,`info` FROM #@__diyforms WHERE diyid='$diyid'");
 - $fieldset = $row['info'];
 - $trueTable = $row['table'];
 - $dtp = new DedeTagParse();
 - $dtp->SetNameSpace("field", "<", ">");
 - $dtp->LoadSource($fieldset);
 - foreach ($dtp->CTags as $ctag) {
 -     if (strtolower($ctag->GetName()) == strtolower($fname)) break;
 - }
 - //字段类型信息
 - $ds = file(DEDEADMIN."/inc/fieldtype.txt");
 - foreach ($ds as $d) {
 -     $dds = explode(',', trim($d));
 -     $fieldtypes[$dds[0]] = $dds[1];
 - }
 - //保存修改
 - /*--------------------
 - function _SAVE()
 - ----------------------*/
 - if ($action == 'save') {
 - 
 -     if (!isset($fieldtypes[$dtype])) {
 -         ShowMsg("您修改的是系统专用类型的数据,禁止操作", "-1");
 -         exit();
 -     }
 -     //检测数据库是否存在附加表,不存在则新建一个
 -     $tabsql = "CREATE TABLE IF NOT EXISTS  `$trueTable`(
 -     `id` int(10) unsigned NOT NULL auto_increment,
 -     `ifcheck` tinyint(1) NOT NULL default '0',
 -     ";
 -     if ($mysql_version < 4.1) {
 -         $tabsql .= " PRIMARY KEY  (`id`)\r\n) TYPE=MyISAM; ";
 -     } else {
 -         $tabsql .= " PRIMARY KEY  (`id`)\r\n) ENGINE=MyISAM DEFAULT CHARSET=".$cfg_db_language."; ";
 -     }
 -     $dsql->ExecuteNoneQuery($tabsql);
 -     //检测表里含有的字段
 -     $fields = array();
 -     $rs = $dsql->SetQuery("show fields from `$trueTable`");
 -     $dsql->Execute('a');
 -     while ($nrow = $dsql->GetArray('a', MYSQL_ASSOC)) {
 -         $fields[strtolower($nrow['Field'])] = $nrow['Type'];
 -     }
 -     //修改字段配置信息
 -     $dfvalue = $vdefault;
 -     $isnull = ($isnull == 1 ? "true" : "false");
 -     $mxlen = $maxlength;
 -     $fieldname = strtolower($fname);
 -     //检测被修改的字段类型,并更新数据表
 -     $fieldinfos = GetFieldMake($dtype, $fieldname, $dfvalue, $mxlen);
 -     $ntabsql = $fieldinfos[0];
 -     $buideType = $fieldinfos[1];
 -     $tabsql  = '';
 -     //检测旧数据类型,并替换为新配置
 -     foreach ($dtp->CTags as $tagid => $ctag) {
 -         if (trim($fieldname) == trim(strtolower($ctag->GetName()))) {
 -             if (isset($fields[$fieldname]) && $fields[$fieldname] != $buideType) {
 -                 $tabsql = "ALTER TABLE `$trueTable` CHANGE `$fieldname` ".$ntabsql;
 -                 $dsql->ExecuteNoneQuery($tabsql);
 -             } else if (!isset($fields[$fieldname])) {
 -                 $tabsql = "ALTER TABLE `$trueTable` ADD ".$ntabsql;
 -                 $dsql->ExecuteNoneQuery($tabsql);
 -             } else {
 -                 $tabsql = '';
 -             }
 -             $dtp->Assign($tagid, stripslashes($fieldstring), FALSE);
 -             break;
 -         }
 -     }
 -     $oksetting = $dtp->GetResultNP();
 -     $oksetting = addslashes($oksetting);
 -     $dsql->ExecuteNoneQuery("UPDATE #@__diyforms SET info='$oksetting' WHERE diyid='$diyid' ");
 -     ShowMsg("成功修改一个字段的配置", "diy_edit.php?diyid={$diyid}");
 -     exit();
 - }
 - /*------------------
 - 删除字段
 - function _DELETE()
 - -------------------*/
 - else if ($action == "delete") {
 -     //检测旧数据类型,并替换为新配置
 -     foreach ($dtp->CTags as $tagid => $ctag) {
 -         if (strtolower($ctag->GetName()) == strtolower($fname)) {
 -             $dtp->Assign($tagid, "#@Delete@#");
 -         }
 -     }
 -     $oksetting = addslashes($dtp->GetResultNP());
 -     $dsql->ExecuteNoneQuery("UPDATE #@__diyforms SET info='$oksetting' WHERE diyid='$diyid' ");
 -     $dsql->ExecuteNoneQuery("ALTER TABLE `$trueTable` DROP `$fname` ");
 -     ShowMsg("成功删除一个字段", "diy_edit.php?diyid=$diyid");
 -     exit();
 - }
 - require_once(DEDEADMIN."/templets/diy_field_edit.htm");
 
 
  |