3 * FusionForge Projects Redirector
5 * Copyright 1999-2001 (c) VA Linux Systems
6 * Copyright 2002-2004 (c) GForge Team
7 * Copyright 2010 (c) FusionForge Team
8 * http://fusionforge.org/
10 * This file is part of FusionForge.
12 * FusionForge is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
17 * FusionForge is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License
23 * along with FusionForge; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 require_once 'env.inc.php';
28 require_once $gfcommon.'include/pre.php';
32 // Setting up the $project object is all being
33 // handled in the logger now
34 // This was done so the logger would accurately record these pages
38 // test to see if the logger was successful in setting up the objects
41 $default_content_type = 'text/html';
43 // Invoke plugins' hooks 'script_accepted_types' to discover which alternate content types they would accept for /users/...
44 $hook_params = array();
45 $hook_params['script'] = 'project_home';
46 $hook_params['accepted_types'] = array();
47 plugin_hook_by_reference('script_accepted_types', $hook_params);
48 if (count($hook_params['accepted_types'])) {
49 // By default, text/html is accepted
50 $accepted_types = array($default_content_type);
51 $new_accepted_types = $hook_params['accepted_types'];
52 $accepted_types = array_merge($accepted_types, $new_accepted_types);
54 // PEAR::HTTP (for negotiateMimeType())
55 require_once('HTTP.php');
57 // negociate accepted content-type depending on the preferred ones declared by client
59 $content_type = $http->negotiateMimeType($accepted_types,'text/html');
61 $content_type = $default_content_type;
64 if (!$group_id || !$project) {
67 $subpage = getStringFromRequest('subpage');
69 if ($subpage == "admin") {
70 session_redirect(util_make_url("/project/admin/?group_id=$group_id"));
71 } else if ($subpage == "files" || $subpage == "download" || $subpage == "dl") {
72 if (getStringFromRequest('subpage2') == "release") {
73 session_redirect(util_make_url("/frs/admin/qrs.php?group_id=$group_id"));
75 session_redirect(util_make_url("/frs/?group_id=$group_id"));
77 } else if ($subpage == "cvs") {
78 header("Location: ".account_group_cvsweb_url($project->getUnixName()));
81 // if a custom content-type is selected, then redirect to plugin's rendering
82 if($content_type != $default_content_type) {
83 $hook_params = array();
84 $hook_params['groupname'] = $project->getUnixName();
85 $hook_params['accept'] = $content_type;
86 $hook_params['return'] = '';
87 plugin_hook_by_reference('content_negociated_project_home', $hook_params);
88 if($hook_params['content_type'] != ''){
89 header('Content-type: '. $hook_params['content_type']);
90 echo $hook_params['content'];
93 //show the project summary page
94 include $gfwww.'include/project_home.php';
101 // c-file-style: "bsd"