]> git.sur5r.net Git - bacula/docs/blob - docs/home-page/pages/testimonial.php
ebl add admin page
[bacula/docs] / docs / home-page / pages / testimonial.php
1 <? require_once("inc/header.php"); ?>
2 <?
3 $dat_dir = '../testimonials';
4
5 $org_type_lst = array(
6        '0'   => "SELECT ONE",
7        '15'  => "Church / Religious Organization",
8        '3'   => "Corporation",
9        '14'  => "Educational Institution",
10        '5'   => "Government",
11        '6'   => "Military",
12        '13'  => "Non-Profit Organization",
13        '10'  => "Other",
14        '4'   => "Small Business"
15 );
16
17 $version_lst = array(
18        '0'   => "SELECT ONE",
19        '1'   => "1.36.x",
20        '2'   => "1.38.x",
21        '3'   => "2.0.x",
22        '4'   => "2.2.x",
23        '5'   => "SVN version"
24 );
25
26 $catalog_lst = array(
27        '0'   => "SELECT ONE",
28        '1'   => "MySQL",
29        '2'   => "PostgreSQL",
30        '3'   => "SqLite"
31 );
32
33 $org_industry_lst = array(
34    '0'   => 'SELECT ONE',                               '25'  => 'Aerospace / Aeronautical',
35    '11'  => 'Agriculture / Farming',                    '38'  => 'Architecture / Design',
36    '44'  => 'Arts',                                     '5'   => 'ASP',
37    '54'  => 'Banking',
38    '42'  => 'Church / Religious Organization',          '45'  => 'Coaching',
39    '10'  => 'Construction',                             '22'  => 'Consulting (General)',
40    '21'  => 'Consulting (Information Technology)',      '31'  => 'Defense Industry',
41    '51'  => 'Education / Training',                     '37'  => 'Energy Industry',
42    '46'  => 'Engineering',                              '35'  => 'Entertainment (Film)',
43    '34'  => 'Entertainment (Music)',                    '36'  => 'Entertainment (Other)',
44    '47'  => 'Event Management / Conferences',           '7'   => 'Finance / Banking / Accounting',
45    '12'  => 'Food Service Industry',                    '29'  => 'Government',
46    '3'   => 'Healthcare / Medicine',                    '8'   => 'Higher Education',
47    '6'   => 'Insurance',                                '4'   => 'Internet Service Provider',
48    '2'   => 'K-12 Education',                           '48'  => 'Law Enforcement / Emergency Management',
49    '14'  => 'Legal',                                    '24'  => 'Manufacturing (Computer Equipment)',
50    '23'  => 'Manufacturing (General)',                  '53'  => 'Media (Publishing, Broadcasting, etc)',
51    '30'  => 'Military',                                 '9'   => 'Mining',
52    '18'  => 'Natural Resources / Environment',          '15'  => 'Pharmaceuticals',
53    '49'  => 'Public Relations / Advertising',           '13'  => 'Real Estate',
54    '41'  => 'Retail / Consumer Goods',                  '52'  => 'Sales / Marketing',
55    '32'  => 'Scientific Research',                      '33'  => 'Sports / Recreation',
56    '43'  => 'Technical College / Trade School',         '40'  => 'Telecommunications',
57    '27'  => 'Transportation Industry (Air)',            '28'  => 'Transportation Industry (General)',
58    '26'  => 'Transportation Industry (Marine)',         '50'  => 'Travel / Tourism / Lodging',
59    '17'  => 'Travel Industry',                          '39'  => 'Utilities / Public Works',
60    '16'  => 'Other'                             
61 );
62
63 $os_lst = array(
64    '0'  =>  'SELECT ONE',                       '20' =>  'AIX',
65    '21' =>  'FreeBSD',                          '14' =>  'HP-UX',
66    '2'  =>  'Linux (Debian)',                   '27' =>  'Linux (Fedora)',
67    '25' =>  'Linux (Gentoo)',                   '4'  =>  'Linux (Mandrake)',
68    '5'  =>  'Linux (Other)',                    '1'  =>  'Linux (RedHat)',
69    '26' =>  'Linux (Slackware)',                '3'  =>  'Linux (Suse)',
70    '18' =>  'Mac OS X',                         '22' =>  'NetBSD',
71    '23' =>  'OpenBSD',                          '24' =>  'Other',
72    '13' =>  'Solaris',                          '15' =>  'Windows 2000',
73    '16' =>  'Windows 2003',                     '17' =>  'Windows XP'
74 ); 
75
76 $country_lst = array(
77    '0'   =>  'SELECT ONE',              '1'   =>  'Afghanistan',
78    '2'   =>  'Albania',                 '3'   =>  'Algeria',
79    '4'   =>  'American Samoa',          '5'   =>  'Andorra',
80    '6'   =>  'Angola',                  '7'   =>  'Anguilla',
81    '8'   =>  'Antarctica',              '9'   =>  'Antigua and Barbuda',
82    '10'  =>  'Argentina',               '11'  =>  'Armenia',
83    '12'  =>  'Aruba',                   '13'  =>  'Australia',
84    '14'  =>  'Austria',                 '15'  =>  'Azerbaijan',
85    '16'  =>  'Bahamas',                 '17'  =>  'Bahrain',
86    '18'  =>  'Bangladesh',              '19'  =>  'Barbados',
87    '20'  =>  'Belarus',                 '21'  =>  'Belgium',
88    '22'  =>  'Belize',                  '23'  =>  'Benin',
89    '24'  =>  'Bermuda',                 '25'  =>  'Bhutan',
90    '26'  =>  'Bolivia',                 '27'  =>  'Bosnia and Herzegovina',
91    '28'  =>  'Botswana',                '29'  =>  'Bouvet Island',
92    '30'  =>  'Brazil',                  '31'  =>  'Brunei Darussalam',
93    '32'  =>  'Bulgaria',                '33'  =>  'Burkina Faso',
94    '34'  =>  'Burundi',                 '35'  =>  'Cambodia',
95    '36'  =>  'Cameroon',                '37'  =>  'Canada',
96    '38'  =>  'Cape Verde',              '39'  =>  'Cayman Islands',
97    '40'  =>  'Central African Republic','41'  =>  'Chad',
98    '42'  =>  'Chile',                   '43'  =>  'China',
99    '44'  =>  'Christmas Island',        '45'  =>  'Colombia',
100    '46'  =>  'Comoros',                 '47'  =>  'Congo',
101    '48'  =>  'Cook Islands',            '49'  =>  'Costa Rica',
102    '54'  =>  "Ivory Coast",             '50'  =>  'Croatia',
103    '51'  =>  'Cuba',                    '52'  =>  'Cyprus',
104    '53'  =>  'Czech Republic',          '55'  =>  'Denmark',
105    '56'  =>  'Djibouti',                '57'  =>  'Dominica',
106    '58'  =>  'Dominican Republic',      '59'  =>  'East Timor',
107    '60'  =>  'Ecuador',                 '61'  =>  'Egypt',
108    '62'  =>  'El Salvador',             '63'  =>  'Equatorial Guinea',
109    '64'  =>  'Eritrea',                 '65'  =>  'Estonia',
110    '66'  =>  'Ethiopia',                '67'  =>  'Falkland Islands',
111    '68'  =>  'Faroe Islands',           '69'  =>  'Fiji',
112    '70'  =>  'Finland',                 '71'  =>  'France',
113    '72'  =>  'French Guiana',           '73'  =>  'French Polynesia',
114    '74'  =>  'Gabon',                   '75'  =>  'Gambia',
115    '76'  =>  'Georgia',                 '77'  =>  'Germany',
116    '78'  =>  'Ghana',                   '79'  =>  'Gibraltar',
117    '80'  =>  'Greece',                  '81'  =>  'Greenland',
118    '82'  =>  'Grenada',                 '83'  =>  'Guadeloupe',
119    '84'  =>  'Guam',                    '85'  =>  'Guatemala',
120    '86'  =>  'Guinea',                  '87'  =>  'Guinea-Bissau',
121    '88'  =>  'Guyana',                  '89'  =>  'Haiti',
122    '90'  =>  'Honduras',                '91'  =>  'Hong Kong',
123    '92'  =>  'Hungary',                 '93'  =>  'Iceland',
124    '94'  =>  'India',                   '95'  =>  'Indonesia',
125    '96'  =>  'Iran',                    '97'  =>  'Iraq',
126    '98'  =>  'Ireland',                 '99'  =>  'Israel',
127    '100' =>  'Italy',                   '101' =>  'Jamaica',
128    '102' =>  'Japan',                   '103' =>  'Jordan',
129    '104' =>  'Kazakstan',               '105' =>  'Kenya',
130    '106' =>  'Kiribati',                '107' =>  'Kuwait',
131    '108' =>  'Kyrgystan',               '109' =>  'Lao',
132    '110' =>  'Latvia',                  '111' =>  'Lebanon',
133    '112' =>  'Lesotho',                 '113' =>  'Liberia',
134    '232' =>  'Libya',                   '114' =>  'Liechtenstein',
135    '115' =>  'Lithuania',               '116' =>  'Luxembourg',
136    '117' =>  'Macau',                   '118' =>  'Macedonia (FYR)',
137    '119' =>  'Madagascar',              '120' =>  'Malawi',
138    '121' =>  'Malaysia',                '122' =>  'Maldives',
139    '123' =>  'Mali',                    '124' =>  'Malta',
140    '125' =>  'Marshall Islands',        '126' =>  'Martinique',
141    '127' =>  'Mauritania',              '128' =>  'Mauritius',
142    '129' =>  'Mayotte',                 '130' =>  'Mexico',
143    '131' =>  'Micronesia',              '132' =>  'Moldova',
144    '133' =>  'Monaco',                  '134' =>  'Mongolia',
145    '135' =>  'Montserrat',              '136' =>  'Morocco',
146    '137' =>  'Mozambique',              '138' =>  'Myanmar',
147    '139' =>  'Namibia',                 '140' =>  'Nauru',
148    '141' =>  'Nepal',                   '142' =>  'Netherlands',
149    '143' =>  'Netherlands Antilles',    '144' =>  'Neutral Zone',
150    '145' =>  'New Caledonia',           '146' =>  'New Zealand',
151    '147' =>  'Nicaragua',               '148' =>  'Niger',
152    '149' =>  'Nigeria',                 '150' =>  'Niue',
153    '151' =>  'Norfolk Island',          '152' =>  'North Korea',
154    '153' =>  'Northern Mariana Islands','154' =>  'Norway',
155    '155' =>  'Oman',                    '156' =>  'Pakistan',
156    '157' =>  'Palau',                   '158' =>  'Panama',
157    '159' =>  'Papua New Guinea',        '160' =>  'Paraguay',
158    '161' =>  'Peru',                    '162' =>  'Philippines',
159    '163' =>  'Pitcairn',                '164' =>  'Poland',
160    '165' =>  'Portugal',                '166' =>  'Puerto Rico',
161    '167' =>  'Qatar',                   '168' =>  'Reunion',
162    '169' =>  'Romania',                 '170' =>  'Russian Federation',
163    '171' =>  'Rwanda',                  '172' =>  'Saint Helena',
164    '173' =>  'Saint Kitts and Nevis',   '174' =>  'Saint Lucia',
165    '175' =>  'Saint Pierre and Miquelon','231' =>  'Saint Vincent and the Grenadines',
166    '176' =>  'Samoa',                   '177' =>  'San Marino',
167    '178' =>  'Sao Tome and Principe',   '179' =>  'Saudi Arabia',
168    '180' =>  'Senegal',                 '227' =>  'Serbia and Montenegro',
169    '181' =>  'Seychelles',              '182' =>  'Sierra Leone',
170    '183' =>  'Singapore',               '184' =>  'Slovakia',
171    '185' =>  'Slovenia',                '186' =>  'Solomon Islands',
172    '187' =>  'Somalia',                 '188' =>  'South Africa',
173    '189' =>  'South Georgia',           '190' =>  'South Korea',
174    '191' =>  'Spain',                   '192' =>  'Sri Lanka',
175    '193' =>  'Sudan',                   '194' =>  'Suriname',
176    '195' =>  'Swaziland',               '196' =>  'Sweden',
177    '197' =>  'Switzerland',             '198' =>  'Syria',
178    '199' =>  'Taiwan',                  '200' =>  'Tajikistan',
179    '201' =>  'Tanzania',                '202' =>  'Thailand',
180    '203' =>  'Togo',                    '204' =>  'Tokelau',
181    '205' =>  'Tonga',                   '206' =>  'Trinidad and Tobago',
182    '207' =>  'Tunisia',                 '208' =>  'Turkey',
183    '209' =>  'Turkmenistan',            '210' =>  'Turks and Caicos Islands',
184    '211' =>  'Tuvalu',                  '212' =>  'Uganda',
185    '213' =>  'Ukraine',                 '214' =>  'United Arab Emirates',
186    '215' =>  'United Kingdom',          '216' =>  'United States of America',
187    '217' =>  'Uruguay',                 '218' =>  'Uzbekistan',
188    '219' =>  'Vanuatu',                 '233' =>  'Vatican City',
189    '220' =>  'Venezuela',               '221' =>  'Vietnam',
190    '222' =>  'Virgin Islands (British)','223' =>  'Virgin Islands (U.S.)',
191    '224' =>  'Wallis and Futuna Islands','225' =>  'Western Sahara',
192    '226' =>  'Yemen',                   '228' =>  'Zaire',
193    '229' =>  'Zambia',                  '230' =>  'Zimbabwe'
194 );
195
196 if ($_REQUEST['btnSubmit'] == 'Add' or $_REQUEST['btnSubmit'] == 'Modify')
197 {
198
199 ?>
200 <table>
201 <tr>
202         <td class="contentTopic">
203                 <? echo $_REQUEST['btnSubmit'] ?> Testimonial
204         </td>
205 </tr>
206 <tr>
207         <td class="content">
208
209 Want to let others know you're using Bacula? Submit a user profile!  Your
210 submission will be reviewed before being made publicly available.  We reserve
211 the right to edit your submission for spelling, grammar, etc. You will receive
212 an email when your profile has been approved for public viewing. Note that
213 while your contact name and email address are required (to verify
214 information if necessary), you can choose to have them not be published along
215 with your profile information.  
216 <br/><br/>
217 Fields marked with a * are required. Read the privacy notice below for
218 information about how this data will be used.
219
220         </td>
221 </tr>
222
223 <tr>
224         <td class="content">
225 <form enctype="multipart/form-data" method='post' action='?page=testimonial'>
226 <input type='hidden' name='page' value='testimonial'>
227 <table border='0' class='Content'>
228
229 <td class='ItemName'>
230 <font color='red'>*</font>Contact Name:</td>
231 <td class='ItemValue'><input type='text' class='ItemValue' id='contact_name' 
232 name='contact_name' size='30' maxlength='100' value=''></td>
233 <td class='ItemName'>Publish Contact Name?</td>
234 <td class='ItemValue'><select name='publish_contact' class='ItemValue'>
235 <option id='publish_contact_0'  value='0' SELECTED>No
236 <option id='publish_contact_1' value='1'>Yes
237 </select></td>
238 </tr>
239
240 <tr>
241 <td class='ItemName'><font color='red'>*</font>Email Address:</td>
242 <td class='ItemValue'><input type='text' class='ItemValue' name='email_address' 
243 id='email_address' size='30' maxlength='150' value=''></td>
244 <td class='ItemName'>Publish Email Address?</td><td class='ItemValue'>
245 <select name='publish_email' class='ItemValue'>
246 <option value='0' id='publish_email_0' SELECTED>No
247 <option value='1' id='publish_email_1' >Yes
248 </select></td>
249 </tr>
250
251 <tr><td class='ItemName'>Job Description/Title:</td>
252 <td class='ItemValue'>
253 <input type='text' name='title' id='title' size='30' maxlength='100' value=''></td></tr>
254 <tr><td colspan=4><br></td></tr>
255
256 <tr><td class='ItemName'><font color='red'>*</font>Organization Name:</td>
257 <td class='ItemValue'>
258 <input type='text' class='ItemValue' name='org_name' id='org_name' 
259 size='30' maxlength='100' value=''>
260 </td><td class='ItemName'>Publish Org Name?</td><td class='ItemValue'>
261 <select name='publish_orgname' class='ItemValue'>
262 <option value='0' id='publish_orgname_0' >No
263 <option value='1' id='publish_orgname_1' SELECTED>Yes
264 </select></td>
265 </tr>
266
267 <tr><td class='ItemName'><font color='red'>*</font>Organization Type:</td>
268 <td class='ItemValue' colspan='3'>
269 <select name='orgtype_id' class='ItemValue'>
270 <?
271
272 while(list ($key, $val) = each ($org_type_lst))
273 {
274  echo "<option id='orgtype_id_$key' value='$key'>$val\n";
275 }
276
277 ?>
278 </select>
279 </td></tr>
280
281 <tr><td class='ItemName'><font color='red'>*</font>Organization Industry/Function:</td>
282 <td class='ItemValue' colspan='3'>
283 <select name='orgindustry_id' class='ItemValue'>
284 <?
285
286 while(list ($key, $val) = each ($org_industry_lst))
287 {
288  echo "<option id='orgindustry_id_$key' value='$key'>$val\n";
289 }
290
291 ?>
292 </select>
293 </td></tr>
294
295 <tr><td class='ItemName'>
296 <font color='red'>*</font>Approx. Organization Size (# of Users):</td>
297 <td class='ItemValue'>
298 <input type='text' id='org_size' class='ItemValue' name='org_size' 
299 size='4' maxlength='6' value=''></td>
300 <td class='ItemName'>Publish Org Size?</td><td class='ItemValue'><select name='publish_orgsize' class='ItemValue'>
301 <option id='publish_orgsize_0' value='0' >No
302 <option id='publish_orgsize_1' value='1' SELECTED>Yes
303 </select></td>
304 </tr>
305 <tr>
306
307 <td class='ItemName'>Website URL:</td>
308 <td class='ItemValue'>
309 <input type='text' class='ItemValue' id='website' name='website' size='30'
310  maxlength='150' value=''></td>
311 <td class='ItemName'>Publish Website?</td><td class='ItemValue'>
312 <select name='publish_website' class='ItemValue'>
313 <option id='publish_website_0' value='0' >No
314 <option id='publish_website_1' value='1' SELECTED>Yes
315 </select></td>
316 </tr>
317
318 <tr>
319 <td class='ItemName'>Organization Logo :</td>
320 <td class='ItemValue'>
321 <input type="file" name="org_logo" title="png, gif or jpeg file only please"/>
322 </td><td><i>max width 250px. png, gif or jpeg only</i></td>
323 </tr>
324
325 <tr><td class='ItemName'><font color='red'>*</font>Country:</td>
326 <td class='ItemValue'>
327 <select name='country_id' class='ItemValue'>
328 <?
329 while(list ($key, $val) = each ($country_lst))
330 {
331  echo "<option id='country_id_$key' value='$key'>$val\n";
332 }
333
334 ?>
335 </select>
336 </td></tr>
337
338 <tr><td colspan=4><br></td></tr>
339 <tr><td class='ItemName'><font color='red'>*</font>Bacula version:</td>
340 <td class='ItemValue'>
341 <select name='bacula_version' class='ItemValue'>
342 <?
343
344 while(list ($key, $val) = each ($version_lst))
345 {
346  echo "<option id='bacula_version_$key' value='$key'>$val\n";
347 }
348
349 ?>
350 </select>
351 </td></tr>
352 <tr><td class='ItemName'><font color='red'>*</font>Director OS:</td>
353 <td class='ItemValue'>
354 <select name='ostype_id' class='ItemValue'>
355 <?
356
357 while(list ($key, $val) = each ($os_lst))
358 {
359  echo "<option id='ostype_id_$key' value='$key'>$val\n";
360 }
361
362 ?>
363 </select>
364 </td></tr>
365 <tr><td class='ItemName'><font color='red'>*</font>Catalog DB:</td>
366 <td class='ItemValue'>
367 <select name='catalog_id' class='ItemValue'>
368 <?
369
370 while(list ($key, $val) = each ($catalog_lst))
371 {
372  echo "<option id='catalog_id_$key' value='$key'>$val\n";
373 }
374
375 ?>
376 </select>
377 </td></tr>
378 <tr>
379 <td class='ItemName'><font color='red'>*</font>Redundant/Failover Backup Setup?</td>
380 <td class='ItemValue'><select name='redundant_setup' class='ItemValue'>
381 <option value='0' id='redundant_setup_0' SELECTED>No
382 <option value='1' id='redundant_setup_1' >Yes
383 </select></td>
384 </tr>
385
386 <tr><td class='ItemName'><font color='red'>*</font>Number of Clients (Running bacula-fd):</td>
387 <td class='ItemValue'>
388 <input type='text' class='ItemValue' id='number_fd' name='number_fd' 
389  size='5' maxlength='10' value=''></td>
390 </tr>
391
392 <tr><td class='ItemName'>
393 <font color='red'>*</font>Number of Storage Daemons (Running bacula-sd):</td>
394 <td class='ItemValue'>
395 <input type='text' class='ItemValue' id='number_sd' name='number_sd' size='5' 
396  maxlength='10' value=''></td>
397 </tr>
398
399 <tr><td class='ItemName'><font color='red'>*</font>Total # of GB saved every month:</td>
400 <td class='ItemValue'><input type='text' class='ItemValue' name='month_gb' size='5' 
401  id='month_gb' maxlength='10' value=''></td>
402 </tr>
403
404 <tr><td class='ItemName'><font color='red'>*</font>Number # of Files:</td>
405 <td class='ItemValue'><input type='text' class='ItemValue' name='number_files'
406  id='number_files' title='select count(1) from File;' size='10' maxlength='15' value=''></td>
407 </tr>
408
409 <tr><td colspan=4><br></td></tr>
410
411 <tr><td class='ItemName' valign='top'>Applicable Hardware and Network Information:</td>
412 <td class='ItemValue' colspan='3'>
413 <textarea name='hardware_comments' wrap='virtual' rows='4' id='hardware_comments'
414  cols='60' class='ItemValue'>Loader Description:
415 Barcode Reader: Yes/No
416 Number of Storage Elements:
417 Number of Import/Export Elements:
418 --
419 Nics: 
420 ...
421 </textarea>
422 </tr>
423
424 <tr><td class='ItemName' valign='top'>General Comments:</td>
425 <td class='ItemValue' colspan='3'>
426 <textarea name='comments' id='comments' wrap='virtual' rows='4' cols='60' 
427  class='ItemValue'></textarea></tr>
428
429 <tr><td></td><td>
430 <?
431  if ($_REQUEST['btnSubmit'] == 'Modify') {
432   echo "<input type='text' title='testimonial id' id='id' name='id' class='ItemValue' value=''>";
433   echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Save'>";
434   echo "<input type='submit' name='btnSubmit' class='ItemValue' onclick='confirm(\"Are you sure ?\");' value='Delete'><br>";
435   echo "<input type='hidden' name='page' class='ItemValue' value='testimonial'><br>";
436
437 } else {  
438   echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Review Profile Submission'>";
439 }
440 ?>
441
442 </td></tr>
443 </table>
444 </form>
445
446 </td>
447 </tr>
448 <tr>
449
450         <td class="content">
451         <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Privacy Notice </h3>
452
453 The following information is required, but you may choose to not have it
454 published for public viewing if you wish: contact name, email address,
455 organization name. We may use this information to verify the data you submit if
456 we find the need.
457         </td>
458 </tr>
459
460
461 </table>
462 <?
463
464 }
465
466 if ($_REQUEST['btnSubmit'] == 'Modify') {
467    $filename = get_file_from_id();
468
469    if (!$filename) {
470         return (0);
471    }
472
473    $formul = load_formul($filename);
474
475    echo "<script type='text/javascript' language='JavaScript'>\n";
476    $attribs = array('contact_name','email_address', 'org_name','title','website',
477                     'month_gb','number_files', 'number_fd','number_sd',
478                     'org_size','comments', 'hardware_comments', 'id');
479    foreach ($attribs as $arr) {
480            form_set_value($formul, $arr);
481    }
482
483    $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id', 
484                     'orgindustry_id', 'publish_orgsize','publish_website', 'bacula_version',
485                     'country_id','ostype_id', 'redundant_setup', 'catalog_id');
486    foreach ($attribs as $arr) {
487         form_set_selection($formul, $arr);
488    }
489
490    echo "</script>\n";
491
492 } elseif ($_REQUEST['btnSubmit'] == 'Review Profile Submission') {
493
494         $form = get_formul();
495         if (!$form) {
496                 echo "Sorry, something is missing, I cannot accept your submission";
497         } else {
498                 $token = uniqid(md5(rand()), true);
499                 $filename = "$dat_dir/profile.$token";
500         
501                 $form['filename'] = $filename;  
502                 $form['id'] = $token;
503                 save_formul($form);
504
505                 send_email($form['id'], $form['email_address']);
506                 echo "You can modify your profile <a href='?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "'>here</a> (keep this link as bookmark)<br><br>";
507                 print_formul($form);
508         }
509
510 } elseif ($_REQUEST['btnSubmit'] == 'View') {
511         
512         $file = get_file_from_id();
513
514         if ($file) {
515              print_formul_file($filename,true);
516         }
517
518 } elseif ($_REQUEST['btnSubmit'] == 'Delete') {
519
520         $filename = get_file_from_id();
521
522         if (!$filename) {
523             return (0);
524         }
525
526         $form = load_formul($filename);
527         
528         if ($form['org_logo'] && file_exists($form['org_logo'])) {
529             unlink($form['org_logo']);
530         }
531         if (file_exists($filename)) {
532             unlink($filename);
533             echo "Profile deleted";
534         }
535
536 } elseif ($_REQUEST['btnSubmit'] == 'Accept' && is_admin()) {
537
538         $filename = get_file_from_id();
539         
540         if (!$filename) {
541             return (0);
542         }
543
544         $form = load_formul($filename);
545
546         $hide = $_REQUEST['hide'];
547
548         if ($hide) {
549                 $form['visible']=0;
550         } else {
551                 $form['visible']=1;
552         }
553         save_formul($form);
554         echo $form['id'] . " is now " . ($hide?"un":"") . "visible";
555         print_formul($form);
556
557 } elseif ($_REQUEST['btnSubmit'] == 'Save') {
558         
559         $filename = get_file_from_id();
560
561         if (!$filename) {
562             return (0);
563         }
564
565         $form = get_formul();
566
567         $form['filename'] = $filename;  
568         $form['id'] = $_REQUEST['id'];  // id is clean
569 //      $form['visible'] = false;
570
571         if (!$form['org_logo']) {
572             $form_old = load_formul($filename);
573             $form['org_logo'] = $form_old['org_logo'];
574         }
575
576         save_formul($form);
577
578         echo "Your profile has been modified.<br>";
579         print_formul($form);
580
581 } elseif ($_REQUEST['btnSubmit'] == 'Admin' && is_admin()) {
582
583
584     $pass = $_REQUEST['passwd']; // passwd is clean
585     $waiting = $_REQUEST['waiting'];
586     
587     if ($waiting) {
588        print '<a href="?page=testimonial&btnSubmit=Admin&passwd=' . $pass . '"> View all</a><br>';
589        print "<h1>View all waiting testimonials</h1>";
590     } else {
591        print '<a href="?page=testimonial&btnSubmit=Admin&waiting=1&passwd=' . $pass . '"> View Waiting</a><br>';
592        print "<h1>View all testimonials</h1>";
593     }
594
595     if ($handle = opendir($dat_dir)) {
596     /* Ceci est la facon correcte de traverser un dossier. */
597             while (false !== ($file = readdir($handle))) {
598                 if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
599                      $form = load_formul("$dat_dir/$file") ;
600                         // on affiche ceux qui sont en attente ou bien tous
601                      if (!$waiting || !$form['visible']) {
602                         print_formul($form);
603                         if ($form['visible']) {
604                            print "<a href=\"?page=testimonial&btnSubmit=Accept&hide=1&passwd=" . $pass . "&id=" . $form['id'] . "\"> Hide </a> | \n";
605                         } else {
606                            print "<a href=\"?page=testimonial&btnSubmit=Accept&passwd=" . $pass . "&id=" . $form['id'] . "\"> Accept </a> | \n";
607                         }
608                         print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "\"> Modify </a> | \n";
609                         print "<a href=\"?page=testimonial&btnSubmit=AdminExport&passwd=" . $pass . "&id=" . $form['id'] . "\"> Export </a><br><br>\n";
610
611                      }
612                 }
613             } 
614             closedir($handle);
615     } 
616
617 } elseif (!$_REQUEST['btnSubmit'] || $_REQUEST['btnSubmit'] == 'ViewAll') {
618
619     $limit = $_REQUEST['limit'];
620     $offset = $_REQUEST['offset'];
621
622     $limit = is_int($limit)?$limit:10;
623     $offset = is_int($offset)?$limit:0;
624
625     $admin = is_admin();
626
627     if ($limit > 20) { $limit = 20 ;}
628
629     echo "<a href='?page=testimonial&btnSubmit=Add'>Add a testimonial</a><br><br>";
630
631     if ($handle = opendir($dat_dir)) {
632     /* Ceci est la facon correcte de traverser un dossier. */
633             $i = 0 ;
634             while (false !== ($file = readdir($handle))) {
635                 if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
636                     if ($i >= $offset && $i < ($offset + $limit)) {
637                         $i += print_formul_file("$dat_dir/$file",$admin);
638                     }
639
640                     if ($i > ($offset + $limit)) {
641                         break;
642                     }
643                 }
644             } 
645             closedir($handle);
646     }
647
648 } elseif ($_REQUEST['btnSubmit'] == 'AdminExport' && is_admin()) {
649
650    $file = get_file_from_id();
651    if (!$file) {
652        return 0;
653    }
654    $form = load_formul($file);
655    if ($form) {
656         export_form($form);
657    }
658 } else {
659         print "Invalid btnSubmit<br>";
660 }
661
662 function export_form($formul)
663 {
664         global $country_lst, $org_type_lst, $org_industry_lst, $os_lst, $catalog_lst;
665
666         $attribs = array('contact_name','email_address', 'org_name','title','website',
667                          'hardware_comments','comments',
668                          'publish_contact','publish_email', 'publish_orgname','org_size','redundant_setup',
669                          'date','visible',
670                          'number_fd','number_sd','month_gb','number_files','publish_orgsize','publish_website');
671         print "<pre>\n";
672         foreach ($attribs as $arr) {
673                 print "$arr = " . $formul[$arr] . "\n";
674         }
675
676         print "orgtype = " . $org_type_lst[$formul['orgtype_id']] . "\n";
677         print "orgindustry = " . $org_industry_lst[$formul['orgindustry_id']] . "\n";
678         print "bacula_version = " . $version_lst[$formul['bacula_version']] . "\n";
679         print "country = " . $country_lst[$formul['country_id']] . "\n";
680         print "ostype = " . $os_lst[$formul['ostype_id']] . "\n";
681         print "catalog = " . $catalog_lst[$formul['catalog_id']] . "\n";
682
683         print "<pre>\n";
684 }
685
686 function get_file_from_id()
687 {
688     global $dat_dir;
689     $id = $_REQUEST['id'];
690
691     if (!ereg('^[a-zA-Z0-9\.]+$',$id)) {
692          return(0) ;
693     }
694
695     $filename="$dat_dir/profile.$id";
696
697     if (!file_exists($filename)) {
698          echo "Can't verify your id";
699          return (0);
700     }       
701
702     return $filename;
703 }
704
705 function send_email($id, $email)
706 {
707         // Your email address
708         $from = 'kern@sibbald.com';
709 //        $from = 'eric@eb.homelinux.org';
710
711         // The subject
712         $subject = "[BACULA] New testimonial";
713
714         // The message
715         $message = "Hello, 
716 You can modify your new testimonial at http://www.bacula.org/?page=testimonial&btnSubmit=Modify&id=$id
717
718 Best regards.
719 ";
720
721         mail($email, $subject, $message, "From: Bacula WebMaster <$from>");
722         mail($from, $subject, $message, "From: Bacula WebMaster <$from>");
723
724         echo "The email has been sent for approval.<br/>";
725 }
726
727 function save_formul($form)
728 {
729         $fp = fopen($form['filename'], 'w'); 
730         fwrite($fp, serialize($form));
731         fclose($fp);
732 }
733
734 function get_formul()
735 {
736         global $dat_dir;
737         $formul = array();
738         $attribs = array('contact_name','email_address', 'org_name');
739         foreach ($attribs as $arr) {
740                 if (!$_REQUEST[$arr]) {
741                         echo "Can't get $arr<br/>";
742                         return '';
743                 }
744                 $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@\n -]/', " ", $_REQUEST[$arr]);
745         }
746
747         $attribs = array('title','website','hardware_comments','comments');
748         foreach ($attribs as $arr) {
749                 $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@ -]/', " ", $_REQUEST[$arr]);
750         }
751
752         $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id', 
753                          'orgindustry_id','org_size', 'publish_orgsize','publish_website', 'bacula_version',
754                          'country_id','ostype_id', 'redundant_setup','number_fd','number_sd',
755                          'month_gb','number_files','catalog_id');
756         foreach ($attribs as $arr) {
757                 if (preg_match("/^[0-9]+$/", $_REQUEST[$arr])) {
758                         $formul[$arr] = $_REQUEST[$arr];
759                 }
760         }
761
762         $attribs = array('orgtype_id', 'orgindustry_id', 'org_size', 'country_id','bacula_version',
763                          'catalog_id', 'ostype_id','number_fd','number_sd', 'month_gb','number_files');
764         foreach ($attribs as $arr) {
765                 if (!$formul[$arr]) {
766                         echo "Can't get $arr<br/>";
767                         return '';
768                 }
769         }
770
771         if ($_FILES['org_logo']) {
772                 $token = uniqid(md5(rand()), true);
773                 $image = "upload/$token";
774
775                 if (preg_match("/(jpg|jpeg)$/i", $_FILES['org_logo']['name'])) {
776                         $image = "$image.jpg";
777                 } elseif (preg_match("/png$/i", $_FILES['org_logo']['name'])) {
778                         $image = "$image.png";
779                 } elseif (preg_match("/gif$/i", $_FILES['org_logo']['name'])) {
780                         $image = "$image.gif";
781                 } else {
782                         $image = '';
783                 }
784                 if ($image) {
785                         $ret=move_uploaded_file($_FILES['org_logo']['tmp_name'], $image);
786                         $formul['org_logo'] = $image;
787                 }
788         }
789         $formul['date'] = time();
790         $formul['visible'] = false;
791
792         return $formul;
793 }
794
795 function form_set_value($formul,$val)
796 {
797  echo "document.getElementById('$val').value = '" . $formul[$val] . "';\n";
798 }
799
800 function form_set_selection($formul,$val)
801 {
802  echo "document.getElementById('${val}_" . $formul[$val] . "').selected =true;\n";
803 }
804
805 // passwd file must exist in dat directory
806 function is_admin()
807 {
808         global $dat_dir;
809         $id = $_REQUEST['passwd'];
810
811         if (!ereg('^[a-zA-Z]+$',$id)) {
812             return(false) ;
813         }
814         
815         if (file_exists("$dat_dir/$id")) {
816             return true;
817         } else {
818             return false;
819         }
820 }
821
822 function load_formul($filename)
823 {
824         if (!file_exists($filename)) {
825                 return array();
826         }
827
828         if (!filesize($filename) || filesize($filename) > 10*1024*1024) {
829             return undef;
830         }
831         $fp = fopen($filename, 'r');
832         $contents = fread ($fp, filesize ($filename));
833         fclose ($fp);
834
835         $formul = unserialize($contents);
836         if (!is_array($formul)) {
837             return undef;
838         }
839
840         return $formul;
841 }
842
843 function print_formul_file($filename, $admin) {
844
845         $formul = load_formul($filename);
846         if (!$formul) {
847                 return 0;
848         }
849         
850         if (!$admin) {
851                 if (!$formul['visible']) {
852                         return 0;
853                 }
854         } else {
855                 print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $formul['id'] . "\">Modify</a><br>\n";
856         }
857
858         return print_formul($formul);
859 }
860
861 function print_formul($formul)
862 {
863    global $country_lst, $org_type_lst, $org_industry_lst, $os_lst,$catalog_lst;
864
865    ?>
866    <table width="80%">
867    <td>
868    <b><? echo ($formul['publish_orgname'])?$formul['org_name']:'N/A' ?></b><br>
869    <table>
870    <tr><td> Location: </td><td><? $a = $formul['country_id'] ; echo $country_lst[$a] ?> </td></tr>
871    <tr><td> Organization Type: </td><td><? echo $org_type_lst[$formul['orgtype_id']] ?> </td></tr>
872    <tr><td> Industry/Function: </td><td><? echo $org_industry_lst[$formul['orgindustry_id']] ?> </td></tr>
873
874    <? if ($formul['publish_orgsize']) { ?>
875         <tr><td> Organisation Size: </td><td><? echo $formul['org_size'] ?> </td></tr>
876    <? } ?>
877
878    <? if ($formul['publish_website']) { ?>
879         <tr><td> Website: </td><td><? echo $formul['website'] ?> </td></tr>
880    <? } ?>
881
882    <? if ($formul['number_fd']) { ?>
883         <tr><td> Number of fd: </td><td><? echo $formul['number_fd'] ?> </td></tr>
884    <? } ?>
885
886    <? if ($formul['month_gb']) { ?>
887         <tr><td> GB/Month: </td><td><? echo $formul['month_gb'] ?> </td></tr>
888    <? } ?>
889
890    <tr><td> Comments: </td><td><i><? echo $formul['comments'] ?> </i></td></tr>
891    </table>
892    </td>
893    <td>
894    <? if ($formul['org_logo']) { ?>
895         <img width='250' src="<? echo $formul['org_logo'] ?>">
896    <? } ?>
897    <? if ($formul['publish_contact']) { ?>
898         <tr align='right'><td></td><td><i><? echo $formul['contact_name'] ?> </i></td></tr>
899    <? } ?>
900    </td>
901    </table>
902 <?
903    return 1;
904 }
905
906 ?>
907 <? require_once("inc/footer.php"); ?>