function vam_get_sub_categories(&$categories, $categories_id)
 {
     $sub_categories_query = vam_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int) $categories_id . "'");
     while ($sub_categories = vam_db_fetch_array($sub_categories_query)) {
         if ($sub_categories['categories_id'] == 0) {
             return true;
         }
         $categories[sizeof($categories)] = $sub_categories['categories_id'];
         if ($sub_categories['categories_id'] != $categories_id) {
             vam_get_sub_categories($categories, $sub_categories['categories_id']);
         }
     }
 }
예제 #2
0
function ep_create_filelayout($dltype, $attribute_options_array, $languages, $custom_fields)
{
    // depending on the type of the download the user wanted, create a file layout for it.
    $fieldmap = array();
    // default to no mapping to change internal field names to external.
    // build filters
    $sql_filter = '';
    if (!empty($_GET['epcust_category_filter'])) {
        $sub_categories = array();
        $categories_query_addition = 'ptoc.categories_id = ' . (int) $_GET['epcust_category_filter'] . '';
        vam_get_sub_categories($sub_categories, $_GET['epcust_category_filter']);
        foreach ($sub_categories as $ckey => $category) {
            $categories_query_addition .= ' or ptoc.categories_id = ' . (int) $category . '';
        }
        $sql_filter .= ' and (' . $categories_query_addition . ')';
    }
    if ($_GET['epcust_manufacturer_filter'] != '') {
        $sql_filter .= ' and p.manufacturers_id = ' . (int) $_GET['epcust_manufacturer_filter'];
    }
    if ($_GET['epcust_status_filter'] != '') {
        $sql_filter .= ' and p.products_status = ' . (int) $_GET['epcust_status_filter'];
    }
    // /////////////////////////////////////////////////////////////////////
    //
    // Start: Support for other contributions
    //
    // /////////////////////////////////////////////////////////////////////
    $ep_additional_layout_product = '';
    $ep_additional_layout_product_select = '';
    $ep_additional_layout_product_description = '';
    $ep_additional_layout_pricing = '';
    if ($dltype == 'full') {
        foreach ($custom_fields[TABLE_PRODUCTS] as $key => $name) {
            $ep_additional_layout_product .= '$filelayout[\'v_' . $key . '\'] = $iii++;
                                            ';
            $ep_additional_layout_product_select .= 'p.' . $key . ' as v_' . $key . ',';
        }
    }
    if (EP_ADDITIONAL_IMAGES == true) {
        $ep_additional_layout_product .= '$filelayout[\'v_products_image_description\'] = $iii++;
                                       ';
        for ($i = 2; $i <= EP_ADDITIONAL_IMAGES_MAX + 1; $i++) {
            $ep_additional_layout_product .= '$filelayout[\'v_products_image_' . $i . '\'] = $iii++;
                                          $filelayout[\'v_products_image_description_' . $i . '\'] = $iii++;
                                          ';
        }
    }
    if (EP_ADDITIONAL_IMAGES == true) {
        $ep_additional_layout_product_select .= 'p.products_image_description as v_products_image_description,';
    }
    if (EP_MORE_PICS_6_SUPPORT == true) {
        $ep_additional_layout_product .= '$filelayout[\'v_products_subimage1\'] = $iii++;
                                        $filelayout[\'v_products_subimage2\'] = $iii++;
                                        $filelayout[\'v_products_subimage3\'] = $iii++;
                                        $filelayout[\'v_products_subimage4\'] = $iii++;
                                        $filelayout[\'v_products_subimage5\'] = $iii++;
                                        $filelayout[\'v_products_subimage6\'] = $iii++;
                                        ';
    }
    if (EP_MORE_PICS_6_SUPPORT == true) {
        $ep_additional_layout_product_select .= 'p.products_subimage1 as v_products_subimage1, p.products_subimage2 as v_products_subimage2, p.products_subimage3 as v_products_subimage3, p.products_subimage4 as v_products_subimage4, p.products_subimage5 as v_products_subimage5, p.products_subimage6 as v_products_subimage6,';
    }
    if (EP_UNLIMITED_IMAGES == true) {
        $ep_additional_layout_product .= '$filelayout[\'v_products_image_array\'] = $iii++;';
        $ep_additional_layout_product_select .= 'p.products_image_array as v_products_image_array,';
    }
    if (EP_ULTRPICS_SUPPORT == true) {
        $ep_additional_layout_product .= '$filelayout[\'v_products_image_med\'] = $iii++;
					$filelayout[\'v_products_image_lrg\'] = $iii++;
					$filelayout[\'v_products_image_sm_1\'] = $iii++;
					$filelayout[\'v_products_image_xl_1\'] = $iii++;
					$filelayout[\'v_products_image_sm_2\'] = $iii++;
					$filelayout[\'v_products_image_xl_2\'] = $iii++;
					$filelayout[\'v_products_image_sm_3\'] = $iii++;
					$filelayout[\'v_products_image_xl_3\'] = $iii++;
					$filelayout[\'v_products_image_sm_4\'] = $iii++;
					$filelayout[\'v_products_image_xl_4\'] = $iii++;
					$filelayout[\'v_products_image_sm_5\'] = $iii++;
					$filelayout[\'v_products_image_xl_5\'] = $iii++;
					$filelayout[\'v_products_image_sm_6\'] = $iii++;
					$filelayout[\'v_products_image_xl_6\'] = $iii++;
                                        ';
    }
    if (EP_ULTRPICS_SUPPORT == true) {
        $ep_additional_layout_product_select .= 'p.products_image_med as v_products_image_med, p.products_image_lrg as v_products_image_lrg, p.products_image_sm_1 as v_products_image_sm_1, p.products_image_xl_1 as v_products_image_xl_1, p.products_image_sm_2 as v_products_image_sm_2, p.products_image_xl_2 as v_products_image_xl_2, p.products_image_sm_3 as v_products_image_sm_3, p.products_image_xl_3 as v_products_image_xl_3, p.products_image_sm_4 as v_products_image_sm_4, p.products_image_xl_4 as v_products_image_xl_4, p.products_image_sm_5 as v_products_image_sm_5, p.products_image_xl_5 as v_products_image_xl_5, p.products_image_sm_6 as v_products_image_sm_6,p.products_image_xl_6 as v_products_image_xl_6,';
    }
    if (EP_PDF_UPLOAD_SUPPORT == true) {
        $ep_additional_layout_product .= '$filelayout[\'v_products_pdfupload\'] = $iii++;
					$filelayout[\'v_products_fileupload\'] = $iii++;
					';
    }
    if (EP_PDF_UPLOAD_SUPPORT == true) {
        $ep_additional_layout_product_select .= 'p.products_pdfupload as v_products_pdfupload,p.products_fileupload as v_products_fileupload,';
    }
    if (EP_SPPC_SUPPORT == true) {
        if (!empty($_GET['epcust_specials_price'])) {
            $ep_additional_layout_pricing .= '$filelayout[\'v_customer_price_1\'] = $iii++;
                                        $filelayout[\'v_customer_specials_price_1\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_1\'] = $iii++;
                                        $filelayout[\'v_customer_price_2\'] = $iii++;
                                        $filelayout[\'v_customer_specials_price_2\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_2\'] = $iii++;
                                        $filelayout[\'v_customer_price_3\'] = $iii++;
                                        $filelayout[\'v_customer_specials_price_3\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_3\'] = $iii++;
                                        $filelayout[\'v_customer_price_4\'] = $iii++;
                                        $filelayout[\'v_customer_specials_price_4\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_4\'] = $iii++;
                                        ';
        } else {
            $ep_additional_layout_pricing .= '$filelayout[\'v_customer_price_1\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_1\'] = $iii++;
                                        $filelayout[\'v_customer_price_2\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_2\'] = $iii++;
                                        $filelayout[\'v_customer_price_3\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_3\'] = $iii++;
                                        $filelayout[\'v_customer_price_4\'] = $iii++;
                                        $filelayout[\'v_customer_group_id_4\'] = $iii++;
                                        ';
        }
    }
    if (EP_HTC_SUPPORT == true) {
        $ep_additional_layout_product_description .= '$filelayout[\'v_products_meta_title_\'.$lang[\'id\']]    = $iii++;
                                                    $filelayout[\'v_products_meta_description_\'.$lang[\'id\']]     = $iii++;
                                                    $filelayout[\'v_products_meta_keywords_\'.$lang[\'id\']] = $iii++;
                                                    ';
    }
    if (EP_MVS_SUPPORT == true) {
        $ep_additional_layout_product_select .= 'p.vendors_id as v_vendor_id,';
    }
    // /////////////////////////////////////////////////////////////////////
    // End: Support for other contributions
    // /////////////////////////////////////////////////////////////////////
    switch ($dltype) {
        case 'full':
            // The file layout is dynamically made depending on the number of languages
            $iii = 0;
            $filelayout = array();
            $filelayout['v_products_model'] = $iii++;
            foreach ($languages as $key => $lang) {
                $filelayout['v_products_name_' . $lang['id']] = $iii++;
                $filelayout['v_products_description_' . $lang['id']] = $iii++;
                $filelayout['v_products_url_' . $lang['id']] = $iii++;
                foreach ($custom_fields[TABLE_PRODUCTS_DESCRIPTION] as $key => $name) {
                    $filelayout['v_' . $key . '_' . $lang['id']] = $iii++;
                }
                if (!empty($ep_additional_layout_product_description)) {
                    eval($ep_additional_layout_product_description);
                }
            }
            $filelayout['v_products_image'] = $iii++;
            if (!empty($ep_additional_layout_product)) {
                eval($ep_additional_layout_product);
            }
            $filelayout['v_products_price'] = $iii++;
            $filelayout['v_products_specials_price'] = $iii++;
            if (EP_MVS_SUPPORT == true) {
                $filelayout['v_vendor'] = $iii++;
            }
            if (!empty($ep_additional_layout_pricing)) {
                eval($ep_additional_layout_pricing);
            }
            $filelayout['v_products_quantity'] = $iii++;
            $filelayout['v_products_weight'] = $iii++;
            $filelayout['v_date_avail'] = $iii++;
            $filelayout['v_date_added'] = $iii++;
            // build the categories name section of the array based on the number of categores the user wants to have
            for ($i = 1; $i < EP_MAX_CATEGORIES + 1; $i++) {
                $filelayout['v_categories_image_' . $i] = $iii++;
                foreach ($languages as $key => $lang) {
                    $filelayout['v_categories_name_' . $i . '_' . $lang['id']] = $iii++;
                }
            }
            $filelayout['v_manufacturers_name'] = $iii++;
            // VJ product attribs begin
            $attribute_options_count = 1;
            foreach ($attribute_options_array as $tkey => $attribute_options_values) {
                $filelayout['v_attribute_options_id_' . $attribute_options_count] = $iii++;
                foreach ($languages as $tkey => $lang) {
                    $filelayout['v_attribute_options_name_' . $attribute_options_count . '_' . $lang['id']] = $iii++;
                }
                $attribute_values_query = "select products_options_values_id  from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id = '" . (int) $attribute_options_values['products_options_id'] . "' order by products_options_values_id";
                $attribute_values_values = vam_db_query($attribute_values_query);
                $attribute_values_count = 1;
                while ($attribute_values = vam_db_fetch_array($attribute_values_values)) {
                    $filelayout['v_attribute_values_id_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    foreach ($languages as $tkey => $lang) {
                        $filelayout['v_attribute_values_name_' . $attribute_options_count . '_' . $attribute_values_count . '_' . $lang['id']] = $iii++;
                    }
                    $filelayout['v_attribute_values_price_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_model_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_stock_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_weight_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_sort_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    //// attributes stock add start
                    if (EP_PRODUCTS_ATTRIBUTES_STOCK == true) {
                        $filelayout['v_attribute_values_stock_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    }
                    //// attributes stock add end
                    $attribute_values_count++;
                }
                $attribute_options_count++;
            }
            // VJ product attribs end
            $filelayout['v_tax_class_title'] = $iii++;
            $filelayout['v_status'] = $iii++;
            $filelayout_sql = "SELECT\n            p.products_id as v_products_id,\n            p.products_model as v_products_model,\n            p.products_image as v_products_image,\n            {$ep_additional_layout_product_select}\n            p.products_price as v_products_price,\n            p.products_weight as v_products_weight,\n            p.products_date_available as v_date_avail,\n            p.products_date_added as v_date_added,\n            p.products_tax_class_id as v_tax_class_id,\n            p.products_quantity as v_products_quantity,\n            p.manufacturers_id as v_manufacturers_id,\n            subc.categories_id as v_categories_id,\n            p.products_status as v_status\n            FROM\n            " . TABLE_PRODUCTS . " as p,\n            " . TABLE_CATEGORIES . " as subc,\n            " . TABLE_PRODUCTS_TO_CATEGORIES . " as ptoc\n            WHERE\n            p.products_id = ptoc.products_id AND\n            ptoc.categories_id = subc.categories_id\n            " . $sql_filter;
            // BOF mo_image
            //		echo '<pre>';var_dump($fileheaders);echo '</pre>';
            for ($i = 0; $i < MO_PICS; $i++) {
                $filelayout['v_mo_image_' . ($i + 1)] = $iii++;
            }
            // EOF mo_image
            break;
        case 'priceqty':
            $iii = 0;
            $filelayout = array();
            $filelayout['v_products_model'] = $iii++;
            $filelayout['v_products_price'] = $iii++;
            $filelayout['v_products_quantity'] = $iii++;
            if (!empty($ep_additional_layout_pricing)) {
                eval($ep_additional_layout_pricing);
            }
            $filelayout_sql = "SELECT\n            p.products_id as v_products_id,\n            p.products_model as v_products_model,\n            p.products_price as v_products_price,\n            p.products_tax_class_id as v_tax_class_id,\n            p.products_quantity as v_products_quantity\n            FROM\n            " . TABLE_PRODUCTS . " as p\n            ";
            break;
        case 'custom':
            $iii = 0;
            $filelayout = array();
            $filelayout['v_products_model'] = $iii++;
            if (!empty($_GET['epcust_status'])) {
                $filelayout['v_status'] = $iii++;
            }
            foreach ($languages as $key => $lang) {
                if (!empty($_GET['epcust_name'])) {
                    $filelayout['v_products_name_' . $lang['id']] = $iii++;
                }
                if (!empty($_GET['epcust_description'])) {
                    $filelayout['v_products_description_' . $lang['id']] = $iii++;
                }
                if (!empty($_GET['epcust_url'])) {
                    $filelayout['v_products_url_' . $lang['id']] = $iii++;
                }
                foreach ($custom_fields[TABLE_PRODUCTS_DESCRIPTION] as $key => $name) {
                    if (!empty($_GET['epcust_' . $key])) {
                        $filelayout['v_' . $key . '_' . $lang['id']] = $iii++;
                    }
                }
            }
            if (!empty($_GET['epcust_image']) || !empty($_GET['epcust_add_images'])) {
                $filelayout['v_products_image'] = $iii++;
                if (!empty($ep_additional_layout_product)) {
                    eval($ep_additional_layout_product);
                }
            }
            foreach ($custom_fields[TABLE_PRODUCTS] as $key => $name) {
                if (!empty($_GET['epcust_' . $key])) {
                    $filelayout['v_' . $key] = $iii++;
                    $ep_additional_layout_product_select .= 'p.' . $key . ' as v_' . $key . ',';
                }
            }
            if (!empty($_GET['epcust_price'])) {
                $filelayout['v_products_price'] = $iii++;
            }
            if (!empty($_GET['epcust_specials_price'])) {
                $filelayout['v_products_specials_price'] = $iii++;
            }
            if (!empty($_GET['epcust_quantity'])) {
                $filelayout['v_products_quantity'] = $iii++;
            }
            if (!empty($_GET['epcust_weight'])) {
                $filelayout['v_products_weight'] = $iii++;
            }
            if (!empty($_GET['epcust_avail'])) {
                $filelayout['v_date_avail'] = $iii++;
            }
            if (!empty($_GET['epcust_date_added'])) {
                $filelayout['v_date_added'] = $iii++;
            }
            if (!empty($_GET['epcust_category'])) {
                // build the categories name section of the array based on the number
                // of categores the user wants to have
                for ($i = 1; $i <= EP_MAX_CATEGORIES; $i++) {
                    $filelayout['v_categories_image_' . $i] = $iii++;
                    foreach ($languages as $key => $lang) {
                        $filelayout['v_categories_name_' . $i . '_' . $lang['id']] = $iii++;
                    }
                }
            }
            if (!empty($_GET['epcust_manufacturer'])) {
                $filelayout['v_manufacturers_name'] = $iii++;
            }
            if (!empty($_GET['epcust_attributes'])) {
                // VJ product attribs begin
                $attribute_options_count = 1;
                foreach ($attribute_options_array as $tkey => $attribute_options_values) {
                    $filelayout['v_attribute_options_id_' . $attribute_options_count] = $iii++;
                    foreach ($languages as $tkey => $lang) {
                        $filelayout['v_attribute_options_name_' . $attribute_options_count . '_' . $lang['id']] = $iii++;
                    }
                    $attribute_values_query = "select products_options_values_id  from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id = '" . (int) $attribute_options_values['products_options_id'] . "' order by products_options_values_id";
                    $attribute_values_values = vam_db_query($attribute_values_query);
                    $attribute_values_count = 1;
                    while ($attribute_values = vam_db_fetch_array($attribute_values_values)) {
                        $filelayout['v_attribute_values_id_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        foreach ($languages as $tkey => $lang) {
                            $filelayout['v_attribute_values_name_' . $attribute_options_count . '_' . $attribute_values_count . '_' . $lang['id']] = $iii++;
                        }
                        $filelayout['v_attribute_values_price_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        $filelayout['v_attribute_values_model_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        $filelayout['v_attribute_values_stock_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        $filelayout['v_attribute_values_weight_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        $filelayout['v_attribute_values_sort_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        //// attributes stock add start
                        if (EP_PRODUCTS_ATTRIBUTES_STOCK == true) {
                            $filelayout['v_attribute_values_stock_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                        }
                        //// attributes stock add end
                        $attribute_values_count++;
                    }
                    $attribute_options_count++;
                }
                // VJ product attribs end
            }
            if (EP_MVS_SUPPORT == true) {
                if (!empty($_GET['epcust_vendor'])) {
                    $filelayout['v_vendor'] = $iii++;
                }
            }
            if (!empty($_GET['epcust_sppc'])) {
                if (!empty($ep_additional_layout_pricing)) {
                    eval($ep_additional_layout_pricing);
                }
            }
            if (!empty($_GET['epcust_tax_class'])) {
                $filelayout['v_tax_class_title'] = $iii++;
            }
            if (!empty($_GET['epcust_comment'])) {
                $filelayout['v_products_comment'] = $iii++;
            }
            if (!empty($_GET['epcust_cross_sell'])) {
                $filelayout['v_cross_sell'] = $iii++;
            }
            $filelayout_sql = "SELECT\n            p.products_id as v_products_id,\n            p.products_model as v_products_model,\n            p.products_status as v_status,\n            p.products_price as v_products_price,\n            p.products_quantity as v_products_quantity,\n            p.products_weight as v_products_weight,\n            p.products_image as v_products_image,\n            {$ep_additional_layout_product_select}\n            p.manufacturers_id as v_manufacturers_id,\n            p.products_date_available as v_date_avail,\n            p.products_date_added as v_date_added,\n            p.products_tax_class_id as v_tax_class_id,\n            subc.categories_id as v_categories_id\n            FROM\n            " . TABLE_PRODUCTS . " as p,\n            " . TABLE_CATEGORIES . " as subc,\n            " . TABLE_PRODUCTS_TO_CATEGORIES . " as ptoc\n            WHERE\n            p.products_id = ptoc.products_id AND\n            ptoc.categories_id = subc.categories_id\n            " . $sql_filter;
            break;
        case 'category':
            $iii = 0;
            $filelayout = array();
            $filelayout['v_products_model'] = $iii++;
            for ($i = 1; $i < EP_MAX_CATEGORIES + 1; $i++) {
                $filelayout['v_categories_image_' . $i] = $iii++;
                foreach ($languages as $key => $lang) {
                    $filelayout['v_categories_name_' . $i . '_' . $lang['id']] = $iii++;
                }
            }
            $filelayout_sql = "SELECT\n            p.products_id as v_products_id,\n            p.products_model as v_products_model,\n            subc.categories_id as v_categories_id\n            FROM\n            " . TABLE_PRODUCTS . " as p,\n            " . TABLE_CATEGORIES . " as subc,\n            " . TABLE_PRODUCTS_TO_CATEGORIES . " as ptoc            \n            WHERE\n            p.products_id = ptoc.products_id AND\n            ptoc.categories_id = subc.categories_id\n            ";
            break;
        case 'extra_fields':
            // start EP for product extra field ============================= DEVSOFTVN - 10/20/2005
            $iii = 0;
            $filelayout = array('v_products_model' => $iii++, 'v_products_extra_fields_name' => $iii++, 'v_products_extra_fields_id' => $iii++, 'v_products_extra_fields_value' => $iii++);
            $filelayout_sql = "SELECT\n                        p.products_id as v_products_id,\n                        p.products_model as v_products_model,\n                        subc.products_extra_fields_id as v_products_extra_fields_id,\n                        subc.products_extra_fields_value as v_products_extra_fields_value,\n                        ptoc.products_extra_fields_name as v_products_extra_fields_name\n                        FROM\n                        " . TABLE_PRODUCTS . " as p,\n                        " . TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS . " as subc,\n                        " . TABLE_PRODUCTS_EXTRA_FIELDS . " as ptoc\n                        WHERE\n                        p.products_id = subc.products_id AND\n                        ptoc.products_extra_fields_id = subc.products_extra_fields_id\n                        ";
            // end of EP for extra field code ======= DEVSOFTVN================
            break;
        case 'froogle':
            // this is going to be a little interesting because we need
            // a way to map from internal names to external names
            //
            // Before it didn't matter, but with froogle needing particular headers,
            // The file layout is dynamically made depending on the number of languages
            $iii = 0;
            $filelayout = array();
            $filelayout['v_froogle_products_url_1'] = $iii++;
            $filelayout['v_froogle_products_name_' . EP_DEFAULT_LANGUAGE_ID] = $iii++;
            $filelayout['v_froogle_products_description_' . EP_DEFAULT_LANGUAGE_ID] = $iii++;
            $filelayout['v_products_price'] = $iii++;
            $filelayout['v_products_fullpath_image'] = $iii++;
            $filelayout['v_froogle_product_id'] = $iii++;
            $filelayout['v_froogle_quantitylevel'] = $iii++;
            $filelayout['v_category_fullpath'] = $iii++;
            $filelayout['v_froogle_exp_date'] = $iii++;
            $filelayout['v_froogle_currency'] = $iii++;
            $iii = 0;
            $fileheaders = array();
            // EP Support mapping new names to the export headers.
            // use the $fileheaders[''] vars to do that.
            $fileheaders['link'] = $iii++;
            $fileheaders['title'] = $iii++;
            $fileheaders['description'] = $iii++;
            $fileheaders['price'] = $iii++;
            $fileheaders['image_link'] = $iii++;
            $fileheaders['id'] = $iii++;
            $fileheaders['quantity'] = $iii++;
            $fileheaders['product_type'] = $iii++;
            $fileheaders['expiration_date'] = $iii++;
            $fileheaders['currency'] = $iii++;
            $filelayout_sql = "SELECT\n            p.products_id as v_products_id,\n            p.products_model as v_products_model,\n            p.products_image as v_products_image,\n            p.products_price as v_products_price,\n            p.products_weight as v_products_weight,\n            p.products_date_added as v_date_added,\n            p.products_date_available as v_date_avail,\n            p.products_tax_class_id as v_tax_class_id,\n            p.products_quantity as v_products_quantity,\n            p.manufacturers_id as v_manufacturers_id,\n            subc.categories_id as v_categories_id\n            FROM\n            " . TABLE_PRODUCTS . " as p,\n            " . TABLE_CATEGORIES . " as subc,\n            " . TABLE_PRODUCTS_TO_CATEGORIES . " as ptoc\n            WHERE\n            p.products_id = ptoc.products_id AND\n            ptoc.categories_id = subc.categories_id\n            " . $sql_filter;
            break;
            // VJ product attributes begin
        // VJ product attributes begin
        case 'attrib':
            $iii = 0;
            $filelayout = array();
            $filelayout['v_products_model'] = $iii++;
            $attribute_options_count = 1;
            foreach ($attribute_options_array as $tkey1 => $attribute_options_values) {
                $filelayout['v_attribute_options_id_' . $attribute_options_count] = $iii++;
                foreach ($languages as $tkey => $lang) {
                    $filelayout['v_attribute_options_name_' . $attribute_options_count . '_' . $lang['id']] = $iii++;
                }
                $attribute_values_query = "select products_options_values_id  from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id = '" . (int) $attribute_options_values['products_options_id'] . "' order by products_options_values_id";
                $attribute_values_values = vam_db_query($attribute_values_query);
                $attribute_values_count = 1;
                while ($attribute_values = vam_db_fetch_array($attribute_values_values)) {
                    $filelayout['v_attribute_values_id_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    foreach ($languages as $tkey2 => $lang) {
                        $filelayout['v_attribute_values_name_' . $attribute_options_count . '_' . $attribute_values_count . '_' . $lang['id']] = $iii++;
                    }
                    $filelayout['v_attribute_values_price_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_model_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_stock_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_weight_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    $filelayout['v_attribute_values_sort_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    //// attributes stock add start
                    if (EP_PRODUCTS_ATTRIBUTES_STOCK == true) {
                        $header_array['v_attribute_values_stock_' . $attribute_options_count . '_' . $attribute_values_count] = $iii++;
                    }
                    //// attributes stock add end
                    $attribute_values_count++;
                }
                $attribute_options_count++;
            }
            $filelayout_sql = "SELECT\n                            p.products_id as v_products_id,\n                            p.products_model as v_products_model\n                            FROM\n                            " . TABLE_PRODUCTS . " as p\n                            ";
            break;
            // VJ product attributes end
    }
    $filelayout_count = count($filelayout);
    return array($filelayout, $filelayout_count, $filelayout_sql, $fileheaders);
}