3 * GForge Doc Mgr Facility
5 * Copyright 2002 GForge, LLC
15 by Quentin Cregan, SourceForge 06/2000
17 Complete OO rewrite by Tim Perdue 1/2003
22 require_once('../env.inc.php');
23 require_once('pre.php');
24 require_once('common/docman/Document.class.php');
25 require_once('common/docman/DocumentGroupFactory.class.php');
26 require_once('include/doc_utils.php');
27 require_once('include/DocumentGroupHTML.class.php');
28 require_once('common/include/TextSanitizer.class.php'); // to make the HTML input by the user safe to store
30 $group_id = getIntFromRequest('group_id');
34 $g =& group_get_object($group_id);
35 if (!$g || !is_object($g)) {
36 exit_error('Error','Could Not Get Group');
37 } elseif ($g->isError()) {
38 exit_error('Error',$g->getErrorMessage());
41 $upload_dir = $sys_ftp_upload_dir . "/" . $g->getUnixName();
43 if (getStringFromRequest('submit')) {
44 $doc_group = getIntFromRequest('doc_group');
45 $title = getStringFromRequest('title');
46 $description = getStringFromRequest('description');
47 $file_url = getStringFromRequest('file_url');
48 //$ftp_filename = getStringFromRequest('ftp_filename');
49 $uploaded_data = getUploadedFile('uploaded_data');
50 $language_id = getIntFromRequest('language_id');
51 $type = getStringFromRequest('type');
52 $name = getStringFromRequest('name');
54 if (!$doc_group || $doc_group == 100) {
55 //cannot add a doc unless an appropriate group is provided
56 exit_error(_('Error'),_('No valid Document Group was selected.'));
59 //if (!$title || !$description || (!$uploaded_data && !$file_url && !$ftp_filename && (!$editor && !$name ) )) {
60 if (!$title || !$description || (!$uploaded_data && !$file_url && (!$editor && !$name ) )) {
64 $d = new Document($g, false, false,$sys_engine_path);
65 if (!$d || !is_object($d)) {
66 exit_error(_('Error'),_('Error getting blank document.'));
67 } elseif ($d->isError()) {
68 exit_error(_('Error'),$d->getErrorMessage());
73 $data = getStringFromRequest('data');
74 $uploaded_data_name = $name;
75 $sanitizer = new TextSanitizer();
76 $data = $sanitizer->SanitizeHtml($data);
77 if (strlen($data)<1) {
78 exit_error(_('Error'),_('Error getting blank document.'));
80 $uploaded_data_type='text/html';
85 $uploaded_data_name=$file_url;
86 $uploaded_data_type='URL';
90 if (!is_uploaded_file($uploaded_data['tmp_name'])) {
91 exit_error(_('Error'),_('Invalid file name.'));
93 $data = addslashes(fread(fopen($uploaded_data['tmp_name'], 'r'), $uploaded_data['size']));
95 $uploaded_data_name=$uploaded_data['name'];
96 $uploaded_data_type=$uploaded_data['type'];
101 $uploaded_data_name=$upload_dir.'/'.$ftp_filename;
102 $data = addslashes(fread(fopen($uploaded_data_name, 'r'), filesize($uploaded_data_name)));
107 if (!$d->create($uploaded_data_name,$uploaded_data_type,$data,$doc_group,$title,$language_id,$description)) {
108 exit_error(_('Error'),$d->getErrorMessage());
110 if ($type == 'editor') {
111 //release the cookie for the document contents (should expire at the end of the session anyway)
112 setcookie ("gforgecurrentdocdata", "", time() - 3600);
114 Header('Location: '.util_make_url('/docman/?group_id='.$group_id.'&feedback='._('Document submitted sucessfully')));
120 //if (getStringFromRequest('Option')) {
121 //option was selected, proceed to show each one
122 $option_selected = getStringFromRequest('option_selected');
123 docman_header(_('Document Manager: Submit New Documentation'),_('Project: %1$s'));
124 echo'<p>'. _('<strong>Document Title</strong>: Refers to the relatively brief title of the document (e.g. How to use the download server)<br /><strong>Description:</strong> A brief description to be placed just under the title.') .'</p>
125 <form name="adddata" action="'. getStringFromServer('PHP_SELF').'?group_id='.$group_id.'" method="post" enctype="multipart/form-data">
126 <table border="0" width="75%">
129 <strong>'. _('Document Title').' :</strong>'. utils_requiredField(). sprintf(_('(at least %1$s characters)'), 5).'<br />
130 <input type="text" name="title" size="40" maxlength="255" />
136 <strong>'. _('Description') .' :</strong>'. utils_requiredField() . sprintf(_('(at least %1$s characters)'), 10).'<br />
137 <input type="text" name="description" size="50" maxlength="255" />
143 <strong>'. _('Upload File') .' :</strong>'. utils_requiredField() .'<br />
144 <input type="file" name="uploaded_data" size="30" /><br /><br />
145 <input type="hidden" name="type" value="httpupload">
149 switch ($option_selected) {
150 case 'httpupload' : {
154 <strong>'. _('Upload File') .' :</strong>'. utils_requiredField() .'<br />
155 <input type="file" name="uploaded_data" size="30" /><br /><br />
156 <input type="hidden" name="type" value="httpupload">
162 if ($sys_use_ftpuploads) {
166 <strong>'.sprintf(_('You can use FTP to upload a new file at %1$s'), $sys_ftp_upload_host).'<br />';
167 echo _('Choose an FTP file instead of uploading:').'</strong>'. utils_requiredField() .'<br />';
168 $ftp_files_arr=array_merge($arr,ls($upload_dir,true));
169 echo html_build_select_box_from_arrays($ftp_files_arr,$ftp_files_arr,'ftp_filename','');
170 echo '</td></tr><input type="hidden" name="type" value="ftpupload">';
173 exit_error(_('You must enable ftp uploads first'));
181 <strong>'. _('Specify an outside URL where the file will be referenced').' :</strong>'. utils_requiredField() .'<br />
182 <input type="text" name="file_url" size="50" />
183 <input type="hidden" name="type" value="pasteurl">
189 echo '<SCRIPT LANGUAGE="JavaScript">';
190 echo 'function openEditor(group) {
191 newwin=window.open("doceditor.php?group_id=" + group, "dispwin", "width=850,height=550,scrollbars=yes,menubar=no");
198 echo "<strong>" . _('Name your file :') . '</strong>'.utils_requiredField().'<input type="text" name="name" ><br>';
199 echo '<a href="javascript:openEditor('.$group_id.');">'._('Edit').'</a>';
200 echo '<input type="hidden" name="data">';
201 echo '<input type="hidden" name="type" value="editor">';
212 <strong>'. _('Language').' :</strong><br />
213 '. html_get_language_popup('language_id',1) .'
218 <strong>'. _('Group that document belongs in').' :</strong><br />';
219 $dgf = new DocumentGroupFactory($g);
220 if ($dgf->isError()) {
221 exit_error('Error',$dgf->getErrorMessage());
223 $dgh = new DocumentGroupHTML($g);
224 if ($dgh->isError()) {
225 exit_error('Error',$dgh->getErrorMessage());
227 //display_groups_option($group_id);
228 $selected_doc_group=getIntFromRequest('selected_doc_group');
229 $dgh->showSelectNestedGroups($dgf->getNested(), 'doc_group', false, $selected_doc_group);
234 <input type="submit" name="submit" value="'. _('Submit Information').' " />
236 docman_footer(array());
239 docman_header(_('Document Manager: Submit New Documentation'),_('Project: %1$s'));
243 echo '<form name="select_opt" action="'. getStringFromServer('PHP_SELF').'?group_id='.$group_id.'" method="post">';
244 $vals['httpupload'] = _('Http Upload');
245 //$vals['ftpupload'] = _('Ftp Upload');
246 $vals['pasteurl'] = _('Url Paste');
247 $vals['editor'] = _('Create and edit the file manually');
248 echo _('First select the upload type you wish to use');
249 echo html_build_select_box_from_assoc($vals,'option_selected');
250 echo ' <input type="submit" value="'. _('Select Option') .'" name="Option">';
252 docman_footer(array());
259 // c-file-style: "bsd"