home *** CD-ROM | disk | FTP | other *** search
/ Practical Internet Web Designer 90 / PIWD90.iso / pc / contents / ecommerce / software / osCommerce.exe / oscommerce-2.2ms2 / catalog / admin / newsletters.php < prev    next >
PHP Script  |  2003-06-29  |  21KB  |  406 lines

  1. <?php
  2. /*
  3.   $Id: newsletters.php,v 1.17 2003/06/29 22:50:52 hpdl Exp $
  4.  
  5.   osCommerce, Open Source E-Commerce Solutions
  6.   http://www.oscommerce.com
  7.  
  8.   Copyright (c) 2003 osCommerce
  9.  
  10.   Released under the GNU General Public License
  11. */
  12.  
  13.   require('includes/application_top.php');
  14.  
  15.   $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');
  16.  
  17.   if (tep_not_null($action)) {
  18.     switch ($action) {
  19.       case 'lock':
  20.       case 'unlock':
  21.         $newsletter_id = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  22.         $status = (($action == 'lock') ? '1' : '0');
  23.  
  24.         tep_db_query("update " . TABLE_NEWSLETTERS . " set locked = '" . $status . "' where newsletters_id = '" . (int)$newsletter_id . "'");
  25.  
  26.         tep_redirect(tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']));
  27.         break;
  28.       case 'insert':
  29.       case 'update':
  30.         if (isset($HTTP_POST_VARS['newsletter_id'])) $newsletter_id = tep_db_prepare_input($HTTP_POST_VARS['newsletter_id']);
  31.         $newsletter_module = tep_db_prepare_input($HTTP_POST_VARS['module']);
  32.         $title = tep_db_prepare_input($HTTP_POST_VARS['title']);
  33.         $content = tep_db_prepare_input($HTTP_POST_VARS['content']);
  34.  
  35.         $newsletter_error = false;
  36.         if (empty($title)) {
  37.           $messageStack->add(ERROR_NEWSLETTER_TITLE, 'error');
  38.           $newsletter_error = true;
  39.         }
  40.  
  41.         if (empty($module)) {
  42.           $messageStack->add(ERROR_NEWSLETTER_MODULE, 'error');
  43.           $newsletter_error = true;
  44.         }
  45.  
  46.         if ($newsletter_error == false) {
  47.           $sql_data_array = array('title' => $title,
  48.                                   'content' => $content,
  49.                                   'module' => $newsletter_module);
  50.  
  51.           if ($action == 'insert') {
  52.             $sql_data_array['date_added'] = 'now()';
  53.             $sql_data_array['status'] = '0';
  54.             $sql_data_array['locked'] = '0';
  55.  
  56.             tep_db_perform(TABLE_NEWSLETTERS, $sql_data_array);
  57.             $newsletter_id = tep_db_insert_id();
  58.           } elseif ($action == 'update') {
  59.             tep_db_perform(TABLE_NEWSLETTERS, $sql_data_array, 'update', "newsletters_id = '" . (int)$newsletter_id . "'");
  60.           }
  61.  
  62.           tep_redirect(tep_href_link(FILENAME_NEWSLETTERS, (isset($HTTP_GET_VARS['page']) ? 'page=' . $HTTP_GET_VARS['page'] . '&' : '') . 'nID=' . $newsletter_id));
  63.         } else {
  64.           $action = 'new';
  65.         }
  66.         break;
  67.       case 'deleteconfirm':
  68.         $newsletter_id = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  69.  
  70.         tep_db_query("delete from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$newsletter_id . "'");
  71.  
  72.         tep_redirect(tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page']));
  73.         break;
  74.       case 'delete':
  75.       case 'new': if (!isset($HTTP_GET_VARS['nID'])) break;
  76.       case 'send':
  77.       case 'confirm_send':
  78.         $newsletter_id = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  79.  
  80.         $check_query = tep_db_query("select locked from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$newsletter_id . "'");
  81.         $check = tep_db_fetch_array($check_query);
  82.  
  83.         if ($check['locked'] < 1) {
  84.           switch ($action) {
  85.             case 'delete': $error = ERROR_REMOVE_UNLOCKED_NEWSLETTER; break;
  86.             case 'new': $error = ERROR_EDIT_UNLOCKED_NEWSLETTER; break;
  87.             case 'send': $error = ERROR_SEND_UNLOCKED_NEWSLETTER; break;
  88.             case 'confirm_send': $error = ERROR_SEND_UNLOCKED_NEWSLETTER; break;
  89.           }
  90.  
  91.           $messageStack->add_session($error, 'error');
  92.  
  93.           tep_redirect(tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']));
  94.         }
  95.         break;
  96.     }
  97.   }
  98. ?>
  99. <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
  100. <html <?php echo HTML_PARAMS; ?>>
  101. <head>
  102. <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
  103. <title><?php echo TITLE; ?></title>
  104. <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
  105. <script language="javascript" src="includes/general.js"></script>
  106. </head>
  107. <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
  108. <div id="spiffycalendar" class="text"></div>
  109. <!-- header //-->
  110. <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
  111. <!-- header_eof //-->
  112.  
  113. <!-- body //-->
  114. <table border="0" width="100%" cellspacing="2" cellpadding="2">
  115.   <tr>
  116.     <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
  117. <!-- left_navigation //-->
  118. <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
  119. <!-- left_navigation_eof //-->
  120.     </table></td>
  121. <!-- body_text //-->
  122.     <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  123.       <tr>
  124.         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
  125.           <tr>
  126.             <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
  127.             <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
  128.           </tr>
  129.         </table></td>
  130.       </tr>
  131. <?php
  132.   if ($action == 'new') {
  133.     $form_action = 'insert';
  134.  
  135.     $parameters = array('title' => '',
  136.                         'content' => '',
  137.                         'module' => '');
  138.  
  139.     $nInfo = new objectInfo($parameters);
  140.  
  141.     if (isset($HTTP_GET_VARS['nID'])) {
  142.       $form_action = 'update';
  143.  
  144.       $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  145.  
  146.       $newsletter_query = tep_db_query("select title, content, module from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
  147.       $newsletter = tep_db_fetch_array($newsletter_query);
  148.  
  149.       $nInfo->objectInfo($newsletter);
  150.     } elseif ($HTTP_POST_VARS) {
  151.       $nInfo->objectInfo($HTTP_POST_VARS);
  152.     }
  153.  
  154.     $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
  155.     $directory_array = array();
  156.     if ($dir = dir(DIR_WS_MODULES . 'newsletters/')) {
  157.       while ($file = $dir->read()) {
  158.         if (!is_dir(DIR_WS_MODULES . 'newsletters/' . $file)) {
  159.           if (substr($file, strrpos($file, '.')) == $file_extension) {
  160.             $directory_array[] = $file;
  161.           }
  162.         }
  163.       }
  164.       sort($directory_array);
  165.       $dir->close();
  166.     }
  167.  
  168.     for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
  169.       $modules_array[] = array('id' => substr($directory_array[$i], 0, strrpos($directory_array[$i], '.')), 'text' => substr($directory_array[$i], 0, strrpos($directory_array[$i], '.')));
  170.     }
  171. ?>
  172.       <tr>
  173.         <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  174.       </tr>
  175.       <tr><?php echo tep_draw_form('newsletter', FILENAME_NEWSLETTERS, (isset($HTTP_GET_VARS['page']) ? 'page=' . $HTTP_GET_VARS['page'] . '&' : '') . 'action=' . $form_action); if ($form_action == 'update') echo tep_draw_hidden_field('newsletter_id', $nID); ?>
  176.         <td><table border="0" cellspacing="0" cellpadding="2">
  177.           <tr>
  178.             <td class="main"><?php echo TEXT_NEWSLETTER_MODULE; ?></td>
  179.             <td class="main"><?php echo tep_draw_pull_down_menu('module', $modules_array, $nInfo->module); ?></td>
  180.           </tr>
  181.           <tr>
  182.             <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  183.           </tr>
  184.           <tr>
  185.             <td class="main"><?php echo TEXT_NEWSLETTER_TITLE; ?></td>
  186.             <td class="main"><?php echo tep_draw_input_field('title', $nInfo->title, '', true); ?></td>
  187.           </tr>
  188.           <tr>
  189.             <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  190.           </tr>
  191.           <tr>
  192.             <td class="main" valign="top"><?php echo TEXT_NEWSLETTER_CONTENT; ?></td>
  193.             <td class="main"><?php echo tep_draw_textarea_field('content', 'soft', '100%', '20', $nInfo->content); ?></td>
  194.           </tr>
  195.         </table></td>
  196.       </tr>
  197.       <tr>
  198.         <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  199.       </tr>
  200.       <tr>
  201.         <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
  202.           <tr>
  203.             <td class="main" align="right"><?php echo (($form_action == 'insert') ? tep_image_submit('button_save.gif', IMAGE_SAVE) : tep_image_submit('button_update.gif', IMAGE_UPDATE)). '  <a href="' . tep_href_link(FILENAME_NEWSLETTERS, (isset($HTTP_GET_VARS['page']) ? 'page=' . $HTTP_GET_VARS['page'] . '&' : '') . (isset($HTTP_GET_VARS['nID']) ? 'nID=' . $HTTP_GET_VARS['nID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
  204.           </tr>
  205.         </table></td>
  206.       </form></tr>
  207. <?php
  208.   } elseif ($action == 'preview') {
  209.     $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  210.  
  211.     $newsletter_query = tep_db_query("select title, content, module from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
  212.     $newsletter = tep_db_fetch_array($newsletter_query);
  213.  
  214.     $nInfo = new objectInfo($newsletter);
  215. ?>
  216.       <tr>
  217.         <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
  218.       </tr>
  219.       <tr>
  220.         <td><tt><?php echo nl2br($nInfo->content); ?></tt></td>
  221.       </tr>
  222.       <tr>
  223.         <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
  224.       </tr>
  225. <?php
  226.   } elseif ($action == 'send') {
  227.     $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  228.  
  229.     $newsletter_query = tep_db_query("select title, content, module from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
  230.     $newsletter = tep_db_fetch_array($newsletter_query);
  231.  
  232.     $nInfo = new objectInfo($newsletter);
  233.  
  234.     include(DIR_WS_LANGUAGES . $language . '/modules/newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
  235.     include(DIR_WS_MODULES . 'newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
  236.     $module_name = $nInfo->module;
  237.     $module = new $module_name($nInfo->title, $nInfo->content);
  238. ?>
  239.       <tr>
  240.         <td><?php if ($module->show_choose_audience) { echo $module->choose_audience(); } else { echo $module->confirm(); } ?></td>
  241.       </tr>
  242. <?php
  243.   } elseif ($action == 'confirm') {
  244.     $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  245.  
  246.     $newsletter_query = tep_db_query("select title, content, module from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
  247.     $newsletter = tep_db_fetch_array($newsletter_query);
  248.  
  249.     $nInfo = new objectInfo($newsletter);
  250.  
  251.     include(DIR_WS_LANGUAGES . $language . '/modules/newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
  252.     include(DIR_WS_MODULES . 'newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
  253.     $module_name = $nInfo->module;
  254.     $module = new $module_name($nInfo->title, $nInfo->content);
  255. ?>
  256.       <tr>
  257.         <td><?php echo $module->confirm(); ?></td>
  258.       </tr>
  259. <?php
  260.   } elseif ($action == 'confirm_send') {
  261.     $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);
  262.  
  263.     $newsletter_query = tep_db_query("select newsletters_id, title, content, module from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
  264.     $newsletter = tep_db_fetch_array($newsletter_query);
  265.  
  266.     $nInfo = new objectInfo($newsletter);
  267.  
  268.     include(DIR_WS_LANGUAGES . $language . '/modules/newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
  269.     include(DIR_WS_MODULES . 'newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
  270.     $module_name = $nInfo->module;
  271.     $module = new $module_name($nInfo->title, $nInfo->content);
  272. ?>
  273.       <tr>
  274.         <td><table border="0" cellspacing="0" cellpadding="2">
  275.           <tr>
  276.             <td class="main" valign="middle"><?php echo tep_image(DIR_WS_IMAGES . 'ani_send_email.gif', IMAGE_ANI_SEND_EMAIL); ?></td>
  277.             <td class="main" valign="middle"><b><?php echo TEXT_PLEASE_WAIT; ?></b></td>
  278.           </tr>
  279.         </table></td>
  280.       </tr>
  281. <?php
  282.   tep_set_time_limit(0);
  283.   flush();
  284.   $module->send($nInfo->newsletters_id);
  285. ?>
  286.       <tr>
  287.         <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  288.       </tr>
  289.       <tr>
  290.         <td class="main"><font color="#ff0000"><b><?php echo TEXT_FINISHED_SENDING_EMAILS; ?></b></font></td>
  291.       </tr>
  292.       <tr>
  293.         <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  294.       </tr>
  295.       <tr>
  296.         <td><?php echo '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
  297.       </tr>
  298. <?php
  299.   } else {
  300. ?>
  301.       <tr>
  302.         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
  303.           <tr>
  304.             <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  305.               <tr class="dataTableHeadingRow">
  306.                 <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_NEWSLETTERS; ?></td>
  307.                 <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_SIZE; ?></td>
  308.                 <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_MODULE; ?></td>
  309.                 <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_SENT; ?></td>
  310.                 <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td>
  311.                 <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
  312.               </tr>
  313. <?php
  314.     $newsletters_query_raw = "select newsletters_id, title, length(content) as content_length, module, date_added, date_sent, status, locked from " . TABLE_NEWSLETTERS . " order by date_added desc";
  315.     $newsletters_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $newsletters_query_raw, $newsletters_query_numrows);
  316.     $newsletters_query = tep_db_query($newsletters_query_raw);
  317.     while ($newsletters = tep_db_fetch_array($newsletters_query)) {
  318.     if ((!isset($HTTP_GET_VARS['nID']) || (isset($HTTP_GET_VARS['nID']) && ($HTTP_GET_VARS['nID'] == $newsletters['newsletters_id']))) && !isset($nInfo) && (substr($action, 0, 3) != 'new')) {
  319.         $nInfo = new objectInfo($newsletters);
  320.       }
  321.  
  322.       if (isset($nInfo) && is_object($nInfo) && ($newsletters['newsletters_id'] == $nInfo->newsletters_id) ) {
  323.         echo '                  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=preview') . '\'">' . "\n";
  324.       } else {
  325.         echo '                  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $newsletters['newsletters_id']) . '\'">' . "\n";
  326.       }
  327. ?>
  328.                 <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $newsletters['newsletters_id'] . '&action=preview') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $newsletters['title']; ?></td>
  329.                 <td class="dataTableContent" align="right"><?php echo number_format($newsletters['content_length']) . ' bytes'; ?></td>
  330.                 <td class="dataTableContent" align="right"><?php echo $newsletters['module']; ?></td>
  331.                 <td class="dataTableContent" align="center"><?php if ($newsletters['status'] == '1') { echo tep_image(DIR_WS_ICONS . 'tick.gif', ICON_TICK); } else { echo tep_image(DIR_WS_ICONS . 'cross.gif', ICON_CROSS); } ?></td>
  332.                 <td class="dataTableContent" align="center"><?php if ($newsletters['locked'] > 0) { echo tep_image(DIR_WS_ICONS . 'locked.gif', ICON_LOCKED); } else { echo tep_image(DIR_WS_ICONS . 'unlocked.gif', ICON_UNLOCKED); } ?></td>
  333.                 <td class="dataTableContent" align="right"><?php if (isset($nInfo) && is_object($nInfo) && ($newsletters['newsletters_id'] == $nInfo->newsletters_id) ) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $newsletters['newsletters_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
  334.               </tr>
  335. <?php
  336.     }
  337. ?>
  338.               <tr>
  339.                 <td colspan="6"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  340.                   <tr>
  341.                     <td class="smallText" valign="top"><?php echo $newsletters_split->display_count($newsletters_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_NEWSLETTERS); ?></td>
  342.                     <td class="smallText" align="right"><?php echo $newsletters_split->display_links($newsletters_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page']); ?></td>
  343.                   </tr>
  344.                   <tr>
  345.                     <td align="right" colspan="2"><?php echo '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'action=new') . '">' . tep_image_button('button_new_newsletter.gif', IMAGE_NEW_NEWSLETTER) . '</a>'; ?></td>
  346.                   </tr>
  347.                 </table></td>
  348.               </tr>
  349.             </table></td>
  350. <?php
  351.   $heading = array();
  352.   $contents = array();
  353.  
  354.   switch ($action) {
  355.     case 'delete':
  356.       $heading[] = array('text' => '<b>' . $nInfo->title . '</b>');
  357.  
  358.       $contents = array('form' => tep_draw_form('newsletters', FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=deleteconfirm'));
  359.       $contents[] = array('text' => TEXT_INFO_DELETE_INTRO);
  360.       $contents[] = array('text' => '<br><b>' . $nInfo->title . '</b>');
  361.       $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
  362.       break;
  363.     default:
  364.       if (is_object($nInfo)) {
  365.         $heading[] = array('text' => '<b>' . $nInfo->title . '</b>');
  366.  
  367.         if ($nInfo->locked > 0) {
  368.           $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=new') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=preview') . '">' . tep_image_button('button_preview.gif', IMAGE_PREVIEW) . '</a> <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=send') . '">' . tep_image_button('button_send.gif', IMAGE_SEND) . '</a> <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=unlock') . '">' . tep_image_button('button_unlock.gif', IMAGE_UNLOCK) . '</a>');
  369.         } else {
  370.           $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=preview') . '">' . tep_image_button('button_preview.gif', IMAGE_PREVIEW) . '</a> <a href="' . tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $nInfo->newsletters_id . '&action=lock') . '">' . tep_image_button('button_lock.gif', IMAGE_LOCK) . '</a>');
  371.         }
  372.         $contents[] = array('text' => '<br>' . TEXT_NEWSLETTER_DATE_ADDED . ' ' . tep_date_short($nInfo->date_added));
  373.         if ($nInfo->status == '1') $contents[] = array('text' => TEXT_NEWSLETTER_DATE_SENT . ' ' . tep_date_short($nInfo->date_sent));
  374.       }
  375.       break;
  376.   }
  377.  
  378.   if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
  379.     echo '            <td width="25%" valign="top">' . "\n";
  380.  
  381.     $box = new box;
  382.     echo $box->infoBox($heading, $contents);
  383.  
  384.     echo '            </td>' . "\n";
  385.   }
  386. ?>
  387.           </tr>
  388.         </table></td>
  389.       </tr>
  390. <?php
  391.   }
  392. ?>
  393.     </table></td>
  394. <!-- body_text_eof //-->
  395.   </tr>
  396. </table>
  397. <!-- body_eof //-->
  398.  
  399. <!-- footer //-->
  400. <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
  401. <!-- footer_eof //-->
  402. <br>
  403. </body>
  404. </html>
  405. <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
  406.