I'm not exactly after attention I'm more just documenting my experience in hope that others can benefit from it in some way.
On Tue, May 21, 2013 at 2:14 AM, Kaseluris-Nikos-1959 < [email protected]> wrote: > At the end of 2011 I have created the synagonism-mw skin [1] with similar > FUNCTIONALITY (no coding) but got NO attention of the community. > > [1] http://synagonism-mw.sourceforge.net/ > > > > On Mon, May 20, 2013 at 6:56 PM, Jason Lewis <[email protected] > >wrote: > > > Hello, > > > > Let me start off by introducing myself. My name is Jason Lewis and I'm a > > developer and (some kind of) designer from Australia. I play a role in > the > > community side of things for a PHP framework called Laravel. > > > > Over the last few days I've developed a skin for the Laravel community > wiki > > that fits in with the overall theme of the other community sites. The > idea > > was to make it blend, but to also keep some sort of wiki "feel" to it. On > > the surface it looks very fresh but at its core it is still very much > Media > > Wiki. You can check the skin out here: http://wiki.laravel.io > > > > The purpose of this thread is to give you an overview of how I went about > > skinning Media Wiki from the point of view of someone who has never > > attempted it before. I've used Media Wiki in the past but never done > > anything besides changing the default logo.* *During the process of > > skinning I used the following tutorial as a reference for some of the > > inner-workings of Media Wiki: > > http://www.mediawiki.org/wiki/Manual:Skinning/Tutorial > > > > *The Design > > * > > Before I even started looking at how to skin Media Wiki I drafted up a > > design with just standard HTML/CSS. I used the Wikipedia site as a > > reference here for some of the required elements but also referred to the > > linked tutorial above as it mentions some design considerations. During > > this designing stage I didn't used my own markup and gave my classes my > own > > names. I didn't think of the Media Wiki class names or IDs, that would > come > > later. Once I was happy with my design I begun the skinning process. > > > > *The Skinning > > * > > This wasn't as hard as I was imagining it to be. There aren't a lot of > > quality resources out there that go through skinning Media Wiki. Most > just > > say copy "MonoBook" and change it to fit your needs. I don't like that. > > That, to me, feels very hacky. It was good to see the tutorial linked > above > > actually go through the setup procedure and the required files. What's > even > > better about this tutorial is that everything seemed separated. There > were > > a few tutorials that I briefly skimmed over that seemed to do everything > in > > the actual "skin" file. > > > > I essentially copied the first part of that tutorial word-for-word, as I > > had no idea how Media Wiki handled it all. > > > > Once I got to the meat of my skin I only focused on the main elements. > The > > first part was the navigation bar. The only dynamically generated part of > > that navigation bar is the "Toolbox" and the user section ("request > > account", "login", then the actual user navigation). Everything else uses > > static links and text. This was my first hurdle. How do I make a link > with > > Media Wiki? Luckily I got some help in the #mediawiki IRC. The "Linker" > and > > "Title" classes were what I was after. Here's an example. > > > > <?php echo Linker::link(Title::newFromText('Laracon')); ?> > > > > Next up I need to get the logged in user. I can't remember where but I > > managed to stumble upon the $wgUser global variable (shudders). Using > this > > variable I could check if the user was logged in, if so output the users > > menu, or if not show the login or register links. > > > > After the navigation bar I went straight to the content and got that all > > sorted. Once I had both these main sections completed I moved on to other > > sections, like the "new talk" notifications and search box. There were a > > few things I had to adjust slightly, such as the "action links" that > appear > > above a page ("edit", "discussion", etc). But for the most part it was > > pretty easy. > > > > The last little hurdle I had to jump was pulling the table of contents > from > > the page and sticking it to the left so that it scrolls with you. > > Originally I wanted to somehow pull it on the server side and do it that > > way. After a little trial and error and trawling through the API (plus > some > > tips from the IRC guys, thanks!) I decided to just use a jQuery approach. > > Using jQuery I just pull the ToC out, and insert it before the main > content > > then use CSS for the rest. > > > > That pretty much covers my experience and case study. The source of the > > skin is available on GitHub for those interested: > > https://github.com/jasonlewis/laravel-io-wiki-skin > > > > Thanks for reading. I'd be happy to answer any further questions. > > > > Jason > > _______________________________________________ > > MediaWiki-l mailing list > > [email protected] > > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > > > > > > -- > Kaseluris-Nikos-1959 > Synagonism = ALL winners, Antagonism = ONE winner > _______________________________________________ > MediaWiki-l mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > _______________________________________________ MediaWiki-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
