Created
January 29, 2010 15:41
-
-
Save dgmike/289818 to your computer and use it in GitHub Desktop.
Just put your tables to tabelas.dia file. Use http://projects.gnome.org/dia/ to open this file and organize your project
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* File that you want to export */ | |
$file = dirname(__FILE__).'table.dia'; | |
/* Sample of table format */ | |
$tables = array( | |
'tablename' => array ( | |
'id' => 'INT', | |
'name' => 'VARCHAR(100)', | |
'obs' => 'TEXT', | |
), | |
'person' => array ( | |
'id_person' => 'INT', | |
'name' => 'VARCHAR(100)', | |
), | |
); | |
ob_start(); | |
print <<<EOF | |
<?xml version="1.0" encoding="UTF-8"?> | |
<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/"> | |
<dia:diagramdata> | |
<dia:attribute name="background"><dia:color val="#ffffff"/></dia:attribute> | |
<dia:attribute name="pagebreak"><dia:color val="#000099"/></dia:attribute> | |
<dia:attribute name="paper"> | |
<dia:composite type="paper"> | |
<dia:attribute name="name"><dia:string>#A4#</dia:string></dia:attribute> | |
<dia:attribute name="tmargin"><dia:real val="2.8222000598907471"/></dia:attribute> | |
<dia:attribute name="bmargin"><dia:real val="2.8222000598907471"/></dia:attribute> | |
<dia:attribute name="lmargin"><dia:real val="2.8222000598907471"/></dia:attribute> | |
<dia:attribute name="rmargin"><dia:real val="2.8222000598907471"/></dia:attribute> | |
<dia:attribute name="is_portrait"><dia:boolean val="true"/></dia:attribute> | |
<dia:attribute name="scaling"><dia:real val="1"/></dia:attribute> | |
<dia:attribute name="fitto"><dia:boolean val="false"/></dia:attribute> | |
</dia:composite> | |
</dia:attribute> | |
<dia:attribute name="grid"> | |
<dia:composite type="grid"> | |
<dia:attribute name="width_x"><dia:real val="1"/></dia:attribute> | |
<dia:attribute name="width_y"><dia:real val="1"/></dia:attribute> | |
<dia:attribute name="visible_x"><dia:int val="1"/></dia:attribute> | |
<dia:attribute name="visible_y"><dia:int val="1"/></dia:attribute> | |
<dia:composite type="color"/> | |
</dia:composite> | |
</dia:attribute> | |
<dia:attribute name="color"><dia:color val="#d8e5e5"/></dia:attribute> | |
<dia:attribute name="guides"> | |
<dia:composite type="guides"> | |
<dia:attribute name="hguides"/> | |
<dia:attribute name="vguides"/> | |
</dia:composite> | |
</dia:attribute> | |
</dia:diagramdata> | |
<dia:layer name="First Plan" visible="true" active="true"> | |
EOF; | |
$x = 1; | |
foreach ($tables as $table => $attributes) { | |
$x++; | |
print <<<EOF | |
<dia:object type="Database - Table" version="0" id="O0"> | |
<dia:attribute name="name"><dia:string>#$table#</dia:string></dia:attribute> | |
<dia:attribute name="elem_corner"><dia:point val="0.5,$x"/></dia:attribute> | |
<dia:attribute name="obj_pos"><dia:point val="2.2,1.2"/></dia:attribute> | |
<dia:attribute name="obj_bb"><dia:rectangle val="1.2,1.2;7.12,3.1"/></dia:attribute> | |
<dia:attribute name="meta"><dia:composite type="dict"/></dia:attribute> | |
<dia:attribute name="elem_width"><dia:real val="5.9199999999999999"/></dia:attribute> | |
<dia:attribute name="elem_height"><dia:real val="1.8999999999999999"/></dia:attribute> | |
<dia:attribute name="text_colour"><dia:color val="#000000"/></dia:attribute> | |
<dia:attribute name="line_colour"><dia:color val="#000000"/></dia:attribute> | |
<dia:attribute name="fill_colour"><dia:color val="#ffffff"/></dia:attribute> | |
<dia:attribute name="line_width"><dia:real val="0.10000000000000001"/></dia:attribute> | |
<dia:attribute name="comment"><dia:string>##</dia:string></dia:attribute> | |
<dia:attribute name="visible_comment"><dia:boolean val="false"/></dia:attribute> | |
<dia:attribute name="tagging_comment"><dia:boolean val="false"/></dia:attribute> | |
<dia:attribute name="underline_primary_key"><dia:boolean val="true"/></dia:attribute> | |
<dia:attribute name="bold_primary_keys"><dia:boolean val="false"/></dia:attribute> | |
<dia:attribute name="normal_font"><dia:font family="monospace" style="0" name="Courier"/></dia:attribute> | |
<dia:attribute name="name_font"><dia:font family="sans" style="80" name="Helvetica-Bold"/></dia:attribute> | |
<dia:attribute name="comment_font"><dia:font family="sans" style="0" name="Helvetica"/></dia:attribute> | |
<dia:attribute name="normal_font_height"><dia:real val="0.80000000000000004"/></dia:attribute> | |
<dia:attribute name="name_font_height"><dia:real val="0.69999999999999996"/></dia:attribute> | |
<dia:attribute name="comment_font_height"><dia:real val="0.69999999999999996"/></dia:attribute> | |
<dia:attribute name="attributes"> | |
EOF; | |
foreach ($attributes as $attribute => $type) { | |
echo <<<EOF | |
<dia:composite type="table_attribute"> | |
<dia:attribute name="name"><dia:string>#$attribute#</dia:string></dia:attribute> | |
<dia:attribute name="type"><dia:string>#$type#</dia:string></dia:attribute> | |
<dia:attribute name="comment"><dia:string>##</dia:string></dia:attribute> | |
<dia:attribute name="primary_key"><dia:boolean val="false"/></dia:attribute> | |
<dia:attribute name="nullable"><dia:boolean val="false"/></dia:attribute> | |
<dia:attribute name="unique"><dia:boolean val="false"/></dia:attribute> | |
</dia:composite> | |
EOF; | |
} // End of attributes | |
print <<<EOF | |
</dia:attribute> | |
</dia:object> | |
EOF; | |
} | |
print <<<EOF | |
</dia:layer> | |
</dia:diagram> | |
EOF; | |
$content = ob_get_contents(); | |
file_put_contents($file, $content); | |
ob_end_clean(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment