Subversion-Projekte lars-tiefland.openvz_admin

Revision

Revision 10 | Revision 69 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
12 lars 1
<?
2
	//$Id: functions.php 12 2007-09-30 12:07:16Z lars $
3
	$dir=dirname($_SERVER["PHP_SELF"]);
4
	$host="http://".$_SERVER["SERVER_NAME"];
5
	$url=$host.$dir;
6
	$pear_logger=&create_pear_logger();
7
/*	$php_logger=&create_php_logger();
8
	set_error_handler('errorHandler_PHP');
9
	PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errorHandler');*/
10
	$u=null;
11
	$a=null;
12
	$username=(isset($_POST["username"]))?$_POST["username"]:"";
13
 
14
	function errorHandler_PHP($code, $message, $file, $line)
15
	{
16
		global $php_logger;
17
		/* Map the PHP error to a Log priority. */
18
		switch ($code) {
19
			case E_WARNING:
20
			case E_USER_WARNING:
21
				$priority = PEAR_LOG_WARNING;
22
				break;
23
			case E_NOTICE:
24
			case E_USER_NOTICE:
25
				$priority = PEAR_LOG_NOTICE;
26
				break;
27
			case E_ERROR:
28
			case E_USER_ERROR:
29
				$priority = PEAR_LOG_ERR;
30
				break;
31
			default:
32
				$priotity = PEAR_LOG_INFO;
33
		}
34
		$php_logger->log($message . ' in ' . $file . ' in Zeile ' . $line, $priority);
35
	}
36
 
37
	function errorHandler($error)
38
	{
39
		global $pear_logger;
40
 
41
		$message = $error->getUserInfo();
42
 
43
		if (!empty($error->backtrace[1]['file']))
44
		{
45
			$message .= ' (' . $error->backtrace[1]['file'];
46
			if (!empty($error->backtrace[1]['line']))
47
			{
48
				$message .= ' in Zeile ' . $error->backtrace[1]['line'];
49
			}
50
			$message .= ')';
51
		}
52
		$res=$pear_logger->log($message, PEAR_LOG_ERR);
53
	}
54
 
55
	function create_logger()
56
	{
57
		global $db, $u;
58
		$params_log["db"]=$db;
59
		$params_log["u_id"]=$u->u_id;
60
		$logger=&Log::singleton("lt_sql","log","fifa",$params_log);
61
		return $logger;
62
	}
63
 
64
	function create_php_logger()
65
	{
66
		global $url;
67
		$file_params["mode"]="666";
68
    		$file_params["lineFormat"] = '%1$s %2$s [%3$s] %4$s %5$s %6$s %7$s';
69
		$mail_params["from"]="Lars Tiefland <webmaster@lars-tiefland.de>";
70
		$mail_params["subject"]="PHP Fehler auf $url";
71
		$l1=&Log::factory("file","php_errors.log","fifa_php",$file_params);
72
		$l2=&Log::factory("mail","ltiefland@gmail.com","fifa_php",$mail_params);
73
		$l3=&Log::factory("composite");
74
		$c1=$l3->addChild($l1);
75
		$c2=$l3->addChild($l2);
76
		return $l3;
77
	}
78
 
79
	function create_pear_logger()
80
	{
81
		global $url;
82
		$file_params["mode"]="666";
83
    		$file_params["lineFormat"] = '%1$s %2$s [%3$s] %4$s %5$s %6$s %7$s';
84
		$mail_params["from"]="Lars Tiefland <webmaster@lars-tiefland.de>";
85
		$mail_params["subject"]="PEAR Fehler auf $url";
86
		$l1=&Log::factory("file","pear_errors.log","fifa_pear",$file_params);
87
		$l2=&Log::factory("mail","ltiefland@gmail.com","fifa_pear",$mail_params);
88
		$l3=&Log::factory("composite");
89
		$c1=$l3->addChild($l1);
90
		$c2=$l3->addChild($l2);
91
		return $l3;
92
	}
93
 
94
	function send_email($art=0)
