So you should alter the fn_discussion_get_products function
Add extra field to calculate posts amount and add it to sorting
thanks for the info, the function in question is:
function fn_discussion_get_products(&$params, &$fields, &$sortings, &$condition, &$join, &$sorting, &$group_by, &$lang_code, &$having)
{
if (
!empty($params['rating'])
&& Registry::get('addons.product_reviews.status') !== ObjectStatuses::ACTIVE
) {
$fields[] = 'AVG(?:discussion_rating.rating_value) AS average_rating';
$fields[] = '?:discussion.type AS discussion_type';
$fields[] = '?:discussion.thread_id AS discussion_thread_id';
$join .= db_quote(" LEFT JOIN ?:discussion ON ?:discussion.object_id = products.product_id AND ?:discussion.object_type = 'P'");
if (fn_allowed_for('ULTIMATE') && Registry::ifGet('addons.discussion.product_share_discussion', 'N') == 'N' && Registry::get('runtime.company_id')) {
$join .= " AND ?:discussion.company_id = " . Registry::get('runtime.company_id');
}
$join .= db_quote(" LEFT JOIN ?:discussion_posts ON ?:discussion_posts.thread_id = ?:discussion.thread_id AND ?:discussion_posts.status = 'A'");
if (!empty($params['start_rating_period'])) {
$join .= db_quote(' AND ?:discussion_posts.timestamp > ?i', $params['start_rating_period']);
}
$join .= db_quote(" LEFT JOIN ?:discussion_rating ON ?:discussion.thread_id = ?:discussion_rating.thread_id AND ?:discussion_rating.post_id = ?:discussion_posts.post_id AND ?:discussion_rating.rating_value != 0");
$having[] = db_quote("average_rating > 0");
$params['sort_by'] = 'rating';
$params['sort_order'] = 'desc';
$sortings['rating'] = 'average_rating';
}
return true;
}
what I would like to do is add a limit to the selected ratings to only those with 50 or more posts.
but honestly am not sure how to add that limit correctly and only apply it to the block in question
any additional help is appreciated