|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- /**
- * 获得字段创建信息
- *
- * @access public
- * @param string $dtype 字段类型
- * @param string $fieldname 字段名称
- * @param string $dfvalue 默认值
- * @param string $mxlen 最大字符长度
- * @return array
- */
- function GetFieldMake($dtype, $fieldname, $dfvalue, $mxlen)
- {
- $fields = array();
- if ($dtype == "int" || $dtype == "datetime")
- {
- if ($dfvalue == "" || preg_match("#[^0-9-]#", $dfvalue))
- {
- $dfvalue = 0;
- }
- $fields[0] = " `$fieldname` int(11) NOT NULL default '$dfvalue';";
- $fields[1] = "int(11)";
- }
- else if ($dtype == "stepselect")
- {
- if ($dfvalue == "" || preg_match("#[^0-9\.-]#", $dfvalue))
- {
- $dfvalue = 0;
- }
- $fields[0] = " `$fieldname` char(20) NOT NULL default '$dfvalue';";
- $fields[1] = "char(20)";
- }
- else if ($dtype == "float")
- {
- if ($dfvalue == "" || preg_match("#[^0-9\.-]#", $dfvalue))
- {
- $dfvalue = 0;
- }
- $fields[0] = " `$fieldname` float NOT NULL default '$dfvalue';";
- $fields[1] = "float";
- }
- else if ($dtype == "img" || $dtype == "media" || $dtype == "addon" || $dtype == "imgfile")
- {
- if (empty($dfvalue)) $dfvalue = '';
- if ($mxlen=="") $mxlen = 200;
- if ($mxlen > 255) $mxlen = 100;
-
- $fields[0] = " `$fieldname` varchar($mxlen) NOT NULL default '$dfvalue';";
- $fields[1] = "varchar($mxlen)";
- }
- else if ($dtype == "multitext" || $dtype == "htmltext")
- {
- $fields[0] = " `$fieldname` mediumtext;";
- $fields[1] = "mediumtext";
- }
- else if ($dtype=="textdata")
- {
- if (empty($dfvalue)) $dfvalue = '';
- $fields[0] = " `$fieldname` varchar(100) NOT NULL default '';";
- $fields[1] = "varchar(100)";
- }
- else if ($dtype=="relation") {
- if (empty($dfvalue)) $dfvalue = '';
- $fields[0] = " `$fieldname` TEXT NOT NULL default '$dfvalue';";
- $fields[1] = "TEXT";
- }
- else if ($dtype=="textchar")
- {
- if (empty($dfvalue)) $dfvalue = '';
- $fields[0] = " `$fieldname` char(100) NOT NULL default '$dfvalue';";
- $fields[1] = "char(100)";
- }
- else if ($dtype=="checkbox")
- {
- $dfvalue = str_replace(',',"','",$dfvalue);
- $dfvalue = "'".$dfvalue."'";
- $fields[0] = " `$fieldname` SET($dfvalue) NULL;";
- $fields[1] = "SET($dfvalue)";
- }
- else if ($dtype=="select" || $dtype=="radio")
- {
- $dfvalue = str_replace(',', "','", $dfvalue);
- $dfvalue = "'".$dfvalue."'";
- $fields[0] = " `$fieldname` enum($dfvalue) NULL;";
- $fields[1] = "enum($dfvalue)";
- } else {
- if (empty($dfvalue))
- {
- $dfvalue = '';
- }
- if (empty($mxlen))
- {
- $mxlen = 100;
- }
- if ($mxlen > 255)
- {
- $mxlen = 250;
- }
- $fields[0] = " `$fieldname` varchar($mxlen) NOT NULL default '$dfvalue';";
- $fields[1] = "varchar($mxlen)";
- }
- return $fields;
- }
- /**
- * 获取模型列表字段
- *
- * @access public
- * @param object $dtp 模板引擎
- * @param string $oksetting 设置
- * @return array
- */
- function GetAddFieldList(&$dtp,&$oksetting)
- {
- $oklist = '';
- $dtp->SetNameSpace("field","<",">");
- $dtp->LoadSource($oksetting);
- if (is_array($dtp->CTags))
- {
- foreach($dtp->CTags as $tagid=>$ctag)
- {
- if ($ctag->GetAtt('islist')==1)
- {
- $oklist .= ($oklist=='' ? strtolower($ctag->GetName()) : ','.strtolower($ctag->GetName()) );
- }
- }
- }
- return $oklist;
- }
- ?>
|