95
	{
96
		global $u, $mail, $password, $common, $url, $u_key;
97
		$to="$u->u_name <$u->u_email>";
98
		$from_addr="webmaster@lars-tiefland.de";
99
		$from_name="Lars Tiefland";
100
		$from="$from_name <$from_addr>";
101
		$art=intval($art);
102
		switch ($art)
103
		{
104
			case 0:
105
				$email_tpl="email/$u->u_lang/register.tpl";
106
				$subject=$common["reg_subject"]." - Welcome to $url";
107
				break;
108
			case 1:
109
				$email_tpl="email/$u->u_lang/changed.tpl";
110
				$subject=$common["changed_subject"];
111
				break;
112
			case 2:
113
				$email_tpl="email/$u->u_lang/change.tpl";
114
				$subject=$common["change_subject"];
115
			default:
116
				return false;
117
				break;
118
		}
119
		if (file_exists($email_tpl))
120
		{
121
			$email=file_get_contents("$email_tpl");
122
			$url_act=$url."activate.php";
123
			$email=sprintf($email, $u->u_name, $url, $u->u_name, $password, $url_act."?key=$u_key", $url_act, $u_key);
124
			$headers["From"]=$from;
125
			$headers["To"]=$to;
126
			$headers["Subject"]=$subject;
127
			$ret=$mail->send($to,$headers,$email);
128
		}
129
		else
130
		{
131
			$ret=false;
132
		}
133
		return $ret;
134
	}
135
 
136
	function login($username, $password)
137
	{
138
		global $smarty, $username, $meld, $db_meld, $common,$a, $loc, $year, $type, $config;
139
		$type=$common["$config->type"];
140
		$smarty->assign("meld", ($username||$meld)?$common["an_error_occured"]:$meld);
141
		$smarty->assign("db_meld", ($username)?$common["userinfo_incorrect"]:$db_meld);
142
		$smarty->assign("error", ($username||$meld)?true: false);
143
		$smarty->assign("title", $common["login"]);
144
		$smarty->assign("user", $username);
145
		$date=$loc->formatDateTime(time());
146
		$smarty->assign("date",$date);
147
		$smarty->assign("year", $year);
148
		$smarty->assign("L_TYPE", $type);
149
		$smarty->display("login.tpl");
150
	}
151
 
152
	function User_Login($show=true)
153
	{
154
		global $smarty, $db, $a, $config, $u, $common;
155
		$params = array(
156
			"dsn" => $db,
157
			"table" => "auth_user",
158
			"usernamecol" => "u_name",
159
			"passwordcol" => "u_password",
160
			"db_fields" => "*",
161
		);
162
 
163
		$a = new Auth("DB", $params, "login",$show);
164
		$a->setSessionName($config->cookie_name);
165
		$a->setIdle($config->session_length,false);
166
		$a->setExpire(2*$config->session_length,false);
167
		$a->start();
168
		if ($a->getAuth())
169
		{
170
			$u=new User("","");
171
			$u=$u->UserData($a->getUserName());
172
			$smarty->assign("title",$common["login"]);
173
			$smarty->assign("u_name", $u->u_name);
174
			$smarty->assign("u_type", $u->u_type);
175
			$disabled=($u->u_type==0)?"disabled=disabled":"";
176
			$smarty->assign("disabled", $disabled);
177
			$smarty->assign("disabled", "");
178
		}
179
		return $a;
180
	}
181
 
182
	function User_logout()
183
	{
184
		global $a;
185
		$a->logout();
186
	}
187
	// {{{ validate_email()
188
 
189
	/**
190
	 * Check to see if email address is valid or
191
	 * already present in the DB
192
	*/
193
	function validate_email($email)
194
	{
195
		global $smarty;
196
		$meld="";
197
		$error=false;
198
		if ($email != '')
199
		{
200
			if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email)&& $email!="your@address.com")
201
			{
202
					$error=false;
203
					$meld="";
204
					$db_meld="";
205
			}
206
			else
207
			{
208
				$error=true;
209
				$meld = "Email ungültig!";
210
				$db_meld="";
211
				$smarty->assign("email",$email);
212
			}
213
		}
214
		else
215
		{
216
			$error = true;
217
			$meld = "Email ungültig!";
218
			$db_meld="";
219
			$smarty->assign("email",$email);
220
		}
221
		if($error)
222
		{
223
			$smarty->assign("title","Ungültige E-Mail Adresse");
224
			$smarty->assign("error",$error);
225
			$smarty->assign("meld",$meld);
226
			$smarty->assign("db_meld",$db_meld);
227
		}
228
		else
229
		{
230
			$smarty->assign("meld","");
231
			$smarty->assign("db_meld","");
232
		}
233
		return !$error;
234
	}
235
	// }}}
236
	// {{{ log_split()
237
	function log_split($s)
238
	{
239
		global $k, $time0, $count_t;
240
		$r = Array();
241
		$p = 0;
242
		$l = strlen($s);
243
		while ($p < $l)
244
		{
245
			check_Time();
246
			while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
247
			{
248
				$p++;
249
			}
250
			if ($s[$p] == '"')
251
			{
252
				$p++;
253
				$q = $p;
254
				while (($p < $l) && ($s[$p] != '"'))
255
				{
256
					if ($s[$p] == '\\')
257
					{
258
						$p+=2;
259
						continue;
260
					}
261
					$p++;
262
				}
263
				$r[] = stripslashes(substr($s, $q, $p-$q));
264
				$p++;
265
				while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
266
				{
267
					$p++;
268
				}
269
				$p++;
270
			}
271
			else
272
			{
273
				if ($s[$p] == "'")
274
				{
275
					$p++;
276
					$q = $p;
277
					while (($p < $l) && ($s[$p] != "'"))
278
					{
279
						if ($s[$p] == '\\')
280
						{
281
							$p+=2;
282
								continue;
283
						}
284
					$p++;
285
					}
286
					$r[] = stripslashes(substr($s, $q, $p-$q));
287
					$p++;
288
					while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
289
					{
290
						$p++;
291
					}
292
						$p++;
293
				}
294
				else
295
				{
296
					$q = $p;
297
					while (($p < $l) && (strpos(";",$s[$p]) === false))
298
					{
299
						$p++;
300
					}
301
					$r[] = stripslashes(trim(substr($s, $q, $p-$q)))
302
;
303
					while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
304
					{
305
						$p++;
306
					}
307
					$p++;
308
				}
309
			}
310
		}
311
		$r2 = array(array());
312
		$i=0;
313
		$j=0;
314
		$ind=0;
315
		$anz=count($r);
316
		while ($i < $anz)
317
		{
318
			$wert=$r[$i];
319
			$l=strlen($wert)-1;
320
			$char=substr($wert,$l,1);
321
			if($char=='"' || $char=='"')
322
			{
323
				$wert=substr($wert,0,$l);
324
			}
325
			$r2[$j][$ind]=$wert;
326
			if ($ind == 2)
327
			{
328
				$ind=0;
329
				$j++;
330
			}
331
			else
332
			{
333
				$ind++;
334
			}
335
			$i++;
336
		}
337
		return $r2;
338
	}
339
	// }}}
340
	// {{{ check_Time()
341
	function check_Time()
342
	{
343
		global $time0;
344
		$count_t=0;
345
		$time1=time();
346
		if ($time1-$time0 >= 25)
347
		{
348
			$time0=$time1;
349
			$count_t++;
350
			set_time_limit(30);
351
		}
352
	}
353
	// }}}
354
	// {{{ PMA_readFile()
355
 
356
	//This function reads the file uploaded according to compression method
357
	function PMA_readFile($fname, $comp)
358
	{
359
		if (isset($fname))
360
		{
361
			check_Time();
362
			switch ($comp)
363
			{
364
				case 'self':
365
				$file = @fopen("$fname", 'rb');
366
				if (!$file)
367
				{
368
					return FALSE;
369
				}
370
				$test = fread($file, 3);
371
				fclose($file);
372
				if ($test[0] == chr(31) && $test[1] == chr(139))
373
				{
374
					return PMA_readFile($fname,"gzip");
375
				}
376
				else
377
				{
378
					if ($test == 'BZh')
379
					{
380
						return PMA_readFile($fname, 'bzip2');
381
					}
382
					else
383
					{
384
						return PMA_readFile($fname,'plain');
385
					}
386
				}
387
				break;
388
				case 'plain':
389
					$file = @fopen($fname, 'rb');
390
					if (!$file)
391
					{
392
						return FALSE;
393
					}
394
					$content = fread($file, filesize($fname));
395
					fclose($file);
396
				break;
397
				case 'gzip':
398
					if (@function_exists('gzopen'))
399
					{
400
						$file = @gzopen($path, 'rb');
401
						if (!$file)
402
						{
403
							return FALSE;
404
						}
405
						$content = '';
406
						while (!gzeof($file))
407
						{
408
							$content .= gzgetc($file);
409
						}
410
						gzclose($file);
411
					}
412
					else
413
					{
414
						return FALSE;
415
					}
416
					break;
417
				case 'bzip2':
418
					if (@function_exists('bzdecompress'))
419
					{
420
						$file = @fopen($fname, 'rb');
421
						if (!$file)
422
						{
423
							return FALSE;
424
						}
425
						$content = fread($file, filesize($fname));
426
						fclose($file);
427
						$content = bzdecompress($content);
428
					}
429
					else
430
					{
431
						return FALSE;
432
					}
433
					break;
434
				default:
435
					return FALSE;
436
			}
437
			check_Time();
438
			return $content;
439
		}
440
/*		else
441
		{
442
			require("import.php");
443
		}*/
444
	}
