0byt3m1n1
Path:
/
data
/
applications
/
aps
/
mantis
/
1.2.7-0
/
standard
/
htdocs
/
admin
/
[
Home
]
File: copy_field.php
<?php # MantisBT - a php based bugtracking system # MantisBT is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # MantisBT is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with MantisBT. If not, see <http://www.gnu.org/licenses/>. # This upgrade moves attachments from the database to the disk /** * @package MantisBT * @copyright Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org * @copyright Copyright (C) 2002 - 2011 MantisBT Team - mantisbt-dev@lists.sourceforge.net * @link http://www.mantisbt.org */ /** * MantisBT Core API's */ require_once( dirname( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR . 'core.php' ); access_ensure_global_level( config_get_global( 'admin_site_threshold' ) ); $f_source_field_id = gpc_get_int( 'source_id' ); $f_dest_field = gpc_get( 'dest_id' ); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title> MantisBT Administration - Copy Custom Fields to Built-in </title> <link rel="stylesheet" type="text/css" href="admin.css" /> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff"> <tr class="top-bar"> <td class="links"> [ <a href="system_utils.php">Back to System Utilities</a> ] [ <a href="copy_field.php?source_id=<?php echo $f_source_field_id?>&dest_id=<?php echo $f_dest_field?>">Refresh view</a> ] </td> <td class="title"> MantisBT Administration - Copy Custom Fields to Built-in </td> </tr> </table> <br /><br /> <?php # checks on validity $t_valid_fields = array( 'fixed_in_version', ); if( !in_array( $f_dest_field, $t_valid_fields ) ) { echo '<p>Invalid destination field (' . $f_dest_field . ') specified.</p>'; echo '</body></html>'; exit; } # @@@ check that source and destination are compatible $t_string_table = db_get_table( 'mantis_custom_field_string_table' ); $t_bug_table = db_get_table( 'mantis_bug_table' ); $query = 'SELECT * FROM ' . $t_string_table . ' WHERE field_id = ' . db_param() . ' and value <> ' . db_param(); $result = @db_query_bound( $query, Array( $f_source_field_id, '' ) ); if( FALSE == $result ) { echo '<p>No fields need to be updated.</p>'; } else { $count = db_num_rows( $result ); echo '<p>Found ' . $count . ' fields to be updated.</p>'; $t_failures = 0; if( $count > 0 ) { echo '<table width="80%" bgcolor="#222222" border="0" cellpadding="10" cellspacing="1">'; # Headings echo '<tr bgcolor="#ffffff"><th width="10%">Bug Id</th><th width="20%">Field Value</th><th width="70%">Status</th></tr>'; } for( $i = 0;$i < $count;$i++ ) { $row = db_fetch_array( $result ); extract( $row, EXTR_PREFIX_ALL, 'v' ); # trace bug id back to project $t_project_id = bug_get_field( $v_bug_id, 'project_id' ); $t_cust_value = $v_value; printf("\n<tr %s><td><a href=\"../view.php?id=%d\">%07d</a></td><td>%s</td><td>", helper_alternate_class(), $v_bug_id, $v_bug_id, $v_value); # validate field contents switch( $f_dest_field ) { case 'fixed_in_version': $t_valid = ( version_get_id( $t_cust_value, $t_project_id ) == FALSE ) ? FALSE : TRUE; break; default: $t_valid = FALSE; } if( $t_valid ) { # value was valid, update value if( !bug_set_field( $v_bug_id, $f_dest_field, $t_cust_value ) ) { echo 'database update failed'; $t_failures++; } else { echo 'applied'; } } else { echo 'field value was not valid or previously defined'; $t_failures++; } echo '</td></tr>'; } echo '</table><br />' . $count . ' fields processed, ' . $t_failures . ' failures'; } echo '<p> Completed...<p>'; ?> </body> </html>