' . "\n"
. '' . $strDocu . '' . "\n";
require_once('./footer.inc.php');
}
if (!$cfgRelation['displaywork']) {
echo sprintf($strNotSet, 'table_info', 'config.inc.php') . '
' . "\n"
. '' . $strDocu . '' . "\n";
require_once('./footer.inc.php');
}
if (!isset($cfgRelation['table_coords'])){
echo sprintf($strNotSet, 'table_coords', 'config.inc.php') . '
' . "\n"
. '' . $strDocu . '' . "\n";
exit();
}
if (!isset($cfgRelation['pdf_pages'])) {
echo sprintf($strNotSet, 'pdf_page', 'config.inc.php') . '
' . "\n"
. '' . $strDocu . '' . "\n";
exit();
}
if ($cfgRelation['pdfwork']) {
// Now is the time to work on all changes
if (isset($do)) {
switch ($do) {
case 'choosepage':
if ($action_choose=="1") {
$ch_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['table_coords'])
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND pdf_page_number = ' . $chpage;
PMA_query_as_cu($ch_query);
$ch_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['pdf_pages'])
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND page_nr = ' . $chpage;
PMA_query_as_cu($ch_query);
unset($chpage);
}
break;
case 'createpage':
if (!isset($newpage) || $newpage == '') {
$newpage = $strNoDescription;
}
$ins_query = 'INSERT INTO ' . PMA_backquote($cfgRelation['pdf_pages'])
. ' (db_name, page_descr)'
. ' VALUES (\'' . PMA_sqlAddslashes($db) . '\', \'' . PMA_sqlAddslashes($newpage) . '\')';
PMA_query_as_cu($ins_query);
// A u t o m a t i c l a y o u t
if (isset($autolayout)) {
// save the page number
$pdf_page_number = mysql_insert_id((isset($dbh)?$dbh:''));
// get the tables that have relations, by descending
// number of links
$master_tables = 'SELECT COUNT(master_table), master_table'
. ' FROM ' . PMA_backquote($cfgRelation['relation'])
. ' WHERE master_db = \'' . $db . '\''
. ' GROUP BY master_table'
. ' ORDER BY ' . PMA_backquote('COUNT(master_table)') . ' DESC ';
$master_tables_rs = PMA_query_as_cu($master_tables);
if ($master_tables_rs && mysql_num_rows($master_tables_rs) > 0) {
// first put all the master tables at beginning
// of the list, so they are near the center of
// the schema
while (list(,$master_table) = mysql_fetch_row($master_tables_rs)) {
$all_tables[] = $master_table;
}
// then for each master, add its foreigns into an array
// of foreign tables, if not already there
// (a foreign might be foreign for more than
// one table, and might be a master itself)
$foreign_tables = array();
foreach($all_tables AS $master_table) {
$foreigners = PMA_getForeigners($db, $master_table);
foreach($foreigners AS $foreigner) {
if (!in_array($foreigner['foreign_table'], $foreign_tables)) {
$foreign_tables[] = $foreigner['foreign_table'];
}
}
}
// then merge the arrays
foreach($foreign_tables AS $foreign_table) {
if (!in_array($foreign_table, $all_tables)) {
$all_tables[] = $foreign_table;
}
}
// now generate the coordinates for the schema,
// in a clockwise spiral
$pos_x = 300;
$pos_y = 300;
$delta = 50;
$delta_mult = 1.34;
$direction = "right";
foreach($all_tables AS $current_table) {
// save current table's coordinates
$insert_query = 'INSERT INTO ' . PMA_backquote($cfgRelation['table_coords']) . ' '
. '(db_name, table_name, pdf_page_number, x, y) '
. 'VALUES (\'' . PMA_sqlAddslashes($db) . '\', \'' . PMA_sqlAddslashes($current_table) . '\',' . $pdf_page_number . ',' . $pos_x . ',' . $pos_y . ')';
PMA_query_as_cu($insert_query);
// compute for the next table
switch ($direction) {
case 'right':
$pos_x += $delta;
$direction = "down";
$delta *= $delta_mult;
break;
case 'down':
$pos_y += $delta;
$direction = "left";
$delta *= $delta_mult;
break;
case 'left':
$pos_x -= $delta;
$direction = "up";
$delta *= $delta_mult;
break;
case 'up':
$pos_y -= $delta;
$direction = "right";
$delta *= $delta_mult;
break;
} // end switch
} // end while
} // end if there are master tables
$chpage = $pdf_page_number;
} // end if isset autolayout
break;
case 'edcoord':
for ($i = 0; $i < $c_table_rows; $i++) {
$arrvalue = 'c_table_' . $i;
$arrvalue = $$arrvalue;
if (!isset($arrvalue['x']) || $arrvalue['x'] == '') {
$arrvalue['x'] = 0;
}
if (!isset($arrvalue['y']) || $arrvalue['y'] == '') {
$arrvalue['y'] = 0;
}
if (isset($arrvalue['name']) && $arrvalue['name'] != '--') {
$test_query = 'SELECT * FROM ' . PMA_backquote($cfgRelation['table_coords'])
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND table_name = \'' . PMA_sqlAddslashes($arrvalue['name']) . '\''
. ' AND pdf_page_number = ' . $chpage;
$test_rs = PMA_query_as_cu($test_query);
if ($test_rs && mysql_num_rows($test_rs) > 0) {
if (isset($arrvalue['delete']) && $arrvalue['delete'] == 'y') {
$ch_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['table_coords'])
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND table_name = \'' . PMA_sqlAddslashes($arrvalue['name']) . '\''
. ' AND pdf_page_number = ' . $chpage;
} else {
$ch_query = 'UPDATE ' . PMA_backquote($cfgRelation['table_coords']) . ' '
. 'SET x = ' . $arrvalue['x'] . ', y= ' . $arrvalue['y']
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND table_name = \'' . PMA_sqlAddslashes($arrvalue['name']) . '\''
. ' AND pdf_page_number = ' . $chpage;
}
} else {
$ch_query = 'INSERT INTO ' . PMA_backquote($cfgRelation['table_coords']) . ' '
. '(db_name, table_name, pdf_page_number, x, y) '
. 'VALUES (\'' . PMA_sqlAddslashes($db) . '\', \'' . PMA_sqlAddslashes($arrvalue['name']) . '\',' . $chpage . ',' . $arrvalue['x'] . ',' . $arrvalue['y'] . ')';
}
PMA_query_as_cu($ch_query);
} // end if
} // end for
break;
case 'deleteCrap':
foreach($delrow AS $current_row) {
$d_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['table_coords']) . ' ' . "\n"
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'' . "\n"
. ' AND table_name = \'' . PMA_sqlAddslashes($current_row) . '\'' . "\n"
. ' AND pdf_page_number = ' . $chpage;
PMA_query_as_cu($d_query);
}
break;
} // end switch
} // end if (isset($do))
// We will need an array of all tables in this db
$selectboxall = array('--');
$alltab_qry = 'SHOW TABLES FROM ' . PMA_backquote($db);
$alltab_rs = @PMA_mysql_query($alltab_qry) or PMA_mysqlDie('', $alltab_qry, '', $err_url_0);
while ($val = @PMA_mysql_fetch_array($alltab_rs)) {
$selectboxall[] = $val[0];
}
// Now first show some possibility to choose a page for the pdf
$page_query = 'SELECT * FROM ' . PMA_backquote($cfgRelation['pdf_pages'])
. ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
$page_rs = PMA_query_as_cu($page_query);
if ($page_rs && mysql_num_rows($page_rs) > 0) {
?>