function fn_delete_feature($feature_id) { $feature_type = db_get_field("SELECT feature_type FROM ?:product_features WHERE feature_id = ?i", $feature_id); if ($feature_type == 'G') { $fids = db_get_fields("SELECT feature_id FROM ?:product_features WHERE parent_id = ?i", $feature_id); if (!empty($fids)) { foreach ($fids as $fid) { fn_delete_feature($fid); } } } db_query("DELETE FROM ?:product_features WHERE feature_id = ?i", $feature_id); db_query("DELETE FROM ?:product_features_descriptions WHERE feature_id = ?i", $feature_id); db_query("DELETE FROM ?:product_features_values WHERE feature_id = ?i", $feature_id); $v_ids = db_get_fields("SELECT variant_id FROM ?:product_feature_variants WHERE feature_id = ?i", $feature_id); // Delete variant images foreach ($v_ids as $v_id) { fn_delete_image_pairs($v_id, 'feature_variant'); } db_query("DELETE FROM ?:product_feature_variants WHERE feature_id = ?i", $feature_id); db_query("DELETE FROM ?:product_feature_variant_descriptions WHERE variant_id IN (?n)", $v_ids); $filter_ids = db_get_fields("SELECT filter_id FROM ?:product_filters WHERE feature_id = ?i", $feature_id); foreach ($filter_ids as $_filter_id) { fn_delete_product_filter($_filter_id); } }
if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($mode == 'update') { fn_update_product_filter($_REQUEST['filter_data'], $_REQUEST['filter_id'], DESCR_SL); } if ($mode == 'delete') { if (!empty($_REQUEST['filter_id'])) { if (fn_allowed_for('ULTIMATE')) { if (!fn_check_company_id('product_filters', 'filter_id', $_REQUEST['filter_id'])) { fn_company_access_denied_notification(); return array(CONTROLLER_STATUS_REDIRECT, 'product_filters.manage'); } } fn_delete_product_filter($_REQUEST['filter_id']); } } return array(CONTROLLER_STATUS_OK, 'product_filters.manage'); } if ($mode == 'manage' || $mode == 'picker') { $params = $_REQUEST; $params['get_descriptions'] = true; list($filters, $search) = fn_get_product_filters($params, Registry::get('settings.Appearance.admin_elements_per_page')); Tygh::$app['view']->assign('filters', $filters); Tygh::$app['view']->assign('search', $search); if (fn_allowed_for('ULTIMATE:FREE') && count($filters) > FILTERS_LIMIT) { fn_set_notification('W', __('warning'), __('product_filters_free_limit')); } if ($mode == 'manage') { Tygh::$app['view']->assign('filter_fields', fn_get_product_filter_fields());
/** * Removes product feature * * @param int $feature_id Feature identifier * @return boolean Always true */ function fn_delete_feature($feature_id) { $feature_deleted = true; if (fn_allowed_for('ULTIMATE')) { if (!fn_check_company_id('product_features', 'feature_id', $feature_id)) { fn_company_access_denied_notification(); return false; } } /** * Adds additional actions before product feature deleting * * @param int $feature_id Feature identifier */ fn_set_hook('delete_feature_pre', $feature_id); $feature_type = db_get_field("SELECT feature_type FROM ?:product_features WHERE feature_id = ?i", $feature_id); fn_set_hook('delete_product_feature', $feature_id, $feature_type); if ($feature_type == 'G') { $fids = db_get_fields("SELECT feature_id FROM ?:product_features WHERE parent_id = ?i", $feature_id); if (!empty($fids)) { foreach ($fids as $fid) { fn_delete_feature($fid); } } } $affected_rows = db_query("DELETE FROM ?:product_features WHERE feature_id = ?i", $feature_id); db_query("DELETE FROM ?:product_features_descriptions WHERE feature_id = ?i", $feature_id); if ($affected_rows == 0) { fn_set_notification('E', __('error'), __('object_not_found', array('[object]' => __('feature'))), '', '404'); $feature_deleted = false; } $variant_ids = fn_delete_product_feature_variants($feature_id); if (!fn_allowed_for('ULTIMATE:FREE')) { $filter_ids = db_get_fields("SELECT filter_id FROM ?:product_filters WHERE feature_id = ?i", $feature_id); foreach ($filter_ids as $_filter_id) { fn_delete_product_filter($_filter_id); } } /** * Adds additional actions after product feature deleting * * @param int $feature_id Deleted feature identifier * @param array $variant_ids Deleted feature variants */ fn_set_hook('delete_feature_post', $feature_id, $variant_ids); return $feature_deleted; }
function fn_ult_delete_company(&$company_id) { $filter_ids = db_get_fields("SELECT filter_id FROM ?:product_filters WHERE company_id = ?i", $company_id); foreach ($filter_ids as $filter_id) { fn_delete_product_filter($filter_id); } db_query('DELETE FROM ?:ult_objects_sharing WHERE share_company_id = ?i', $company_id); db_query('DELETE FROM ?:ult_product_descriptions WHERE company_id = ?i', $company_id); db_query('DELETE FROM ?:ult_product_prices WHERE company_id = ?i', $company_id); db_query('DELETE FROM ?:ult_product_option_variants WHERE company_id = ?i', $company_id); db_query('DELETE FROM ?:ult_language_values WHERE company_id = ?i', $company_id); Settings::instance()->removeVendorSettings($company_id); /** * Deletes additional data for ULT in add-ons * * @param integer $company_id Company ID */ fn_set_hook('ult_delete_company', $company_id); }