445
 
446
	function p_log($message)
447
	{
448
		global $u_id, $u_name, $pending, $email, $db;
449
		$t_stamp=time();
450
		$sql="INSERT INTO log (user_id, datum, message) VALUES ($u_id, $t_stamp, '$message')";
451
		$r=$db->query($sql);
452
		$res=(!PEAR::isError($r));
453
		return $res;
454
	}
455
 
456
	function get_log_entries()
457
	{
458
		global $db;
459
		$sql="SELECT * FROM log";
460
		$res=$db->query($sql);
461
		if(!PEAR::isError($res))
462
		{
463
			$anz=$res->num_Rows();
464
		}
465
		else
466
		{
467
			if (file_exists("../log/log.txt"))
468
			{
469
				$content=PMA_readFile("../log/log.txt","plain");
470
				$r=log_split($content);
471
				$anz=count($r[0]);
472
			}
473
		}
474
		return $anz;
475
	}
476
	function read_log($start)
477
	{
478
		$content="";
479
		global $max_anz, $db;
480
		$sql="SELECT * FROM log LIMIT $start, $max_anz";
481
		$res=$db->query($sql);
482
		if($res->num_Rows())
483
		{
484
			while ($row_d=$res->fetch_Row())
485
			{
486
				$content.="'".$row_d["user_id"]."';'".$row_d["datum"]."';'".$row_d["message"]."'\r\n";
487
			}
488
			$row=log_split($content);
489
		}
490
		else
491
		{
492
			if (file_exists("../log/log.txt"))
493
			{
494
				$content=PMA_readFile("../log/log.txt","plain");
495
				$row=log_split($content);
496
				$row=array_splice($row,$start,$max_anz);
497
			}
498
			else
499
			{
500
				$row="";
501
			}
502
		}
503
		return $row;
504
	}
505
 
506
	//
507
	// Pagination routine, generates
508
	// page number sequence
509
	// taken from phpBB
510
 
511
	function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
512
	{
513
		if (!$num_items)
514
		{
515
			return "";
516
		}
517
 
518
		$total_pages = ceil($num_items/$per_page);
519
 
520
		if ( $total_pages == 1 )
521
		{
522
			return '';
523
		}
524
 
525
		$on_page = floor($start_item / $per_page) + 1;
526
 
527
		$page_string = '';
528
		if ( $total_pages > 25 )
529
		{
530
			$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;
531
 
532
			for($i = 1; $i < $init_page_max + 1; $i++)
533
			{
534
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
535
				if ( $i <  $init_page_max )
536
				{
537
					$page_string .= ", ";
538
				}
539
			}
540
 
541
			if ( $total_pages > 3 )
542
			{
543
				if ( $on_page > 1  && $on_page < $total_pages )
544
				{
545
					$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';
546
 
547
					$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
548
					$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
549
 
550
					for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
551
					{
552
						$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
553
						if ( $i <  $init_page_max + 1 )
554
						{
555
							$page_string .= ', ';
556
						}
557
					}
558
 
559
					$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
560
				}
561
				else
562
				{
563
					$page_string .= ' ... ';
564
				}
565
 
566
				for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
567
				{
568
					$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
569
					if( $i <  $total_pages )
570
					{
571
						$page_string .= ", ";
572
					}
573
				}
574
			}
575
		}
576
		else
577
		{
578
			for($i = 1; $i < $total_pages + 1; $i++)
579
			{
580
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
581
				if ( $i <  $total_pages )
582
				{
583
					$page_string .= ', ';
584
				}
585
			}
586
		}
587
 
588
		if ( $add_prevnext_text )
589
		{
590
			if ( $on_page > 1 )
591
			{
592
				$page_string = ' <a href="' . $base_url . "?start=" . ( ( $on_page - 2 ) * $per_page ) . '">Zurück</a>&nbsp;&nbsp;' . $page_string;
593
			}
594
			else
595
			{
596
				$page_string = 'Zurück&nbsp;&nbsp;' . $page_string;
597
			}
598
			if ( $on_page < $total_pages )
599
			{
600
				$page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "?start=" . ( $on_page * $per_page ) . '">Weiter</a>';
601
			}
602
			else
603
			{
604
				$page_string .= '&nbsp;&nbsp;Weiter';
605
			}
606
 
607
		}
608
 
609
		$page_string = 'Gehe zu Seite ' . $page_string;
610
 
611
		return $page_string;
612
	}
