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
);
33 $html = '[<a href="' . BSRegister
::Get('webpath') . '/browse/' . BSRegister
::Get('input')->in
['repos'] . ':">' . BSRegister
::Get('input')->in
['repos'] . '</a>]: ';
37 return $html . '<strong>/</strong>';
41 foreach ($path AS $part)
43 $build .= '/' . $part;
44 $html .= '/ <a href="' . BSRegister
::Get('webpath') . '/browse/' . BSRegister
::Get('input')->in
['repos'] . ':' . $build . '"><strong>' . $part . '</strong></a> ';
50 // ###################################################################
52 * Formats an array of properties into a compiled HTML template
54 * @param array Array of properties
56 * @return string Compiled HTML property list
58 function FormatPropList($props)
60 if (sizeof($props) < 0)
64 foreach ($props AS $propname => $propval)
66 $data = sprintf(_('Property <strong>%1$s</strong> set to <em>%2$s</em>'), $propname, $propval);
67 eval('$proplist .= "' . BSRegister
::Get('template')->fetch('property') . '";');
72 // ###################################################################
74 * Formats a SVN log message
76 * @param string Unformatted log message
78 * @return string Output-ready log message
80 function FormatLogMessage($message)
84 $message = BSRegister
::Get('input')->entityEncode($message);
86 // TODO - fix the revision links
87 // $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);
90 $lines = explode("\n", $message);
92 foreach ($lines AS $line)
94 if (preg_match('#^\s*?(\*|\-)\s?(.*)#', $line, $matches))
98 $message .= '<li>' . $matches[2] . '</li>';
102 $message .= '<ul class="list">';
103 $message .= '<li>' . $matches[2] . '</li>';
117 $message .= '<br />';
130 $message = preg_replace('#(<br />)*$#', '', $message);
135 // ###################################################################
137 * Parses a date from SVN into something more human-friendly
139 * @param string Date string
141 * @return string Formatted and readable date string
143 function FormatSvnDate($string)
145 // 2005-01-23T20:42:53.703057Z
146 return preg_replace('#(....)\-(..)\-(..)T(..):(..):(..).(.*)Z#e', 'gmdate("r", mktime(\4, \5, \6, \2, \3, \1))', $string);
149 /*=====================================================================*\
150 || ###################################################################
153 || ###################################################################
154 \*=====================================================================*/