require_api('utility_api.php'); # Check if project documentation feature is enabled. if (OFF == config_get('enable_project_documentation') || !file_is_uploading_enabled() || !file_allow_project_upload()) { access_denied(); } $f_file_id = gpc_get_int('file_id'); $c_file_id = db_prepare_int($f_file_id); $t_project_id = file_get_field($f_file_id, 'project_id', 'project'); access_ensure_project_level(config_get('upload_project_file_threshold'), $t_project_id); $t_proj_file_table = db_get_table('project_file'); $query = "SELECT *\n\t\tFROM {$t_proj_file_table}\n\t\tWHERE id=" . db_param(); $result = db_query_bound($query, array($c_file_id)); $row = db_fetch_array($result); extract($row, EXTR_PREFIX_ALL, 'v'); $v_title = string_attribute($v_title); $v_description = string_textarea($v_description); $t_max_file_size = (int) min(ini_get_number('upload_max_filesize'), ini_get_number('post_max_size'), config_get('max_file_size')); html_page_top(); ?> <br /> <div> <form method="post" enctype="multipart/form-data" action="proj_doc_update.php"> <?php echo form_security_field('proj_doc_update'); ?> <table class="width75" cellspacing="1"> <tr> <td class="form-title"> <input type="hidden" name="file_id" value="<?php echo $f_file_id;
} ?> <!-- Description --> <tr <?php echo helper_alternate_class(); ?> > <th class="category"> <?php echo lang_get('description'); ?> </th> <td> <textarea name="description" cols="60" rows="5"><?php echo string_textarea($row['description']); ?> </textarea> </td> </tr> <?php event_signal('EVENT_MANAGE_PROJECT_UPDATE_FORM', array($f_project_id)); ?> <!-- Submit Button --> <tr> <td> </td> <td> <input type="submit" class="button" value="<?php echo lang_get('update_project_button');
<!-- Description --> <tr <?php echo helper_alternate_class(); ?> > <td class="category"><?php echo lang_get('tag_description'); ?> </td> <td colspan="4"> <textarea name="description" <?php echo helper_get_tab_index(); ?> cols="80" rows="6"><?php echo string_textarea($t_description); ?> </textarea> </td> </tr> <!-- Submit Button --> <tr> <td class="center" colspan="6"> <input <?php echo helper_get_tab_index(); ?> type="submit" class="button" value="<?php echo lang_get('tag_update_button'); ?> " />
$t_show_os_version = $t_show_profiles && in_array('os_version', $t_fields); $t_show_versions = version_should_show_product_version($t_bug->project_id); $t_show_product_version = $t_show_versions && in_array('product_version', $t_fields); $t_show_product_build = $t_show_versions && in_array('product_build', $t_fields) && config_get('enable_product_build') == ON; $t_product_build_attribute = $t_show_product_build ? string_attribute($t_bug->build) : ''; $t_show_target_version = $t_show_versions && in_array('target_version', $t_fields) && access_has_bug_level(config_get('roadmap_update_threshold'), $t_bug_id); $t_show_fixed_in_version = $t_show_versions && in_array('fixed_in_version', $t_fields); $t_show_due_date = in_array('due_date', $t_fields) && access_has_bug_level(config_get('due_date_view_threshold'), $t_bug_id); $t_show_summary = in_array('summary', $t_fields); $t_summary_attribute = $t_show_summary ? string_attribute($t_bug->summary) : ''; $t_show_description = in_array('description', $t_fields); $t_description_textarea = $t_show_description ? string_textarea($t_bug->description) : ''; $t_show_additional_information = in_array('additional_info', $t_fields); $t_additional_information_textarea = $t_show_additional_information ? string_textarea($t_bug->additional_information) : ''; $t_show_steps_to_reproduce = in_array('steps_to_reproduce', $t_fields); $t_steps_to_reproduce_textarea = $t_show_steps_to_reproduce ? string_textarea($t_bug->steps_to_reproduce) : ''; if (NO_USER == $t_bug->handler_id) { $t_handler_name = ''; } else { $t_handler_name = string_display_line(user_get_name($t_bug->handler_id)); } $t_can_change_view_state = $t_show_view_state && access_has_project_level(config_get('change_view_status_threshold')); if ($t_show_product_version) { $t_product_version_released_mask = VERSION_RELEASED; if (access_has_project_level(config_get('report_issues_for_unreleased_versions_threshold'))) { $t_product_version_released_mask = VERSION_ALL; } } $t_formatted_bug_id = $t_show_id ? bug_format_id($f_bug_id) : ''; $t_project_name = $t_show_project ? string_display_line(project_get_name($t_bug->project_id)) : ''; if ($t_show_due_date) {
<!-- Description --> <tr <?php echo helper_alternate_class(); ?> > <td class="category"><?php echo lang_get('tag_description'); ?> </td> <td colspan="4"> <textarea name="description" <?php echo helper_get_tab_index(); ?> cols="80" rows="6"><?php echo string_textarea($t_tag_row['description']); ?> </textarea> </td> </tr> <!-- Submit Button --> <tr> <td class="center" colspan="6"> <input <?php echo helper_get_tab_index(); ?> type="submit" class="button" value="<?php echo lang_get('tag_update_button'); ?> " />
html_page_top1(); if (OFF == plugin_config_get('worklog_view_window')) { html_page_top2(); } ?> <?php access_ensure_project_level(DEVELOPER); $f_id = gpc_get_int('f_id'); # Retrieve faq item data and prefix with v_ $row = worklog_select_query($f_id); if ($row) { extract($row, EXTR_PREFIX_ALL, "v"); } $v_subject = string_attribute($v_subject); $v_content = string_textarea($v_content); ?> <?php # Edit faq Form BEGIN ?> <p> <div align="center"> <form method="post" action="<?php global $g_worklog_update; echo $g_worklog_update; ?> "> <input type="hidden" name="f_id" value="<?php echo $v_id; ?>
html_page_top1(); if (OFF == plugin_config_get('faq_view_window')) { html_page_top2(); } ?> <?php access_ensure_project_level(DEVELOPER); $f_id = gpc_get_int('f_id'); # Retrieve faq item data and prefix with v_ $row = faq_select_query($f_id); if ($row) { extract($row, EXTR_PREFIX_ALL, "v"); } $v_question = string_attribute($v_question); $v_answere = string_textarea($v_answere); ?> <?php # Edit faq Form BEGIN ?> <p> <div align="center"> <form method="post" action="<?php global $g_faq_update; echo $g_faq_update; ?> "> <input type="hidden" name="f_id" value="<?php echo $v_id; ?>
<td> <input type="text" name="os" size="32" maxlength="32" value="<?php echo string_attribute( $v_os ) ?>" /> </td> </tr> <tr class="row-1"> <th class="category"> <span class="required">*</span><?php echo lang_get( 'os_version' ) ?> </th> <td> <input type="text" name="os_build" size="16" maxlength="16" value="<?php echo string_attribute( $v_os_build ) ?>" /> </td> </tr> <tr class="row-2"> <th class="category"> <?php echo lang_get( 'additional_description' ) ?> </th> <td> <textarea name="description" cols="60" rows="8"><?php echo string_textarea( $v_description ) ?></textarea> </td> </tr> <tr> <td class="center" colspan="2"> <input type="submit" class="button" value="<?php echo lang_get( 'update_profile_button' ) ?>" /> </td> </tr> </table> </form> </div> <?php html_page_bottom();
function ERP_output_config_option($p_name, $p_type, $p_def_value = NULL, $p_function_name = NULL, $p_function_parameter = NULL) { // $p_def_value has special purposes when it contains certain values. See below if ($p_def_value === NULL && !is_blank($p_name) && !in_array($p_type, array('empty', 'header', 'submit'), TRUE)) { $t_value = plugin_config_get($p_name); } elseif (is_array($p_def_value) && (!in_array($p_type, array('dropdown_multiselect', 'dropdown_multiselect_any', 'custom'), TRUE) || in_array($p_type, array('dropdown_multiselect', 'dropdown_multiselect_any', 'custom'), TRUE) && (count($p_def_value) === 0 || array_values($p_def_value) !== $p_def_value))) { $t_value = isset($p_def_value[$p_name]) ? $p_def_value[$p_name] : NULL; } else { $t_value = $p_def_value; } // incase we are used from within another plugin, we need to modify its name if (plugin_get_current() !== 'EmailReporting') { $t_input_name = 'plugin_content[' . plugin_get_current() . '][' . $p_name . ']'; } else { $t_input_name = $p_name; } $t_input_name = string_attribute($t_input_name); if (strcasecmp($t_input_name, 'username') === 0 || strcasecmp($t_input_name, 'password') === 0) { trigger_error(plugin_lang_get('input_name_not_allowed'), ERROR); } $t_function_name = 'ERP_custom_function_' . $p_function_name; switch ($p_type) { case 'empty': case 'header': echo ' <tr> <td class="form-title" ' . (is_blank($t_value) ? 'width="100%" colspan="3"' : 'width="60%"') . '> ' . (!is_blank($p_name) ? ($p_type === 'header' ? plugin_lang_get('plugin_title') . ': ' : NULL) . plugin_lang_get($p_name) : ' ') . ' </td>'; if (!is_blank($t_value)) { echo '<td class="right" width="40%" colspan="2"><a href="' . plugin_page($t_value) . '">' . plugin_lang_get($t_value) . '</a></td>'; } echo '</tr>'; break; case 'hidden': echo '<input type="hidden" name="' . $t_input_name . '" value="' . string_attribute($t_value) . '"/>'; break; case 'radio_buttons': echo '<tr ' . helper_alternate_class() . '><td class="center" width="100%" colspan="3">'; if (function_exists($t_function_name)) { $t_function_name($t_input_name, $t_value, $p_function_parameter); } else { echo '<span class="negative">' . plugin_lang_get('function_not_found', 'EmailReporting') . ': ' . $t_function_name . '</span>'; } echo '</td></tr>'; break; case 'submit': echo '<tr><td class="center" width="100%" colspan="3"><input ' . helper_get_tab_index() . ' type="submit" class="button" value="' . plugin_lang_get($p_name) . '" /></td></tr>'; break; case 'boolean': case 'directory_string': case 'disabled': case 'integer': case 'string': case 'string_multiline': case 'string_multiline_array': case 'string_password': case 'dropdown': case 'dropdown_any': case 'dropdown_multiselect': case 'dropdown_multiselect_any': echo '<tr ' . helper_alternate_class() . '><td class="category" width="60%">'; ERP_print_documentation_link($p_name); echo '</td>'; switch ($p_type) { case 'boolean': echo '<td class="center" width="20%"><label><input ' . helper_get_tab_index() . ' type="radio" name="' . $t_input_name . '" value="' . ON . '" '; check_checked((int) $t_value, ON); echo '/>' . lang_get('yes') . '</label></td>'; echo '<td class="center" width="20%"><label><input ' . helper_get_tab_index() . ' type="radio" name="' . $t_input_name . '" value="' . OFF . '" '; // NULL can also be interpreted as 0. But in this case NULL means no option chosen if ($t_value !== NULL) { check_checked((int) $t_value, OFF); } echo '/>' . lang_get('no') . '</label></td>'; break; case 'directory_string': $t_dir = $t_value; if (is_dir($t_dir)) { $t_result_is_dir_color = 'positive'; $t_result_is_dir_text = plugin_lang_get('directory_exists', 'EmailReporting'); if (is_writable($t_dir)) { $t_result_is_writable_color = 'positive'; $t_result_is_writable_text = plugin_lang_get('directory_writable', 'EmailReporting'); } else { $t_result_is_writable_color = 'negative'; $t_result_is_writable_text = plugin_lang_get('directory_unwritable', 'EmailReporting'); } } else { $t_result_is_dir_color = 'negative'; $t_result_is_dir_text = plugin_lang_get('directory_unavailable', 'EmailReporting'); $t_result_is_writable_color = NULL; $t_result_is_writable_text = NULL; } echo ' <td class="center" width="20%"> <input ' . helper_get_tab_index() . ' type="text" size="30" maxlength="200" name="' . $t_input_name . '" value="' . string_attribute($t_dir) . '"/> </td> <td class="center" width="20%"> <span class="' . $t_result_is_dir_color . '">' . $t_result_is_dir_text . '</span><br /><span class="' . $t_result_is_writable_color . '">' . $t_result_is_writable_text . '</span> </td>'; break; case 'disabled': echo '<td class="center" width="40%" colspan="2">' . plugin_lang_get('disabled'); ERP_output_config_option($t_input_name, 'hidden', $t_value); echo '</td>'; break; case 'integer': case 'string': echo '<td class="center" width="40%" colspan="2"><input ' . helper_get_tab_index() . ' type="text" size="50" maxlength="100" name="' . $t_input_name . '" value="' . string_attribute($t_value) . '"/></td>'; break; case 'string_multiline': case 'string_multiline_array': echo '<td class="center" width="40%" colspan="2"><textarea ' . helper_get_tab_index() . ' cols="40" rows="6" name="' . $t_input_name . '">'; if (is_array($t_value)) { if ($p_type === 'string_multiline_array') { $t_string_array = var_export($t_value, TRUE); $t_string_array = array_map('trim', explode("\n", $t_string_array)); // remove the array opening and closing character array_shift($t_string_array); array_pop($t_string_array); $t_string_array = implode("\n", $t_string_array); } else { $t_string_array = implode("\n", $t_value); } echo string_textarea($t_string_array); } else { echo string_textarea($t_value); } echo '</textarea></td>'; break; case 'string_password': echo '<td class="center" width="40%" colspan="2"><input ' . helper_get_tab_index() . ' type="password" size="50" maxlength="50" name="' . $t_input_name . '" value="' . string_attribute(base64_decode($t_value)) . '"/></td>'; break; case 'dropdown': case 'dropdown_any': case 'dropdown_multiselect': case 'dropdown_multiselect_any': echo '<td class="center" width="40%" colspan="2"><select ' . helper_get_tab_index() . ' name="' . $t_input_name . (in_array($p_type, array('dropdown_multiselect', 'dropdown_multiselect_any'), TRUE) ? '[]" multiple size="6' : NULL) . '">'; if (function_exists($t_function_name)) { if (in_array($p_type, array('dropdown_any', 'dropdown_multiselect_any'), TRUE)) { echo '<option value="' . META_FILTER_ANY . '"'; check_selected((array) $t_value, META_FILTER_ANY); echo '>[' . lang_get('any') . ']</option>'; } $t_function_name($t_value, $p_function_parameter); } else { echo '<option class="negative">' . plugin_lang_get('function_not_found', 'EmailReporting') . ': ' . $t_function_name . '</option>'; } echo '</select></td>'; break; default: echo '<tr><td colspan="3">' . plugin_lang_get('unknown_setting', 'EmailReporting') . $p_name . ' -> level 2</td></tr>'; } echo '</tr>'; break; case 'custom': if (function_exists($t_function_name)) { $t_function_name($p_name, $t_value, $p_function_parameter); } else { echo '<option class="negative">' . plugin_lang_get('function_not_found', 'EmailReporting') . ': ' . $t_function_name . '</option>'; } break; default: echo '<tr><td colspan="3">' . plugin_lang_get('unknown_setting', 'EmailReporting') . $p_name . ' -> level 1</td></tr>'; } }
<tr class="spacer"><td></td><td></td><td></td></tr> <?php } ?> <tr <?php echo helper_alternate_class(); ?> > <td class="category"><?php echo plugin_lang_get('message'); ?> </td> <td colspan="2"><textarea name="message" cols="80" rows="8"><?php echo string_textarea($t_changeset->message); ?> </textarea></td> </tr> <tr> <td class="center" colspan="3"><input type="submit" value="<?php echo plugin_lang_get('edit'); ?> "/></td> </tr> </table> </form> <?php
function bug_prepare_edit($p_bug_data) { $p_bug_data->category = string_attribute($p_bug_data->category); $p_bug_data->date_submitted = string_attribute($p_bug_data->date_submitted); $p_bug_data->last_updated = string_attribute($p_bug_data->last_updated); $p_bug_data->os = string_attribute($p_bug_data->os); $p_bug_data->os_build = string_attribute($p_bug_data->os_build); $p_bug_data->platform = string_attribute($p_bug_data->platform); $p_bug_data->version = string_attribute($p_bug_data->version); $p_bug_data->build = string_attribute($p_bug_data->build); $p_bug_data->target_version = string_attribute($p_bug_data->target_version); $p_bug_data->fixed_in_version = string_attribute($p_bug_data->fixed_in_version); $p_bug_data->summary = string_attribute($p_bug_data->summary); $p_bug_data->sponsorship_total = string_attribute($p_bug_data->sponsorship_total); $p_bug_data->sticky = string_attribute($p_bug_data->sticky); $p_bug_data->description = string_textarea($p_bug_data->description); $p_bug_data->steps_to_reproduce = string_textarea($p_bug_data->steps_to_reproduce); $p_bug_data->additional_information = string_textarea($p_bug_data->additional_information); return $p_bug_data; }
<?php print_enum_string_option_list( 'view_state', $row['view_state']) ?> </select> </span> <span class="label-style"></span> </div> <?php if ( file_is_uploading_enabled() ) { ?> <div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>"> <label for="project-file-path"><span><?php echo lang_get( 'upload_file_path' ) ?></span></label> <span class="input"><input type="text" id="project-file-path" name="file_path" size="50" maxlength="250" value="<?php echo string_attribute( $row['file_path'] ) ?>" /></span> <span class="label-style"></span> </div><?php } ?> <div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>"> <label for="project-description"><span><?php echo lang_get( 'description' ) ?></span></label> <span class="textarea"><textarea id="project-description" name="description" cols="60" rows="5"><?php echo string_textarea( $row['description'] ) ?></textarea></span> <span class="label-style"></span> </div> <?php event_signal( 'EVENT_MANAGE_PROJECT_UPDATE_FORM', array( $f_project_id ) ); ?> <span class="submit-button"><input type="submit" class="button" value="<?php echo lang_get( 'update_project_button' ) ?>" /></span> </fieldset> </form> </div> <!-- PROJECT DELETE --> <?php # You must have global permissions to delete projects if ( access_has_global_level ( config_get( 'delete_project_threshold' ) ) ) { ?> <div id="project-delete-div" class="form-container">
<?php if( $t_show_steps_to_reproduce ) { ?> <div class="field-container"> <label><span><?php print_documentation_link( 'steps_to_reproduce' ) ?></span></label> <span class="textarea"> <textarea <?php echo helper_get_tab_index() ?> id="steps_to_reproduce" name="steps_to_reproduce" cols="80" rows="10"><?php echo string_textarea( $f_steps_to_reproduce ) ?></textarea> </span> <span class="label-style"></span> </div> <?php } ?> <?php if( $t_show_additional_info ) { ?> <div class="field-container"> <label><span><?php print_documentation_link( 'additional_information' ) ?></span></label> <span class="textarea"> <textarea <?php echo helper_get_tab_index() ?> id="additional_info" name="additional_info" cols="80" rows="10"><?php echo string_textarea( $f_additional_info ) ?></textarea> </span> <span class="label-style"></span> </div> <?php } $t_custom_fields_found = false; $t_related_custom_field_ids = custom_field_get_linked_ids( $t_project_id ); foreach( $t_related_custom_field_ids as $t_id ) { $t_def = custom_field_get_definition( $t_id ); if( ( $t_def['display_report'] || $t_def['require_report']) && custom_field_has_write_access_to_project( $t_id, $t_project_id ) ) { $t_custom_fields_found = true; ?> <div class="field-container">
print_user_option_list( $t_tag_row['user_id'], ALL_PROJECTS, config_get( 'tag_create_threshold' ) ); echo '</select></span>'; } else { ?> <span class="display-label"><span><?php echo lang_get( 'tag_creator' ); ?></span></span> <span class="display-value"><span><?php echo string_display_line( user_get_name($t_tag_row['user_id']) ); ?></span></span><?php } ?> <span class="label-style"></span> </div> <div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>"> <span class="display-label"><span><?php echo lang_get( 'tag_created' ) ?></span></span> <span class="display-value"><span><?php echo date( config_get( 'normal_date_format' ), $t_tag_row['date_created'] ) ?></span></span> <span class="label-style"></span> </div> <div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>"> <span class="display-label"><span><?php echo lang_get( 'tag_updated' ) ?></span></span> <span class="display-value"><span><?php echo date( config_get( 'normal_date_format' ), $t_tag_row['date_updated'] ) ?></span></span> <span class="label-style"></span> </div> <div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>"> <label for="tag-description"><span><?php echo lang_get( 'tag_description' ) ?></span></label> <span class="textarea"><textarea id="tag-description" name="description" <?php echo helper_get_tab_index() ?> cols="80" rows="6"><?php echo string_textarea( $t_description ) ?></textarea></span> <span class="label-style"></span> </div> <span class="submit-button"><input <?php echo helper_get_tab_index() ?> type="submit" class="button" value="<?php echo lang_get( 'tag_update_button' ) ?>" /></span> </fieldset> </form> </div> <?php html_page_bottom();
if (project_exists($row['project_id'])) { access_ensure_project_level(config_get('manage_news_threshold'), $row['project_id']); } helper_ensure_confirmed(lang_get('delete_news_sure_msg'), lang_get('delete_news_item_button')); news_delete($f_news_id); form_security_purge('news_delete'); print_header_redirect('news_menu_page.php', true); } # Retrieve news item data and prefix with v_ $row = news_get_row($f_news_id); if ($row) { extract($row, EXTR_PREFIX_ALL, 'v'); } access_ensure_project_level(config_get('manage_news_threshold'), $v_project_id); $v_headline = string_attribute($v_headline); $v_body = string_textarea($v_body); html_page_top(lang_get('edit_news_title')); # Edit News Form BEGIN ?> <br /> <div align="center"> <form method="post" action="news_update.php"> <?php echo form_security_field('news_update'); ?> <table class="width75" cellspacing="1"> <tr> <td class="form-title"> <input type="hidden" name="news_id" value="<?php echo $v_id; ?>
# in case the current project is not the same project of the bug we are viewing... # ... override the current project. This to avoid problems with categories and handlers lists etc. $g_project_override = $t_bug->project_id; } # Check if the current user is allowed to edit the bugnote $t_user_id = auth_get_current_user_id(); $t_reporter_id = bugnote_get_field($f_bugnote_id, 'reporter_id'); if ($t_user_id != $t_reporter_id || OFF == config_get('bugnote_allow_user_edit_delete')) { access_ensure_bugnote_level(config_get('update_bugnote_threshold'), $f_bugnote_id); } # Check if the bug is readonly if (bug_is_readonly($t_bug_id)) { error_parameters($t_bug_id); trigger_error(ERROR_BUG_READ_ONLY_ACTION_DENIED, ERROR); } $t_bugnote_text = string_textarea(bugnote_get_text($f_bugnote_id)); # No need to gather the extra information if not used if (config_get('time_tracking_enabled') && access_has_bug_level(config_get('time_tracking_edit_threshold'), $t_bug_id)) { $t_time_tracking = bugnote_get_field($f_bugnote_id, "time_tracking"); $t_time_tracking = db_minutes_to_hhmm($t_time_tracking); } # Determine which view page to redirect back to. $t_redirect_url = string_get_bug_view_url($t_bug_id); html_page_top(bug_format_summary($t_bug_id, SUMMARY_CAPTION)); ?> <br /> <div align="center"> <form method="post" action="bugnote_update.php"> <?php echo form_security_field('bugnote_update'); ?>
<?php if ($t_show_additional_info) { ?> <tr> <th class="category"> <label for="additional_info"><?php print_documentation_link('additional_information'); ?> </label> </th> <td> <textarea <?php echo helper_get_tab_index(); ?> id="additional_info" name="additional_info" cols="80" rows="10"><?php echo string_textarea($f_additional_info); ?> </textarea> </td> </tr> <?php } $t_custom_fields_found = false; $t_related_custom_field_ids = custom_field_get_linked_ids($t_project_id); foreach ($t_related_custom_field_ids as $t_id) { $t_def = custom_field_get_definition($t_id); if (($t_def['display_report'] || $t_def['require_report']) && custom_field_has_write_access_to_project($t_id, $t_project_id)) { $t_custom_fields_found = true; ?> <tr> <th class="category">
echo ON == $t_remote_imports ? 'checked="checked"' : ''; ?> /></td> </tr> <tr <?php echo helper_alternate_class(); ?> > <td class="category"><?php echo plugin_lang_get('remote_import_urls'); ?> </td> <td><textarea name="import_urls" rows="8" cols="50"><?php foreach ($t_import_urls as $t_ip) { echo string_textarea($t_ip), "\n"; } ?> </textarea></td> </tr> <?php foreach (SourceVCS::all() as $t_type => $t_vcs) { if ($t_vcs->configuration) { echo '<tr><td class="spacer"></td></tr>'; $t_vcs->update_config_form(); } } ?> <tr>