$group_ids .= 'c_' . $customers_statuses_array[$i]['id'] . '_group,'; } } } $sql_data_array = array('sort_order' => $sort_order, 'group_ids' => $group_ids, 'products_sorting' => olc_db_prepare_input($_POST['products_sorting']), 'products_sorting2' => olc_db_prepare_input($_POST['products_sorting2']), 'categories_template' => olc_db_prepare_input($_POST['categorie_template']), 'listing_template' => olc_db_prepare_input($_POST['listing_template'])); if ($action == 'insert_category') { $insert_sql_data = array('parent_id' => $current_category_id, 'date_added' => 'now()'); $sql_data_array = olc_array_merge($sql_data_array, $insert_sql_data); olc_db_perform(TABLE_CATEGORIES, $sql_data_array); $categories_id = olc_db_insert_id(); } elseif ($action == 'update_category') { $update_sql_data = array('last_modified' => 'now()'); $sql_data_array = olc_array_merge($sql_data_array, $update_sql_data); olc_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', 'categories_id=' . $categories_id); } olc_set_groups($categories_id, $group_ids); $_GET['cID'] = $categories_id; $languages = olc_get_languages(); for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $categories_name_array = $_POST['categories_name']; $language_id = $languages[$i]['id']; $sql_data_array = array('categories_name' => olc_db_prepare_input($categories_name_array[$language_id])); if (ALLOW_CATEGORY_DESCRIPTIONS == TRUE_STRING_S) { $categories_name = olc_db_prepare_input($_POST['categories_name'][$language_id]); $categories_heading_title = olc_db_prepare_input($_POST['categories_heading_title'][$language_id]); $categories_description = olc_db_prepare_input($_POST['categories_description_' . $language_id]); $categories_meta_title = olc_db_prepare_input($_POST['categories_meta_title'][$language_id]); if ($categories_meta_title == EMPTY_STRING) { $categories_meta_title = $categories_name; } $categories_meta_description = olc_db_prepare_input($_POST['categories_meta_description'][$language_id]);
function insert_category($categories_data, $dest_category_id, $action = 'insert') { $categories_id = olc_db_prepare_input($categories_data['categories_id']); $sort_order = olc_db_prepare_input($categories_data['sort_order']); $categories_status = olc_db_prepare_input($categories_data['status']); $customers_statuses_array = olc_get_customers_statuses(); $permission = array(); for ($i = 0; $n = sizeof($customers_statuses_array), $i < $n; $i++) { if (isset($customers_statuses_array[$i]['id'])) { $permission[$customers_statuses_array[$i]['id']] = 0; } } if (isset($categories_data['groups'])) { foreach ($categories_data['groups'] as $dummy => $b) { $permission[$b] = 1; } } // build array if ($permission['all'] == 1) { $permission = array(); end($customers_statuses_array); for ($i = 0; $n = key($customers_statuses_array), $i < $n + 1; $i++) { if (isset($customers_statuses_array[$i]['id'])) { $permission[$customers_statuses_array[$i]['id']] = 1; } } } $permission_array = array(); // set pointer to last key end($customers_statuses_array); for ($i = 0; $n = key($customers_statuses_array), $i < $n + 1; $i++) { if (isset($customers_statuses_array[$i]['id'])) { $permission_array = array_merge($permission_array, array('group_permission_' . $customers_statuses_array[$i]['id'] => $permission[$customers_statuses_array[$i]['id']])); } } $sql_data_array = array('sort_order' => $sort_order, 'categories_status' => $categories_status, 'products_sorting' => olc_db_prepare_input($categories_data['products_sorting']), 'products_sorting2' => olc_db_prepare_input($categories_data['products_sorting2']), 'categories_template' => olc_db_prepare_input($categories_data['categories_template']), 'listing_template' => olc_db_prepare_input($categories_data['listing_template'])); $sql_data_array = array_merge($sql_data_array, $permission_array); if ($action == 'insert') { $insert_sql_data = array('parent_id' => $dest_category_id, 'date_added' => 'now()'); $sql_data_array = olc_array_merge($sql_data_array, $insert_sql_data); olc_db_perform(TABLE_CATEGORIES, $sql_data_array); $categories_id = olc_db_insert_id(); } elseif ($action == 'update') { $update_sql_data = array('last_modified' => 'now()'); $sql_data_array = olc_array_merge($sql_data_array, $update_sql_data); olc_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', 'categories_id = \'' . $categories_id . '\''); } olc_set_groups($categories_id, $permission_array); $languages = olc_get_languages(); foreach ($languages as $lang) { $categories_name_array = $categories_data['name']; $sql_data_array = array('categories_name' => olc_db_prepare_input($categories_data['categories_name'][$lang['id']]), 'categories_heading_title' => olc_db_prepare_input($categories_data['categories_heading_title'][$lang['id']]), 'categories_description' => olc_db_prepare_input($categories_data['categories_description'][$lang['id']]), 'categories_meta_title' => olc_db_prepare_input($categories_data['categories_meta_title'][$lang['id']]), 'categories_meta_description' => olc_db_prepare_input($categories_data['categories_meta_description'][$lang['id']]), 'categories_meta_keywords' => olc_db_prepare_input($categories_data['categories_meta_keywords'][$lang['id']])); if ($action == 'insert') { $insert_sql_data = array('categories_id' => $categories_id, 'language_id' => $lang['id']); $sql_data_array = olc_array_merge($sql_data_array, $insert_sql_data); olc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array); } elseif ($action == 'update') { olc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', 'categories_id = \'' . $categories_id . '\' and language_id = \'' . $lang['id'] . '\''); } } if ($categories_image =& olc_try_upload('categories_image', DIR_FS_CATALOG_IMAGES . 'categories/')) { $cname_arr = explode('.', $categories_image->filename); $cnsuffix = array_pop($cname_arr); $categories_image_name = $categories_id . '.' . $cnsuffix; @unlink(DIR_FS_CATALOG_IMAGES . 'categories/' . $categories_image_name); rename(DIR_FS_CATALOG_IMAGES . 'categories/' . $categories_image->filename, DIR_FS_CATALOG_IMAGES . 'categories/' . $categories_image_name); olc_db_query("SQL_UPDATE " . TABLE_CATEGORIES . "\n\t\t\t\t\t\t \t\t SET categories_image = '" . olc_db_input($categories_image_name) . "'\n\t\t\t\t\t\t \t\t WHERE categories_id = '" . (int) $categories_id . "'"); } if ($categories_data['del_cat_pic'] == 'yes') { @unlink(DIR_FS_CATALOG_IMAGES . 'categories/' . $categories_data['categories_previous_image']); olc_db_query("SQL_UPDATE " . TABLE_CATEGORIES . "\n\t\t\t\t\t\t \t\t SET categories_image = ''\n\t\t\t\t\t\t \t\t WHERE categories_id = '" . (int) $categories_id . "'"); } }
function olc_set_groups($categories_id, $shops) { // get products in categorie $products_query = olc_db_query("SELECT products_id FROM " . TABLE_PRODUCTS_TO_CATEGORIES . "\n\twhere categories_id='" . $categories_id . APOS); while ($products = olc_db_fetch_array($products_query)) { olc_db_query(SQL_UPDATE . TABLE_PRODUCTS . " SET group_ids='" . $shops . "'\n\t\twhere products_id='" . $products['products_id'] . APOS); } // set status of categorie olc_db_query(SQL_UPDATE . TABLE_CATEGORIES . " set group_ids = '" . $shops . "'\n\twhere categories_id = '" . $categories_id . APOS); // look for deeper categories and go rekursiv $categories_query = olc_db_query("SELECT categories_id FROM " . TABLE_CATEGORIES . "\n\twhere parent_id='" . $categories_id . APOS); while ($categories = olc_db_fetch_array($categories_query)) { olc_set_groups($categories['categories_id'], $shops); } }