Может кто подскажет, попробовал сделать следующей конструкцией:
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
$sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")";
} elseif ($data['sort'] == 'p.price') {
$sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
} else {
$sql .= " ORDER BY (p.price>0) DESC," . $data['sort'];
}
} else {
$sql .= " ORDER BY (p.price>0) DESC, p.sort_order";
}
Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто.
У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос такой, что нибудь сталкивался с Brainy Filter, может кто-то знает где в нем какие условия для сортировки прописываются?