get_table_def('',e_CORE.'sql/core_sql.php'); $tableArray = array(); foreach ($tableStruct as $t) { $tableArray[$t[1]] = array('src' => e_CORE.'sql/core_sql.php', 'desc' => 'core:'.$t[1]); } // Now do the plugins $sqlFiles = e107::getPref('e_sql_list'); foreach ($sqlFiles as $p => $f) { $targ = e_PLUGIN.$p.'/'.$f.'.php'; //echo $p.':'.$targ.'
'; $tableStruct = $dbAdm->get_table_def('',$targ); foreach ($tableStruct as $t) { $tableArray[$t[1]] = array('src' => $targ, 'desc' => 'plug:'.$p.':'.$t[1]); } } unset($tableStruct); unset($sqlFiles); function genFileSelect($tableDefs, $name,$fl) { $ret = "\n"; return $ret; } //$HEADER = ''; //$FOOTER = ''; require(HEADERF); $message = ''; //======================================================== // ACTION //======================================================== if (isset($_POST['do_conversion'])) { if (varset($_POST['selected_plugin'],FALSE)) { $table = $_POST['selected_plugin']; if (!isset($tableArray[$table])) { $message = 'Bad table name specified'; $table = ''; } } else { $message = 'No table name specified'; } } if ($table) { $baseStruct = $dbAdm->get_table_def($table,$tableArray[$table]['src']); $fieldDefs = $dbAdm->parse_field_defs($baseStruct[0][2]); // Required definitions $outDefs = array(); foreach ($fieldDefs as $k => $v) { switch ($v['type']) { case 'field' : if (vartrue($v['autoinc'])) { if (isset($outDefs['WHERE'])) { } else { $outDefs['WHERE'] = "`{$v['name']}` = \$id"; } break; } $baseType = preg_replace('#\(\d+?\)#', '', $v['fieldtype']); // Should strip any length switch ($baseType) { case 'int' : case 'shortint' : case 'tinyint' : $outDefs['_FIELD_TYPES'][$v['name']] = 'int'; break; case 'char' : case 'text' : case 'varchar' : $outDefs['_FIELD_TYPES'][$v['name']] = 'todb'; break; } if (isset($v['nulltype']) && !isset($v['default'])) { $outDefs['_NOTNULL'][$v['name']] = ''; } break; case 'pkey' : case 'ukey' : case 'key' : break; // Do nothing with keys for now default : echo "Unexpected field type: {$k} => {$v['type']}
"; } } $toSave = $eArrayStorage->WriteArray($outDefs, FALSE); // 2nd parameter to TRUE if needs to be written to DB } //======================================================== // FORM //======================================================== $text = "
"; $text .= ""; if ($message) { $text .= ""; } if ($table) { $text .= ""; } $text .= " "; $text .= " "; $text .= "
".'Table printout'."
".'(ready to copy and paste)'."
".'Error:'." ".$message."
Table {$table}
".str_replace("\n", '
', $toSave)."
".'Choose table:'." ".genFileSelect($tableArray, 'selected_plugin',$pluginList)."
\n

"; $ns->tablerender('SQL Definition Parser', $text); require(FOOTERF); ?>