Subversion-Projekte lars-tiefland.em_wm

Revision

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

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