/** * Export Issues Menu * @return array */ function export_issues_menu() { if (!access_has_project_level(plugin_config_get('export_threshold'))) { return array(); } return array('<a href="' . plugin_page('export') . '">' . plugin_lang_get('export') . '</a>'); }
/** * Print Change Status to: AJAXified button * This code is similar to button_bug_change_status except that the * button is AJAXified. * Uses projax.php * * @param int $p_bug_id * @param int $t_project_id * @param int $t_user_id * @return null */ function kanban_ajax_button_bug_change_status($p_bug_id, $t_project_id, $t_user_id) { global $g_projax; $t_bug_project_id = bug_get_field($p_bug_id, 'project_id'); $t_bug_current_state = bug_get_field($p_bug_id, 'status'); $t_current_access = access_get_project_level($t_bug_project_id); $t_enum_list = get_status_option_list($t_current_access, $t_bug_current_state, false, bug_get_field($p_bug_id, 'reporter_id') == auth_get_current_user_id() && ON == config_get('allow_reporter_close'), $t_bug_project_id); if (count($t_enum_list) > 0) { # resort the list into ascending order after noting the key from the first element (the default) $t_default_arr = each($t_enum_list); $t_default = $t_default_arr['key']; ksort($t_enum_list); reset($t_enum_list); echo "<div id=\"ajax_statuschange\"><form method=\"post\" id=\"ajax_status_form\" action=\"xmlhttprequest.php\">"; # CSRF protection not required here - form does not result in modifications echo "<input type=\"hidden\" name=\"project_id\" id=\"project_id\" value=\"{$t_project_id}\" />"; echo "<input type=\"hidden\" name=\"user_id\" id=\"user_id\" value=\"{$t_user_id}\" />"; echo "<input type=\"hidden\" name=\"entrypoint\" id=\"entrypoint\" value=\"bug_update_status\" />"; $t_button_text = lang_get('bug_status_to_button'); // AJAX button options $options = array('url' => plugin_page('kanban_ajax_request'), 'with' => true, 'confirm' => lang_get('confirm_change_status'), 'success' => 'location.reload()', 'failure' => 'alert("Error: " ' + request . status + ')'); echo $g_projax->submit_to_remote('ajax_status', $t_button_text, $options); echo " <select name=\"new_status\">"; # space at beginning of line is important foreach ($t_enum_list as $key => $val) { echo "<option value=\"{$key}\" "; check_selected($key, $t_default); echo ">{$val}</option>"; } echo '</select>'; $t_bug_id = string_attribute($p_bug_id); echo "<input type=\"hidden\" name=\"id\" value=\"{$t_bug_id}\" />\n"; echo "</form></div>\n"; } }
/** * If the whiteboard menu plugin isnt installed, show the storyboard menu instead * * @return null|string */ function menu() { if (!plugin_is_installed('WhiteboardMenu') && plugin_config_get('ShowMenu') && $this->getUserHasLevel()) { return '<a href="' . plugin_page('storyboard_index') . '">' . plugin_lang_get('menu_title') . '</a>'; } return null; }
public function menu($event) { $links = array(); $links[] = '<a href="' . plugin_page("board") . '">' . plugin_lang_get("board") . '</a>'; return $links; }
public function menu_manage($event, $user_id) { if (access_has_global_level(plugin_config_get("manage_customers_threshold"))) { $page = plugin_page("manage_customers"); $label = plugin_lang_get("manage_customers"); return '<a href="' . string_html_specialchars($page) . '">' . $label . '</a>'; } }
function menu() { require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'userprojectapi.php'; if (!userprojectapi::checkPluginIsRegisteredInWhiteboardMenu()) { userprojectapi::addPluginToWhiteboardMenu(); } if ((!plugin_is_installed('WhiteboardMenu') || !file_exists(config_get_global('plugin_path') . 'WhiteboardMenu')) && plugin_config_get('ShowMenu') && $this->getUserHasLevel()) { return '<a href="' . plugin_page('UserProject') . '&sortVal=userName&sort=ASC">' . plugin_lang_get('menu_title') . '</a>'; } return null; }
function menu_main() { $t_links = array(); if (plugin_config_get('show_repo_link')) { $t_page = plugin_page('index', false, 'Source'); $t_lang = plugin_lang_get('repositories', 'Source'); $t_links[] = "<a href=\"{$t_page}\">{$t_lang}</a>"; } if (plugin_config_get('show_search_link')) { $t_page = plugin_page('search_page', false, 'Source'); $t_lang = plugin_lang_get('search', 'Source'); $t_links[] = "<a href=\"{$t_page}\">{$t_lang}</a>"; } return $t_links; }
function print_tablefooter() { $specmanagement_authorization_api = new specmanagement_authorization_api(); if ($specmanagement_authorization_api->userHasGlobalLevel() || $specmanagement_authorization_api->userHasWriteLevel()) { echo '<tr>'; echo '<td colspan="' . COLS . '" class="center">'; echo '<form action="' . plugin_page('manage_types') . '" method="post">'; echo '<span class="input">'; echo '<input type="submit" name="to_plugin_config" class="button" value="' . plugin_lang_get('mantypes_to_pl_cfg') . '"/> '; echo '<input type="submit" name="edit" class="button" value="' . plugin_lang_get('mantypes_edit') . '"/>'; echo '</span>'; echo '</td>'; echo '</tr>'; } }
function worklogmenu() { if (ON == plugin_config_get('promote_text')) { $bugid = gpc_get_int('id'); if (access_has_bug_level(plugin_config_get('promote_threshold'), $bugid)) { $t_bug_p = bug_get($bugid, true); if (OFF == plugin_config_get('project_text')) { $proj_id = 0; } else { $proj_id = $t_bug_p->project_id; } $subject = urlencode($t_bug_p->description); $subject .= " "; $subject .= urlencode($t_bug_p->additional_information); $content = category_full_name($t_bug_p->category_id); $content .= " -> "; $content .= urlencode($t_bug_p->summary); if (ON == plugin_config_get('worklog_view_check')) { $import_page = 'worklog_add_page2.php'; } else { $import_page = 'worklog_add.php'; } $import_page .= '&log_type=0&'; $import_page .= '&ref_log_ids='; $import_page .= '&ref_issue_ids='; $import_page .= '&log_begin='; $import_page .= '&log_end='; $import_page .= '&content='; $import_page .= $content; $import_page .= '&subject='; $import_page .= $subject; $import_page .= '&project_id='; $import_page .= $proj_id; if (ON == plugin_config_get('worklog_view_check')) { return array(plugin_lang_get('import_worklog') => plugin_page($import_page) . '" target=_new>'); } else { return array(plugin_lang_get('import_worklog') => plugin_page($import_page)); } } } }
function calculate_page_content() { $specmanagement_database_api = new specmanagement_database_api(); $specmanagement_print_api = new specmanagement_print_api(); $types = array(); $types_rows = $specmanagement_database_api->get_full_types(); foreach ($types_rows as $types_row) { $types[] = $types_row[1]; } html_page_top1(plugin_lang_get('select_doc_title')); echo '<link rel="stylesheet" href="' . SPECMANAGEMENT_PLUGIN_URL . 'files/specmanagement.css">'; html_page_top2(); // if ( plugin_is_installed( 'WhiteboardMenu' ) && file_exists ( config_get_global ( 'plugin_path' ) . 'WhiteboardMenu' ) ) // { // require_once WHITEBOARDMENU_CORE_URI . 'whiteboard_print_api.php'; // $whiteboard_print_api = new whiteboard_print_api(); // $whiteboard_print_api->printWhiteboardMenu(); // } if (project_includes_user(helper_get_current_project(), auth_get_current_user_id()) || helper_get_current_project() == 0 || user_is_administrator(auth_get_current_user_id())) { echo '<div align="center">'; echo '<hr size="1" width="50%" />'; $specmanagement_print_api->printTableTop('50'); $specmanagement_print_api->printFormTitle(2, 'menu_title'); $specmanagement_print_api->printCategoryField(1, 1, 'select_type'); echo '<td>'; echo '<form method="post" name="form_set_source" action="' . plugin_page('editor') . '">'; print_document_selection($types); $specmanagement_print_api->printRow(); echo '<td class="center" colspan="2">'; echo '<input type="submit" name="formSubmit" class="button" value="' . plugin_lang_get('select_confirm') . '"/>'; echo '</td>'; echo '</tr>'; echo '</form>'; echo '</td>'; $specmanagement_print_api->printTableFoot(); } else { echo '<table class="width60"><tr><td class="center">' . lang_get('access_denied') . '</td></tr></table>'; } html_page_bottom1(); }
function menu() { if (plugin_config_get('show_menu')) { require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'wmApi.php'; $projectId = helper_get_current_project(); $userId = auth_get_current_user_id(); $userAccessLevel = user_get_access_level($userId, $projectId); $whiteboardPlugins = wmApi::getWhiteboardPlugins(); $showMenu = false; foreach ($whiteboardPlugins as $whiteboardPlugin) { $pluginAccessLevel = $whiteboardPlugin[2]; if (user_is_administrator($userId) || $userAccessLevel >= $pluginAccessLevel) { $showMenu = true; break; } } if ($showMenu) { return '<a href="' . plugin_page('whiteboard_menu') . '">' . plugin_lang_get('menu_title') . '</a>'; } } return null; }
function faqmenu() { if (ON == plugin_config_get('promote_text')) { $bugid = gpc_get_int('id'); if (access_has_bug_level(plugin_config_get('promote_threshold'), $bugid)) { $t_bug_p = bug_get($bugid, true); if (OFF == plugin_config_get('project_text')) { $proj_id = 0; } else { $proj_id = $t_bug_p->project_id; } $answer = urlencode($t_bug_p->description); $answer .= " "; $answer .= urlencode($t_bug_p->additional_information); $question = category_full_name($t_bug_p->category_id); $question .= " -> "; $question .= urlencode($t_bug_p->summary); if (ON == plugin_config_get('faq_view_check')) { $import_page = 'faq_add_page2.php'; } else { $import_page = 'faq_add.php'; } $import_page .= '&question='; $import_page .= $question; $import_page .= '&answere='; $import_page .= $answer; $import_page .= '&project_id='; $import_page .= $proj_id; if (ON == plugin_config_get('faq_view_check')) { return array(plugin_lang_get('import_faq') => plugin_page($import_page) . '" target=_new>'); } else { return array(plugin_lang_get('import_faq') => plugin_page($import_page)); } } } }
$t_token = token_set( TOKEN_GRAPH, serialize( $t_metrics ) ); ?> <br /> <table class="width100" cellspacing="1"> <tr> <td class="form-title"> <?php echo plugin_lang_get( 'graph_imp_resolution_title' ) ?> </td> </tr> <tr> <td class="center"> <img src="<?php echo plugin_page( 'summary_graph_byresolution.php')?>&width=<?php echo $t_graph_width?>" alt="" /> </td> </tr> <tr> <td class="center"> <img src="<?php echo plugin_page( 'summary_graph_byresolution_pct.php')?>&width=<?php echo $t_graph_width?>" alt="" /> </td> </tr> <tr> <td class="center"> <img src="<?php echo plugin_page( 'summary_graph_byresolution_mix.php')?>&width=<?php echo $t_graph_width?>" alt="" /> </td> </tr> </table> <?php html_page_bottom();
function manage_usergroups_menu() { return array('<a href="' . plugin_page('manage_usergroups') . '">' . plugin_lang_get('manage_groups') . '</a>'); }
echo plugin_lang_get('show_graph'); ?> "/> </td> </tr> </table> </form> <?php # build the graphs if both an interval and graph type are selected if (0 != $f_type && $f_interval > 0 && gpc_get('show', '') != '') { $t_width = plugin_config_get('window_width'); $t_summary = $f_type % 2 != 0; $t_body = (int) ($f_type / 2); $f_start = $t_period->get_start_formatted(); $f_end = $t_period->get_end_formatted(); if ($t_body == 1 || $t_body == 3) { if ($f_show_as_table) { include config_get_global('plugin_path') . plugin_get_current() . '/pages/bug_graph_bystatus.php'; } else { echo '<br /><img src="' . plugin_page('bug_graph_bystatus.php') . '&width=600&interval=' . $f_interval . '&start_date=' . $f_start . '&end_date=' . $f_end . '&summary=' . $t_summary . '&show_table=0" alt="Bug Graph" />'; } } if ($t_body == 2 || $t_body == 3) { if ($f_show_as_table) { include config_get_global('plugin_path') . plugin_get_current() . '/pages/bug_graph_bycategory.php'; } else { echo '<br /><img src="' . plugin_page('bug_graph_bycategory.php') . '&width=600&interval=' . $f_interval . '&start_date=' . $f_start . '&end_date=' . $f_end . '&summary=' . $t_summary . '&show_table=0" alt="Bug Graph" />'; } } } html_page_bottom();
$t_graph_width = (int) (($t_width - 50) / $t_wide); token_delete(TOKEN_GRAPH); ?> <br /> <table class="width100" cellspacing="1"> <tr> <td class="form-title" colspan="2"> <?php echo lang_get('summary_title'); ?> </td> </tr> <?php $t_graph_count = count($t_graphs); for ($t_pos = 0; $t_pos < $t_graph_count; $t_pos++) { if (0 == $t_pos % $t_wide) { print "<tr valign=\"top\">\n"; } echo '<td width="50%" align="center">'; printf("<img src=\"%s.php&width=%d\" border=\"0\" alt=\"\" />", plugin_page($t_graphs[$t_pos]), $t_graph_width); echo '</td>'; if ($t_wide - 1 == $t_pos % $t_wide) { print "</tr>\n"; } } ?> </table> <?php html_page_bottom();
echo $t_graph_width; ?> " alt="" /> </td> </tr> <tr> <td class="center"> <img src="<?php echo plugin_page('summary_graph_byresolution_pct.php'); ?> &width=<?php echo $t_graph_width; ?> " alt="" /> </td> </tr> <tr> <td class="center"> <img src="<?php echo plugin_page('summary_graph_byresolution_mix.php'); ?> &width=<?php echo $t_graph_width; ?> " alt="" /> </td> </tr> </table> <?php html_page_bottom();
</a> <a href="<?php echo AGILEMANTIS_ORDER_PAGE_URL; ?> " style="padding-left:20px"><?php echo plugin_lang_get('license_buy'); ?> </a> <?php } ?> </div> </td> </tr> <form action="<?php echo plugin_page('config_edit.php'); ?> " method="post" id="config_form" enctype="multipart/form-data"> <input type="hidden" id="deleteField" name="deleteField" value=""> <input type="hidden" id="changeUnit" name="changeUnit" value=""> <?php echo form_security_field('plugin_format_config_edit'); if (plugin_is_loaded('agileMantisExpert')) { ?> <tr <?php echo helper_alternate_class(); ?> > <td><?php echo plugin_lang_get('manage_settings_upload_license');
echo $t_graph_width; ?> " border="0" alt="" /></center> </td> </tr> <tr valign="top"> <td> <center><img src="<?php echo plugin_page('summary_graph_bypriority_pct.php'); ?> &width=<?php echo $t_graph_width; ?> " border="0" alt="" /></center> </td> </tr> <tr valign="top"> <td> <center><img src="<?php echo plugin_page('summary_graph_bypriority_mix.php'); ?> &width=<?php echo $t_graph_width; ?> " border="0" alt="" /></center> </td> </tr> </table> <?php html_page_bottom();
/** * preg_replace_callback function for working with VCS links. */ function Source_Changeset_Link_Callback($p_matches) { $t_url_type = strtolower($p_matches[1]); $t_repo_name = $p_matches[2]; $t_revision = $p_matches[3]; $t_repo_table = plugin_table('repository', 'Source'); $t_changeset_table = plugin_table('changeset', 'Source'); $t_file_table = plugin_table('file', 'Source'); $t_query = "SELECT c.* FROM {$t_changeset_table} AS c\n\t\t\t\tJOIN {$t_repo_table} AS r ON r.id=c.repo_id\n\t\t\t\tWHERE c.revision LIKE " . db_param() . ' AND r.name LIKE ' . db_param(); $t_result = db_query_bound($t_query, array($t_revision . '%', $t_repo_name . '%'), 1); if (db_num_rows($t_result) > 0) { $t_row = db_fetch_array($t_result); $t_changeset = new SourceChangeset($t_row['repo_id'], $t_row['revision'], $t_row['branch'], $t_row['timestamp'], $t_row['author'], $t_row['message'], $t_row['user_id']); $t_changeset->id = $t_row['id']; $t_repo = SourceRepo::load($t_changeset->repo_id); $t_vcs = SourceVCS::repo($t_repo); if ($t_url_type == "v") { $t_url = $t_vcs->url_changeset($t_repo, $t_changeset); } else { $t_url = plugin_page('view') . '&id=' . $t_changeset->id; } $t_name = string_display_line($t_repo->name . ' ' . $t_vcs->show_changeset($t_repo, $t_changeset)); if (!is_blank($t_url)) { return '<a href="' . $t_url . '">' . $t_name . '</a>'; } return $t_name; } return $p_matches[0]; }
transition: all .3s ease-in-out; } .mantisbt-theme-manager img:hover { -webkit-transform: scale(1.8); -moz-transform: scale(1.8); -ms-transform: scale(1.8); -o-transform: scale(1.8); transform: scale(1.8); } </style> <br /> <form action="<?php echo plugin_page('config_edit'); ?> " method="post"> <table align="center" class="width50 mantisbt-theme-manager" cellspacing="1"> <!-- Title --> <tr> <td> <table align="center" class="width100 mantisbt-theme-manager" cellspacing="1"> <tr> <td class="form-title" colspan="3"> <?php echo lang_get('plugin_themeManager_title'); ?> </td> </tr>
echo plugin_lang_get('xmpp_plugin_config'); ?> </a> ] [ <a href=" <?php echo plugin_page('config_custom_proj_user', true); ?> "> <?php echo plugin_lang_get('custom_proj_user_plugin_config'); ?> </a> ] </td> </tr> </table> <form action="<?php echo plugin_page('config_update'); ?> " method="post"> <?php echo form_security_field('plugin_JabberNotifySystem_manage_config'); ?> <table align="center" class="width50" cellspacing="1" style="border-bottom:none;"> <tr> <td class="form-title" colspan="3"> <?php echo plugin_lang_get('title') . ': ' . plugin_lang_get('config_jabber'); ?> </td> </tr> <tr <?php echo helper_alternate_class();
&changestatus_id=<?php echo $change['changestatus_id']; ?> "><?php echo plugin_lang_get('edit'); ?> </a> </tr> <?php } } else { ?> <tr class="row-1"> <td colspan="9" style="text-align:center;"><?php echo plugin_lang_get('no_update_changes_created'); ?> </td> </tr> <?php } ?> </table> <p><a href="<?php echo plugin_page('changestatus'); ?> "><?php echo plugin_lang_get('create_new_status_update'); ?> </a></p>
function summary_submenu() { $t_icon_path = config_get('icon_path'); return array('<a href="' . helper_mantis_url('summary_page.php') . '"><img src="' . $t_icon_path . 'synthese.gif" alt="" />' . plugin_lang_get('synthesis_link') . '</a>', '<a href="' . plugin_page('summary_graph_imp_status.php') . '"><img src="' . $t_icon_path . 'synthgraph.gif" alt="" />' . plugin_lang_get('status_link') . '</a>', '<a href="' . plugin_page('summary_graph_imp_priority.php') . '"><img src="' . $t_icon_path . 'synthgraph.gif" alt="" />' . plugin_lang_get('priority_link') . '</a>', '<a href="' . plugin_page('summary_graph_imp_severity.php') . '"><img src="' . $t_icon_path . 'synthgraph.gif" alt="" />' . plugin_lang_get('severity_link') . '</a>', '<a href="' . plugin_page('summary_graph_imp_category.php') . '"><img src="' . $t_icon_path . 'synthgraph.gif" alt="" />' . plugin_lang_get('category_link') . '</a>', '<a href="' . plugin_page('summary_graph_imp_resolution.php') . '"><img src="' . $t_icon_path . 'synthgraph.gif" alt="" />' . plugin_lang_get('resolution_link') . '</a>'); }
* You should have received a copy of the GNU General Public License * along with Slack Integration; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * or see http://www.gnu.org/licenses/. */ form_security_validate('plugin_Slack_config_edit'); auth_reauthenticate(); access_ensure_global_level(config_get('manage_plugin_threshold')); $f_url_webhook = gpc_get_string('url_webhook'); $f_bot_name = gpc_get_string('bot_name'); $f_bot_icon = gpc_get_string('bot_icon'); $f_skip_bulk = gpc_get_bool('skip_bulk'); $f_default_channel = gpc_get_string('default_channel'); if (plugin_config_get('url_webhook') != $f_url_webhook) { plugin_config_set('url_webhook', $f_url_webhook); } if (plugin_config_get('bot_name') != $f_bot_name) { plugin_config_set('bot_name', $f_bot_name); } if (plugin_config_get('bot_icon') != $f_bot_icon) { plugin_config_set('bot_icon', $f_bot_icon); } if (plugin_config_get('skip_bulk') != $f_skip_bulk) { plugin_config_set('skip_bulk', $f_skip_bulk); } if (plugin_config_get('default_channel') != $f_default_channel) { plugin_config_set('default_channel', $f_default_channel); } form_security_purge('plugin_Slack_config_edit'); print_successful_redirect(plugin_page('config', true));
/** * If the whiteboard menu plugin isnt installed, show the specificationmanagement menu instead * * @return null|string */ function menu() { if ((!plugin_is_installed('WhiteboardMenu-ALT') || !file_exists(config_get_global('plugin_path') . 'WhiteboardMenu-ALT')) && plugin_config_get('ShowMenu') && $this->getUserHasLevel()) { return '<a href="' . plugin_page('choose_document') . '">' . plugin_lang_get('menu_title') . '</a>'; } return null; }
echo $t_graph_width; ?> " border="0" alt="" /></center> </td> </tr> <tr valign="top"> <td> <center><img src="<?php echo plugin_page('summary_graph_byseverity_pct.php'); ?> &width=<?php echo $t_graph_width; ?> " border="0" alt="" /></center> </td> </tr> <tr valign="top"> <td> <center><img src="<?php echo plugin_page('summary_graph_byseverity_mix.php'); ?> &width=<?php echo $t_graph_width; ?> " border="0" alt="" /></center> </td> </tr> </table> <?php html_page_bottom();
<?php auth_reauthenticate(); access_ensure_global_level(config_get('manage_plugin_threshold')); $f_format_text = gpc_get_int('format_text', ON); $f_search_text = gpc_get_int('search_text', ON); $f_search_threshold = gpc_get_string('search_threshold', REPORTER); $f_serials_view_threshold = gpc_get_string('serials_view_threshold', REPORTER); $f_format_threshold = gpc_get_string('format_threshold', DEVELOPER); $f_manage_threshold = gpc_get_string('manage_threshold', ADMINISTRATOR); plugin_config_set('format_text', $f_format_text); plugin_config_set('search_text', $f_search_text); plugin_config_set('search_threshold', $f_search_threshold); plugin_config_set('serials_view_threshold', $f_serials_view_threshold); plugin_config_set('format_threshold', $f_format_threshold); plugin_config_set('manage_threshold', $f_manage_threshold); print_successful_redirect(plugin_page('config', TRUE));
</tr> <tr> <td colspan="<?php echo $additional_fields; ?> " class="center"><input type="submit" name="assume_userstories" value="<?php echo plugin_lang_get('assume_userstories_assume_to_sprint'); ?> " onclick="deleteCookie();"> </form> <form action="<?php echo plugin_page($fromPage); ?> &sprintName=<?php echo urlencode($sprintName); ?> " method="post"> <input type="submit" name="back_button" value="<?php echo plugin_lang_get('button_back'); ?> "> </form></td> </tr> </table> </div>
</tr> <?php foreach ($t_plugins_installed as $t_basename => $t_plugin) { $t_description = string_display_line_links($t_plugin->description); $t_author = $t_plugin->author; $t_contact = $t_plugin->contact; $t_page = $t_plugin->page; $t_url = $t_plugin->url; $t_requires = $t_plugin->requires; $t_depends = array(); $t_priority = plugin_priority($t_basename); $t_protected = plugin_protected($t_basename); $t_name = string_display_line($t_plugin->name . ' ' . $t_plugin->version); if (!is_blank($t_page)) { $t_name = '<a href="' . string_attribute(plugin_page($t_page, false, $t_basename)) . '">' . $t_name . '</a>'; } if (!is_blank($t_author)) { if (is_array($t_author)) { $t_author = implode($t_author, ', '); } if (!is_blank($t_contact)) { $t_author = '<br />' . sprintf(lang_get('plugin_author'), '<a href="mailto:' . string_attribute($t_contact) . '">' . string_display_line($t_author) . '</a>'); } else { $t_author = '<br />' . string_display_line(sprintf(lang_get('plugin_author'), $t_author)); } } if (!is_blank($t_url)) { $t_url = '<br />' . lang_get('plugin_url') . lang_get('word_separator') . "<a href=\"{$t_url}\">{$t_url}</a>"; } $t_upgrade = plugin_needs_upgrade($t_plugin);