Пример #1
0
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);
}
Пример #2
0
/**
 * 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;
}