613
 
614
	function checkDir($dir)
615
	{
616
		if (empty($dir))
617
		{
618
			$dir="upload";
619
		}
620
		if (file_exists("$dir") )
621
		{
622
			$ftype=filetype("$dir");
623
			if ($ftype=="dir" || $ftype=="link")
624
			{
625
				if($ftype=="link")
626
				{
627
				$fname_l=readlink("$dir");
628
				$ftype_l=filetype($fname_l);
629
				if ($ftype_l == "dir")
630
				{
631
					$ret=is_writeable($fname_l);
632
				}
633
				else
634
				{
635
						if(unlink("$dir"))
636
						{
637
							$ret=mkdir("$dir");
638
						}
639
						else
640
						{
641
							$ret=FALSE;
642
						}
643
					}
644
				}
645
				else
646
				{
647
					$ret=TRUE;
648
				}
649
			}
650
			else
651
			{
652
				if(unlink("$dir"))
653
				{
654
					$ret=mkdir("$dir");
655
				}
656
				else
657
				{
658
					$ret=FALSE;
659
				}
660
			}
661
		}
662
		else
663
		{
664
			$ret=mkdir ("$dir");
665
		}
666
		return $ret;
667
	}
668
 
669
	function upload_pic($pic, &$meld, &$dst)
670
	{
671
		$fname="../images/$pic";
672
		$tmp=$_FILES['pic']['tmp_name'];
673
//		echo $_FILES["pic"]["type"];
674
		$img_info=getimagesize($tmp);
675
		$typ=$img_info[2];
676
		switch($typ)
677
		{
678
			case 1:		//GIF
679
			case 2:		//JPEG
680
			case 3:		//PNG
681
				if (checkDir("../images"))
682
				{
683
					if(!move_uploaded_file($tmp,$fname))
684
					{
685
						$meld="Konnte Datei nicht verschieben!";
686
						unlink($tmp);
687
						$ret=false;
688
					}
689
					else
690
					{
691
						if(!checkDir("../images/thumbs"))
692
						{
693
							$meld="Konnte Thumbnail nicht erstellen!";
694
							unlink($fname);
695
							$ret=false;
696
						}
697
						else
698
						{
699
							if (function_exists("gd_info"))
700
							{
701
								//GD Bibliothek steht zur Verfügung
702
								$gd_info=gd_info();
703
								$width=60;
704
								$height=round($img_info[1]/($img_info[0]/$width),0);
705
								$im_d=imagecreate($width, $height);
706
								switch($typ)
707
								{
708
									case 1:
709
										$im_s=imagecreatefromgif($fname);
710
										break;
711
									case 2:
712
										$im_s=imagecreatefromjpeg($fname);
713
										break;
714
									case 3:
715
										$im_s=imagecreatefrompng($fname);
716
										break;
717
								}
718
								imagepalettecopy($im_d,$im_s);
719
								imagecopyresized($im_d,$im_s,0,0,0,0,$width,$height,$img_info[0],$img_info[1]);
720
								$dst=$pic;
721
								if($gd_info["PNG Support"])
722
								{
723
									$dst=substr($dst,0,strlen($dst)-3);
724
									$dst.="png";
725
									if($typ!=3)
726
									{
727
										imagePNG($im_s,"../images/$dst");
728
									}
729
									$ret= imagePNG($im_d,"../images/thumbs/$dst");
730
								}
731
								else
732
								{
733
									if($gd_info("JPEG Support"))
734
									{
735
										$ret= imageJPEG($im_d,"../images/thumbs/$dst");
736
									}
737
									else
738
									{
739
										$ret= false;
740
									}
741
								}
742
								imagedestroy($im_s);
743
								imagedestroy($im_d);
744
								if(!$ret)
745
								{
746
									$meld="Konnte Thumbnail nicht erstellen!";
747
								}
748
							}
749
							else
750
							{
751
								//GD-Bibliothek steht NICHT zur Verfügung!
752
								$ret= copy($fname,$fname2);
753
								$dst=$fname2;
754
								if(!$ret)
755
								{
756
									$meld="Konnte Thumbnail nicht erstellen!";
757
								}
758
							}
759
						}
760
					}
761
				}
762
				else
763
				{
764
					$meld="Konnte Datei nicht verschieben!";
765
					$ret=false;
766
				}
767
				break;
768
			default:
769
				$meld="Das ist kein gültiges Bild!";
770
				$ret=false;
771
				break;
772
		}
773
		return $ret;
774
	}
