Hi all,
I'm using a dual ranklist (users can choose their rank alignement in their profile) and while it's a trivial change editing the core files, the event system does not seem to allow for an efficient way of achieving the same thing:
forum/includes/functions_display.php, line 1546, replace:
CODE: SELECT ALL
if ($user_posts >= $rank['rank_min'])
with:
CODE: SELECT ALL
if ($user_posts >= $rank['rank_min'] && $user_data['user_rank_alignment'] == $rank['rank_alignment'])
It would be ideal if the native behaviour could be changed inside phpbb_get_user_rank rather than having to loop through all ranks a second time.
A simple idea would be to provide core.modify_user_rank with an additional argument such as a closure that could be overridden to change the way of determining if a rank 'suits' a user:
New line 1546
CODE: SELECT ALL
if ($rank_suits_user($user_data, $rank))
However I haven't seen a closure used in any of the phpBB events so that might be something the development team wants to avoid, in which case a rewriting of the phpbb_get_user_rank method would be the only solution.
Better events for rank generation
Forum rules
Please do not post support questions regarding installing, updating, or upgrading phpBB 3.3.x. If you need support for phpBB 3.3.x please visit the 3.3.x Support Forum on phpbb.com.
If you have questions regarding writing extensions please post in Extension Writers Discussion to receive proper guidance from our staff and community.
Please do not post support questions regarding installing, updating, or upgrading phpBB 3.3.x. If you need support for phpBB 3.3.x please visit the 3.3.x Support Forum on phpbb.com.
If you have questions regarding writing extensions please post in Extension Writers Discussion to receive proper guidance from our staff and community.