/** * RSS text processing. * @param string Event name * @param string Unformatted text * @return string Formatted text */ function rss($p_event, $p_string) { static $s_text, $s_urls, $s_buglinks, $s_vcslinks; $t_string = $p_string; if (null === $s_text) { $s_text = plugin_config_get('process_text'); $s_urls = plugin_config_get('process_urls'); $s_buglinks = plugin_config_get('process_buglinks'); $s_vcslinks = plugin_config_get('process_vcslinks'); } if (ON == $s_text) { $t_string = string_strip_hrefs($t_string); $t_string = string_html_specialchars($t_string); $t_string = string_restore_valid_html_tags($t_string); $t_string = string_nl2br($t_string); } if (ON == $s_urls) { $t_string = string_insert_hrefs($t_string); } if (ON == $s_buglinks) { $t_string = string_process_bug_link($t_string, true, false, true); $t_string = string_process_bugnote_link($t_string, true, false, true); } if (ON == $s_vcslinks) { $t_string = string_process_cvs_link($t_string); } return $t_string; }
/** * @dataProvider provider */ public function testStringInsertHrefs($input, $output) { $this->assertEquals(string_insert_hrefs($input), $output); }
function allObjectLogs() { $logs = getLogRecords(); if (count($logs) > 0) { global $nextorder; echo "<br><table width='80%' align=center border=0 cellpadding=5 cellspacing=0 align=center class=cooltable>"; echo '<tr valign=top><th class=tdleft>Object</th><th class=tdleft>Date/user</th>'; echo '<th class=tdcenter>' . getImageHREF('text') . '</th></tr>'; $order = 'odd'; foreach ($logs as $row) { // Link to a different page if the object is a Rack if ($row['objtype_id'] == 1560) { $text = $row['name']; $entity = 'rack'; } else { $object = spotEntity('object', $row['object_id']); $text = $object['dname']; $entity = 'object'; } echo "<tr class=row_{$order} valign=top>"; echo '<td class=tdleft>' . mkA($text, $entity, $row['object_id'], 'log') . '</td>'; echo '<td class=tdleft>' . $row['date'] . '<br>' . $row['user'] . '</td>'; echo '<td class="logentry">' . string_insert_hrefs(htmlspecialchars($row['content'], ENT_NOQUOTES)) . '</td>'; echo "</tr>\n"; $order = $nextorder[$order]; } echo '</table>'; } else { echo '<center><h2>No logs exist</h2></center>'; } }
/** Prepare a string for display in rss */ function string_rss_links($p_string) { // rss can not start with which spaces will be replaced into by string_display(). $t_string = trim($p_string); // same steps as string_display_links() without the preservation of spaces since is undefined in XML. $t_string = string_strip_hrefs($t_string); $t_string = string_html_specialchars($t_string); $t_string = string_restore_valid_html_tags($t_string); $t_string = string_nl2br($t_string); $t_string = string_insert_hrefs($t_string); $t_string = string_process_bug_link($t_string, true, false, true); $t_string = string_process_bugnote_link($t_string, true, false, true); $t_string = string_process_cvs_link($t_string); # another escaping to escape the special characters created by the generated links $t_string = string_html_specialchars($t_string); return $t_string; }
/** * Display a list of changeset objects in tabular format. * Assumes that a table with four columns has already been defined. * @param array Changeset objects * @param array Repository objects */ function Source_View_Changesets($p_changesets, $p_repos = null, $p_show_repos = true) { if (!is_array($p_changesets)) { return; } if (is_null($p_repos) || !is_array($p_repos)) { $t_repos = SourceRepo::load_by_changesets($p_changesets); } else { $t_repos = $p_repos; } $t_use_porting = config_get('plugin_Source_enable_porting'); foreach ($p_changesets as $t_changeset) { $t_repo = $t_repos[$t_changeset->repo_id]; $t_vcs = SourceVCS::repo($t_repo); $t_changeset->load_files(); $t_author = Source_View_Author($t_changeset, false); $t_committer = Source_View_Committer($t_changeset, false); ?> <tr class="row-1"> <td class="category" width="25%" rowspan="<?php echo count($t_changeset->files) + 1; ?> "> <a name="changeset<?php echo $t_changeset->id; ?> "><?php echo string_display(($p_show_repos ? $t_repo->name . ': ' : '') . $t_vcs->show_changeset($t_repo, $t_changeset)); ?> </a> <br/><span class="small"><?php echo plugin_lang_get('timestamp', 'Source'), ': ', string_display_line($t_changeset->timestamp); ?> </span> <br/><span class="small"><?php echo plugin_lang_get('author', 'Source'), ': ', $t_author; ?> </span> <?php if ($t_committer && $t_committer != $t_author) { ?> <br/><span class="small"><?php echo plugin_lang_get('committer', 'Source'), ': ', $t_committer; ?> </span><?php } ?> <?php if ($t_use_porting) { ?> <br/><span class="small"><?php echo plugin_lang_get('ported', 'Source'), ': ', $t_changeset->ported ? string_display_line($t_changeset->ported) : (is_null($t_changeset->ported) ? plugin_lang_get('pending', 'Source') : plugin_lang_get('na', 'Source')); ?> </span> <?php } ?> <br/><span class="small-links"> <?php print_bracket_link(plugin_page('view', false, 'Source') . '&id=' . $t_changeset->id, plugin_lang_get('details', 'Source')); if ($t_url = $t_vcs->url_changeset($t_repo, $t_changeset)) { print_bracket_link($t_url, plugin_lang_get('diff', 'Source')); } ?> </td> <td colspan="3"><?php # The commit message is manually transformed (adding href, bug and bugnote # links + nl2br) instead of calling string_display_links(), which avoids # unwanted html tags processing by the MantisCoreFormatting plugin. # Rationale: commit messages being plain text, any html they may contain # should not be considered as formatting and must be displayed as-is. echo string_nl2br(string_process_bugnote_link(string_process_bug_link(string_insert_hrefs(string_html_specialchars($t_changeset->message))))); ?> </td> </tr> <?php foreach ($t_changeset->files as $t_file) { ?> <tr class="row-2"> <td class="small mono" colspan="2"><?php echo string_display_line($t_vcs->show_file($t_repo, $t_changeset, $t_file)); ?> </td> <td class="center" width="12%"><span class="small-links"> <?php if ($t_url = $t_vcs->url_diff($t_repo, $t_changeset, $t_file)) { print_bracket_link($t_url, plugin_lang_get('diff', 'Source')); } if ($t_url = $t_vcs->url_file($t_repo, $t_changeset, $t_file)) { print_bracket_link($t_url, plugin_lang_get('file', 'Source')); } ?> </span></td> </tr> <?php } ?> <tr><td class="spacer"></td></tr> <?php } }