1<?php
2class Elements
3{
4	public function __construct() {}
5
6	// Affiche l'en tete
7	public function displayEntete($infosServeur, $nom, $intro)
8	{
9	echo "<div id='entete'>";
10		echo "<div id='texte'>";
11			ptln('<h2>'.$nom.'</h2>');
12   			echo $intro;
13   		echo "</div>";
14
15   		echo "<div id='logos'>";
16			echo "<div id='logoA'>";
17				IF ($infosServeur->get64() != "") { echo $infosServeur->get64();}
18			echo "</div>";
19
20			echo "<div id='logoB'>";
21				IF ($infosServeur->getLogoOs() != "") { echo $infosServeur->getLogoOs();}
22			echo "</div>";
23
24			echo "<div id='logoC'>";
25				IF (preg_match("#2 Duo#i",$infosServeur->getModelCpu())) {echo "<img src='./lib/plugins/serverinfos/img/core2.png' align='right' width=100% />";}
26				IF (preg_match("#i7#i",$infosServeur->getModelCpu())) {echo "<img src=./lib/plugins/serverinfos/img/i7.png align='right' width=100% />";}
27				IF (preg_match("#i5#i",$infosServeur->getModelCpu())) {echo "<img src='./lib/plugins/serverinfos/img/i5.png' align='right' width=100% />";}
28				IF (preg_match("#i3#i",$infosServeur->getModelCpu())) {echo "<img src='./lib/plugins/serverinfos/img/i3.png' align='right' width=100% />";}
29				IF (preg_match("#atom#i",$infosServeur->getMarkCpu())) {echo "<img src='./lib/plugins/serverinfos/img/atom.png' align='right' width=100% />";}
30				IF (preg_match("#arm#i",$infosServeur->getMarkCpu())) {echo "<img src='./lib/plugins/serverinfos/img/rpi.png' align='right' width=100% />";}
31				IF (preg_match("#xeon#i",$infosServeur->getMarkCpu())) {echo "<img src=./lib/plugins/serverinfos/img/xeon.png align='right' width=100% />";}
32			echo "</div>";
33
34			echo "<div id='logoD'>";
35			   	$revision = $infosServeur->getRevisionPi();
36   				IF (!empty($revision))
37   				{
38   					echo $infosServeur->getModelPi($revision);
39   				}
40
41			echo "</div>";
42
43		echo "</div>";
44	echo "</div>";
45	}
46
47	// Affiche le systeme
48	public function displaySystem($infosServeur, $system_os, $server_os, $distrib, $vmac)
49	{
50		echo "<div id='categorie'>";
51			ptln('<h3>'.$system_os.'</h3>');
52		echo "</div>";
53
54		// Noms
55		echo "<div id='categorie_contenu' class='categorie'>";
56			echo "<div id='categorie_contenu_os'><strong>".$server_os."</strong></div>";
57			echo "<div id='categorie_contenu_system'><strong>".$distrib."</strong></div>";
58			if (PHP_OS == "Darwin")
59			{
60				echo "<div id='categorie_contenu_vmac'><strong>".$vmac."</strong></div>";
61			}
62		echo "</div>";
63
64		// Contenus
65		echo "<div id='categorie_contenu' class='valeur'>";
66			echo "<div id='categorie_contenu_os'>".PHP_OS."</div>";
67			echo "<div id='categorie_contenu_system'>".$infosServeur->getSystem();
68				if (PHP_OS == "Darwin") {echo $infosServeur->getMacVersion();}
69			echo "</div>";
70			if (PHP_OS == "Darwin")
71			{
72				echo "<div id='categorie_contenu_vmac'>".$infosServeur->getMacComputer()."</div>";
73			}
74		echo "</div>";
75	}
76
77	// Affiche Categories Hardware
78	public function displayHwCategories($cpu, $ram, $dd)
79	{
80		echo "<div id='categorie_contenu' class='categorie'>";
81			echo "<div id='categorie_contenu_cpu'><strong>".$cpu."</strong></div>";
82			echo "<div id='categorie_contenu_ram'><strong>".$ram."</strong></div>";
83			echo "<div id='categorie_contenu_dd'><strong>".$dd."</strong></div>";
84		echo "</div>";
85	}
86
87	// Affiche Noms des Sous-categories Hardware
88	public function displayHwSCategories($cpu_mark, $cpu_model, $cpu_freq, $total, $dd_free, $dd_used)
89	{
90		echo "<div id='categorie_contenu' class='categorie'>";
91			echo "<div id='categorie_contenu_cpu'>";
92				echo "<div id='categorie_contenu_cpu_mark'><strong>".$cpu_mark."</strong></div>";
93				echo "<div id='categorie_contenu_cpu_model'><strong>".$cpu_model."</strong></div>";
94				echo "<div id='categorie_contenu_cpu_freq'><strong>".$cpu_freq."</strong></div>";
95			echo "</div>";
96
97			echo "<div id='categorie_contenu_ram'>";
98				echo "<div id='categorie_contenu_ram_total'><strong>".$total."</strong></div>";
99			echo "</div>";
100
101			echo "<div id='categorie_contenu_dd'>";
102				echo "<div id='categorie_contenu_cpu_mark'><strong>".$total."</strong></div>";
103				echo "<div id='categorie_contenu_cpu_model'><strong>".$dd_free."</strong></div>";
104				echo "<div id='categorie_contenu_cpu_freq'><strong>".$dd_used."</strong></div>";
105			echo "</div>";
106		echo "</div>";
107	}
108
109	// Affiche Valeurs des Sous-categories Hardware
110	public function displayHwSCategoriesValues(InfosServer $infosServeur)
111	{
112		echo "<div id='categorie_contenu' class='valeur'>";
113			echo "<div id='categorie_contenu_cpu'>";
114				echo "<div id='categorie_contenu_cpu_mark'>".$infosServeur->getMarkCpu()."</div>";
115				echo "<div id='categorie_contenu_cpu_model'>".$infosServeur->getModelCpu()."</div>";
116				echo "<div id='categorie_contenu_cpu_freq'>".$infosServeur->getFreqCpu()."</div>";
117			echo "</div>";
118
119			echo "<div id='categorie_contenu_ram'>";
120				echo "<div id='categorie_contenu_ram_total'>".$infosServeur->getRam()."</div>";
121			echo "</div>";
122
123			echo "<div id='categorie_contenu_dd'>";
124				echo "<div id='categorie_contenu_cpu_mark'>".$infosServeur->getDdTotal()."</div>";
125				echo "<div id='categorie_contenu_cpu_model'>".$infosServeur->getDdFree()."</div>";
126				echo "<div id='categorie_contenu_cpu_freq'>".$infosServeur->getDdUsed()."</div>";
127			echo "</div>";
128		echo "</div>";
129	}
130
131	// Affiche Categories Web
132	public function displayWebCategories($ip, $serverName, $serverWeb, $ServerPort)
133	{
134		echo "<div id='categorie_contenu' class='categorie'>";
135			echo "<div id='categorie_contenu_web'><strong>".$ip."</strong></div>";
136			echo "<div id='categorie_contenu_web'><strong>".$serverName."</strong></div>";
137			echo "<div id='categorie_contenu_web'><strong>".$serverWeb."</strong></div>";
138			echo "<div id='categorie_contenu_web'><strong>".$ServerPort."</strong></div>";
139		echo "</div>";
140	}
141
142	// Affiche Valeurs Web
143	public function displayWebValues()
144	{
145		$tmp_web 		= explode(" ", $_SERVER['SERVER_SOFTWARE']);
146		$webserver		= $tmp_web[0].$tmp_web[1];
147
148		echo "<div id='categorie_contenu' class='valeur'>";
149			echo "<div id='categorie_contenu_web'>".$_SERVER['SERVER_ADDR']."</div>";
150			echo "<div id='categorie_contenu_web'>".$_SERVER['SERVER_NAME']."</div>";
151			echo "<div id='categorie_contenu_web'>".$webserver."</div>";
152			echo "<div id='categorie_contenu_web'>".$_SERVER['SERVER_PORT']."</div>";
153		echo "</div>";
154	}
155
156	// Affiche Categories Php
157	public function displayPhpCategories($version, $uploadmaxfilesize, $postmaxsize, $memorylimit)
158	{
159		echo "<div id='categorie_contenu' class='categorie'>";
160			echo "<div id='categorie_contenu_web'><strong>".$version."</strong></div>";
161			echo "<div id='categorie_contenu_web'><strong>".$uploadmaxfilesize."</strong></div>";
162			echo "<div id='categorie_contenu_web'><strong>".$postmaxsize."</strong></div>";
163			echo "<div id='categorie_contenu_web'><strong>".$memorylimit."</strong></div>";
164		echo "</div>";
165	}
166
167	// Affiche Valeurs php
168	public function displayPhpValues()
169	{
170		echo "<div id='categorie_contenu' class='valeur'>";
171			echo "<div id='categorie_contenu_web'>".phpversion()."</div>";
172			echo "<div id='categorie_contenu_web'>".ini_get('upload_max_filesize')."</div>";
173			echo "<div id='categorie_contenu_web'>".ini_get('post_max_size')."</div>";
174			echo "<div id='categorie_contenu_web'>".ini_get('memory_limit')."</div>";
175		echo "</div>";
176	}
177
178	// Affiche chemins fichiers php
179	public function displayPhpPath($docroot, $pathini)
180	{
181		//Categories
182		echo "<div id='categorie_contenu' class='categorie'>";
183			echo "<div id='categorie_contenu_php'><strong>".$docroot."</strong></div>";
184			echo "<div id='categorie_contenu_php'><strong>".$pathini."</strong></div>";
185		echo "</div>";
186
187		// Valeurs
188		echo "<div id='categorie_contenu' class='valeur'>";
189			echo "<div id='categorie_contenu_php'>".$_SERVER['DOCUMENT_ROOT']."</div>";
190			echo "<div id='categorie_contenu_php'>".php_ini_loaded_file()."</div>";
191		echo "</div>";
192	}
193
194	// Affiche Categories Hardware
195	public function displayServicesCategories()
196	{
197		echo "<div id='categorie_contenu' class='categorie'>";
198			echo "<div id='categorie_contenu_service'><strong>DNS</strong></div>";
199			echo "<div id='categorie_contenu_service'><strong>DHCP</strong></div>";
200			echo "<div id='categorie_contenu_service'><strong>SAMBA</strong></div>";
201			echo "<div id='categorie_contenu_service'><strong>SSH</strong></div>";
202			echo "<div id='categorie_contenu_service'><strong>FTP</strong></div>";
203			echo "<div id='categorie_contenu_service'><strong>RADIUS</strong></div>";
204			echo "<div id='categorie_contenu_service'><strong>MySQL</strong></div>";
205		echo "</div>";
206	}
207
208	// Affiche Status serveurs
209	public function displayServicesValues()
210	{
211		exec("dpkg -l | grep 'ii  mysql-server '", $installDns);			exec("pidof named", $statusDns);
212		exec("dpkg -l | grep 'ii  isc-dhcp-server '", $installDhcp);	exec("pidof dhcpd", $statusDhcp);
213		exec("dpkg -l | grep 'ii  samba '", $installSamba);						exec("pidof smbd", $statusSamba);
214		exec("dpkg -l | grep 'ii  openssh-server '", $installSsh);		exec("pidof sshd", $statusSsh);
215		exec("dpkg -l | grep 'ii  proftpd-basic '", $installFtp);			exec("pidof ftpd", $statusFtp);
216		exec("dpkg -l | grep 'ii  freeradius '", $installRadius);			exec("pidof freeradius", $statusRadius);
217		exec("dpkg -l | grep 'ii  mysql-server '", $installMysql);		exec("pidof mysqld", $statusMysql);
218		$none = "<span class='none'>none</span>";
219		$ok 	= "<span class='online'>OK</span>";
220		$stop = "<span class='offline'>STOP</span>";
221
222		echo "<div id='categorie_contenu' class='valeur'>";
223			echo "<div id='categorie_contenu_service'>";
224				IF (empty($installDns[0])) {echo $none;}
225					ELSE {
226								IF (empty($statusDns[0])) {echo $stop;} ELSE {echo $ok;}
227								}
228			echo "</div>";
229			echo "<div id='categorie_contenu_service'>";
230				IF (empty($installDhcp[0])) {echo $none;}
231					ELSE {
232								IF (empty($statusDhcp[0])) {echo $stop;} ELSE {echo $ok;}
233								}
234			echo "</div>";
235			echo "<div id='categorie_contenu_service'>";
236				IF (empty($installSamba[0])) {echo $none;}
237					ELSE {
238								IF (empty($statusSamba[0])) {echo $stop;} ELSE {echo $ok;}
239								}
240			echo "</div>";
241			echo "<div id='categorie_contenu_service'>";
242				IF (empty($installSsh[0])) {echo $none;}
243					ELSE {
244								IF (empty($statusSsh[0])) {echo $stop;} ELSE {echo $ok;}
245								}
246			echo "</div>";
247			echo "<div id='categorie_contenu_service'>";
248				IF (empty($installFtp[0])) {echo $none;}
249					ELSE {
250								IF (empty($statusFtp[0])) {echo $stop;} ELSE {echo $ok;}
251								}
252			echo "</div>";
253			echo "<div id='categorie_contenu_service'>";
254				IF (empty($installRadius[0])) {echo $none;}
255					ELSE {
256								IF (empty($statusRadius[0])) {echo $stop;} ELSE {echo $ok;}
257								}
258			echo "</div>";
259			echo "<div id='categorie_contenu_service'>";
260				IF (empty($installMysql[0])) {echo $none;}
261					ELSE {
262								IF (empty($statusMysql[0])) {echo $stop;} ELSE {echo $ok;}
263								}
264			echo "</div>";
265		echo "</div>";
266	}
267
268	// Affiche l'entete
269	public function displayHead($nom)
270	{
271		echo "<div id='categorie'>";
272			ptln('<h3>'.$nom.'</h3>');
273		echo "</div>";
274	}
275
276	// Recupere heure
277	public function getTime()
278	{
279		exec('uptime', $data);
280		$result_command	= $data[0];
281		return $result_command;
282	}
283
284	// Affiche l'heure
285	public function getLocalTime($timeValue)
286	{
287		//echo $timeValue;
288		$data['up']					= explode('up',$timeValue);
289		$data['mins']				= explode('mins',$timeValue);
290		$data['duree']				= $data['up'][1];
291		$data['server_local_time']	= $data['up'][0];
292		return $data['server_local_time'];
293	}
294
295	// Affiche l'uptime
296	public function getUptime($uptime, $day, $hour, $minute)
297	{
298		$data['up']					= explode('up',$uptime);
299		$data['mins']				= explode('mins',$uptime);
300		$data['duree']				= $data['up'][1];
301		$data['server_local_time']	= $data['up'][0];
302
303		// timeup between 0 and 59 minutes
304		IF (preg_match("#min#i",$uptime))
305			{
306				$duree					= explode('mins',$data['up'][1]);
307				$minutes				= $duree[0];
308				if ($minutes>1) { $sm='s'; } else { $sm=''; }
309				$ITIL = $minutes." ".($minute).$sm;
310				return $ITIL;
311			}
312
313		// timeup between 1 and 24 hours
314		IF (!preg_match("#sec#i",$uptime) AND !preg_match("#min#i",$uptime) AND !preg_match("#day#i",$uptime))
315			{
316				$duree_tmp		= explode(',',$data['up'][1]);
317				$duree			= explode(':',$duree_tmp[0]);
318				$heures			= $duree[0];
319				$minutes		= $duree[1];
320				if ($heures>1) { $sh='s'; } else { $sh=''; }
321				if ($minutes>1) { $sm='s'; } else { $sm=''; }
322				$ITIL = $heures." ".$hour.$sh." ".$minutes." ".$minute.$sm;
323				return $ITIL;
324			}
325
326		// timeup > 1 day
327		IF (preg_match("#day#i",$uptime))
328		{
329			$duree_tmp			= explode('up',$data['up'][1]);
330			$days_hours			= explode(',',$duree_tmp[0]);
331			$nb_days_tmp		= explode("day",$days_hours[0]);
332			$days				= $nb_days_tmp[0];
333
334            if (preg_match("#min#i",$uptime))
335            {
336                $duree		   = explode('min',$days_hours[1]);
337                $minutes       = $duree[0];
338                $heures        = "";
339            }
340             else
341            {
342				$duree				= explode(':',$days_hours[1]);
343				$heures				= $duree[0];
344				$minutes			= $duree[1];
345            	$display_hours 		= $hour;
346            }
347
348            if ($heures >0) {$display_hours = $hour;} else {$display_hours = "";}
349			if ($heures>1) { $sh='s'; } else { $sh=''; }
350			if ($minutes>1) { $sm='s'; } else { $sm=''; }
351			if ($days>1) { $sd='s'; } else { $sd=''; }
352			$ITIL = $days.$day.$sd." ".$heures." ".$display_hours.$sh." ".$minutes." ".$minute.$sm;
353			return $ITIL;
354		}
355	}
356
357}
358?>
359