function fn_find_array_in_set($arr, $set, $find_empty = false) { $conditions = array(); if ($find_empty) { $conditions[] = "{$set} = ''"; } if (!empty($arr)) { foreach ($arr as $val) { $conditions[] = Database::quote("FIND_IN_SET(?i, {$set})", $val); } } return empty($conditions) ? '' : implode(' OR ', $conditions); }
/** * Get promotion data * * @param int $promotion_id promotion ID * @param string $lang_code code language * @return array promotion data */ function fn_get_promotion_data($promotion_id, $lang_code = DESCR_SL) { $extra_condition = ''; if (fn_allowed_for('ULTIMATE:FREE')) { $extra_condition = Database::quote(' AND p.zone = ?s', 'catalog'); } $promotion_data = db_get_row("SELECT * FROM ?:promotions as p LEFT JOIN ?:promotion_descriptions as d ON p.promotion_id = d.promotion_id AND d.lang_code = ?s WHERE p.promotion_id = ?i ?p", $lang_code, $promotion_id, $extra_condition); if (!empty($promotion_data)) { $promotion_data['conditions'] = !empty($promotion_data['conditions']) ? unserialize($promotion_data['conditions']) : array(); $promotion_data['bonuses'] = !empty($promotion_data['bonuses']) ? unserialize($promotion_data['bonuses']) : array(); if (!empty($promotion_data['conditions']['conditions'])) { foreach ($promotion_data['conditions']['conditions'] as $key => $condition) { if (!empty($condition['condition']) && $condition['condition'] == 'feature') { $condition['value_name'] = fn_get_product_feature_variant($condition['value']); $promotion_data['conditions']['conditions'][$key]['value_name'] = $condition['value_name']['variant']; } } } } return $promotion_data; }