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="' . BSRegister
::Get('webpath') . '/browse/' . $input->in
['repos'] . ':">' . $input->in
['repos'] . '</a>]: ';
38 return $html . '<strong>/</strong>';
42 foreach ($path AS $part)
44 $build .= '/' . $part;
45 $html .= '/ <a href="' . BSRegister
::Get('webpath') . '/browse/' . $input->in
['repos'] . ':' . $build . '"><strong>' . $part . '</strong></a> ';
51 // ###################################################################
53 * Formats an array of properties into a compiled HTML template
55 * @param array Array of properties
57 * @return string Compiled HTML property list
59 function FormatPropList($props)
61 if (sizeof($props) < 0)
65 foreach ($props AS $propname => $propval)
67 $data = sprintf(_('Property <strong>%1$s</strong> set to <em>%2$s</em>'), $propname, $propval);
68 eval('$proplist .= "' . BSRegister
::Get('template')->fetch('property') . '";');
73 // ###################################################################
75 * Formats a SVN log message
77 * @param string Unformatted log message
79 * @return string Output-ready log message
81 function FormatLogMessage($message)
85 $message = BSRegister
::Get('input')->entityEncode($message);
87 // TODO - fix the revision links
88 // $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);
91 $lines = explode("\n", $message);
93 foreach ($lines AS $line)
95 if (preg_match('#^\s*?(\*|\-)\s?(.*)#', $line, $matches))
99 $message .= '<li>' . $matches[2] . '</li>';
103 $message .= '<ul class="list">';
104 $message .= '<li>' . $matches[2] . '</li>';
118 $message .= '<br />';
131 $message = preg_replace('#(<br />)*$#', '', $message);
136 // ###################################################################
138 * Parses a date from SVN into something more human-friendly
140 * @param string Date string
142 * @return string Formatted and readable date string
144 function FormatSvnDate($string)
146 // 2005-01-23T20:42:53.703057Z
147 return preg_replace('#(....)\-(..)\-(..)T(..):(..):(..).(.*)Z#e', 'gmdate("r", mktime(\4, \5, \6, \2, \3, \1))', $string);
150 /*=====================================================================*\
151 || ###################################################################
154 || ###################################################################
155 \*=====================================================================*/