Manual talk:Hooks/SkinTemplateOutputPageBeforeExec

When I try to use this hook in an extension, the MediaWiki page shows lots of warnings like this:


 * Warning: Cannot modify header information - headers already sent by (output started at (myexteion).php:14) in includes/WebResponse.php on line 1

Is this hook not suited for use in an extension? How can these warnings be suprssed?

Example: suppress "User contributions" link in the toolbox for non-sysops
Add in LocalSettings.php to suppress "User contributions" link in the toolbox for non-sysops (tested with MediaWiki 1.15.1 --Wikinaut 17:29, 7 January 2010 (UTC)).

Note: This code suppresses only the link in the toolbox. Read here, how disable the Special:Contribution page as such.

signature
The call in SkinTemplate.php is wfRunHooks( 'SkinTemplateOutputPageBeforeExec', array( &$this, &$tpl ), so the first argument is a SkinTemplate object, and the second is a "template" object, apparently usually (always?) a subclass of QuickTemplate. I'm not sure what kinds of objects are supposed to be referred to by $template and $templateEngine in the current page's text, so I haven't changed it. Does anyone know how veteran MW hackers would naturally interpret variables named $template and $templateEngine?

This hook seems like a bad idea
It allows people to redefine what template variables shared across various skins mean [1]

Use cases like suppressing User:Contributions feel like they would be better done if they were built into core?

[1] http://thread.gmane.org/gmane.science.linguistics.wikipedia.technical/74230 Jdlrobson (talk) 19:22, 6 December 2013 (UTC)