This class would belong more appropriately within the 'user' API
(core_user) instead of within the 'core' API, since it is
directly related to user data.
Since the class has only just been added to Moodle, now is a good
time to move it.
In all cases changes have been kept to a minimum while not making
the code completely horrible. For example, there are many instances
where it would probably be better to rewrite a query entirely, but
I have not done that (in order to reduce the risk of changes).
Following fixes have been made:-
Porfile links where generating errors when there was no courseid present. Fixed the same.
get_readers() method was accessing an undefined property.
popups were used for action and ip address before the whole rewrite, we should maintain the same behaviour.
Fixed string issues.
Pass context to format_string method