[Easymod-cvs] easymod2/mods/easymod easymod_install.php,1.28,1.29
Status: Beta
Brought to you by:
wgeric
From: Markus P. <mar...@us...> - 2005-07-29 17:33:17
|
Update of /cvsroot/easymod/easymod2/mods/easymod In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15980/mods/easymod Modified Files: easymod_install.php Log Message: Implementation of the following extensions: - Record Processed Files. - Restore Backups. - Delete MOD Record. Index: easymod_install.php =================================================================== RCS file: /cvsroot/easymod/easymod2/mods/easymod/easymod_install.php,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** easymod_install.php 10 Jul 2005 22:54:47 -0000 1.28 --- easymod_install.php 29 Jul 2005 17:33:07 -0000 1.29 *************** *** 832,835 **** --- 832,841 ---- + // Check which tables should we create before building the $sql array. + $test_sql = "SELECT * FROM " . EASYMOD_TABLE ; + $create_easymod_table = ( $db->sql_query($test_sql) ? false : true ); + $test_sql = "SELECT * FROM " . EASYMOD_PROCESSED_FILES_TABLE ; + $create_easymod_processed_files_table = ( $db->sql_query($test_sql) ? false : true ); + /// /// Add the easymod table *************** *** 841,887 **** case 'mysqli': case 'mysql4': ! $sql[] = "CREATE TABLE " . EASYMOD_TABLE . " ( ! mod_id mediumint(8) NOT NULL auto_increment, ! mod_title varchar(255) NULL DEFAULT '', ! mod_file varchar(255) NULL DEFAULT '', ! mod_version varchar(15) NULL DEFAULT '', ! mod_author_handle varchar(25) NULL DEFAULT '', ! mod_author_email varchar(100) NULL DEFAULT '', ! mod_author_name varchar(100) NULL DEFAULT '', ! mod_author_url varchar(100) NULL DEFAULT '', ! mod_description text NULL DEFAULT '', ! mod_process_date int(11) NULL DEFAULT '0', ! mod_phpBB_version varchar(15) NULL DEFAULT '', ! mod_processed_themes varchar(200) NULL DEFAULT '', ! mod_processed_langs varchar(200) NULL DEFAULT '', ! mod_files_edited mediumint(8) NULL DEFAULT '0', ! mod_tables_added mediumint(8) NULL DEFAULT '0', ! mod_tables_altered mediumint(8) NULL DEFAULT '0', ! mod_rows_inserted mediumint(8) NULL DEFAULT '0', ! PRIMARY KEY (mod_id))" ; break ; case 'postgresql': ! $sql[] = "CREATE SEQUENCE " . EASYMOD_TABLE . "_mod_id_seq start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1" ; ! $sql[] = "CREATE TABLE " . EASYMOD_TABLE . " ( ! mod_id int4 NOT NULL DEFAULT nextval('" . EASYMOD_TABLE . "_mod_id_seq'::text), ! CONSTRAINT PK_phpbb_easymod PRIMARY KEY (mod_id), ! mod_title varchar(255) NULL DEFAULT '', ! mod_file varchar(255) NULL DEFAULT '', ! mod_version varchar(15) NULL DEFAULT '', ! mod_author_handle varchar(25) NULL DEFAULT '', ! mod_author_email varchar(100) NULL DEFAULT '', ! mod_author_name varchar(100) NULL DEFAULT '', ! mod_author_url varchar(100) NULL DEFAULT '', ! mod_description text NULL DEFAULT '', ! mod_process_date int4 NULL DEFAULT '0', ! mod_phpBB_version varchar(15) NULL DEFAULT '', ! mod_processed_themes varchar(200) NULL DEFAULT '', ! mod_processed_langs varchar(200) NULL DEFAULT '', ! mod_files_edited int4 NULL DEFAULT '0', ! mod_tables_added int4 NULL DEFAULT '0', ! mod_tables_altered int4 NULL DEFAULT '0', ! mod_rows_inserted int4 NULL DEFAULT '0' )" ; break ; --- 847,917 ---- case 'mysqli': case 'mysql4': ! if( $create_easymod_table ) ! { ! $sql[] = "CREATE TABLE " . EASYMOD_TABLE . " ( ! mod_id mediumint(8) NOT NULL auto_increment, ! mod_title varchar(255) NULL DEFAULT '', ! mod_file varchar(255) NULL DEFAULT '', ! mod_version varchar(15) NULL DEFAULT '', ! mod_author_handle varchar(25) NULL DEFAULT '', ! mod_author_email varchar(100) NULL DEFAULT '', ! mod_author_name varchar(100) NULL DEFAULT '', ! mod_author_url varchar(100) NULL DEFAULT '', ! mod_description text NULL DEFAULT '', ! mod_process_date int(11) NULL DEFAULT '0', ! mod_phpBB_version varchar(15) NULL DEFAULT '', ! mod_processed_themes varchar(200) NULL DEFAULT '', ! mod_processed_langs varchar(200) NULL DEFAULT '', ! mod_files_edited mediumint(8) NULL DEFAULT '0', ! mod_tables_added mediumint(8) NULL DEFAULT '0', ! mod_tables_altered mediumint(8) NULL DEFAULT '0', ! mod_rows_inserted mediumint(8) NULL DEFAULT '0', ! PRIMARY KEY (mod_id))" ; ! } ! ! if( $create_easymod_processed_files_table ) ! { ! $sql[] = "CREATE TABLE " . EASYMOD_PROCESSED_FILES_TABLE . " ( ! mod_processed_file varchar(255) NOT NULL DEFAULT '', ! mod_id mediumint(8) NOT NULL DEFAULT '0', ! KEY mod_processed_file (mod_processed_file), ! KEY mod_id (mod_id))"; ! } break ; case 'postgresql': ! if( $create_easymod_table ) ! { ! $sql[] = "CREATE SEQUENCE " . EASYMOD_TABLE . "_mod_id_seq start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1" ; ! $sql[] = "CREATE TABLE " . EASYMOD_TABLE . " ( ! mod_id int4 NOT NULL DEFAULT nextval('" . EASYMOD_TABLE . "_mod_id_seq'::text), ! CONSTRAINT PK_phpbb_easymod PRIMARY KEY (mod_id), ! mod_title varchar(255) NULL DEFAULT '', ! mod_file varchar(255) NULL DEFAULT '', ! mod_version varchar(15) NULL DEFAULT '', ! mod_author_handle varchar(25) NULL DEFAULT '', ! mod_author_email varchar(100) NULL DEFAULT '', ! mod_author_name varchar(100) NULL DEFAULT '', ! mod_author_url varchar(100) NULL DEFAULT '', ! mod_description text NULL DEFAULT '', ! mod_process_date int4 NULL DEFAULT '0', ! mod_phpBB_version varchar(15) NULL DEFAULT '', ! mod_processed_themes varchar(200) NULL DEFAULT '', ! mod_processed_langs varchar(200) NULL DEFAULT '', ! mod_files_edited int4 NULL DEFAULT '0', ! mod_tables_added int4 NULL DEFAULT '0', ! mod_tables_altered int4 NULL DEFAULT '0', ! mod_rows_inserted int4 NULL DEFAULT '0' )" ; ! } ! ! if( $create_easymod_processed_files_table ) ! { ! $sql[] = 'CREATE TABLE ' . EASYMOD_PROCESSED_FILES_TABLE . " ( ! mod_processed_file varchar(255) NOT NULL DEFAULT '', ! mod_id int4 NOT NULL DEFAULT '0' )"; ! $sql[] = 'CREATE INDEX ' . EASYMOD_PROCESSED_FILES_TABLE . '_ix1 ON ' . EASYMOD_PROCESSED_FILES_TABLE . ' (mod_processed_file)'; ! $sql[] = 'CREATE INDEX ' . EASYMOD_PROCESSED_FILES_TABLE . '_ix2 ON ' . EASYMOD_PROCESSED_FILES_TABLE . ' (mod_id)'; ! } break ; *************** *** 893,944 **** GO" ; */ ! $sql[] = "CREATE TABLE [" . EASYMOD_TABLE . "] ( ! [mod_id] [int] IDENTITY (1, 1) NOT NULL, ! [mod_title] [varchar] (255) NULL, ! [mod_file] [varchar] (255) NULL, ! [mod_version] [varchar] (15) NULL, ! [mod_author_handle] [varchar] (25) NULL, ! [mod_author_email] [varchar] (100) NULL, ! [mod_author_name] [varchar] (100) NULL, ! [mod_author_url] [varchar] (100) NULL, ! [mod_description] [varchar] (255) NULL, ! [mod_process_date] [int] NULL, ! [mod_phpBB_version] [varchar] (15) NULL, ! [mod_processed_themes] [varchar] (200) NULL, ! [mod_processed_langs] [varchar] (200) NULL, ! [mod_files_edited] [int] NULL, ! [mod_tables_added] [int] NULL, ! [mod_tables_altered] [int] NULL, ! [mod_rows_inserted] [int] NULL ! ) ON [PRIMARY];" ; //GO" ; ! $sql[] = "ALTER TABLE [" . EASYMOD_TABLE . "] WITH NOCHECK ADD ! CONSTRAINT [PK_" . EASYMOD_TABLE . "] PRIMARY KEY CLUSTERED ! ( ! [mod_id] ! ) ON [PRIMARY]" ; //GO" ; ! // CONSTRAINT [DF_phpbb_easymod_mod_id] DEFAULT ('0') FOR [mod_id], ! $sql[] = "ALTER TABLE [" . EASYMOD_TABLE . "] WITH NOCHECK ADD ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_title] DEFAULT ('') FOR [mod_title], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_file] DEFAULT ('') FOR [mod_file], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_version] DEFAULT ('') FOR [mod_version], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_handle] DEFAULT ('') FOR [mod_author_handle], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_email] DEFAULT ('') FOR [mod_author_email], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_name] DEFAULT ('') FOR [mod_author_name], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_url] DEFAULT ('') FOR [mod_author_url], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_description] DEFAULT ('') FOR [mod_description], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_process_date] DEFAULT ('0') FOR [mod_process_date], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_phpBB_version] DEFAULT ('') FOR [mod_phpBB_version], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_processed_themes] DEFAULT ('') FOR [mod_processed_themes], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_processed_langs] DEFAULT ('') FOR [mod_processed_langs], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_files_edited] DEFAULT ('0') FOR [mod_files_edited], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_tables_added] DEFAULT ('0') FOR [mod_tables_added], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_tables_altered] DEFAULT ('0') FOR [mod_tables_altered], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_rows_inserted] DEFAULT ('0') FOR [mod_rows_inserted]" ; ! // GO" ; /* --- 923,997 ---- GO" ; */ ! if( $create_easymod_table ) ! { ! $sql[] = "CREATE TABLE [" . EASYMOD_TABLE . "] ( ! [mod_id] [int] IDENTITY (1, 1) NOT NULL, ! [mod_title] [varchar] (255) NULL, ! [mod_file] [varchar] (255) NULL, ! [mod_version] [varchar] (15) NULL, ! [mod_author_handle] [varchar] (25) NULL, ! [mod_author_email] [varchar] (100) NULL, ! [mod_author_name] [varchar] (100) NULL, ! [mod_author_url] [varchar] (100) NULL, ! [mod_description] [varchar] (255) NULL, ! [mod_process_date] [int] NULL, ! [mod_phpBB_version] [varchar] (15) NULL, ! [mod_processed_themes] [varchar] (200) NULL, ! [mod_processed_langs] [varchar] (200) NULL, ! [mod_files_edited] [int] NULL, ! [mod_tables_added] [int] NULL, ! [mod_tables_altered] [int] NULL, ! [mod_rows_inserted] [int] NULL ! ) ON [PRIMARY];" ; //GO" ; ! $sql[] = "ALTER TABLE [" . EASYMOD_TABLE . "] WITH NOCHECK ADD ! CONSTRAINT [PK_" . EASYMOD_TABLE . "] PRIMARY KEY CLUSTERED ! ( ! [mod_id] ! ) ON [PRIMARY]" ; //GO" ; ! // CONSTRAINT [DF_phpbb_easymod_mod_id] DEFAULT ('0') FOR [mod_id], ! $sql[] = "ALTER TABLE [" . EASYMOD_TABLE . "] WITH NOCHECK ADD ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_title] DEFAULT ('') FOR [mod_title], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_file] DEFAULT ('') FOR [mod_file], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_version] DEFAULT ('') FOR [mod_version], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_handle] DEFAULT ('') FOR [mod_author_handle], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_email] DEFAULT ('') FOR [mod_author_email], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_name] DEFAULT ('') FOR [mod_author_name], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_author_url] DEFAULT ('') FOR [mod_author_url], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_description] DEFAULT ('') FOR [mod_description], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_process_date] DEFAULT ('0') FOR [mod_process_date], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_phpBB_version] DEFAULT ('') FOR [mod_phpBB_version], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_processed_themes] DEFAULT ('') FOR [mod_processed_themes], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_processed_langs] DEFAULT ('') FOR [mod_processed_langs], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_files_edited] DEFAULT ('0') FOR [mod_files_edited], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_tables_added] DEFAULT ('0') FOR [mod_tables_added], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_tables_altered] DEFAULT ('0') FOR [mod_tables_altered], ! CONSTRAINT [DF_" . EASYMOD_TABLE . "_mod_rows_inserted] DEFAULT ('0') FOR [mod_rows_inserted]" ; ! // GO" ; ! ! } ! ! if( $create_easymod_processed_files_table ) ! { ! $sql[] = "CREATE TABLE [" . EASYMOD_PROCESSED_FILES_TABLE . "] ( ! [mod_id] [int] NOT NULL, ! [mod_processed_file] [varchar] (255) NULL ! ) ON [PRIMARY];" ; ! //GO" ; ! $sql[] = "ALTER TABLE [" . EASYMOD_PROCESSED_FILES_TABLE . "] WITH NOCHECK ADD ! CONSTRAINT [DF_" . EASYMOD_PROCESSED_FILES_TABLE . "_mod_processed_file] DEFAULT ('') FOR [mod_processed_file], ! CONSTRAINT [DF_" . EASYMOD_PROCESSED_FILES_TABLE . "_mod_id] DEFAULT ('0') FOR [mod_id]"; ! //GO" ; ! $sql[] = "CREATE INDEX [" . EASYMOD_PROCESSED_FILES_TABLE . "_IX1] ! ON [" . EASYMOD_PROCESSED_FILES_TABLE . "]([mod_processed_file]) ON [PRIMARY]"; ! //GO" ; ! $sql[] = "CREATE INDEX [" . EASYMOD_PROCESSED_FILES_TABLE . "_IX2] ! ON [" . EASYMOD_PROCESSED_FILES_TABLE . "]([mod_id]) ON [PRIMARY]"; ! //GO" ; ! } /* *************** *** 950,971 **** case 'msaccess': ! $sql[] = "CREATE TABLE " . EASYMOD_TABLE . " ( ! mod_id COUNTER NOT NULL CONSTRAINT PK_" . EASYMOD_TABLE . " PRIMARY KEY, ! mod_title TEXT(255) NULL, ! mod_file TEXT(255) NULL, ! mod_version TEXT(15) NULL, ! mod_author_handle TEXT(25) NULL, ! mod_author_email TEXT(100) NULL, ! mod_author_name TEXT(100) NULL, ! mod_author_url TEXT(100) NULL, ! mod_description MEMO NULL, ! mod_process_date INTEGER NULL, ! mod_phpBB_version TEXT(15) NULL, ! mod_processed_themes TEXT(200) NULL, ! mod_processed_langs TEXT(200) NULL, ! mod_files_edited INTEGER NULL, ! mod_tables_added INTEGER NULL, ! mod_tables_altered INTEGER NULL, ! mod_rows_inserted INTEGER NULL )" ; break ; --- 1003,1036 ---- case 'msaccess': ! if( $create_easymod_table ) ! { ! $sql[] = "CREATE TABLE " . EASYMOD_TABLE . " ( ! mod_id COUNTER NOT NULL CONSTRAINT PK_" . EASYMOD_TABLE . " PRIMARY KEY, ! mod_title TEXT(255) NULL, ! mod_file TEXT(255) NULL, ! mod_version TEXT(15) NULL, ! mod_author_handle TEXT(25) NULL, ! mod_author_email TEXT(100) NULL, ! mod_author_name TEXT(100) NULL, ! mod_author_url TEXT(100) NULL, ! mod_description MEMO NULL, ! mod_process_date INTEGER NULL, ! mod_phpBB_version TEXT(15) NULL, ! mod_processed_themes TEXT(200) NULL, ! mod_processed_langs TEXT(200) NULL, ! mod_files_edited INTEGER NULL, ! mod_tables_added INTEGER NULL, ! mod_tables_altered INTEGER NULL, ! mod_rows_inserted INTEGER NULL )" ; ! } ! ! if( $create_easymod_processed_files_table ) ! { ! $sql[] = 'CREATE TABLE ' . EASYMOD_PROCESSED_FILES_TABLE . " ( ! mod_processed_file TEXT(255) NOT NULL DEFAULT '', ! mod_id INTEGER NOT NULL DEFAULT '0' )"; ! $sql[] = 'CREATE INDEX ' . EASYMOD_PROCESSED_FILES_TABLE . '_ix1 ON ' . EASYMOD_PROCESSED_FILES_TABLE . ' (mod_processed_file)'; ! $sql[] = 'CREATE INDEX ' . EASYMOD_PROCESSED_FILES_TABLE . '_ix2 ON ' . EASYMOD_PROCESSED_FILES_TABLE . ' (mod_id)'; ! } break ; *************** *** 979,993 **** ! // if the EM table already exists, then don't bother making it again ! $test_sql = "SELECT * FROM " . EASYMOD_TABLE ; ! if ( $result = $db->sql_query($test_sql)) { echo '<p>' . $lang['EM_progress'] . ' :: <b class="ok">' . $lang['EM_done'] . '</b> - ' . $lang['EM_already_exist'] . "<br />\n" ; } ! // we need to create the table else { ! echo '<b>' . $lang['EM_exec_sql'] . ': </b>' ; for($i = 0; $i < count($sql); $i++) { --- 1044,1057 ---- ! // if the EM tables already exist, then don't bother making them again ! if ( count($sql) <= 0 ) { echo '<p>' . $lang['EM_progress'] . ' :: <b class="ok">' . $lang['EM_done'] . '</b> - ' . $lang['EM_already_exist'] . "<br />\n" ; } ! // we need to create the EM tables else { ! echo '<b>' . $lang['EM_exec_sql'] . ": </b><br />\n"; for($i = 0; $i < count($sql); $i++) { *************** *** 1625,1628 **** --- 1689,1695 ---- _sql($sql, $errored, $error_ary); + // save the new record id for later use. + $mod_id = $db->sql_nextid(); + echo '</b> <b class="ok">' . $lang['EM_done'] . '</b><br />' . $lang['EM_result'] . " :: \n"; *************** *** 1645,1648 **** --- 1712,1827 ---- + // populate the processed files table + echo "<br /><br /><strong>" . $lang['EM_store_files'] . "</strong><br />\n<br />\n" ; + + // If we're upgrading, then there might be data here already + $sql_test = 'SELECT COUNT(*) AS cnt FROM ' . EASYMOD_PROCESSED_FILES_TABLE; + if( !($result = $db->sql_query($sql_test)) ) + { + handle_error( OPEN_FAIL_CRITICAL, $file_list, false, "<p>" . $lang['EM_err_em_info'] . "</p>\n") ; + } + $epf_count = $db->sql_fetchrow($result); + $epf_count = intval($epf_count['cnt']); + + $sql = array(); + + if( $epf_count > 0 ) + { + // if we found records here, that means we have all data from all previously processed MODs + // all we have to do is add a new record corresponding to this version of EM. + $processed_file = "admin/admin_easymod.$phpEx"; + $sql[] = 'INSERT INTO ' . EASYMOD_PROCESSED_FILES_TABLE . " (mod_processed_file, mod_id) + VALUES ('" . $processed_file . "', " . $mod_id . ")"; + // Note $mod_id was stored just after inserting the the record for this EM installation. + } + else + { + // if NO records were found here, that means: + // a) this is a new EM installation. + // b) we are upgrading to the first EM version capable of recording processed files. + // The same logic applies to both scenarios. We have to parse all MODs found in the main + // EM table (there would be just one if its a new installation or many if it's an upgrade). + $sql_test = 'SELECT mod_id, mod_title, mod_file + FROM ' . EASYMOD_TABLE . ' + ORDER BY mod_id'; + if( !($result = $db->sql_query($sql_test)) ) + { + handle_error( OPEN_FAIL_CRITICAL, $file_list, false, "<p>" . $lang['EM_err_em_info'] . "</p>\n") ; + } + $em_rows = $db->sql_fetchrowset($result); + $em_count = count($em_rows); + + // for each MOD we'll read its 'post_process.bat' file to get + // its list of processed files from there. + for( $i = 0; $i < $em_count; $i++ ) + { + if( $em_rows[$i]['mod_title'] == 'EasyMOD' ) + { + $processed_file = "admin/admin_easymod.$phpEx"; + $sql[] = 'INSERT INTO ' . EASYMOD_PROCESSED_FILES_TABLE . " (mod_processed_file, mod_id) + VALUES ('" . $processed_file . "', " . $em_rows[$i]['mod_id'] . ")"; + continue; + } + + // current working directory is admin/mods/easymod, so we should be able to reach MODs like this: + $post_process_bat = dirname('../' . $em_rows[$i]['mod_file']) . '/post_process.bat'; + + // Ignore errors when reading 'post_process.bat' files + if( @file_exists($post_process_bat) && ($read_file = @fopen($post_process_bat, 'r')) ) + { + while( !feof($read_file) ) + { + $newline = fgets($read_file, 4096); + $parms = explode(' ', str_replace(array('\\', "\n", "\r"), array('/', '', ''), $newline)); + if( $parms[0] == 'copy' ) + { + $split_to = explode('/', $parms[2]); + if( $split_to[0] == 'backups' ) + { + $processed_file = (substr($parms[1], 0, 9) == '../../../') ? substr($parms[1], 9) : $parms[1]; + $sql[] = 'INSERT INTO ' . EASYMOD_PROCESSED_FILES_TABLE . " (mod_processed_file, mod_id) + VALUES ('" . $processed_file . "', " . $em_rows[$i]['mod_id'] . ")"; + } + } + } + @fclose($read_file); + } + } + } + + echo '<b>' . $lang['EM_exec_sql'] . ": </b><br />\n"; + for($i = 0; $i < count($sql); $i++) + { + echo "$sql[$i]<br />\n" ; + } + + echo '<p>' . $lang['EM_progress'] . ' :: <b>'; + flush(); + + $error_ary = array(); + $errored = false; + for($i = 0; $i < count($sql); $i++) + { + _sql($sql[$i], $errored, $error_ary); + } + + echo '</b> <b class="ok">' . $lang['EM_done'] . '</b><br />' . $lang['EM_result'] . " :: \n"; + + if ( $errored ) + { + echo ' <b>' . $lang['EM_failed_sql'] . "</b>\n<ul>"; + + for($i = 0; $i < count($error_ary['sql']); $i++) + { + echo '<li>' . $lang['EM_err_error'] . ' :: <b>' . $error_ary['error_code'][$i]['message'] . "</b><br />\n"; + echo "SQL :: <b>" . $error_ary['sql'][$i] . "</b><br /><br /></li>\n"; + } + echo "</ul>\n<p>" . $lang['EM_no_worry'] . "</p>\n"; + } + else + { + echo '<b>' . $lang['EM_no_errors'] . "</b>\n"; + } + // *************** *** 1667,1669 **** } ! ?> --- 1846,1848 ---- } ! ?> \ No newline at end of file |