<?php
/*
Interface Creator
www.bioinformatics.org/phplabware
6 September 2014 release
By Santosh Patnaik, MD, PhD
GPL license
Based on DaDaBik version 3.2 by Eugenio Tacchini - http://www.dadabik.org
*/
include(realpath(dirname(__FILE__) . '/../config.php'));
include(realpath(dirname(__FILE__) . '/functions.php'));
include(realpath(dirname(__FILE__) . '/common_start.php'));
include(realpath(dirname(__FILE__) . '/header_admin.php'));
if(isset($_GET["table_name"])) {
$table_name = $_GET["table_name"];
}
else {
$table_name = "";
}
if(isset($_POST["install"])) {
$install = $_POST["install"];
}
else {
$install = "";
}
if($install == "1") {
if($table_name != "") {
$tables_names_ar[0] = $table_name;
if(!table_exists($table_list_name)) {
create_table_list_table();
}
}
else {
create_users_table();
$tables_names_ar = build_tables_names_array(0, 0, 1);
create_table_list_table();
}
for($i = 0; $i < count($tables_names_ar); $i++) {
$table_name_temp = $tables_names_ar[$i];
$table_internal_name_temp = $prefix_internal_table . $table_name_temp;
$unique_field_name = get_unique_field($table_name_temp);
$fields_names_ar = build_fields_names_array($table_name_temp);
create_internal_table($table_internal_name_temp);
$sql = "delete from `" . add_slashes($table_list_name, 1) . "` where `name_table` = " . add_slashes($table_name_temp);
$res_delete = execute_db($sql, $conn, 'install.php');
$sql = "insert into `" . add_slashes($table_list_name, 1) . "` (`name_table`, `allowed_table`, `enable_insert_table`, `enable_edit_table`, `enable_delete_table`, `enable_details_table`) values (" . add_slashes($table_name_temp) . ", '1', '1', '1', '1', '1')";
$res_insert = execute_db($sql, $conn, 'install.php');
if($table_name_temp === $users_table_name) {
$sql = "INSERT INTO `" . add_slashes($table_internal_name_temp, 1) . "` VALUES ('ID_user', 'ID_user', 'text', 'alphanumeric', '0', '0', '0', '0', '1', '0', '0', '0', '', '', '', '', '', '', '', '', 'is_equal/contains/starts_with/ends_with/greater_than/less_then', '', '', '', '', '100', '', 1, '~')";
$res_insert = execute_db($sql, $conn, 'install.php');
$sql = "INSERT INTO `" . add_slashes($table_internal_name_temp, 1) . "` VALUES ('user_type_user', 'User type', 'select_single', 'alphanumeric', '1', '1', '1', '1', '1', '1', '0', '0', '~admin~normal~', '', '', '', '', '', '', '','is_equal/contains/starts_with/ends_with/greater_than/less_then', '', '', '', '', '100', '', 2, '~')";
$res_insert = execute_db($sql, $conn, 'install.php');
$sql = "INSERT INTO `" . add_slashes($table_internal_name_temp, 1) . "` VALUES ('username_user', 'Username', 'text', 'alphanumeric', '1', '1', '1', '1', '1', '1', '0', '0', '', '', '', '', '', '', '', '','is_equal/contains/starts_with/ends_with/greater_than/less_then', '', '', '', '', '100', '', 3, '~')";
$res_insert = execute_db($sql, $conn, 'install.php');
$sql = "INSERT INTO `" . add_slashes($table_internal_name_temp, 1) . "` VALUES ('password_user', 'Password (md5 hash)', 'text', 'alphanumeric', '0', '0', '1', '1', '1', '1', '0', '0', '', '', '', '', '', '', '', '','is_equal/contains/starts_with/ends_with/greater_than/less_then', '', '', '', '', '100', '', 4, '~')";
$res_insert = execute_db($sql, $conn, 'install.php');
}
else {
for($j = 0;$j < count($fields_names_ar);$j++) {
$sql = "insert into `" . add_slashes($table_internal_name_temp, 1) . "` (`name_field`, `label_field`, `order_form_field`) values (" . add_slashes($fields_names_ar[$j]) . ", " . add_slashes($fields_names_ar[$j]) . ", '" . ($j + 1) . "')";
$res_insert = execute_db($sql, $conn, 'install.php');
}
}
if(table_exists($table_internal_name_temp)) {
echo "<p>Internal table <b>" . htmlspecialchars($table_internal_name_temp) . "</b> correctly created...</p>";
}
else {
echo "<p>An error occurred during installation!</p>";
exit;
}
if($unique_field_name == "") {
echo "<p><b>Warning:</b> the table <b>" . htmlspecialchars($table_name_temp) . "</b> does not have a primary key set. If you do not set a primary key, the interface creator won't show the edit/delete/details buttons.</p>";
}
}
echo "<p>... the interface creator is properly installed.</p>";
echo "<p>You can now manage information in the MySQL tables, starting from <a href=\"" . $dadabik_main_file . "\">the data browser front page</a></p>";
echo "<p>In order to configure the appearance of records from this table and of the forms used to manipulate data in the table, go to the <a href=\"admin.php\">administration</a> area.</p>";
}
else {
echo "<form name=\"install_form\" id=\"install_form\" action=\"install.php?table_name=" . rawurlencode($table_name) . "\" method=\"post\">";
echo "<p><input type=\"hidden\" name=\"install\" id=\"install\" value=\"1\" />";
if($table_name != "") {
echo "<input type=\"submit\" value=\"Click this button to install " . htmlspecialchars($table_name) . " table\" />";
}
if($table_name == "") {
echo "<input type=\"submit\" value=\"Click this button to install the interface creator\" />";
echo "<br /><br />Please note that if the interface creator is already installed in the " . htmlspecialchars($db_name) . " database, the installation will overwrite the previous configuration. The installation will also overwrite the users table - " . htmlspecialchars($users_table_name) . ". If you want to keep the pre-existent one, just back it up and import it after the installation (for how to backup and import MySQL tables, please check elsewhere; you may want to try the free web application phpmyadmin - www.phpmyadmin.net).</p>";
}
echo "</form>";
}
include(realpath(dirname(__FILE__) . '/footer_admin.php'));