<?php// WebSVN - Subversion repository viewing via the web using PHP// Copyright (C) 2004-2006 Tim Armes//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//// --//// multiviews.php//// Glue for MultiViewschdir($locwebsvnreal);// Tell files that we are using multiviews if they are unable to access $config.if (!defined('WSVN_MULTIVIEWS')) {define('WSVN_MULTIVIEWS', 1);}require_once 'include/setup.php';require_once 'include/svnlook.php';if (!isset($_REQUEST['sc'])) {$_REQUEST['sc'] = 1;}if (!$config->multiViews) {$vars['error'] = 'MultiViews must be enabled in <code>include/config.php</code> in order to use <code>browse.php</code>. See <a href="'.$locwebsvnhttp.'/doc/install.html#multiviews">the install docs</a> for details, or use <a href="'.$locwebsvnhttp.'">this path</a> instead.';include $locwebsvnreal.'/index.php';exit;}$op = @$_REQUEST['op'];// This means the user wants to browse another project, so we switch to it and exit.if ($op == 'rep') {$rep =& $config->findRepository(@$_REQUEST['repname']);if ($rep != null) {header('Location: '.$config->getURL($rep, '', 'dir'));} else {include $locwebsvnreal.'/index.php';}exit;}$origPathInfo = isset($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : '';$pathInfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';$path = trim(empty($pathInfo) ? $origPathInfo : $pathInfo);// Remove initial slash$path = substr($path, 1);if (empty($path)) {include $locwebsvnreal.'/index.php';exit;}// Split the path into repository and path elements// Note: we have to cope with the repository name having a slash in it$pos = strpos($path, '/');if ($pos === false) {$pos = strlen($path);}$name = substr($path, 0, $pos);$rep =& $config->findRepository($name);if ($rep != null && is_object($rep)) {$path = substr($path, $pos);if ($path == '') {$path = '/';}$repname = $name;} else {include $locwebsvnreal.'/index.php';exit;}createProjectSelectionForm();createRevisionSelectionForm();$vars['repurl'] = $config->getURL($rep, '', 'dir');$vars['clientrooturl'] = $rep->clientRootURL;$vars['allowdownload'] = $rep->getAllowDownload();$vars['repname'] = escape($rep->getDisplayName());// find the operation typeswitch ($op) {case 'dir':$file = 'listing.php';break;case 'revision':$file = 'revision.php';break;case 'file':$file = 'filedetails.php';break;case 'log':$file = 'log.php';break;case 'diff':$file = 'diff.php';break;case 'blame':$file = 'blame.php';break;case 'rss':$file = 'rss.php';break;case 'dl':$file = 'dl.php';break;case 'comp':$file = 'comp.php';break;case 'search':$file = 'search.php';break;default:$svnrep = new SVNRepository($rep);if ($svnrep->isFile($path, $rev, $peg)) {$file = 'filedetails.php';} else {$file = 'listing.php';}break;}// Now include the file that handles itinclude $locwebsvnreal.'/'.$file;