775
	function generate_pagination2($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
776
	{
777
		global $mode, $common;
778
		if (!$num_items)
779
		{
780
			return "";
781
		}
782
 
783
		$total_pages = ceil($num_items/$per_page);
784
 
785
		if ( $total_pages == 1 )
786
		{
787
			return '<table align="center" class="navig"><tr><th>'.$common["page"]." 1 ".$common["of"].' 1</th></tr></table><br><br>';
788
		}
789
 
790
		$on_page = floor($start_item / $per_page) + 1;
791
 
792
		$page_string = '<table align="center" class="navig"><tr><th colspan="5">'.$common["page"].' '.$on_page.' '.$common["of"].' '.$total_pages.'</th></tr><tr>';
793
 
794
		if ( $add_prevnext_text )
795
		{
796
			if ( $on_page > 1 )
797
			{
798
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<<\" title=\"${common["first_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
799
				$prev_v=($on_page - 2 ) * $per_page;
800
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<\" title=\"${common["previous_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$prev_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
801
			}
802
			else
803
			{
804
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<<\" disabled class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
805
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<\" class=\"liteoption\" disabled><input type=\"hidden\" name=\"start\" value=\"0\"></form></td>";
806
			}
807
		}
808
		if($total_pages >1)
809
		{
810
			$page_opts="";
811
			for ($i=0;$i<$total_pages;$i++)
812
			{
813
				$selected="";
814
				$j=$i+1;
815
				if($j==$on_page)
816
				{
817
					$selected="selected=\"selected\"";
818
				}
819
				$start=($i*$per_page);
820
				$page_opts.="<option value=$start $selected>$j</option>";
821
			}
822
			$page_string.="<td width=\"100\"><form name=\"nav\" action=$base_url method=\"post\"><select name=\"start\">$page_opts</select>&nbsp;&nbsp;<input type=\"submit\" value=\"${common["go"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
823
		}
824
 
825
		if ( $add_prevnext_text )
826
		{
827
			if ( $on_page < $total_pages )
828
			{
829
				$next_v=($on_page * $per_page);
830
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">|\" title=\"${common["next_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$next_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
831
				$max_v=($total_pages -1)*$per_page;
832
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">>|\" title=\"${common["last_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$max_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
833
			}
834
			else
835
			{
836
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">|\" class=\"liteoption\" disabled><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
837
				$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">>|\" disabled class=\"liteoption\" disabled><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";
838
			}
839
 
840
		}
841
		$page_string.="</tr></table><br><br>";
842
 
843
		return $page_string;
844
	}
845
 
846
	function exec_cmd($type, $id)
847
	{
848
		unset($out);
849
		if($id!=0)
850
		{
851
			$cmd="ssh root@mainframe vzctl $type $id";
852
			exec($cmd,$out,$ret);
853
			if(!$ret)
854
			{
855
				$out_v["status"]=implode("<br>",$out);
856
			}
857
			else
858
			{
859
				$out_v["status"]="unknown";
860
			}
861
			$out_v["code"]=$ret;
862
		}
863
		else
864
		{
865
			$out_v["status"]="Hardware node is running";
866
			$out_v["code"]=0;
867
		}
868
		if(eregi("running",$out_v["status"]))
869
		{
870
			$out_v["started"]=true;
871
		}
872
		else
873
		{
874
			$out_v["started"]=false;
875
		}
876
		if(!$out_v["code"]&&$out_v["started"])
877
		{
878
			$class="success_upd";
879
		}
880
		else
881
		{
882
			$class="error_upd";
883
		}
884
		$out_v["status"]="<div class=\"$class\">".$out_v["status"]."</div>";
885
		return $out_v;
886
	}
887
?>