Beehive PHP Cross Reference Discussion Forums

Source: /admin_folder_edit.php - 446 lines - 21277 bytes - Summary - Text - Print

   1  <?php
   2  
   3  /*======================================================================
   4  Copyright Project Beehive Forum 2002
   5  
   6  This file is part of Beehive Forum.
   7  
   8  Beehive Forum is free software; you can redistribute it and/or modify
   9  it under the terms of the GNU General Public License as published by
  10  the Free Software Foundation; either version 3 of the License, or
  11  (at your option) any later version.
  12  
  13  Beehive Forum is distributed in the hope that it will be useful,
  14  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16  GNU General Public License for more details.
  17  
  18  You should have received a copy of the GNU General Public License
  19  along with Beehive; if not, write to the Free Software
  20  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  21  USA
  22  ======================================================================*/
  23  
  24  // Bootstrap
  25  require_once  'boot.php';
  26  
  27  // Required includes
  28  require_once  BH_INCLUDE_PATH . 'admin.inc.php';
  29  require_once  BH_INCLUDE_PATH . 'constants.inc.php';
  30  require_once  BH_INCLUDE_PATH . 'folder.inc.php';
  31  require_once  BH_INCLUDE_PATH . 'form.inc.php';
  32  require_once  BH_INCLUDE_PATH . 'format.inc.php';
  33  require_once  BH_INCLUDE_PATH . 'header.inc.php';
  34  require_once  BH_INCLUDE_PATH . 'html.inc.php';
  35  require_once  BH_INCLUDE_PATH . 'perm.inc.php';
  36  require_once  BH_INCLUDE_PATH . 'session.inc.php';
  37  require_once  BH_INCLUDE_PATH . 'word_filter.inc.php';
  38  // End Required includes
  39  
  40  // Check we're logged in correctly
  41  if (!session::logged_in()) {
  42      html_guest_error();
  43  }
  44  
  45  // Check we have Admin / Moderator access
  46  if (!(session::check_perm(USER_PERM_ADMIN_TOOLS, 0))) {
  47      html_draw_error(gettext("You do not have permission to use this section."));
  48  }
  49  
  50  // Perform additional admin login.
  51  admin_check_credentials();
  52  
  53  if (isset($_GET['page']) && is_numeric($_GET['page'])) {
  54      $page = ($_GET['page'] > 0) ? $_GET['page'] : 1;
  55  } else if (isset($_POST['page']) && is_numeric($_POST['page'])) {
  56      $page = ($_POST['page'] > 0) ? $_POST['page'] : 1;
  57  } else {
  58      $page = 1;
  59  }
  60  
  61  if (isset($_POST['cancel'])) {
  62  
  63      header_redirect("admin_folders.php?webtag=$webtag&page=$page");
  64      exit;
  65  }
  66  
  67  if (isset($_POST['fid']) && is_numeric($_POST['fid'])) {
  68  
  69      $fid = $_POST['fid'];
  70  
  71  } else if (isset($_GET['fid']) && is_numeric($_GET['fid'])) {
  72  
  73      $fid = $_GET['fid'];
  74  
  75  } else {
  76  
  77      html_draw_error(gettext("No Folder ID specified"), 'admin_folders.php', 'get', array('back' => gettext("Back")), array('page' => $page));
  78  }
  79  
  80  if (!folder_is_valid($fid)) {
  81      html_draw_error(gettext("Invalid Folder ID. Check that a folder with this ID exists!"), 'admin_folders.php', 'get', array('back' => gettext("Back")), array('page' => $page));
  82  }
  83  
  84  if (isset($_POST['save'])) {
  85  
  86      $valid = true;
  87  
  88      if (isset($_POST['name']) && strlen(trim($_POST['name'])) > 0) {
  89          $folder_data['TITLE'] = trim($_POST['name']);
  90      } else {
  91          $error_msg_array[] = gettext("You must enter a folder name");
  92          $valid = false;
  93      }
  94  
  95      if (isset($_POST['old_name']) && strlen(trim($_POST['old_name'])) > 0) {
  96          $folder_data['OLD_TITLE'] = trim($_POST['old_name']);
  97      } else {
  98          $folder_data['OLD_TITLE'] = "";
  99      }
 100  
 101      if (isset($_POST['description']) && strlen(trim($_POST['description'])) > 0) {
 102          $folder_data['DESCRIPTION'] = trim($_POST['description']);
 103      } else {
 104          $folder_data['DESCRIPTION'] = "";
 105      }
 106  
 107      if (isset($_POST['old_description']) && strlen(trim($_POST['old_description'])) > 0) {
 108          $folder_data['OLD_DESCRIPTION'] = trim($_POST['old_description']);
 109      } else {
 110          $folder_data['OLD_DESCRIPTION'] = "";
 111      }
 112  
 113      if (isset($_POST['prefix']) && strlen(trim($_POST['prefix'])) > 0) {
 114          $folder_data['PREFIX'] = trim($_POST['prefix']);
 115      } else {
 116          $folder_data['PREFIX'] = "";
 117      }
 118  
 119      if (isset($_POST['old_prefix']) && strlen(trim($_POST['old_prefix'])) > 0) {
 120          $folder_data['OLD_PREFIX'] = trim($_POST['old_prefix']);
 121      } else {
 122          $folder_data['OLD_PREFIX'] = "";
 123      }
 124  
 125      if (isset($_POST['allowed_types']) && is_numeric($_POST['allowed_types'])) {
 126          $folder_data['ALLOWED_TYPES'] = $_POST['allowed_types'];
 127      }
 128  
 129      if (isset($_POST['old_allowed_types']) && is_numeric($_POST['old_allowed_types'])) {
 130          $folder_data['OLD_ALLOWED_TYPES'] = $_POST['allowed_types'];
 131      }
 132  
 133      if (isset($_POST['position']) && is_numeric($_POST['position'])) {
 134          $folder_data['POSITION'] = $_POST['position'];
 135      }
 136  
 137      if (isset($_POST['old_perms']) && is_numeric($_POST['old_perms'])) {
 138          $folder_data['OLD_PERMS'] = (double)$_POST['old_perms'];
 139      }
 140  
 141      $t_post_read = (double)(isset($_POST['t_post_read'])) ? $_POST['t_post_read'] : 0;
 142      $t_post_create = (double)(isset($_POST['t_post_create'])) ? $_POST['t_post_create'] : 0;
 143      $t_thread_create = (double)(isset($_POST['t_thread_create'])) ? $_POST['t_thread_create'] : 0;
 144      $t_post_edit = (double)(isset($_POST['t_post_edit'])) ? $_POST['t_post_edit'] : 0;
 145      $t_post_delete = (double)(isset($_POST['t_post_delete'])) ? $_POST['t_post_delete'] : 0;
 146      $t_post_attach = (double)(isset($_POST['t_post_attach'])) ? $_POST['t_post_attach'] : 0;
 147      $t_post_html = (double)(isset($_POST['t_post_html'])) ? $_POST['t_post_html'] : 0;
 148      $t_post_sig = (double)(isset($_POST['t_post_sig'])) ? $_POST['t_post_sig'] : 0;
 149      $t_guest_access = (double)(isset($_POST['t_guest_access'])) ? $_POST['t_guest_access'] : 0;
 150      $t_post_approval = (double)(isset($_POST['t_post_approval'])) ? $_POST['t_post_approval'] : 0;
 151      $t_thread_move = (double)(isset($_POST['t_thread_move'])) ? $_POST['t_thread_move'] : 0;
 152  
 153      // We need a double / float here because we're storing a high bit value
 154      $t_permissions = (double)$t_post_read | $t_post_create | $t_thread_create;
 155      $t_permissions = (double)$t_permissions | $t_post_edit | $t_post_delete | $t_post_attach;
 156      $t_permissions = (double)$t_permissions | $t_post_html | $t_post_sig | $t_guest_access;
 157      $t_permissions = (double)$t_permissions | $t_post_approval | $t_thread_move;
 158  
 159      $folder_data['PERM'] = (double)$t_permissions;
 160  
 161      if ($valid) {
 162  
 163          if (folder_update($fid, $folder_data)) {
 164  
 165              admin_add_log_entry(EDIT_THREAD_OPTIONS, array($folder_data['TITLE']));
 166  
 167              if (isset($_POST['move_confirm']) && $_POST['move_confirm'] == "Y") {
 168  
 169                  if (isset($_POST['fid_move']) && is_numeric($_POST['fid_move'])) {
 170  
 171                      $fid_move = $_POST['fid_move'];
 172  
 173                      if (($fid != $fid_move) && ($new_folder_title = folder_get_title($fid_move))) {
 174  
 175                          if (folder_move_threads($fid, $fid_move)) {
 176  
 177                              admin_add_log_entry(MOVED_THREADS, array($folder_data['TITLE'], $new_folder_title));
 178  
 179                          } else {
 180  
 181                              $error_msg_array[] = gettext("Failed to move threads to specified folder");
 182                              $valid = false;
 183                          }
 184                      }
 185                  }
 186              }
 187  
 188              if (isset($_POST['t_reset_user_perms']) && $_POST['t_reset_user_perms'] == "Y" && isset($_POST['t_reset_user_perms_con']) && $_POST['t_reset_user_perms_con'] == "Y") {
 189  
 190                  if (!perm_folder_reset_user_permissions($fid)) {
 191  
 192                      $error_msg_array[] = gettext("Failed to reset user permissions");
 193                      $valid = false;
 194                  }
 195              }
 196  
 197          } else {
 198  
 199              $error_msg_array[] = gettext("Failed to update folder");
 200              $valid = false;
 201          }
 202  
 203          if ($valid) {
 204  
 205              header_redirect("admin_folders.php?webtag=$webtag&edited=true&page=$page");
 206              exit;
 207          }
 208      }
 209  }
 210  
 211  if (!($folder_data = folder_get($fid))) {
 212      html_draw_error(gettext("Invalid Folder ID. Check that a folder with this ID exists!"), 'admin_folders.php', 'get', array('back' => gettext("Back")), array('page' => $page));
 213  }
 214  
 215  if (isset($_POST['delete'])) {
 216  
 217      if ($folder_data['THREAD_COUNT'] == 0) {
 218  
 219          if (folder_delete($fid)) {
 220  
 221              admin_add_log_entry(DELETE_FOLDER, array($folder_data['TITLE']));
 222              header_redirect("admin_folders.php?webtag=$webtag&deleted=true&page=$page");
 223              exit;
 224  
 225          } else {
 226  
 227              $error_msg_array[] = gettext("Failed to delete folder.");
 228              $valid = false;
 229          }
 230  
 231      } else {
 232  
 233          $error_msg_array[] = gettext("Cannot delete folders that still contain threads.");
 234          $valid = false;
 235      }
 236  }
 237  
 238  // Make the arrays for the allow post types dropdown
 239  $allowed_post_types = array(
 240      FOLDER_ALLOW_NORMAL_THREAD => gettext("Normal threads only"),
 241      FOLDER_ALLOW_POLL_THREAD => gettext("Poll threads only"),
 242      FOLDER_ALLOW_ALL_THREAD => gettext("Both thread types")
 243  );
 244  
 245  html_draw_top(sprintf('title=%s', sprintf(gettext("Admin - Manage Folders - Edit Folder - %s"), $folder_data['TITLE'])), 'class=window_title', 'main_css=admin.css');
 246  
 247  echo "<h1>", gettext("Admin"), "<img src=\"", html_style_image('separator.png'), "\" alt=\"\" border=\"0\" />", gettext("Manage Folders"), "<img src=\"", html_style_image('separator.png'), "\" alt=\"\" border=\"0\" />", gettext("Edit Folder"), "<img src=\"", html_style_image('separator.png'), "\" alt=\"\" border=\"0\" />", word_filter_add_ob_tags($folder_data['TITLE'], true), "</h1>\n";
 248  
 249  if (isset($error_msg_array) && sizeof($error_msg_array) > 0) {
 250      html_display_error_array($error_msg_array, '800', 'center');
 251  }
 252  
 253  echo "<br />\n";
 254  echo "<div align=\"center\">\n";
 255  echo "  <form accept-charset=\"utf-8\" name=\"thread_options\" action=\"admin_folder_edit.php\" method=\"post\" target=\"_self\">\n";
 256  echo "  ", form_input_hidden("webtag", htmlentities_array($webtag)), "\n";
 257  echo "  ", form_input_hidden('fid', htmlentities_array($fid)), "\n";
 258  echo "  ", form_input_hidden('position', htmlentities_array($folder_data['POSITION'])), "\n";
 259  echo "  ", form_input_hidden('webtag', htmlentities_array($webtag)), "\n";
 260  echo "  ", form_input_hidden('page', htmlentities_array($page)), "\n";
 261  echo "  <table cellpadding=\"0\" cellspacing=\"0\" width=\"800\">\n";
 262  echo "    <tr>\n";
 263  echo "      <td align=\"left\">\n";
 264  echo "        <table class=\"box\" width=\"100%\">\n";
 265  echo "          <tr>\n";
 266  echo "            <td align=\"left\" class=\"posthead\">\n";
 267  echo "              <table class=\"posthead\" width=\"100%\">\n";
 268  echo "                <tr>\n";
 269  echo "                  <td align=\"left\" class=\"subhead\" colspan=\"2\">", gettext("Name and Description"), "</td>\n";
 270  echo "                </tr>\n";
 271  echo "                <tr>\n";
 272  echo "                  <td align=\"center\">\n";
 273  echo "                    <table class=\"posthead\" width=\"95%\">\n";
 274  echo "                      <tr>\n";
 275  echo "                        <td align=\"left\" width=\"200\" class=\"posthead\">", gettext("Name"), ":</td>\n";
 276  echo "                        <td align=\"left\">", form_input_text("name", htmlentities_array($folder_data['TITLE']), 30, 32), form_input_hidden("old_name", htmlentities_array($folder_data['TITLE'])), "</td>\n";
 277  echo "                      </tr>\n";
 278  echo "                      <tr>\n";
 279  echo "                        <td align=\"left\" width=\"200\" class=\"posthead\">", gettext("Description"), ":</td>\n";
 280  echo "                        <td align=\"left\">", form_input_text("description", htmlentities_array($folder_data['DESCRIPTION']), 30, 255), form_input_hidden("old_description", htmlentities_array($folder_data['DESCRIPTION'])), "</td>\n";
 281  echo "                      </tr>\n";
 282  echo "                      <tr>\n";
 283  echo "                        <td align=\"left\" width=\"200\" class=\"posthead\">", gettext("Thread Title Prefix"), ":</td>\n";
 284  echo "                        <td align=\"left\">", form_input_text("prefix", htmlentities_array($folder_data['PREFIX']), 30, 16), form_input_hidden("old_prefix", htmlentities_array($folder_data['PREFIX'])), "</td>\n";
 285  echo "                      </tr>\n";
 286  echo "                    </table>\n";
 287  echo "                  </td>\n";
 288  echo "                </tr>\n";
 289  echo "                <tr>\n";
 290  echo "                  <td align=\"left\">&nbsp;</td>\n";
 291  echo "                </tr>\n";
 292  echo "              </table>\n";
 293  echo "            </td>\n";
 294  echo "          </tr>\n";
 295  echo "        </table>\n";
 296  echo "        <br />\n";
 297  
 298  if (($folder_dropdown = folder_draw_dropdown_all($folder_data['FID'], 'fid_move', "", "", "post_folder_dropdown")) !== false) {
 299  
 300      echo "        <table class=\"box\" width=\"100%\">\n";
 301      echo "          <tr>\n";
 302      echo "            <td align=\"left\" class=\"posthead\">\n";
 303      echo "              <table class=\"posthead\" width=\"100%\">\n";
 304      echo "                <tr>\n";
 305      echo "                  <td align=\"left\" class=\"subhead\" colspan=\"2\">", gettext("Move Threads"), "</td>\n";
 306      echo "                </tr>\n";
 307      echo "                <tr>\n";
 308      echo "                  <td align=\"center\">\n";
 309      echo "                    <table class=\"posthead\" width=\"95%\">\n";
 310      echo "                      <tr>\n";
 311      echo "                        <td align=\"left\" width=\"200\" class=\"posthead\">", gettext("Move threads to folder"), ":</td>\n";
 312      echo "                        <td align=\"left\">", $folder_dropdown, "</td>\n";
 313      echo "                      </tr>\n";
 314      echo "                      <tr>\n";
 315      echo "                        <td align=\"left\">&nbsp;</td>\n";
 316      echo "                        <td align=\"left\">", form_checkbox("move_confirm", "Y", gettext("Confirm")), "</td>\n";
 317      echo "                      </tr>\n";
 318      echo "                    </table>\n";
 319      echo "                  </td>\n";
 320      echo "                </tr>\n";
 321      echo "                <tr>\n";
 322      echo "                  <td align=\"left\">&nbsp;</td>\n";
 323      echo "                </tr>\n";
 324      echo "              </table>\n";
 325      echo "            </td>\n";
 326      echo "          </tr>\n";
 327      echo "        </table>\n";
 328      echo "        <br />\n";
 329  }
 330  
 331  echo "        ", form_input_hidden("old_perms", htmlentities_array($folder_data['PERM'])), "\n";
 332  echo "        <table class=\"box\" width=\"100%\">\n";
 333  echo "          <tr>\n";
 334  echo "            <td align=\"left\" class=\"posthead\">\n";
 335  echo "              <table class=\"posthead\" width=\"100%\">\n";
 336  echo "                <tr>\n";
 337  echo "                  <td align=\"left\" class=\"subhead\">", gettext("Permissions"), "</td>\n";
 338  echo "                </tr>\n";
 339  echo "                <tr>\n";
 340  echo "                  <td align=\"center\">\n";
 341  echo "                    <table class=\"posthead\" width=\"95%\">\n";
 342  echo "                      <tr>\n";
 343  echo "                        <td align=\"left\">", form_checkbox("t_post_read", USER_PERM_POST_READ, gettext("Read Posts"), $folder_data['PERM'] & USER_PERM_POST_READ), "</td>\n";
 344  echo "                        <td align=\"left\">", form_checkbox("t_post_create", USER_PERM_POST_CREATE, gettext("Reply to threads"), $folder_data['PERM'] & USER_PERM_POST_CREATE), "</td>\n";
 345  echo "                      </tr>\n";
 346  echo "                      <tr>\n";
 347  echo "                        <td align=\"left\">", form_checkbox("t_thread_create", USER_PERM_THREAD_CREATE, gettext("Create new threads"), $folder_data['PERM'] & USER_PERM_THREAD_CREATE), "</td>\n";
 348  echo "                        <td align=\"left\">", form_checkbox("t_post_edit", USER_PERM_POST_EDIT, gettext("Edit posts"), $folder_data['PERM'] & USER_PERM_POST_EDIT), "</td>\n";
 349  echo "                      </tr>\n";
 350  echo "                      <tr>\n";
 351  echo "                        <td align=\"left\">", form_checkbox("t_post_delete", USER_PERM_POST_DELETE, gettext("Delete posts"), $folder_data['PERM'] & USER_PERM_POST_DELETE), "</td>\n";
 352  echo "                        <td align=\"left\">", form_checkbox("t_post_attach", USER_PERM_POST_ATTACHMENTS, gettext("Upload attachments"), $folder_data['PERM'] & USER_PERM_POST_ATTACHMENTS), "</td>\n";
 353  echo "                      </tr>\n";
 354  echo "                      <tr>\n";
 355  echo "                        <td align=\"left\">", form_checkbox("t_post_html", USER_PERM_HTML_POSTING, gettext("Post in HTML"), $folder_data['PERM'] & USER_PERM_HTML_POSTING), "</td>\n";
 356  echo "                        <td align=\"left\">", form_checkbox("t_post_sig", USER_PERM_SIGNATURE, gettext("Post a signature"), $folder_data['PERM'] & USER_PERM_SIGNATURE), "</td>\n";
 357  echo "                      </tr>\n";
 358  echo "                      <tr>\n";
 359  echo "                        <td align=\"left\">", form_checkbox("t_guest_access", USER_PERM_GUEST_ACCESS, gettext("Allow Guest Access"), $folder_data['PERM'] & USER_PERM_GUEST_ACCESS), "</td>\n";
 360  echo "                        <td align=\"left\">", form_checkbox("t_post_approval", USER_PERM_POST_APPROVAL, gettext("Require Post Approval"), $folder_data['PERM'] & USER_PERM_POST_APPROVAL), "</td>\n";
 361  echo "                      </tr>\n";
 362  echo "                      <tr>\n";
 363  echo "                        <td align=\"left\">", form_checkbox("t_thread_move", USER_PERM_THREAD_MOVE, gettext("Move threads to folder"), $folder_data['PERM'] & USER_PERM_THREAD_MOVE), "</td>\n";
 364  echo "                        <td align=\"left\">&nbsp;</td>\n";
 365  echo "                      </tr>\n";
 366  echo "                    </table>\n";
 367  echo "                  </td>\n";
 368  echo "                </tr>\n";
 369  echo "                <tr>\n";
 370  echo "                  <td align=\"left\">&nbsp;</td>\n";
 371  echo "                </tr>\n";
 372  echo "              </table>\n";
 373  echo "            </td>\n";
 374  echo "          </tr>\n";
 375  echo "        </table>\n";
 376  echo "        <br />\n";
 377  echo "        <table class=\"box\" width=\"100%\">\n";
 378  echo "          <tr>\n";
 379  echo "            <td align=\"left\" class=\"posthead\">\n";
 380  echo "              <table class=\"posthead\" width=\"100%\">\n";
 381  echo "                <tr>\n";
 382  echo "                  <td align=\"left\" class=\"subhead\">", gettext("Reset user permissions"), "</td>\n";
 383  echo "                </tr>\n";
 384  echo "                <tr>\n";
 385  echo "                  <td align=\"center\">\n";
 386  echo "                    <table class=\"posthead\" width=\"95%\">\n";
 387  echo "                      <tr>\n";
 388  echo "                        <td align=\"left\" width=\"50%\">Reset User Perms:</td>\n";
 389  echo "                        <td align=\"left\">", form_radio("t_reset_user_perms", "Y", gettext("Yes")), "</td>\n";
 390  echo "                      </tr>\n";
 391  echo "                      <tr>\n";
 392  echo "                        <td align=\"left\">&nbsp;</td>\n";
 393  echo "                        <td align=\"left\">", form_radio("t_reset_user_perms", "N", gettext("No"), true), "</td>\n";
 394  echo "                      </tr>\n";
 395  echo "                      <tr>\n";
 396  echo "                        <td align=\"left\">&nbsp;</td>\n";
 397  echo "                        <td align=\"left\">", form_checkbox("t_reset_user_perms_con", "Y", gettext("Confirm")), "</td>\n";
 398  echo "                      </tr>\n";
 399  echo "                    </table>\n";
 400  echo "                  </td>\n";
 401  echo "                </tr>\n";
 402  echo "                <tr>\n";
 403  echo "                  <td align=\"left\">&nbsp;</td>\n";
 404  echo "                </tr>\n";
 405  echo "              </table>\n";
 406  echo "            </td>\n";
 407  echo "          </tr>\n";
 408  echo "        </table>\n";
 409  echo "        <br />\n";
 410  echo "        <table class=\"box\" width=\"100%\">\n";
 411  echo "          <tr>\n";
 412  echo "            <td align=\"left\" class=\"posthead\">\n";
 413  echo "              <table class=\"posthead\" width=\"100%\">\n";
 414  echo "                <tr>\n";
 415  echo "                  <td align=\"left\" class=\"subhead\" colspan=\"2\">", gettext("Allow"), "</td>\n";
 416  echo "                </tr>\n";
 417  echo "                <tr>\n";
 418  echo "                  <td align=\"center\">\n";
 419  echo "                    <table class=\"posthead\" width=\"95%\">\n";
 420  echo "                      <tr>\n";
 421  echo "                        <td align=\"left\" width=\"200\" class=\"posthead\">", gettext("Allow folder to contain"), ":</td>\n";
 422  echo "                        <td align=\"left\">", form_dropdown_array("allowed_types", $allowed_post_types, isset($folder_data['ALLOWED_TYPES']) ? $folder_data['ALLOWED_TYPES'] : FOLDER_ALLOW_NORMAL_THREAD | FOLDER_ALLOW_POLL_THREAD), form_input_hidden("old_allowed_types", isset($folder_data['ALLOWED_TYPES']) ? htmlentities_array($folder_data['ALLOWED_TYPES']) : 0), "</td>\n";
 423  echo "                      </tr>\n";
 424  echo "                    </table>\n";
 425  echo "                  </td>\n";
 426  echo "                </tr>\n";
 427  echo "                <tr>\n";
 428  echo "                  <td align=\"left\">&nbsp;</td>\n";
 429  echo "                </tr>\n";
 430  echo "              </table>\n";
 431  echo "            </td>\n";
 432  echo "          </tr>\n";
 433  echo "        </table>\n";
 434  echo "      </td>\n";
 435  echo "    </tr>\n";
 436  echo "    <tr>\n";
 437  echo "      <td align=\"left\">&nbsp;</td>\n";
 438  echo "    </tr>\n";
 439  echo "    <tr>\n";
 440  echo "      <td align=\"center\">", form_submit("save", gettext("Save")), "&nbsp;", form_submit("delete", gettext("Delete")), "&nbsp;", form_submit("cancel", gettext("Cancel")), "</td>\n";
 441  echo "    </tr>\n";
 442  echo "  </table>\n";
 443  echo "  </form>\n";
 444  echo "</div>\n";
 445  
 446  html_draw_bottom();

title

Description

title

Description

title

Description

title

title

Body