' . "\n"; print '' . trans ("SYP configuration") . '' . "\n"; $drivers = array(); $handle = opendir("./inc/db"); if (!$handle) { par_error_and_leave (trans ('Could not list inc/db directory')); } while (false !== ($file = readdir($handle))) { if ($file == "." or $file == "..") { continue; } $driver_name = substr($file,0,strrpos($file,'.')); if ($driver_name == "anydb") { continue; } array_push ($drivers, $driver_name); } closedir($handle); print '
' . "\n" . '" . "\n"; print '
' . "\n" . '
' . "\n"; print '
' . "\n" . '
' . "\n"; print '
' . "\n" . '
' . "\n"; print '
' . "\n" . '
' . "\n"; print '
' . "\n" . '' . "\n"; print '
' . "\n" . '' . "\n"; print '
'; print '
'; } if (file_exists (CONFIG_FILE)) { require_once (CONFIG_FILE); } else if (isset ($_POST["db_form_submit"])) { // user has submitted form function _unquote($gpc_str) { if (!isset ($gpc_str)) { return $gpc_str; } if (get_magic_quotes_gpc ()) { return stripslashes ($gpc_str); } else { return $gpc_str; } } define (DBTYPE, _unquote ($_POST ["db_type"])); define (DBHOST, _unquote ($_POST ["db_host"])); define (DBNAME, _unquote ($_POST ["db_name"])); define (DBUSER, _unquote ($_POST ["db_user"])); define (DBPWD, _unquote ($_POST ["db_pass"])); define (DBPREFIX, _unquote ($_POST ["db_prefix"])); define (SITETITLE, _unquote ($_POST ["site_title"])); // default values define (UPLOADDIR, "upload"); define (THUMBSDIR, "upload/_thumbs"); } else { if (!is_writable (dirname (CONFIG_FILE))) { error_unwritable_config (); } create_install_form (); leave (); } if (!include_once ("./inc/db/" . DBTYPE . ".php")) { par_error_and_leave (trans("Unkown backend: ", DBTYPE)); } require_once ("./inc/utils.php"); try { $connection->connect (DBHOST, DBUSER, DBPWD, DBNAME, DBPREFIX); } catch (Exception $e) { switch ($e->getMessage ()) { case anydbConnection::err_driver_unavailable: par_error ($connection->getdbname() . ': ' . trans ('not supported')); break; case anydbConnection::err_connection: par_error (trans ('Could not connect to database.')); break; case anydbConnection::err_unknown_database: par_error (trans ('Database does not exist.')); break; default: par_error (trans ('Unknown error when connecting to database.')); break; } if (isset ($_POST ["db_form_submit"])) { // user had submited database informations. They seem to be wrong. // Ask again. create_install_form (); } leave (); } // we can connect to table. If config file does not exist, try to create it now. if (!file_exists (CONFIG_FILE)) { $handle = fopen ("./inc/settings.php.in", "r"); $lines = array(); if ($handle) { while (!feof ($handle)) { $line = fgets ($handle, 4096); foreach (array ("DBTYPE", "DBHOST", "DBNAME", "DBUSER", "DBPWD", "DBPREFIX", "SITETITLE") as $value) { $pattern = "(define\s+\(\s*\"$value\"\s*,\s*\")[^\"]*(\"\s*\)\s*;)"; if (preg_match( "/$pattern/", $line, $match )) { $line = $match[1] . addslashes (constant ($value)) . $match[2]; break; } } array_push ($lines, $line); } fclose ($handle); } else { par_error_and_leave (trans ('Could not read inc/settings.php.in')); } $handle = fopen(CONFIG_FILE, 'w'); if (!$handle) { error_unwritable_config (); } fwrite ($handle, join($lines)); par_success (trans ('Config file created')); } else { par_success (trans ('Config file exists')); } try { $users_table_exists = $connection->users_table_exists (); } catch(Exception $e) { par_error_and_leave (trans ('Unknown error when checking user table.')); } if ($users_table_exists) { par_success (trans ('Found user table.')); } else { $empty_pass = (isset ($_POST ["admin_pass"]) && (strlen ($_POST ["admin_pass"]) == 0)); if (isset ($_POST["admin_pass"]) and $_POST ["admin_pass"]) { try { $connection->create_users_table (true); } catch (Exception $e) { par_error_and_leave (trans ('Error when creating user table.')); } par_success (trans ('User table created.')); try { $connection->setpwd ("admin", $_POST ["admin_pass"]); } catch (Exception $e) { par_error_and_leave (trans ('Error when initializing password.')); } par_success (trans ('Admin password initialized.')); } else { print ('
'); if ($empty_pass) { print ('

' . trans('Password cannot be empty') . '

'); } else { print (''); } print ('
'); leave (); } } try { $items_table_exists = $connection->items_table_exists (); } catch (Exception $e) { par_error_and_leave (trans ('Unknown error when checking data table.')); } if ($items_table_exists) { par_success (trans ('Found data table.')); } else { try { $connection->create_items_table (true); } catch (Exception $e) { par_error_and_leave (trans ('Error when creating data table.')); } par_success (trans ('Data table created.')); } safe_create_writable_dir (UPLOADDIR); safe_create_writable_dir (getthumbsdir ()); if (!function_exists ("gd_info")) { par_warn (trans ('It looks like GD extension is not installed.')); } par_success (trans ('SYP is installed. You can now go to admin area')); ?>