There are numerous ways in which you can affect the output of any view in Elgg. Some of these are well documented, while others are not. Following are the ways in which it can be done:
If you want to overwrite any core view completely, the overloading method is the best way to go about it.
If you only want to append code to existing views, the second method is the way you want to go.
If you want to filter or modify the final output in a selective manner the third approach is the way to go.