1 | <?php |
||
18 | class Pages |
||
|
|||
19 | { |
||
20 | /** |
||
21 | * Debug mode |
||
22 | * @access protected |
||
23 | * @var boolean |
||
24 | */ |
||
25 | protected $mDebug = false; |
||
26 | |||
27 | /** |
||
28 | * Parts of html heads, this is NOT html code |
||
29 | * Sample value: 'meta'=>array('..', '...'), 'title'='...' |
||
30 | * @access protected |
||
31 | * @var array |
||
32 | */ |
||
33 | protected $mHead = array(); |
||
34 | |||
35 | /** |
||
36 | * Parts of html code before <head>, this is NOT html code |
||
37 | * Sample value: 'xml'=>array('..', '...'), 'doctype'=>'...' |
||
38 | * @access protected |
||
39 | * @var array |
||
40 | */ |
||
41 | protected $mHeadahead = array(); |
||
42 | |||
43 | /** |
||
44 | * Result html content |
||
45 | * $mHtml = $mHtmlHeadahead + $mHtmlHead + $mHtmlBody |
||
46 | * And + some <marks> between these parts. |
||
47 | * @access protected |
||
48 | * @var string |
||
49 | */ |
||
50 | protected $mHtml = ''; |
||
51 | |||
52 | /** |
||
53 | * Html content part of body |
||
54 | * Code of '<body>' part. |
||
55 | * @access protected |
||
56 | * @var string |
||
57 | */ |
||
58 | protected $mHtmlBody = ''; |
||
59 | |||
60 | /** |
||
61 | * Html content part of head |
||
62 | * Code of '<head>' part. |
||
63 | * @access protected |
||
64 | * @var string |
||
65 | */ |
||
66 | protected $mHtmlHead = ''; |
||
67 | |||
68 | /** |
||
69 | * Html content part of html_head |
||
70 | * Code ahead of '<head>', xml, doctype & html marks. |
||
71 | * @access protected |
||
72 | * @var string |
||
73 | */ |
||
74 | protected $mHtmlHeadahead = ''; |
||
75 | |||
76 | |||
77 | /** |
||
78 | * 构造函数 |
||
79 | */ |
||
80 | function __construct() |
||
81 | { |
||
82 | //开始输出缓冲区 |
||
83 | ob_start(); |
||
84 | |||
85 | //开始SESSION |
||
86 | //调试程序的时候因为程序经常改动,所以不使用CACHE |
||
87 | if (true == $this->mDebug) |
||
88 | session_cache_limiter('private,must-revalidate'); |
||
89 | session_start(); |
||
90 | } // end of func __construct |
||
91 | |||
92 | |||
93 | /** |
||
94 | * 显示网页正式内容 |
||
95 | * @param boolean $return Return contents instead of print out. |
||
96 | * @access public |
||
97 | */ |
||
98 | public function Display($return=false) |
||
99 | { |
||
100 | if (empty($this->mHtml)) |
||
101 | $this->GenHtml(); |
||
102 | if (true == $return) |
||
103 | return $this->mHtml; |
||
104 | else{ |
||
105 | echo $this->mHtml; |
||
106 | //结束输出缓冲区,输出内容 |
||
107 | ob_end_flush(); |
||
108 | } |
||
109 | } // end of func Display |
||
110 | |||
111 | |||
112 | /** |
||
113 | * Generate body part of html code |
||
114 | * @access protected |
||
115 | * @return string |
||
116 | */ |
||
117 | abstract protected function GenBody(); |
||
118 | |||
119 | |||
120 | /** |
||
121 | * Generate head part of html code |
||
122 | * @access proteced |
||
123 | * @return string |
||
124 | */ |
||
125 | protected function GenHead() |
||
134 | |||
135 | |||
136 | /** |
||
137 | * Generate xml declaration part of head_ahead |
||
138 | * $this->mHeadahead['xml'] = array('version'=>'1.0', 'encoding'='utf-8') |
||
139 | * @access protected |
||
140 | * @return string |
||
141 | */ |
||
142 | protected function GenHeadXml() |
||
151 | |||
152 | |||
153 | /** |
||
154 | * Generate html code from joining several parts |
||
155 | * @access protected |
||
156 | * @return string |
||
157 | */ |
||
158 | protected function GenHtml() |
||
166 | |||
167 | |||
168 | /** |
||
169 | * Set xml part of head_ahead |
||
170 | * @access public |
||
171 | * @param string $version |
||
172 | * @param string $encoding |
||
173 | */ |
||
174 | public function SetHeadXml($version = '1.0', $encoding='utf-8') { |
||
178 | |||
179 | |||
180 | } // end of class Pages |
||
181 | |||
182 | ?> |
||