示例#1
0
                 if (file_exists(DIR_FS_BACKUP . $backup_file)) {
                     @exec('gzip ' . DIR_FS_BACKUP . $backup_file);
                 }
                 break;
             case 'zip':
                 @exec(LOCAL_EXE_ZIP . ' -j ' . DIR_FS_BACKUP . $backup_file . '.zip ' . DIR_FS_BACKUP . $backup_file);
                 if (file_exists(DIR_FS_BACKUP . $backup_file) && file_exists(DIR_FS_BACKUP . $backup_file . 'zip')) {
                     unlink(DIR_FS_BACKUP . $backup_file);
                 }
         }
     }
     zen_redirect(zen_href_link(FILENAME_BACKUP_MYSQL));
     break;
 case 'restorenow':
 case 'restorelocalnow':
     zen_set_time_limit(300);
     $specified_restore_file = isset($_GET['file']) ? $_GET['file'] : '';
     if ($specified_restore_file != '' && file_exists(DIR_FS_BACKUP . $specified_restore_file)) {
         $restore_file = DIR_FS_BACKUP . $specified_restore_file;
         $extension = substr($specified_restore_file, -3);
         //determine file format and unzip if needed
         if ($extension == 'sql' || $extension == '.gz' || $extension == 'zip') {
             switch ($extension) {
                 case 'sql':
                     $restore_from = $restore_file;
                     $remove_raw = false;
                     break;
                 case '.gz':
                     $restore_from = substr($restore_file, 0, -3);
                     exec(LOCAL_EXE_GUNZIP . ' ' . $restore_file . ' -c > ' . $restore_from);
                     $remove_raw = true;
     $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution');
     zen_redirect(zen_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));
 }
 // future cat specific deletion
 $delete_linked = 'true';
 if ($_POST['delete_linked'] == 'delete_linked_no') {
     $delete_linked = 'false';
 } else {
     $delete_linked = 'true';
 }
 // delete category and products
 if (isset($_POST['categories_id'])) {
     $categories_id = zen_db_prepare_input($_POST['categories_id']);
     // create list of any subcategories in the selected category,
     $categories = zen_get_category_tree($categories_id, '', '0', '', true);
     zen_set_time_limit(600);
     // loop through this cat and subcats for delete-processing.
     for ($i = 0, $n = sizeof($categories); $i < $n; $i++) {
         $sql = "select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id='" . $categories[$i]['id'] . "'";
         $category_products = $db->Execute($sql);
         while (!$category_products->EOF) {
             $cascaded_prod_id_for_delete = $category_products->fields['products_id'];
             $cascaded_prod_cat_for_delete = array();
             $cascaded_prod_cat_for_delete[] = $categories[$i]['id'];
             //echo 'processing product_id: ' . $cascaded_prod_id_for_delete . ' in category: ' . $cascaded_prod_cat_for_delete . '<br>';
             // determine product-type-specific override script for this product
             $product_type = zen_get_products_type($category_products->fields['products_id']);
             // now loop thru the delete_product_confirm script for each product in the current category
             if (file_exists(DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php')) {
                 require DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php';
             } else {
示例#3
0
require DIR_WS_CLASSES . 'box.php';
// initialize the message stack for output messages
require DIR_WS_CLASSES . 'message_stack.php';
$messageStack = new messageStack();
//  split-page-results
//  require(DIR_FS_CATALOG . DIR_WS_CLASSES . 'split_page_results.php');
require DIR_WS_CLASSES . 'split_page_results.php';
// entry/item info classes
require DIR_WS_CLASSES . 'object_info.php';
// email classes
require DIR_WS_CLASSES . 'mime.php';
require DIR_FS_CATALOG . DIR_WS_CLASSES . 'email.php';
// file uploading class
require DIR_WS_CLASSES . 'upload.php';
// set a default time limit
zen_set_time_limit(GLOBAL_SET_TIME_LIMIT);
// auto activate and expire banners
require DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'banner.php';
zen_activate_banners();
zen_expire_banners();
// auto expire special products
require DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'specials.php';
zen_start_specials();
zen_expire_specials();
// auto expire featured products
require DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'featured.php';
zen_start_featured();
zen_expire_featured();
// auto expire salemaker sales
require DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'salemaker.php';
zen_start_salemaker();
function import_subscriptions($delim = ',', $encl = false, $sample = '', $def_format = 'TEXT', $header_row = true)
{
    global $db;
    $email_elem = false;
    $format_elem = false;
    $error = '';
    $sample_arr = explode(' ', trim($sample));
    $elems = count($sample_arr);
    $email_elem = array_search('email', $sample_arr);
    $format_elem = array_search('format', $sample_arr);
    if ($email_elem === false) {
        $error = 'Upload failed: No email element specified.';
    }
    $import_file = $_FILES['subscriber_import_file']['tmp_name'];
    $import_error = $_FILES['subscriber_import_file']['error'];
    if (!empty($import_error)) {
        switch ($import_error) {
            case 1:
            case 2:
                $error = 'Upload failed: The uploaded file exceeds the upload_max_filesize<br/>';
                break;
            case 3:
                $error = 'Upload failed: The uploaded file was only partially uploaded.<br/>';
                break;
            case 4:
                $error = 'Upload failed: No file was uploaded.<br/>';
                break;
            case 6:
                $error = 'Upload failed: Missing a temporary folder.<br/>';
                break;
            default:
                $error = 'Upload failed: Unknown error uploading file.<br />';
                break;
        }
    } elseif (empty($import_file)) {
        $error = 'Upload failed: File not found/uploaded.<br />';
        return false;
    }
    if (empty($error)) {
        switch ($delim) {
            case '\\n':
                $delim = "\n";
                break;
            case '\\t':
                $delim = "\t";
                break;
            case '\\a':
                $delim = "\\a";
                break;
            case ' ':
            case '':
                $delim = "\t";
                break;
        }
        $row = 1;
        $imported = 0;
        $handle = fopen($import_file, "r");
        zen_set_time_limit(600);
        for ($row = 1; ($data = fgetcsv($handle, 10000, $delim)) !== FALSE; $row++) {
            if (count($data) == 1 && strlen($data[0]) < 3) {
                /* empty row */
            } elseif ($header_row && $row == 1) {
            } else {
                $ea = empty($data[$email_elem]) ? '' : $data[$email_elem];
                $ef = !empty($data[$format_elem]) && in_array(strtoupper($data[$format_elem]), array('HTML', 'TEXT')) ? strtoupper($data[$format_elem]) : $def_format;
                if (!empty($ea)) {
                    $db->Execute("REPLACE INTO " . TABLE_SUBSCRIBERS . " ( email_address, email_format, confirmed, subscribed_date ) VALUES ( '{$ea}', '{$ef}', '1', NOW() )");
                    $imported++;
                }
            }
        }
        fclose($handle);
    }
    return array($imported, $error);
}
示例#5
0
// initialize the message stack for output messages
require_once DIR_WS_CLASSES . 'message_stack.php';
$messageStack = new messageStack();
$gBitSmarty->assign_by_ref('messageStack', $messageStack);
//	split-page-results
//	require_once(DIR_FS_CATALOG . DIR_WS_CLASSES . 'split_page_results.php');
require_once DIR_WS_CLASSES . 'split_page_results.php';
// entry/item info classes
require_once DIR_WS_CLASSES . 'object_info.php';
// email classes
require_once DIR_WS_CLASSES . 'mime.php';
require_once DIR_FS_CATALOG . DIR_WS_CLASSES . 'email.php';
// file uploading class
require_once DIR_WS_CLASSES . 'upload.php';
// set a default time limit
zen_set_time_limit($gCommerceSystem->getConfig('GLOBAL_SET_TIME_LIMIT', 600));
// auto activate and expire banners
require_once DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'banner.php';
zen_activate_banners();
zen_expire_banners();
// auto expire special products
require_once DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'specials.php';
zen_start_specials();
zen_expire_specials();
// auto expire featured products
require_once DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'featured.php';
zen_start_featured();
zen_expire_featured();
// auto expire salemaker sales
require_once DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'salemaker.php';
zen_start_salemaker();
 function delete_category($categories_id)
 {
     global $db, $zc_products;
     // future cat specific deletion
     $delete_linked = 'true';
     if ($_POST['delete_linked'] == 'delete_linked_no') {
         $delete_linked = 'false';
     } else {
         $delete_linked = 'true';
     }
     // delete category and products
     $categories_id = zen_db_prepare_input($categories_id);
     // create list of any subcategories in the selected category,
     $categories = zen_get_category_tree($categories_id, '', '0', '', true);
     zen_set_time_limit(600);
     // loop through this cat and subcats for delete-processing.
     for ($i = 0, $n = sizeof($categories); $i < $n; $i++) {
         $sql = "select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id='" . $categories[$i]['id'] . "'";
         $category_products = $db->Execute($sql);
         while (!$category_products->EOF) {
             // determine product-type-specific override script for this product
             $product_type = zen_get_products_type($category_products->fields['products_id']);
             // now loop thru the delete_product_confirm script for each product in the current category
             if (file_exists(DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php')) {
                 require DIR_WS_MODULES . $zc_products->get_handler($product_type) . '/delete_product_confirm.php';
             } else {
                 require DIR_WS_MODULES . 'delete_product_confirm.php';
             }
             // THIS LINE COMMENTED BECAUSE IT'S DONE ALREADY DURING DELETE_PRODUCT_CONFIRM.PHP:
             //zen_remove_product($category_products->fields['products_id'], $delete_linked);
             $category_products->MoveNext();
         }
         zen_remove_category($categories[$i]['id']);
     }
     // end for loop
 }