国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

102 строки
3.5KB

  1. <?php
  2. /**
  3. * 获得字段创建信息
  4. *
  5. * @access public
  6. * @param string $dtype 字段类型
  7. * @param string $fieldname 字段名称
  8. * @param string $dfvalue 默认值
  9. * @param string $mxlen 最大字符长度
  10. * @return array
  11. */
  12. function GetFieldMake($dtype, $fieldname, $dfvalue, $mxlen)
  13. {
  14. $fields = array();
  15. if ($dtype == "int" || $dtype == "datetime") {
  16. if ($dfvalue == "" || preg_match("#[^0-9-]#", $dfvalue)) {
  17. $dfvalue = 0;
  18. }
  19. $fields[0] = " `$fieldname` int(11) NOT NULL default '$dfvalue';";
  20. $fields[1] = "int(11)";
  21. } else if ($dtype == "stepselect") {
  22. if ($dfvalue == "" || preg_match("#[^0-9\.-]#", $dfvalue)) {
  23. $dfvalue = 0;
  24. }
  25. $fields[0] = " `$fieldname` char(20) NOT NULL default '$dfvalue';";
  26. $fields[1] = "char(20)";
  27. } else if ($dtype == "float") {
  28. if ($dfvalue == "" || preg_match("#[^0-9\.-]#", $dfvalue)) {
  29. $dfvalue = 0;
  30. }
  31. $fields[0] = " `$fieldname` float NOT NULL default '$dfvalue';";
  32. $fields[1] = "float";
  33. } else if ($dtype == "img" || $dtype == "media" || $dtype == "addon" || $dtype == "imgfile") {
  34. if (empty($dfvalue)) $dfvalue = '';
  35. if ($mxlen=="") $mxlen = 200;
  36. if ($mxlen > 255) $mxlen = 100;
  37. $fields[0] = " `$fieldname` varchar($mxlen) NOT NULL default '$dfvalue';";
  38. $fields[1] = "varchar($mxlen)";
  39. } else if ($dtype == "multitext" || $dtype == "htmltext") {
  40. $fields[0] = " `$fieldname` mediumtext;";
  41. $fields[1] = "mediumtext";
  42. } else if ($dtype=="textdata") {
  43. if (empty($dfvalue)) $dfvalue = '';
  44. $fields[0] = " `$fieldname` varchar(100) NOT NULL default '';";
  45. $fields[1] = "varchar(100)";
  46. } else if ($dtype=="relation") {
  47. if (empty($dfvalue)) $dfvalue = '';
  48. $fields[0] = " `$fieldname` TEXT NOT NULL default '$dfvalue';";
  49. $fields[1] = "TEXT";
  50. } else if ($dtype=="textchar") {
  51. if (empty($dfvalue)) $dfvalue = '';
  52. $fields[0] = " `$fieldname` char(100) NOT NULL default '$dfvalue';";
  53. $fields[1] = "char(100)";
  54. } else if ($dtype=="checkbox") {
  55. $dfvalue = str_replace(',',"','",$dfvalue);
  56. $dfvalue = "'".$dfvalue."'";
  57. $fields[0] = " `$fieldname` SET($dfvalue) NULL;";
  58. $fields[1] = "SET($dfvalue)";
  59. } else if ($dtype=="select" || $dtype=="radio") {
  60. $dfvalue = str_replace(',', "','", $dfvalue);
  61. $dfvalue = "'".$dfvalue."'";
  62. $fields[0] = " `$fieldname` enum($dfvalue) NULL;";
  63. $fields[1] = "enum($dfvalue)";
  64. } else {
  65. if (empty($dfvalue)) {
  66. $dfvalue = '';
  67. }
  68. if (empty($mxlen)) {
  69. $mxlen = 100;
  70. }
  71. if ($mxlen > 255) {
  72. $mxlen = 250;
  73. }
  74. $fields[0] = " `$fieldname` varchar($mxlen) NOT NULL default '$dfvalue';";
  75. $fields[1] = "varchar($mxlen)";
  76. }
  77. return $fields;
  78. }
  79. /**
  80. * 获取模型列表字段
  81. *
  82. * @access public
  83. * @param object $dtp 模板引擎
  84. * @param string $oksetting 设置
  85. * @return array
  86. */
  87. function GetAddFieldList(&$dtp,&$oksetting)
  88. {
  89. $oklist = '';
  90. $dtp->SetNameSpace("field","<",">");
  91. $dtp->LoadSource($oksetting);
  92. if (is_array($dtp->CTags)) {
  93. foreach($dtp->CTags as $tagid=>$ctag)
  94. {
  95. if ($ctag->GetAtt('islist')==1) {
  96. $oklist .= ($oklist=='' ? strtolower($ctag->GetName()) : ','.strtolower($ctag->GetName()) );
  97. }
  98. }
  99. }
  100. return $oklist;
  101. }
  102. ?>