source: trunk/page.php

Last change on this file was 35, checked in by george, 16 years ago
  • Všechny soubory přesunuty do podsložky trunk.
File size: 4.4 KB
Line 
1<?php
2
3$ScriptStartTime = GetMicrotime();
4
5class Page extends Module
6{
7 var $TimeStart;
8 var $PathTree = array('Informační systém',
9 'index.php' => '',
10 );
11
12 function __construct()
13 {
14 $this->TimeStart = GetMicrotime(); // Get script start time
15 }
16
17 function SystemMessage($Title, $Text)
18 {
19 return('<table align="center"><tr><td><div class="SystemMessage"><h3>'.$Title.'</h3><div>'.$Text.'</div></div></td></tr></table>');
20 //ShowFooter();
21 //die();
22 }
23
24 function ShowHeader($Title, $Path, $BodyParam = '')
25 {
26 $ScriptName = $_SERVER['SCRIPT_NAME'];
27 while(strpos($ScriptName, '//') !== false)
28 $ScriptName = str_replace('//', '/', $ScriptName);
29 $PathTreePath = '/';
30 $PathTreeItem = $this->PathTree;
31 $Navigation = '<a href="'.$this->System->Config['Web']['RootFolder'].$PathTreePath.'">'.$PathTreeItem[0].'</a> &gt; ';
32 $ScriptName = substr($ScriptName, strlen($this->System->Config['Web']['RootFolder']));
33 $ScriptNameParts = explode('/', $ScriptName);
34 array_shift($ScriptNameParts);
35 foreach($ScriptNameParts as $ScriptNamePart)
36 {
37 //echo($ScriptNamePart.'<br>');
38 if(array_key_exists($ScriptNamePart, $PathTreeItem))
39 {
40 if(is_array($PathTreeItem[$ScriptNamePart]))
41 {
42 $PathTreeItem = $PathTreeItem[$ScriptNamePart];
43 $PathTreePath .= $ScriptNamePart.'/';
44 if($PathTreeItem[0] != '')
45 $Navigation .= '<a href="'.$this->System->Config['Web']['RootFolder'].$PathTreePath.'">'.$PathTreeItem[0].'</a> &gt; ';
46 } else
47 {
48 if($PathTreeItem[$ScriptNamePart] != '')
49 $Navigation .= '<a href="'.$this->System->Config['Web']['RootFolder'].$PathTreePath.$ScriptNamePart.'">'.$PathTreeItem[$ScriptNamePart].'</a> &gt; ';
50 }
51 }
52 }
53 $Navigation = substr($Navigation, 0, -6);
54
55 $Output = '<?xml version="1.0" encoding="'.$this->System->Config['Web']['Charset'].'"?>'."\n".
56 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'.
57 '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">'.
58 '<meta http-equiv="content-type" content="application/xhtml+xml; charset='.$this->System->Config['Web']['Charset'].'" />'.
59 '<head><link rel="stylesheet" href="'.$this->System->Config['Web']['RootFolder'].'/style.css" type="text/css" media="all" />'.
60 '<script type="text/javascript" src="'.$this->System->Config['Web']['RootFolder'].'/global.js"></script>'.
61 '<title>'.$this->System->Config['Web']['Title'].' - '.$Path.'</title>
62 </head><body'.$BodyParam.'>';
63 return($Output);
64 }
65
66 function ShowFooter()
67 {
68 global $ScriptStartTime;
69
70 $ScriptGenerateDuration = round(GetMicrotime() - $ScriptStartTime, 2);
71 $Output = '<div class="Footer">| Správa webu: '.$this->System->Config['Web']['Admin'].' | E-mail: '.$this->System->Config['Web']['AdminEmail'].' |';
72 if($this->System->Config['Web']['ShowRuntimeInfo'] == true) $Output .= ' Doba generování: '.$ScriptGenerateDuration.' s / '.ini_get('max_execution_time').' s | Použitá paměť: '.HumanSize(memory_get_peak_usage(FALSE)).' / '.ini_get('memory_limit').'B |';
73 $Output .= '</div></body></html>';
74 return($Output);
75 }
76
77 function GetOutput()
78 {
79 $Output = $this->Show();
80 $Output = $this->ShowHeader($this->FullTitle, $this->ShortTitle).$Output;
81 $Output .= $this->ShowFooter();
82 //$Output = $this->FormatOutput($Output);
83 echo($Output);
84 }
85
86 // Funkce formatovani vystupu
87 function FormatOutput($s)
88 {
89 $out = '';
90 $nn = 0;
91 $n = 0;
92 while($s != '')
93 {
94 $start = strpos($s, '<');
95 $end = strpos($s, '>');
96 if($start != 0)
97 {
98 $end = $start - 1;
99 $start = 0;
100 }
101 $line = trim(substr($s, $start, $end + 1));
102 if(strlen($line) > 0)
103 if($line[0] == '<')
104 {
105 if($s[$start + 1] == '/')
106 {
107 $n = $n - 2;
108 $nn = $n;
109 } else
110 {
111 if(strpos($line, ' ')) $cmd = substr($line, 1, strpos($line, ' ') - 1);
112 else $cmd = substr($line, 1, strlen($line) - 2);
113 //echo('['.$cmd.']');
114 if(strpos($s, '</'.$cmd.'>')) $n = $n + 2;
115 }
116 }// else $line = '['.$line.']';
117 //if($line != '') echo(htmlspecialchars(str_repeat(' ',$nn).$line."\n"));
118 if($line != '') $out .= (str_repeat(' ', $nn).$line."\n");
119 $s = substr($s, $end + 1, strlen($s));
120 $nn = $n;
121 }
122 return($out);
123 }
124}
125
126?>
Note: See TracBrowser for help on using the repository browser.