On 11-04-03 10:28 AM, Brion Vibber wrote: > On Sat, Apr 2, 2011 at 11:17 PM, Daniel Friesen > <li...@nadir-seen-fire.com>wrote: >> When working on special pages (ESPECIALLY includable special pages): >> - Use $this->getOutput() instead of the $wgOut global. >> - Use $this->getUser() instead of the $wgUser global. >> - Use $this->getSkin() instead of using $wgUser->getSkin(); >> >> In contexts where you are working with $wgOut or another OutputPage >> instance and using $wgUser and skin instances fetched from it to render >> stuff being passed back to output: >> - Use $out->getUser() instead of the $wgUser gobal. >> - Use $out->getSkin() instead of using $wgUser->getSkin(); >> > Seems like a good direction; this basically is encapsulating some of the > 'global state' (which is really "web UI state") into one place, and letting > us use a different set of state when appropriate. > > I have some thought to go through on what to do about the Linker in some >> contexts, but I have some plans I'm thinking of regarding Skin: >> - I'm thinking of making $out->getSkin(); the primary point for getting >> a skin instead of $wgUser->getSkin(); (I'll still keep BC), making >> OutputPage the focal point for things related to the output of the page. >> Having OutputPage track and manage skins also avoids some special case >> bugs, it's actually more sane for OutputPage to manage the skin when you >> examine various branches of code. >> > I'd be kind of inclined to separate out the Skin and Linker worlds a bit > further; really, the HTML formatting of links and such doesn't depend on the > user (except in some edge cases like stub links which could in principle be > done differently). The surrounding *skin* depends on the user settings, but > having to dive into a User object to get a Linker feels messy, especially if > we're rendering a wiki page to go into a common cache. > > IIRC the biggest remaining use case for link rendering actually being > customized by skin was for the special skin used for creating static HTML > dumps. > > If we had another way to do that, and normalized stub linking in some way > (say, by always sticking a magic class on and letting CSS deal with it) it > might be cleaner to avoid having to touch a Skin object unless you're > actually doing final HTML output. (This may be a bigger project though. :D) > > -- brion I had a short discussion and abandoned the linker as an instance idea. Now the Linker class is intended to be used entirely statically (bc for both Skins and hooks though).
I can look into static dumps sometime, I think it needed updates for one of the other skin changes as well. Why did we even pull html dumping out of core? I had some thoughts on offline/static dumping in my skin plans, and it seams to make much more sense for offline support in skins to be built in. ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name] _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l