2 /*=====================================================================*\
3 || ###################################################################
4 || # ViewSVN [#]version[#]
5 || # Copyright ©2002-[#]year[#] Blue Static
7 || # This program is free software; you can redistribute it and/or modify
8 || # it under the terms of the GNU General Public License as published by
9 || # the Free Software Foundation; version [#]gpl[#] of the License.
11 || # This program is distributed in the hope that it will be useful, but
12 || # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 || # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 || # You should have received a copy of the GNU General Public License along
17 || # with this program; if not, write to the Free Software Foundation, Inc.,
18 || # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
19 || ###################################################################
20 \*=====================================================================*/
22 // ###################################################################
24 * Constructs the navbar from the given path elememnts. The current
25 * element is never selectable
27 * @return string Compiled HTML navigation bar
29 function ConstructNavbar()
31 $path = preg_split('#/#', BSRegister
::Get('input')->in
['path'], -1, PREG_SPLIT_NO_EMPTY
);
32 $input =& BSRegister
::Get('input');
34 $html = '[<a href="' . ConstructLink('browse', $input->in
['repos'], null
, $input->in
['rev']) . '">' . $input->in
['repos'] . '</a>]: ';
38 return $html . '<strong>/</strong>';
42 foreach ($path AS $index => $part)
44 $build .= '/' . $part;
45 if (sizeof($path) - 1 == $index)
47 $html .= '/ <strong>' . $part . '</strong>';
51 $html .= '/ <a href="' . ConstructLink('browse', $input->in
['repos'], $build, $input->in
['rev']) . '"><strong>' . $part . '</strong></a> ';
58 // ###################################################################
60 * Formats an array of properties into a compiled HTML template
62 * @param array Array of properties
64 * @return string Compiled HTML property list
66 function FormatPropList($props)
68 if (sizeof($props) < 0)
72 foreach ($props AS $propname => $propval)
74 $data = sprintf(_('Property <strong>%1$s</strong> set to <em>%2$s</em>'), $propname, $propval);
75 eval('$proplist .= "' . BSRegister
::Get('template')->fetch('property') . '";');
80 // ###################################################################
82 * Formats a SVN log message
84 * @param string Unformatted log message
86 * @return string Output-ready log message
88 function FormatLogMessage($message)
92 $message = BSRegister
::Get('input')->entityEncode($message);
94 // TODO - fix the revision links
95 // $message = preg_replace('#r([0-9]+)#e', '"<a href=\"" . $viewsvn->maincontrol->href_struct("diff.php" . Paths::fetch_rev_str(true, "\1", 0), "/") . "\">r\1</a>"', $message);
98 $lines = explode("\n", $message);
100 foreach ($lines AS $line)
102 if (preg_match('#^\s*?(\*|\-)\s?(.*)#', $line, $matches))
106 $message .= '<li>' . $matches[2] . '</li>';
110 $message .= '<ul class="list">';
111 $message .= '<li>' . $matches[2] . '</li>';
125 $message .= '<br />';
138 $message = preg_replace('#(<br />)*$#', '', $message);
143 // ###################################################################
145 * Parses a date from SVN into something more human-friendly
147 * @param string Date string
149 * @return string Formatted and readable date string
151 function FormatSvnDate($string)
153 // 2005-01-23T20:42:53.703057Z
154 return preg_replace('#(....)\-(..)\-(..)T(..):(..):(..).(.*)Z#e', 'gmdate("r", mktime(\4, \5, \6, \2, \3, \1))', $string);
157 // ###################################################################
159 * Generates an absolute-pathed link if you just pass it the four
162 * @param string Action/script
163 * @param string Repository name
164 * @param string Subpath in repository
165 * @param integer Revision
167 * @return string Link (not wrapped in <a>)
169 function ConstructLink($action, $repos, $path, $rev)
171 return BSRegister
::Get('webpath') . '/' . $action . '/' . $repos . ':' . $path . ($rev > 0 ?
'@' . $rev : '');
174 /*=====================================================================*\
175 || ###################################################################
178 || ###################################################################
179 \*=====================================================================*/