ZenCart_Documentation  1.5.0
http://www.collinsharper.com
C:/xampp/htdocs/zen-cart/admin/modules.php
Go to the documentation of this file.
00001 <?php
00010   require('includes/application_top.php');
00011 
00012   $set = (isset($_GET['set']) ? $_GET['set'] : (isset($_POST['set']) ? $_POST['set'] : ''));
00013 
00014   $is_ssl_protected = (substr(HTTP_SERVER, 0, 5) == 'https') ? TRUE : FALSE;
00015 
00016   if (zen_not_null($set)) {
00017     switch ($set) {
00018       case 'shipping':
00019         $module_type = 'shipping';
00020         $module_directory = DIR_FS_CATALOG_MODULES . 'shipping/';
00021         $module_key = 'MODULE_SHIPPING_INSTALLED';
00022         define('HEADING_TITLE', HEADING_TITLE_MODULES_SHIPPING);
00023         $shipping_errors = '';
00024         if (zen_get_configuration_key_value('SHIPPING_ORIGIN_ZIP') == 'NONE' or zen_get_configuration_key_value('SHIPPING_ORIGIN_ZIP') == '') {
00025           $shipping_errors .= '<br />' . ERROR_SHIPPING_ORIGIN_ZIP;
00026         }
00027         if (zen_get_configuration_key_value('ORDER_WEIGHT_ZERO_STATUS') == '1' and !defined('MODULE_SHIPPING_FREESHIPPER_STATUS')) {
00028           $shipping_errors .= '<br />' . ERROR_ORDER_WEIGHT_ZERO_STATUS;
00029         }
00030         if (defined('MODULE_SHIPPING_USPS_STATUS') and (MODULE_SHIPPING_USPS_USERID=='NONE' or MODULE_SHIPPING_USPS_SERVER == 'test')) {
00031           $shipping_errors .= '<br />' . ERROR_USPS_STATUS;
00032         }
00033         if ($shipping_errors != '') {
00034           $messageStack->add(ERROR_SHIPPING_CONFIGURATION . $shipping_errors, 'caution');
00035         }
00036         break;
00037       case 'ordertotal':
00038         $module_type = 'order_total';
00039         $module_directory = DIR_FS_CATALOG_MODULES . 'order_total/';
00040         $module_key = 'MODULE_ORDER_TOTAL_INSTALLED';
00041         define('HEADING_TITLE', HEADING_TITLE_MODULES_ORDER_TOTAL);
00042         break;
00043       case 'payment':
00044       default:
00045         $module_type = 'payment';
00046         $module_directory = DIR_FS_CATALOG_MODULES . 'payment/';
00047         $module_key = 'MODULE_PAYMENT_INSTALLED';
00048         define('HEADING_TITLE', HEADING_TITLE_MODULES_PAYMENT);
00049         break;
00050     }
00051   }
00052 
00053   $action = (isset($_GET['action']) ? $_GET['action'] : '');
00054 
00055   if (zen_not_null($action)) {
00056     $admname = '{' . preg_replace('/[^\d\w]/', '*', zen_get_admin_name()) . '[' . (int)$_SESSION['admin_id'] . ']}';
00057     switch ($action) {
00058       case 'save':
00059         if (!$is_ssl_protected && in_array($class, array('paypaldp', 'linkpoint_api', 'authorizenet_aim', 'authorizenet_echeck'))) break;
00060         while (list($key, $value) = each($_POST['configuration'])) {
00061           if (is_array( $value ) ) {
00062             $value = implode( ", ", $value);
00063             $value = preg_replace ("/, --none--/", "", $value);
00064           }
00065           $db->Execute("update " . TABLE_CONFIGURATION . "
00066                         set configuration_value = '" . zen_db_input($value) . "'
00067                         where configuration_key = '" . zen_db_input($key) . "'");
00068         }
00069         $configuration_query = 'select configuration_key as cfgkey, configuration_value as cfgvalue
00070                                 from ' . TABLE_CONFIGURATION;
00071         $configuration = $db->Execute($configuration_query);
00072         $msg = sprintf(TEXT_EMAIL_MESSAGE_ADMIN_SETTINGS_CHANGED, preg_replace('/[^\d\w]/', '*', $_GET['module']), $admname);
00073         zen_mail(STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER_EMAIL_ADDRESS, TEXT_EMAIL_SUBJECT_ADMIN_SETTINGS_CHANGED, $msg, STORE_NAME, EMAIL_FROM, array('EMAIL_MESSAGE_HTML'=>$msg), 'admin_settings_changed');
00074         zen_redirect(zen_href_link(FILENAME_MODULES, 'set=' . $set . ($_GET['module'] != '' ? '&module=' . $_GET['module'] : ''), 'NONSSL'));
00075         break;
00076       case 'install':
00077         $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
00078         $class = basename($_POST['module']);
00079         if (!$is_ssl_protected && in_array($class, array('paypaldp', 'linkpoint_api', 'authorizenet_aim', 'authorizenet_echeck'))) break;
00080         if (file_exists($module_directory . $class . $file_extension)) {
00081           $configuration_query = 'select configuration_key as cfgkey, configuration_value as cfgvalue
00082                                   from ' . TABLE_CONFIGURATION;
00083           $configuration = $db->Execute($configuration_query);
00084           include($module_directory . $class . $file_extension);
00085           $module = new $class;
00086           $msg = sprintf(TEXT_EMAIL_MESSAGE_ADMIN_MODULE_INSTALLED, preg_replace('/[^\d\w]/', '*', $_POST['module']), $admname);
00087           zen_mail(STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER_EMAIL_ADDRESS, TEXT_EMAIL_SUBJECT_ADMIN_SETTINGS_CHANGED, $msg, STORE_NAME, EMAIL_FROM, array('EMAIL_MESSAGE_HTML'=>$msg), 'admin_settings_changed');
00088           $result = $module->install();
00089         }
00090         if ($result != 'failed') {
00091           zen_redirect(zen_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class . '&action=edit', 'NONSSL'));
00092         }
00093        break;
00094       case 'removeconfirm':
00095         $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
00096         $class = basename($_POST['module']);
00097         if (file_exists($module_directory . $class . $file_extension)) {
00098           $configuration_query = 'select configuration_key as cfgkey, configuration_value as cfgvalue
00099                                   from ' . TABLE_CONFIGURATION;
00100           $configuration = $db->Execute($configuration_query);
00101           include($module_directory . $class . $file_extension);
00102           $module = new $class;
00103           $msg = sprintf(TEXT_EMAIL_MESSAGE_ADMIN_MODULE_REMOVED, preg_replace('/[^\d\w]/', '*', $_POST['module']), $admname);
00104           zen_mail(STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER_EMAIL_ADDRESS, TEXT_EMAIL_SUBJECT_ADMIN_SETTINGS_CHANGED, $msg, STORE_NAME, EMAIL_FROM, array('EMAIL_MESSAGE_HTML'=>$msg), 'admin_settings_changed');
00105           $result = $module->remove();
00106         }
00107         zen_redirect(zen_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class, 'NONSSL'));
00108        break;
00109     }
00110   }
00111 ?>
00112 <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
00113 <html <?php echo HTML_PARAMS; ?>>
00114 <head>
00115 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
00116 <title><?php echo TITLE; ?></title>
00117 <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
00118 <link rel="stylesheet" type="text/css" href="includes/cssjsmenuhover.css" media="all" id="hoverJS">
00119 <script language="javascript" src="includes/menu.js"></script>
00120 <script language="javascript" src="includes/general.js"></script>
00121 <script type="text/javascript">
00122   <!--
00123   function init()
00124   {
00125     cssjsmenu('navbar');
00126     if (document.getElementById)
00127     {
00128       var kill = document.getElementById('hoverJS');
00129       kill.disabled = true;
00130     }
00131   }
00132   // -->
00133 </script>
00134 </head>
00135 <body onLoad="init()">
00136 <!-- header //-->
00137 <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
00138 <!-- header_eof //-->
00139 
00140 <!-- body //-->
00141 <table border="0" width="100%" cellspacing="2" cellpadding="2">
00142   <tr>
00143 <!-- body_text //-->
00144     <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
00145       <tr>
00146         <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
00147           <tr>
00148             <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
00149             <td class="pageHeading" align="right"><?php echo zen_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
00150           </tr>
00151         </table></td>
00152       </tr>
00153       <tr>
00154         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
00155           <tr>
00156             <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
00157               <tr class="dataTableHeadingRow">
00158                 <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_MODULES; ?></td>
00159                 <td class="dataTableHeadingContent">&nbsp;</td>
00160                 <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_SORT_ORDER; ?></td>
00161 <?php
00162   if ($set == 'payment') {
00163 ?>
00164                 <td class="dataTableHeadingContent" align="center" width="100"><?php echo TABLE_HEADING_ORDERS_STATUS; ?></td>
00165 <?php } ?>
00166                 <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
00167               </tr>
00168 <?php
00169   $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
00170   $directory_array = array();
00171   if ($dir = @dir($module_directory)) {
00172     while ($file = $dir->read()) {
00173       if (!is_dir($module_directory . $file)) {
00174         if (substr($file, strrpos($file, '.')) == $file_extension) {
00175           $directory_array[] = $file;
00176         }
00177       }
00178     }
00179     sort($directory_array);
00180     $dir->close();
00181   }
00182 
00183   $installed_modules = array();
00184   for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
00185     $file = $directory_array[$i];
00186     if (file_exists(DIR_FS_CATALOG_LANGUAGES . $_SESSION['language'] . '/modules/' . $module_type . '/' . $file)) {
00187       include(DIR_FS_CATALOG_LANGUAGES . $_SESSION['language'] . '/modules/' . $module_type . '/' . $file);
00188       include($module_directory . $file);
00189       $class = substr($file, 0, strrpos($file, '.'));
00190       if (zen_class_exists($class)) {
00191         $module = new $class;
00192         if ($module->check() > 0) {
00193           if ($module->sort_order > 0) {
00194             if ($installed_modules[$module->sort_order] != '') {
00195               $zc_valid = false;
00196             }
00197             $installed_modules[$module->sort_order] = $file;
00198           } else {
00199             $installed_modules[] = $file;
00200           }
00201         }
00202         if ((!isset($_GET['module']) || (isset($_GET['module']) && ($_GET['module'] == $class))) && !isset($mInfo)) {
00203           $module_info = array('code' => $module->code,
00204                                'title' => $module->title,
00205                                'description' => $module->description,
00206                                'status' => $module->check());
00207           $module_keys = $module->keys();
00208           $keys_extra = array();
00209           for ($j=0, $k=sizeof($module_keys); $j<$k; $j++) {
00210             $key_value = $db->Execute("select configuration_title, configuration_value, configuration_key,
00211                                           configuration_description, use_function, set_function
00212                                           from " . TABLE_CONFIGURATION . "
00213                                           where configuration_key = '" . zen_db_input($module_keys[$j]) . "'");
00214 
00215             $keys_extra[$module_keys[$j]]['title'] = $key_value->fields['configuration_title'];
00216             $keys_extra[$module_keys[$j]]['value'] = $key_value->fields['configuration_value'];
00217             $keys_extra[$module_keys[$j]]['description'] = $key_value->fields['configuration_description'];
00218             $keys_extra[$module_keys[$j]]['use_function'] = $key_value->fields['use_function'];
00219             $keys_extra[$module_keys[$j]]['set_function'] = $key_value->fields['set_function'];
00220           }
00221           $module_info['keys'] = $keys_extra;
00222           $mInfo = new objectInfo($module_info);
00223         }
00224         if (isset($mInfo) && is_object($mInfo) && ($class == $mInfo->code) ) {
00225           if ($module->check() > 0) {
00226             echo '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . zen_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class . '&action=edit', 'NONSSL') . '\'">' . "\n";
00227           } else {
00228             echo '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)">' . "\n";
00229           }
00230         } else {
00231           echo '              <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . zen_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class, 'NONSSL') . '\'">' . "\n";
00232         }
00233 //print_r($module) . '<br><BR>';
00234 //echo (!empty($module->enabled) ? 'ENABLED' : 'NOT ENABLED') . ' vs ' . (is_numeric($module->sort_order) ? 'ON' : 'OFF') . '<BR><BR>' ;
00235 ?>
00236                 <td class="dataTableContent"><?php echo $module->title; ?></td>
00237                 <td class="dataTableContent"><?php echo (strstr($module->code, 'paypal') ? 'PayPal' : $module->code); ?></td>
00238                 <td class="dataTableContent" align="right">
00239                   <?php if (is_numeric($module->sort_order)) echo $module->sort_order; ?>
00240                   <?php
00241                     // show current status
00242                     if ($set == 'payment' || $set == 'shipping') {
00243                       echo '&nbsp;' . ((!empty($module->enabled) && is_numeric($module->sort_order)) ? zen_image(DIR_WS_IMAGES . 'icon_status_green.gif') : ((empty($module->enabled) && is_numeric($module->sort_order)) ? zen_image(DIR_WS_IMAGES . 'icon_status_yellow.gif') : zen_image(DIR_WS_IMAGES . 'icon_status_red.gif')));
00244                     } else {
00245                       echo '&nbsp;' . (is_numeric($module->sort_order) ? zen_image(DIR_WS_IMAGES . 'icon_status_green.gif') : zen_image(DIR_WS_IMAGES . 'icon_status_red.gif'));
00246                     }
00247                   ?>
00248                 </td>
00249 <?php
00250   if ($set == 'payment') {
00251     $orders_status_name = $db->Execute("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where orders_status_id='" . (int)$module->order_status . "' and language_id='" . (int)$_SESSION['languages_id'] . "'");
00252 ?>
00253                 <td class="dataTableContent" align="left">&nbsp;&nbsp;&nbsp;<?php echo (is_numeric($module->sort_order) ? (($orders_status_name->fields['orders_status_id'] < 1) ? TEXT_DEFAULT : $orders_status_name->fields['orders_status_name']) : ''); ?>&nbsp;&nbsp;&nbsp;</td>
00254 <?php } ?>
00255                 <td class="dataTableContent" align="right"><?php if (isset($mInfo) && is_object($mInfo) && ($class == $mInfo->code) ) { echo zen_image(DIR_WS_IMAGES . 'icon_arrow_right.gif'); } else { echo '<a href="' . zen_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class, 'NONSSL') . '">' . zen_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td>
00256               </tr>
00257 <?php
00258       }
00259     } else {
00260       echo ERROR_MODULE_FILE_NOT_FOUND . DIR_FS_CATALOG_LANGUAGES . $_SESSION['language'] . '/modules/' . $module_type . '/' . $file . '<br />';
00261     }
00262   }
00263   ksort($installed_modules);
00264   $check = $db->Execute("select configuration_value
00265                          from " . TABLE_CONFIGURATION . "
00266                          where configuration_key = '" . zen_db_input($module_key) . "'");
00267 
00268   if ($check->RecordCount() > 0) {
00269     if ($check->fields['configuration_value'] != implode(';', $installed_modules)) {
00270       $db->Execute("update " . TABLE_CONFIGURATION . "
00271                     set configuration_value = '" . zen_db_input(implode(';', $installed_modules)) . "', last_modified = now()
00272                     where configuration_key = '" . zen_db_input($module_key) . "'");
00273     }
00274   } else {
00275     $db->Execute("insert into " . TABLE_CONFIGURATION . "
00276                 (configuration_title, configuration_key, configuration_value,
00277                  configuration_description, configuration_group_id, sort_order, date_added)
00278                  values ('Installed Modules', '" . zen_db_input($module_key) . "', '" . zen_db_input(implode(';', $installed_modules)) . "',
00279                          'This is automatically updated. No need to edit.', '6', '0', now())");
00280   }
00281   if (isset($zc_valid) && $zc_valid == false) {
00282     echo '<span class="alert">' . WARNING_MODULES_SORT_ORDER . '</span>';
00283   }
00284 ?>
00285               <tr>
00286                 <td colspan="3" class="smallText"><?php echo TEXT_MODULE_DIRECTORY . ' ' . $module_directory; ?></td>
00287               </tr>
00288             </table></td>
00289 <?php
00290   $heading = array();
00291   $contents = array();
00292   switch ($action) {
00293         case 'remove':
00294       $heading[] = array('text' => '<b>' . $mInfo->title . '</b>');
00295 
00296       $contents = array('form' => zen_draw_form('module_delete', FILENAME_MODULES, '&action=removeconfirm'));
00297       $contents[] = array('text' => '<input type="hidden" name="set" value="' . (isset($_GET['set']) ? $_GET['set'] : "") . '" />');
00298       $contents[] = array('text' => '<input type="hidden" name="module" value="' . (isset($_GET['module']) ? $_GET['module'] : "") . '"/>');
00299       $contents[] = array('text' => TEXT_DELETE_INTRO);
00300 
00301       $contents[] = array('align' => 'center', 'text' => '<br>' . zen_image_submit('button_remove.gif', IMAGE_DELETE, 'name="removeButton"') . ' <a href="' . zen_href_link(FILENAME_MODULES, 'set=' . $set . ($_GET['module'] != '' ? '&module=' . $_GET['module'] : ''), 'NONSSL') . '">' . zen_image_button('button_cancel.gif', IMAGE_CANCEL, 'name="cancelButton"') . '</a>');
00302       break;
00303     case 'edit':
00304       if (!$is_ssl_protected && in_array($_GET['module'], array('paypaldp', 'linkpoint_api', 'authorizenet_aim', 'authorizenet_echeck'))) break;
00305       $keys = '';
00306       reset($mInfo->keys);
00307       while (list($key, $value) = each($mInfo->keys)) {
00308         $keys .= '<b>' . $value['title'] . '</b><br>' . $value['description'] . '<br>';
00309         if ($value['set_function']) {
00310           eval('$keys .= ' . $value['set_function'] . "'" . $value['value'] . "', '" . $key . "');");
00311         } else {
00312           $keys .= zen_draw_input_field('configuration[' . $key . ']', htmlspecialchars($value['value'], ENT_COMPAT, CHARSET, TRUE));
00313         }
00314         $keys .= '<br><br>';
00315       }
00316       $keys = substr($keys, 0, strrpos($keys, '<br><br>'));
00317       $heading[] = array('text' => '<b>' . $mInfo->title . '</b>');
00318       $contents = array('form' => zen_draw_form('modules', FILENAME_MODULES, 'set=' . $set . ($_GET['module'] != '' ? '&module=' . $_GET['module'] : '') . '&action=save', 'post', '', true));
00319       if (ADMIN_CONFIGURATION_KEY_ON == 1) {
00320         $contents[] = array('text' => '<strong>Key: ' . $mInfo->code . '</strong><br />');
00321       }
00322       $contents[] = array('text' => $keys);
00323       $contents[] = array('align' => 'center', 'text' => '<br>' . zen_image_submit('button_update.gif', IMAGE_UPDATE, 'name="saveButton"') . ' <a href="' . zen_href_link(FILENAME_MODULES, 'set=' . $set . ($_GET['module'] != '' ? '&module=' . $_GET['module'] : ''), 'NONSSL') . '">' . zen_image_button('button_cancel.gif', IMAGE_CANCEL, 'name="cancelButton"') . '</a>');
00324       break;
00325     default:
00326       $heading[] = array('text' => '<b>' . $mInfo->title . '</b>');
00327 
00328       if ($mInfo->status == '1') {
00329         $keys = '';
00330         reset($mInfo->keys);
00331         while (list(, $value) = each($mInfo->keys)) {
00332           $keys .= '<b>' . $value['title'] . '</b><br>';
00333           if ($value['use_function']) {
00334             $use_function = $value['use_function'];
00335             if (preg_match('/->/', $use_function)) {
00336               $class_method = explode('->', $use_function);
00337               if (!is_object(${$class_method[0]})) {
00338                 include(DIR_WS_CLASSES . $class_method[0] . '.php');
00339                 ${$class_method[0]} = new $class_method[0]();
00340               }
00341               $keys .= zen_call_function($class_method[1], $value['value'], ${$class_method[0]});
00342             } else {
00343               $keys .= zen_call_function($use_function, $value['value']);
00344             }
00345           } else {
00346             $keys .= $value['value'];
00347           }
00348           $keys .= '<br><br>';
00349         }
00350 
00351         if (ADMIN_CONFIGURATION_KEY_ON == 1) {
00352           $contents[] = array('text' => '<strong>Key: ' . $mInfo->code . '</strong><br />');
00353         }
00354         $keys = substr($keys, 0, strrpos($keys, '<br><br>'));
00355         if (!(!$is_ssl_protected && in_array($mInfo->code, array('paypaldp', 'linkpoint_api', 'authorizenet_aim', 'authorizenet_echeck')))) {
00356           $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_MODULES, 'set=' . $set . (isset($_GET['module']) ? '&module=' . $_GET['module'] : '') . '&action=edit', 'NONSSL') . '">' . zen_image_button('button_edit.gif', IMAGE_EDIT, 'name="editButton"') . '</a>');
00357         } else {
00358           $contents[] = array('align' => 'center', 'text' => TEXT_WARNING_SSL_EDIT);
00359         }
00360         $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $mInfo->code . '&action=remove', 'NONSSL') . '">' . zen_image_button('button_module_remove.gif', IMAGE_MODULE_REMOVE, 'name="removeButton"') . '</a>');
00361         $contents[] = array('text' => '<br>' . $mInfo->description);
00362         $contents[] = array('text' => '<br>' . $keys);
00363       } else {
00364         if (!(!$is_ssl_protected && in_array($mInfo->code, array('paypaldp', 'linkpoint_api', 'authorizenet_aim', 'authorizenet_echeck')))) {
00365           $contents[] = array('align' => 'center', 'text' => zen_draw_form('install_module', FILENAME_MODULES, 'set=' . $set . '&action=install') . '<input type="hidden" name="module" value="' . $mInfo->code . '" />' . zen_image_submit('button_module_install.gif', IMAGE_MODULE_INSTALL, 'name="installButton"') . '</form>');
00366         } else {
00367           $contents[] = array('align' => 'center', 'text' => TEXT_WARNING_SSL_INSTALL);
00368         }
00369         $contents[] = array('text' => '<br>' . $mInfo->description);
00370       }
00371       break;
00372   }
00373   if ( (zen_not_null($heading)) && (zen_not_null($contents)) ) {
00374     echo '            <td width="25%" valign="top">' . "\n";
00375     $box = new box;
00376     echo $box->infoBox($heading, $contents);
00377     echo '            </td>' . "\n";
00378   }
00379 ?>
00380           </tr>
00381         </table></td>
00382       </tr>
00383     </table></td>
00384 <!-- body_text_eof //-->
00385   </tr>
00386 </table>
00387 <!-- body_eof //-->
00388 <!-- footer //-->
00389 <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
00390 <!-- footer_eof //-->
00391 <br>
00392 </body>
00393 </html>
00394 <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
 All Data Structures Namespaces Files Functions Variables Enumerations