Merged changes from stable branch up to 2.3.12
[fa-stable.git] / themes / aqua / renderer.php
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/aqua/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";
48                         if (!$no_menu)
49                         {
50                                 $applications = $_SESSION['App']->applications;
51                                 $local_path_to_root = $path_to_root;
52                                 $img = "<img src='$local_path_to_root/themes/aqua/images/login.gif' width='14' height='14' border='0' alt='"._('Logout')."'>&nbsp;&nbsp;";
53                                 $himg = "<img src='$local_path_to_root/themes/aqua/images/help.gif' width='14' height='14' border='0' alt='"._('Help')."'>&nbsp;&nbsp;";
54                                 $sel_app = $_SESSION['sel_app'];
55                                 echo "<table cellpadding=0 cellspacing=0 width='100%'><tr><td>";
56                                 echo "<div class=tabs>";
57                                 foreach($applications as $app)
58                                 {
59                     if ($this->check_application_access($app))
60                     {
61                                                 $acc = access_string($app->name);
62                                                 echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
63                                                         ."' href='$local_path_to_root/index.php?application=".$app->id
64                                                         ."'$acc[1]>" .$acc[0] . "</a>";
65                                         }               
66                                 }
67                                 echo "</div>";
68
69                                 echo "</td></tr></table>";
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;'></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                 }
99
100                 function menu_footer($no_menu, $is_index)
101                 {
102                         global $version, $allow_demo_mode, $app_title, $power_url,
103                                 $power_by, $path_to_root, $Pagehelp, $Ajax;
104                         include_once($path_to_root . "/includes/date_functions.inc");
105
106                         if ($no_menu == false)
107                         {
108                                 if ($is_index)
109                                         echo "<table class=bottomBar>\n";
110                                 else
111                                         echo "<table class=bottomBar2>\n";
112                                 echo "<tr>";
113                                 if (isset($_SESSION['wa_current_user'])) {
114                                         $phelp = implode('; ', $Pagehelp);
115                                         echo "<td class=bottomBarCell>" . Today() . " | " . Now() . "</td>\n";
116                                         $Ajax->addUpdate(true, 'hotkeyshelp', $phelp);
117                                         echo "<td id='hotkeyshelp'>".$phelp."</td>";
118                                 }
119                                 echo "</tr></table>\n";
120                         }
121                         echo "</td></tr></table></td>\n";
122                         echo "</table>\n";
123                         if ($no_menu == false)
124                         {
125                                 echo "<table align='center' id='footer'>\n";
126                                 echo "<tr>\n";
127                                 echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() . " - ".show_users_online()."</font></a></td>\n";
128                                 echo "</tr>\n";
129                                 echo "<tr>\n";
130                                 echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffff00'>$power_by</font></a></td>\n";
131                                 echo "</tr>\n";
132                                 if ($allow_demo_mode==true)
133                                 {
134                                         echo "<tr>\n";
135                                         //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='middle' /></a></div></td>\n";
136                                         echo "</tr>\n";
137                                 }
138                                 echo "</table><br><br>\n";
139                         }
140                 }
141
142                 function display_applications(&$waapp)
143                 {
144                         global $path_to_root;
145                         
146                         $selected_app = $waapp->get_selected_application();
147                         if (!$this->check_application_access($selected_app))
148                                 return;
149
150                         foreach ($selected_app->modules as $module)
151                         {
152                         if (!$this->check_module_access($module))
153                                 continue;
154                                 // image
155                                 echo "<tr>";
156                                 // values
157                                 echo "<td valign='top' class='menu_group'>";
158                                 echo "<table border=0 width='100%'>";
159                                 echo "<tr><td class='menu_group'>";
160                                 echo $module->name;
161                                 echo "</td></tr><tr>";
162                                 echo "<td class='menu_group_items'>";
163
164                                 foreach ($module->lappfunctions as $appfunction)
165                                 {
166                                         $img = $this->get_icon($appfunction->category);
167                                         if ($appfunction->label == "")
168                                                 echo "&nbsp;<br>";
169                                         elseif ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) 
170                                         {
171                                                         echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
172                                         }
173                                         elseif (!$this->hide_inaccessible_menu_items()) 
174                                         {
175                                                         echo $img.'<span class="inactive">'
176                                                                 .access_string($appfunction->label, true)
177                                                                 ."</span><br>\n";
178                                         }
179                                 }
180                                 echo "</td>";
181                                 if (sizeof($module->rappfunctions) > 0)
182                                 {
183                                         echo "<td width='50%' class='menu_group_items'>";
184                                         foreach ($module->rappfunctions as $appfunction)
185                                         {
186                                                 $img = $this->get_icon($appfunction->category);
187                                                 if ($appfunction->label == "")
188                                                         echo "&nbsp;<br>";
189                                                 elseif ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) 
190                                                 {
191                                                                 echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
192                                                 }
193                                                 elseif (!$this->hide_inaccessible_menu_items()) 
194                                                 {
195                                                                 echo $img.'<span class="inactive">'
196                                                                         .access_string($appfunction->label, true)
197                                                                         ."</span><br>\n";
198                                                 }
199                                         }
200                                         echo "</td>";
201                                 }
202
203                                 echo "</tr></table></td></tr>";
204                         }
205
206                         echo "</table>";
207                 }
208
209         function check_application_access($waapp)
210         {
211             if (!$this->hide_inaccessible_menu_items())
212             {
213                 return true;
214             }
215             
216             foreach ($waapp->modules as $module)
217             {
218                 if ($this->check_module_access($module))
219                 {
220                     return true;
221                 }
222             }
223             
224             return false;
225                     
226         }
227         
228         function check_module_access($module)
229         {
230             
231             if (!$this->hide_inaccessible_menu_items())
232             {
233                 return true;
234             }
235             
236             if (sizeof($module->lappfunctions) > 0)
237             {
238                 foreach ($module->lappfunctions as $appfunction)
239                 {
240                     if ($appfunction->label != "" && $_SESSION["wa_current_user"]->can_access_page($appfunction->access))
241                     {
242                         return true;
243                     }
244                 }
245             }
246             
247             if (sizeof($module->rappfunctions) > 0)
248             {
249                 foreach ($module->rappfunctions as $appfunction)
250                 {
251                     if ($appfunction->label != "" && $_SESSION["wa_current_user"]->can_access_page($appfunction->access))
252                     {
253                         return true;
254                     }
255                 }
256             }
257             
258             return false;
259             
260         }
261         
262         function hide_inaccessible_menu_items()
263         {
264             global $hide_inaccessible_menu_items;
265             
266             if (!isset($hide_inaccessible_menu_items) || $hide_inaccessible_menu_items == 0)
267             {
268                 return false;
269             }
270             
271             else
272             {
273                 return true;
274             }
275         }
276         }
277
278 ?>