while ($categories = xos_db_fetch_array($categories_query)) { $categories_string .= " or p2c.categories_or_pages_id = '" . $categories['categories_or_pages_id'] . "'"; $categories_string = xos_get_categories_string($categories['categories_or_pages_id'], '', $categories_string); } return $categories_string; } $javascript = '<script type="text/JavaScript">' . "\n" . '/* <![CDATA[ */' . "\n" . ' function cOn(td) {' . "\n" . ' if(document.getElementById||(document.all && !(document.getElementById))) {' . "\n" . ' td.style.backgroundColor="#CCCCCC";' . "\n" . ' }' . "\n" . ' }' . "\n\n" . ' function cOnA(td) {' . "\n" . ' if(document.getElementById||(document.all && !(document.getElementById))) {' . "\n" . ' td.style.backgroundColor="#CCFFFF";' . "\n" . ' }' . "\n" . ' }' . "\n\n" . ' function cOut(td) {' . "\n" . ' if(document.getElementById||(document.all && !(document.getElementById))) {' . "\n" . ' td.style.backgroundColor="#DFE4F4";' . "\n" . ' }' . "\n" . ' }' . "\n" . '/* ]]> */' . "\n" . '</script>' . "\n"; require DIR_WS_INCLUDES . 'html_header.php'; require DIR_WS_INCLUDES . 'header.php'; require DIR_WS_INCLUDES . 'column_left.php'; require DIR_WS_INCLUDES . 'footer.php'; if (!$_GET['sort'] && !$_POST['run_update']) { if ($_GET['page'] == '') { $_GET['page'] = '1'; } $smarty->assign(array('set_filter' => true, 'form_begin_filter_xsell_products' => xos_draw_form('filter_xsell_products', FILENAME_XSELL_PRODUCTS, $_GET['first_entrance'] ? '' : xos_get_all_get_params(), 'get'), 'pull_down_menu_categories_or_pages_id' => xos_draw_pull_down_menu('categories_or_pages_id', xos_get_category_tree(), $categories_or_pages_id), 'pull_down_menu_manufacturers_id' => xos_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $manufacturers_id), 'pull_down_menu_max_rows' => xos_draw_pull_down_menu('max_rows', $max_display_xsell_results_array, $_GET['max_rows'], 'style="width: 75px;"'), 'hidden_field_add_related_product_ID' => xos_draw_hidden_field('add_related_product_ID', $_GET['add_related_product_ID']))); if (SESSID) { $smarty->assign('hidden_field_session', xos_draw_hidden_field(xos_session_name(), xos_session_id())); } } ////////////////////////////////////////////////////////////////////////////////// if (!$_GET['add_related_product_ID'] && !$_GET['first_entrance']) { if ($categories_or_pages_id) { $includes_categories = xos_get_categories_string($categories_or_pages_id, true); } $products_query_raw = "select distinct a.products_id, b.products_name, a.products_model, a.products_status from " . TABLE_PRODUCTS . " a, " . TABLE_PRODUCTS_DESCRIPTION . " b, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where b.products_id = a.products_id and b.products_id = p2c.products_id and b.language_id = '" . (int) $_SESSION['used_lng_id'] . "'" . ($categories_or_pages_id ? " and (" . $includes_categories . ")" : "") . ($manufacturers_id ? " and a.manufacturers_id ='" . $manufacturers_id . "'" : "") . " ORDER BY b.products_name"; $products_split = new splitPageResults($_GET['page'], $_GET['max_rows'], $products_query_raw, $products_query_numrows, 'a.products_id'); $products_query = xos_db_query($products_query_raw); if ($products_query_numrows > 0) { /* now we will query the DB for existing related items */ $products_array = array();
$categories_query = xos_db_query("select c.categories_or_pages_id, cpd.categories_or_pages_name, c.parent_id from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where c.categories_or_pages_id = cpd.categories_or_pages_id and cpd.language_id = '" . (int) $_SESSION['used_lng_id'] . "' and c.parent_id = '" . (int) $parent_id . "' order by c.sort_order, cpd.categories_or_pages_name"); while ($categories = xos_db_fetch_array($categories_query)) { $categories_string .= " or p2c.categories_or_pages_id = '" . $categories['categories_or_pages_id'] . "'"; $categories_string = xos_get_categories_string($categories['categories_or_pages_id'], '', $categories_string); } return $categories_string; } $javascript = '<script type="text/javascript">' . "\n" . '/* <![CDATA[ */' . "\n\n" . 'function toggle() {' . "\n" . ' if (document.getElementById("options").style.display == "none"){' . "\n" . ' document.getElementById("filter").style.display="none";' . "\n" . ' document.getElementById("no-filter").style.display="";' . "\n" . ' document.getElementById("options").style.display="";' . "\n" . ' document.getElementById("attributes").style.display="none";' . "\n" . ' } else {' . "\n" . ' document.getElementById("filter").style.display="";' . "\n" . ' document.getElementById("no-filter").style.display="none";' . "\n" . ' document.getElementById("options").style.display="none";' . "\n" . ' document.getElementById("attributes").style.display="";' . "\n" . ' }' . "\n" . '}' . "\n\n" . '/* ]]> */' . "\n" . '</script>' . "\n"; require DIR_WS_INCLUDES . 'html_header.php'; require DIR_WS_INCLUDES . 'header.php'; require DIR_WS_INCLUDES . 'column_left.php'; require DIR_WS_INCLUDES . 'footer.php'; if ($pID) { $smarty->assign(array('single_product' => true, 'text_new_product' => sprintf(TEXT_NEW_PRODUCT_3, $form_action == 'insert_product' ? TEXT_NEW_PRODUCT_1 : TEXT_NEW_PRODUCT_2, xos_output_generated_category_path($current_category_id)), 'link_back_to_product_list' => xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pID), 'form_begin_filter_products_attributes' => xos_draw_form('filter_products_attributes', FILENAME_PRODUCTS_ATTRIBUTES, '', 'get'), 'pull_down_menu_max_rows' => xos_draw_pull_down_menu('max_rows', $max_display_rows_array, $_GET['max_rows'], 'style="width: 75px;"'), 'hidden_fields_page_info' => xos_draw_hidden_field('pID', $pID) . xos_draw_hidden_field('cPath', $cPath) . xos_draw_hidden_field('selected_tax_rate_id', $_GET['selected_tax_rate_id']) . xos_draw_hidden_field('option_page', $_GET['option_page']) . xos_draw_hidden_field('value_page', $_GET['value_page']) . xos_draw_hidden_field('attribute_page', $_GET['attribute_page']), 'form_end_filter' => '</form>')); } else { $smarty->assign(array('form_begin_filter_products_attributes' => xos_draw_form('filter_products_attributes', FILENAME_PRODUCTS_ATTRIBUTES, '', 'get'), 'pull_down_menu_categories_or_pages_id' => xos_draw_pull_down_menu('categories_or_pages_id', xos_get_category_tree(), $categories_or_pages_id), 'pull_down_menu_manufacturers_id' => xos_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $manufacturers_id), 'pull_down_menu_max_rows' => xos_draw_pull_down_menu('max_rows', $max_display_rows_array, $_GET['max_rows'], 'style="width: 75px;"'), 'pull_down_menu_max_products' => xos_draw_pull_down_menu('max_products_in_pullwown', $max_display_products_in_pulldown_array, $_GET['max_products_in_pullwown'], 'style="width: 155px;"'), 'hidden_fields_page_info' => xos_draw_hidden_field('selected_tax_rate_id', $_GET['selected_tax_rate_id']) . xos_draw_hidden_field('option_page', $_GET['option_page']) . xos_draw_hidden_field('value_page', $_GET['value_page']) . xos_draw_hidden_field('attribute_page', $_GET['attribute_page']), 'form_end_filter' => '</form>')); } if (SESSID) { $smarty->assign('hidden_field_session', xos_draw_hidden_field(xos_session_name(), xos_session_id())); } $js_init_style = '<script type="text/javascript">' . "\n" . '/* <![CDATA[ */' . "\n\n"; if ($_GET['first_entrance']) { $js_init_style .= ' document.getElementById("filter").style.display="";' . "\n" . ' document.getElementById("no-filter").style.display="none";' . "\n" . ' document.getElementById("options").style.display="none";' . "\n" . ' document.getElementById("attributes").style.display="none";' . "\n\n"; } elseif ($_GET['options_page']) { $js_init_style .= ' document.getElementById("filter").style.display="none";' . "\n" . ' document.getElementById("no-filter").style.display="";' . "\n" . ' document.getElementById("options").style.display="";' . "\n" . ' document.getElementById("attributes").style.display="none";' . "\n\n"; } else { $js_init_style .= ' document.getElementById("filter").style.display="";' . "\n" . ' document.getElementById("no-filter").style.display="none";' . "\n" . ' document.getElementById("options").style.display="none";' . "\n" . ' document.getElementById("attributes").style.display="";' . "\n\n"; } $js_init_style .= '/* ]]> */' . "\n" . '</script>' . "\n"; $smarty->assign('js_init_style', $js_init_style); if (!$_GET['first_entrance']) {
return $categories_string; } if ($_GET['product_ID']) { $javascript = '<script type="text/javascript" src="' . DIR_WS_ADMIN_IMAGES . ADMIN_TPL . '/' . $_SESSION['language'] . '/jquery.ui.datepicker-language.min.js"></script>' . "\n"; } else { $javascript = '<script type="text/JavaScript">' . "\n" . '/* <![CDATA[ */' . "\n" . ' function cOn(td) {' . "\n" . ' if(document.getElementById||(document.all && !(document.getElementById))) {' . "\n" . ' td.style.backgroundColor="#cccccc";' . "\n" . ' }' . "\n" . ' }' . "\n\n" . ' function cOnA(td) {' . "\n" . ' if(document.getElementById||(document.all && !(document.getElementById))) {' . "\n" . ' td.style.backgroundColor="#ccffff";' . "\n" . ' }' . "\n" . ' }' . "\n\n" . ' function cOut(td) {' . "\n" . ' if(document.getElementById||(document.all && !(document.getElementById))) {' . "\n" . ' td.style.backgroundColor="#ebebff";' . "\n" . ' }' . "\n" . ' }' . "\n" . '/* ]]> */' . "\n" . '</script>' . "\n"; } require DIR_WS_INCLUDES . 'html_header.php'; require DIR_WS_INCLUDES . 'header.php'; require DIR_WS_INCLUDES . 'column_left.php'; require DIR_WS_INCLUDES . 'footer.php'; if (!$_GET['product_ID']) { if ($_GET['page'] == '') { $_GET['page'] = '1'; } $smarty->assign(array('set_filter' => true, 'form_begin_filter_update_products_prices' => xos_draw_form('filter_update_products_prices', FILENAME_UPDATE_PRODUCTS_PRICES, $_GET['first_entrance'] ? '' : xos_get_all_get_params(), 'get'), 'pull_down_menu_categories_or_pages_id' => xos_draw_pull_down_menu('categories_or_pages_id', xos_get_category_tree(), $categories_or_pages_id), 'pull_down_menu_manufacturers_id' => xos_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $manufacturers_id), 'pull_down_menu_max_rows' => xos_draw_pull_down_menu('max_rows', $max_display_update_prices_results_array, $_GET['max_rows'], 'style="width: 75px;"'), 'checkbox_specials_only' => xos_draw_checkbox_field('specials_only', '', $_GET['specials_only']))); if (SESSID) { $smarty->assign('hidden_field_session', xos_draw_hidden_field(xos_session_name(), xos_session_id())); } } if (!$_GET['product_ID'] && !$_GET['first_entrance']) { if ($categories_or_pages_id) { $includes_categories = xos_get_categories_string($categories_or_pages_id, true); } if ($_GET['specials_only']) { $products_query_raw = "select distinct a.products_id, b.products_name, a.products_model, a.products_price, a.products_status, a.products_tax_class_id from " . TABLE_PRODUCTS . " a, " . TABLE_PRODUCTS_DESCRIPTION . " b, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_SPECIALS . " s where b.products_id = a.products_id and b.products_id = p2c.products_id and b.products_id = s.products_id and s.error = '0' and b.language_id = '" . (int) $_SESSION['used_lng_id'] . "'" . ($categories_or_pages_id ? " and (" . $includes_categories . ")" : "") . ($manufacturers_id ? " and a.manufacturers_id ='" . $manufacturers_id . "'" : "") . " ORDER BY b.products_name"; } else { $products_query_raw = "select distinct a.products_id, b.products_name, a.products_model, a.products_price, a.products_status, a.products_tax_class_id from " . TABLE_PRODUCTS . " a, " . TABLE_PRODUCTS_DESCRIPTION . " b, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where b.products_id = a.products_id and b.products_id = p2c.products_id and b.language_id = '" . (int) $_SESSION['used_lng_id'] . "'" . ($categories_or_pages_id ? " and (" . $includes_categories . ")" : "") . ($manufacturers_id ? " and a.manufacturers_id ='" . $manufacturers_id . "'" : "") . " ORDER BY b.products_name"; } $products_split = new splitPageResults($_GET['page'], $_GET['max_rows'], $products_query_raw, $products_query_numrows, 'a.products_id'); $products_query = xos_db_query($products_query_raw);
function xos_get_category_tree($parent_id = '0', $spacing = '', $exclude = '', $category_tree_array = '', $include_itself = false) { if (!is_array($category_tree_array)) { $category_tree_array = array(); } if (sizeof($category_tree_array) < 1 && $exclude != '0') { $category_tree_array[] = array('id' => '0', 'text' => TEXT_TOP); } if ($include_itself) { $category_query = xos_db_query("select cpd.categories_or_pages_name, c.categories_or_pages_status from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where c.categories_or_pages_id = cpd.categories_or_pages_id and c.is_page = 'false' and cpd.language_id = '" . (int) $_SESSION['used_lng_id'] . "' and cpd.categories_or_pages_id = '" . (int) $parent_id . "'"); $category = xos_db_fetch_array($category_query); $category_tree_array[] = array('id' => $parent_id, 'text' => $category['categories_or_pages_name']); } $categories_query = xos_db_query("select c.categories_or_pages_id, cpd.categories_or_pages_name, c.parent_id, c.categories_or_pages_status from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where c.categories_or_pages_id = cpd.categories_or_pages_id and c.is_page = 'false' and cpd.language_id = '" . (int) $_SESSION['used_lng_id'] . "' and c.parent_id = '" . (int) $parent_id . "' order by c.sort_order, cpd.categories_or_pages_name"); while ($categories = xos_db_fetch_array($categories_query)) { if ($exclude != $categories['categories_or_pages_id']) { $category_tree_array[] = array('id' => $categories['categories_or_pages_id'], 'text' => $spacing . $categories['categories_or_pages_name'], 'params' => $categories['categories_or_pages_status'] == 0 ? 'style="color: red;"' : ''); } $category_tree_array = xos_get_category_tree($categories['categories_or_pages_id'], $spacing . ' ', $exclude, $category_tree_array); } return $category_tree_array; }
$categories_or_pages_id = xos_db_prepare_input($_POST['categories_or_pages_id']); $new_parent_id = xos_db_prepare_input($_POST['move_to_category_id']); $path = explode('_', xos_get_generated_category_path_ids($new_parent_id)); if (in_array($categories_or_pages_id, $path)) { $messageStack->add_session('header', ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT, 'error'); xos_redirect(xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cpID=' . $categories_or_pages_id)); } elseif (xos_children_in_category_count($new_parent_id) == 0 && xos_products_in_category_count($new_parent_id) > 0) { $messageStack->add_session('header', ERROR_CANNOT_MOVE_CATEGORY_TO_CATEGORY_CONTAINING_PRODUCTS, 'error'); xos_redirect(xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cpID=' . $categories_or_pages_id)); } else { xos_db_query("update " . TABLE_CATEGORIES_OR_PAGES . " set parent_id = '" . (int) $new_parent_id . "', last_modified = now() where categories_or_pages_id = '" . (int) $categories_or_pages_id . "'"); if ($new_parent_id > '0') { $categories_query = xos_db_query("select categories_or_pages_status from " . TABLE_CATEGORIES_OR_PAGES . " where categories_or_pages_id = '" . (int) $new_parent_id . "'"); $categories = xos_db_fetch_array($categories_query); if ($categories['categories_or_pages_status'] == '0') { $tree = xos_get_category_tree($new_parent_id); for ($i = 1; $i < sizeof($tree); $i++) { xos_db_query("update " . TABLE_CATEGORIES_OR_PAGES . " set categories_or_pages_status = '0', last_modified = now() where categories_or_pages_id = '" . $tree[$i]['id'] . "'"); } } } $smarty_cache_control->clearAllCache(); xos_redirect(xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&cpID=' . $categories_or_pages_id)); } } break; case 'move_product_confirm': $products_id = xos_db_prepare_input($_POST['products_id']); $new_parent_id = xos_db_prepare_input($_POST['move_to_category_id']); if (xos_children_in_category_count($new_parent_id) > 0) { $messageStack->add_session('header', ERROR_CANNOT_MOVE_PRODUCT_TO_TOP_OR_TO_CATEGORY_CONTAINS_SUBCATEGORIES, 'error');
// find out the rating average from customer reviews $reviews_query = xos_db_query("select (avg(reviews_rating) / 5 * 100) as average_rating from " . TABLE_REVIEWS . " where products_id = '" . (int) $products['products_id'] . "'"); $reviews = xos_db_fetch_array($reviews_query); $pInfo_array = array_merge((array) $products, (array) $reviews); $pInfo = new objectInfo($pInfo_array); } $products_array[] = array('selected' => isset($pInfo) && is_object($pInfo) && $products['products_id'] == $pInfo->products_id ? true : false, 'status' => $products['products_status'] == '1' ? true : false, 'name' => $products['products_name'], 'sort_order' => $products['products_sort_order'], 'icon_status_green' => xos_image(DIR_WS_ADMIN_IMAGES . ADMIN_TPL . '/icon_status_green.gif', ICON_TITLE_STATUS_GREEN), 'icon_status_red' => xos_image(DIR_WS_ADMIN_IMAGES . ADMIN_TPL . '/icon_status_red.gif', ICON_TITLE_STATUS_RED), 'icon_status_green_light' => xos_image(DIR_WS_ADMIN_IMAGES . ADMIN_TPL . '/icon_status_green_light.gif', ICON_TITLE_STATUS_GREEN_LIGHT), 'icon_status_red_light' => xos_image(DIR_WS_ADMIN_IMAGES . ADMIN_TPL . '/icon_status_red_light.gif', ICON_TITLE_STATUS_RED_LIGHT), 'link_filename_categories_flag_0' => xos_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=0&pID=' . $products['products_id'] . '&cPath=' . $cPath), 'link_filename_categories_flag_1' => xos_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=1&pID=' . $products['products_id'] . '&cPath=' . $cPath), 'link_filename_categories_action_product_preview' => xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=product_preview&read=only'), 'link_filename_categories_cpath_cpath_pid' => xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'])); } $cPath_back = ''; $category_path = xos_generate_category_path($current_category_id); for ($i = sizeof($category_path[0]) - 1; $i > 0; $i--) { $current_category_id != $category_path[0][$i]['id'] ? $cPath_back .= $category_path[0][$i]['id'] . '_' : ''; } $cPath_back = substr($cPath_back, 0, -1); $cPath_back = xos_not_null($cPath_back) ? 'cPath=' . $cPath_back . '&' : ''; if (isset($_GET['search'])) { $smarty->assign('link_filename_categories_back', xos_href_link(FILENAME_CATEGORIES)); } elseif ($current_category_id > 0) { $smarty->assign('link_filename_categories_back', xos_href_link(FILENAME_CATEGORIES, $cPath_back . 'cpID=' . $current_category_id)); } if (!isset($_GET['search'])) { $smarty->assign(array('link_filename_categories_action_new_category' => xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_category'), 'link_filename_categories_action_new_product' => xos_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_product'))); } if (SESSID) { $smarty->assign('hidden_field_session', xos_draw_hidden_field(xos_session_name(), xos_session_id())); } $smarty->assign(array('categories' => $categories_array, 'products' => $products_array, 'categories_count' => $categories_count, 'products_count' => $products_count, 'is_level_top' => $current_category_id == 0 ? true : false, 'form_begin_search' => xos_draw_form('search', FILENAME_CATEGORIES, '', 'get'), 'input_search' => xos_draw_input_field('search'), 'form_begin_goto' => xos_draw_form('goto', FILENAME_CATEGORIES, '', 'get'), 'pull_down_categories' => xos_draw_pull_down_menu('cPath', xos_get_category_tree(), $current_category_id, 'onchange="this.form.submit();"'), 'form_end' => '</form>')); require DIR_WS_BOXES . 'infobox_categories.php'; $smarty->configLoad('languages/' . $_SESSION['language'] . '.conf', 'categories'); $output_categories_and_products = $smarty->fetch(ADMIN_TPL . '/includes/modules/categories_and_products.tpl'); }