1<?php
2/**********************************************************************
3    Copyright (C) FrontAccounting, LLC.
4	Released under the terms of the GNU General Public License, GPL,
5	as published by the Free Software Foundation, either version 3
6	of the License, or (at your option) any later version.
7    This program is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11***********************************************************************/
12	class renderer
13	{
14		function get_icon($category)
15		{
16			global  $path_to_root, $show_menu_category_icons;
17
18			if ($show_menu_category_icons)
19				$img = $category == '' ? 'right.gif' : $category.'.png';
20			else
21				$img = 'right.gif';
22			return "<img src='$path_to_root/themes/cool/images/$img' style='vertical-align:middle;' border='0'>&nbsp;&nbsp;";
23		}
24
25		function wa_header()
26		{
27			page(_($help_context = "Main Menu"), false, true);
28		}
29
30		function wa_footer()
31		{
32			end_page(false, true);
33		}
34
35		function menu_header($title, $no_menu, $is_index)
36		{
37			global $path_to_root, $help_base_url, $db_connections;
38			echo "<table class='callout_main' border='0' cellpadding='0' cellspacing='0'>\n";
39			echo "<tr>\n";
40			echo "<td colspan='2' rowspan='2'>\n";
41
42			echo "<table class='main_page' border='0' cellpadding='0' cellspacing='0'>\n";
43			echo "<tr>\n";
44			echo "<td>\n";
45			echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
46			echo "<tr>\n";
47			echo "<td class='quick_menu'>\n"; // tabs
48			if (!$no_menu)
49			{
50				$applications = $_SESSION['App']->applications;
51				$local_path_to_root = $path_to_root;
52				$sel_app = $_SESSION['sel_app'];
53				echo "<table cellpadding='0' cellspacing='0' width='100%'><tr><td>";
54				echo "<div class='tabs'>";
55				foreach($applications as $app)
56				{
57                    if ($_SESSION["wa_current_user"]->check_application_access($app))
58                    {
59                        $acc = access_string($app->name);
60                        echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
61                            ."' href='$local_path_to_root/index.php?application=".$app->id
62                            ."'$acc[1]>" .$acc[0] . "</a>";
63                    }
64				}
65				echo "</div>";
66				echo "</td></tr></table>";
67				// top status bar
68				$img = "<img src='$local_path_to_root/themes/cool/images/login.gif' width='14' height='14' border='0' alt='"._('Logout')."'>&nbsp;&nbsp;";
69				$himg = "<img src='$local_path_to_root/themes/cool/images/help.gif' width='14' height='14' border='0' alt='"._('Help')."'>&nbsp;&nbsp;";
70
71				echo "<table class='logoutBar'>";
72				echo "<tr><td class='headingtext3'>" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "</td>";
73				$indicator = "$path_to_root/themes/".user_theme(). "/images/ajax-loader.gif";
74				echo "<td class='logoutBarRight'><img id='ajaxmark' src='$indicator' align='center' style='visibility:hidden;' alt='ajaxmark'></td>";
75				echo "  <td class='logoutBarRight'><a class='shortcut' href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
76				echo "  <a class='shortcut' href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
77
78				if ($help_base_url != null)
79				{
80					echo "$himg<a target = '_blank' onclick=" .'"'."javascript:openWindow(this.href,this.target); return false;".'" '. "href='". help_url()."'>" . _("Help") . "</a>&nbsp;&nbsp;&nbsp;";
81				}
82				echo "$img<a class='shortcut' href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
83				echo "</td></tr></table>";
84			}
85			echo "</td></tr></table>";
86			if ($no_menu)
87				echo "<br>";
88			elseif ($title && !$is_index)
89			{
90				echo "<center><table id='title'><tr><td width='100%' class='titletext'>$title</td>"
91				."<td align=right>"
92				.(user_hints() ? "<span id='hints'></span>" : '')
93				."</td>"
94				."</tr></table></center>";
95			}
96		}
97
98		function menu_footer($no_menu, $is_index)
99		{
100			global $version, $allow_demo_mode, $app_title, $power_url,
101				$power_by, $path_to_root, $Pagehelp, $Ajax;
102			include_once($path_to_root . "/includes/date_functions.inc");
103
104			echo "</td></tr></table>\n"; // 'main_page'
105			if ($no_menu == false) // bottom status line
106			{
107				if ($is_index)
108					echo "<table class='bottomBar'>\n";
109				else
110					echo "<table class='bottomBar2'>\n";
111				echo "<tr>";
112				if (isset($_SESSION['wa_current_user'])) {
113					$phelp = implode('; ', $Pagehelp);
114					echo "<td class='bottomBarCell'>" . Today() . " | " . Now() . "</td>\n";
115					$Ajax->addUpdate(true, 'hotkeyshelp', $phelp);
116					echo "<td id='hotkeyshelp'>".$phelp."</td>";
117				}
118				echo "</tr></table>\n";
119			}
120			echo "</td></tr> </table>\n"; // 'callout_main'
121			if ($no_menu == false)
122			{
123				echo "<table align='center' id='footer'>\n";
124				echo "<tr>\n";
125				echo "<td align='center' class='footer'><a target='_blank' href='$power_url' tabindex='-1'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() ." - ".show_users_online()."</font></a></td>\n";
126				echo "</tr>\n";
127				echo "<tr>\n";
128				echo "<td align='center' class='footer'><a target='_blank' href='$power_url' tabindex='-1'><font color='#ffff00'>$power_by</font></a></td>\n";
129				echo "</tr>\n";
130				if ($allow_demo_mode==true)
131				{
132					echo "<tr>\n";
133					//echo "<td><br><div align='center'><a href='http://sourceforge.net'><img src='http://sourceforge.net/sflogo.php?group_id=89967&amp;type=5' alt='SourceForge.net Logo' width='210' height='62' border='0' align='center' /></a></div></td>\n";
134					echo "</tr>\n";
135				}
136				echo "</table><br><br>\n";
137			}
138		}
139
140		function display_applications(&$waapp)
141		{
142			global $path_to_root;
143
144			$selected_app = $waapp->get_selected_application();
145			if (!$_SESSION["wa_current_user"]->check_application_access($selected_app))
146				return;
147
148			if (method_exists($selected_app, 'render_index'))
149			{
150				$selected_app->render_index();
151				return;
152			}
153
154			echo "<table width='100%' cellpadding='0' cellspacing='0'>";
155			foreach ($selected_app->modules as $module)
156			{
157        		if (!$_SESSION["wa_current_user"]->check_module_access($module))
158        			continue;
159				// image
160				echo "<tr>";
161				// values
162				echo "<td valign='top' class='menu_group'>";
163				echo "<table border=0 width='100%'>";
164				echo "<tr><td class='menu_group'>";
165				echo $module->name;
166				echo "</td></tr><tr>";
167				echo "<td class='menu_group_items'>";
168
169				foreach ($module->lappfunctions as $appfunction)
170				{
171					$img = $this->get_icon($appfunction->category);
172					if ($appfunction->label == "")
173						echo "&nbsp;<br>";
174					elseif ($_SESSION["wa_current_user"]->can_access_page($appfunction->access))
175					{
176							echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
177					}
178					elseif (!$_SESSION["wa_current_user"]->hide_inaccessible_menu_items())
179					{
180							echo $img.'<span class="inactive">'
181								.access_string($appfunction->label, true)
182								."</span><br>\n";
183					}
184				}
185				echo "</td>";
186				if (sizeof($module->rappfunctions) > 0)
187				{
188					echo "<td width='50%' class='menu_group_items'>";
189					foreach ($module->rappfunctions as $appfunction)
190					{
191						$img = $this->get_icon($appfunction->category);
192						if ($appfunction->label == "")
193							echo "&nbsp;<br>";
194						elseif ($_SESSION["wa_current_user"]->can_access_page($appfunction->access))
195						{
196								echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
197						}
198						elseif (!$_SESSION["wa_current_user"]->hide_inaccessible_menu_items())
199						{
200								echo $img.'<span class="inactive">'
201									.access_string($appfunction->label, true)
202									."</span><br>\n";
203						}
204					}
205					echo "</td>";
206				}
207
208				echo "</tr></table></td></tr>";
209			}
210			echo "</table>";
211		}
212	}
213?>