function db_get_all_ss_tables($xmlFileName) { $res = array(); $tables = db_get_all_tables(); $xmlNodeTableArray = GetXmlTableNodeArray($xmlFileName); foreach ($xmlNodeTableArray as $xmlNodeTable) { $attr = $xmlNodeTable->GetXmlNodeAttributes(); $existFlag = false; foreach ($tables as $tableName) { if (strtolower($attr["NAME"]) == $tableName) { $existFlag = true; } } if ($existFlag) { $res[] = $attr["NAME"]; } } return $res; }
function ReWriteInstallXmlFile($xmlFileName, $tableIncFile, $targetFile) { include $tableIncFile; $xmlTableNodeArray = GetXmlTableNodeArray($xmlFileName); $f = fopen($targetFile, "w"); fwrite($f, "<DataBaseStructure ApplicationVersion='ShopCMS'>\n"); fwrite($f, "\n"); fwrite($f, "\t<tables>\n"); foreach ($xmlTableNodeArray as $xmlTableNode) { $attributes = $xmlTableNode->GetXmlNodeAttributes(); $xmlTableDefinition = ""; if (defined($attributes["ALIAS"])) { $xmlTableDefinition .= "\t\t<table name='" . constant($attributes["ALIAS"]) . "' alias='" . $attributes["ALIAS"] . "' "; } else { $xmlTableDefinition .= "\t\t<table name='" . $attributes["NAME"] . "' alias='" . $attributes["ALIAS"] . "' "; } foreach ($attributes as $key => $val) { if ($key != "ALIAS" && $key != "NAME") { $xmlTableDefinition .= " " . $key . "='" . $val . "' "; } } $xmlTableDefinition .= "> \n"; $xmlTableColumnNodeArray = $xmlTableNode->SelectNodes("table/column"); foreach ($xmlTableColumnNodeArray as $xmlTableColumnNode) { $xmlTableDefinition .= "\t\t\t<column "; $attributes = $xmlTableColumnNode->GetXmlNodeAttributes(); foreach ($attributes as $key => $value) { $xmlTableDefinition .= $key; $xmlTableDefinition .= "="; $xmlTableDefinition .= "'{$value}' "; } $xmlTableDefinition .= ">"; $columnName = $xmlTableColumnNode->GetXmlNodeData(); $xmlTableDefinition .= trim($columnName); $xmlTableDefinition .= "</column>\n"; } $xmlForeignKeyNodeArray = $xmlTableNode->SelectNodes("table/ForeignKey"); foreach ($xmlForeignKeyNodeArray as $xmlForeignKeyNode) { $xmlTableDefinition .= "\t\t\t<ForeignKey "; $attributes = $xmlForeignKeyNode->GetXmlNodeAttributes(); foreach ($attributes as $key => $value) { $xmlTableDefinition .= $key; $xmlTableDefinition .= "="; $xmlTableDefinition .= "'{$value}' "; } $xmlTableDefinition .= ">"; $foreignKeyColumnName = $xmlForeignKeyNode->GetXmlNodeData(); $xmlTableDefinition .= trim($foreignKeyColumnName); $xmlTableDefinition .= "</ForeignKey>\n"; } $xmlTableDefinition .= "\t\t</table>\n"; fwrite($f, $xmlTableDefinition); fwrite($f, "\n"); } fwrite($f, "\t</tables>\n"); fwrite($f, "</DataBaseStructure>"); fclose($f); }