4 * Project Registration: Project Information.
6 * This page is used to request data required for project registration:
7 * o Project Public Name
8 * o Project Registartion Purpose
10 * o Project Public Description
12 * All these data are more or less strictly validated.
14 * This is last page in registartion sequence. Its successful subsmission
15 * leads to creation of new group with Pending status, suitable for approval.
17 * Portions Copyright 1999-2001 (c) VA Linux Systems
18 * Portions Copyright 2002-2004 (c) GForge Team
19 * Portions Copyright 2002-2009 (c) Roland Mas
22 * This file is part of GForge.
24 * GForge is free software; you can redistribute it and/or modify
25 * it under the terms of the GNU General Public License as published by
26 * the Free Software Foundation; either version 2 of the License, or
27 * (at your option) any later version.
29 * GForge is distributed in the hope that it will be useful,
30 * but WITHOUT ANY WARRANTY; without even the implied warranty of
31 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32 * GNU General Public License for more details.
34 * You should have received a copy of the GNU General Public License
35 * along with GForge; if not, write to the Free Software
36 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
40 require_once('../env.inc.php');
41 require_once $gfwww.'include/pre.php';
42 require_once $gfcommon.'scm/SCMFactory.class.php';
44 // Test if restricted project registration
46 if ($sys_project_reg_restricted) {
47 session_require(array('group'=>'1','admin_flags'=>'A'),
48 sprintf (_('Project registration is restricted on %s, and only administrators can create new projects.'),
49 fusionforge_get_config ('forge_name')));
50 } elseif (!session_loggedin()) {
54 if (getStringFromRequest('submit')) {
55 if (!form_key_is_valid(getStringFromRequest('form_key'))) {
56 exit_form_double_submit();
59 $full_name = trim(getStringFromRequest('full_name'));
60 $purpose = trim(getStringFromRequest('purpose'));
61 $description = trim(getStringFromRequest('description'));
62 $unix_name = trim(strtolower(getStringFromRequest('unix_name')));
63 $scm = getStringFromRequest('scm');
64 $is_public = getIntFromRequest('is_public');
67 if ($sys_use_scm && !$scm) {
68 form_release_key(getStringFromRequest("form_key"));
69 // $feedback .= _('Site has SCM enabled, but no SCM was chosen.');
73 if ($sys_use_scm && $scm && $scm != 'noscm') {
74 $plugin = plugin_get_object($scm);
76 $scm_host = $plugin->getDefaultServer();
81 $u =& session_get_user();
82 $res = $group->create(
92 if ($res && $sys_use_scm && $plugin) {
93 $group->setUsesSCM (true) ;
94 $res = $group->setPluginUse ($scm, true);
96 $group->setUsesSCM (false) ;
100 form_release_key(getStringFromRequest("form_key"));
101 $feedback .= $group->getErrorMessage();
103 $HTML->header(array('title'=>_('Registration complete')));
107 <p><?php printf(_('Your project has been submitted to the %1$s administrators. Within 72 hours, you will receive notification of their decision and further instructions.<p/>Thank you for choosing %1$s'), fusionforge_get_config ('forge_name'))?>
112 $HTML->footer(array());
116 } else if (getStringFromRequest('i_disagree')) {
117 session_redirect("/");
127 site_header(array('title'=>_('Project Information')));
130 <p><?php echo _('To apply for project registration, you should fill in basic information about it. Please read descriptions below carefully and provide complete and comprehensive data. All fields below are mandatory.') ?>
133 <form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post">
134 <input type="hidden" name="form_key" value="<?php echo form_generate_key(); ?>"/>
135 <?php echo _('<h3>1. Project full name</h3>You should start with specifying the name of your project. The "Full Name" is descriptive, and has no arbitrary restrictions (except a 40 character limit).<p/>Full Name:<br/>') ?>
137 <input size="40" maxlength="40" type="text" name="full_name" value="<?php echo htmlspecialchars(stripslashes($full_name)); ?>"/>
139 <?php printf(_('<h3>2. Project Purpose And Summarization</h3><strong> Please provide detailed, accurate description of your project and what %1$s resources and in which way you plan to use. This description will be the basis for the approval or rejection of your project\'s hosting on %1$s, and later, to ensure that you are using the services in the intended way. This description will not be used as a public description of your project. It must be written in English.</strong>'), fusionforge_get_config ('forge_name'))?>
141 <textarea name="purpose" cols="70" rows="10">
142 <?php echo htmlspecialchars(stripslashes($purpose)); ?>
145 <?php echo _('<h3>3. Project Public Description</h3><p>This is the description of your project which will be shown on the Project Summary page, in search results, etc. It should not be as comprehensive and formal as Project Purpose description (step 2), so feel free to use concise and catchy wording. Maximum length is 255 chars.</p>')?>
148 <textarea name="description" cols="70" rows="5">
149 <?php echo htmlspecialchars(stripslashes($description)); ?>
152 <?php printf(_('<h3>4. Project Unix Name</h3>In addition to full project name, you will need to choose short,"Unix" name for your project.<p/> The "Unix Name" has several restrictions because it is used in so many places around the site. They are:<ul><li>Cannot match the unix name of any other project</li><li>Must be between 3 and 15 characters in length</li><li>Must be in lower case</li><li>Can only contain characters, numbers, and dashes</li><li>Must be a valid unix username</li><li>Cannot match one of our reserved domains</li><li>Unix name will never change for this project</li></ul><p/>Your unix name is important, however, because it will be used for many things, including:<ul><li>A web site at <tt>unixname.%1$s</tt></li><li>A CVS Repository root of <tt>/cvsroot/unixname</tt> at <tt>cvs.unixname.%1$s</tt></li><li>Shell access to <tt>unixname.%1$s</tt></li><li>Search engines throughout the site</li></ul><p/>Unix Name:<br/>'), $GLOBALS['sys_default_domain']) ?>
154 <input type="text" maxlength="15" size="15" name="unix_name" value="<?php echo htmlspecialchars(stripslashes($unix_name)); ?>"/>
157 $SCMFactory = new SCMFactory() ;
158 $scm_plugins=$SCMFactory->getSCMs() ;
159 if ($sys_use_scm && count($scm_plugins) > 0) {
160 echo _('<h3>5. SCM</h3><p>You can choose among different SCM for your project, but just one (or none at all). Please select the SCM system you want to use.</p>')."\n";
161 echo '<table><tbody><tr><td><strong>'._('SCM Repository').':</strong></td>';
162 echo '<td><input type="radio" name="scm" value="noscm" checked="checked">'._('No SCM').'</td>';
163 foreach($scm_plugins as $plugin) {
164 $myPlugin= plugin_get_object($plugin);
165 echo '<td><input type="radio" name="scm" value="'.$myPlugin->name.'">'.$myPlugin->text.'</td>';
167 echo '</tr></tbody></table>'."\n";
172 if ($sys_use_private_project) {
173 echo "<p><input type=\"radio\" name=\"is_public\" value=\"1\" ";
174 if (!isset($is_public) || $is_public) {
177 echo ">". _('Public')."</p>";
179 echo "<p><input type=\"radio\" name=\"is_public\" value=\"0\" ";
180 if (isset ($is_public) && !$is_public) {
183 echo ">". _('Private')."</p>";
185 echo "<input type=\"hidden\" name=\"is_public\" value=\"1\">";
190 <input type="submit" name="submit" value="<?php echo _('Submit') ?>"/> <input type="submit" name="i_disagree" value="<?php echo _('Cancel') ?>"/>
197 site_footer(array());
201 // c-file-style: "bsd"