Have you considered using something like say XSL? If a skin was a combination of a set of CSS/JS/image files plus an XSL file which took XML data (which would be the page content and various user interface elements) then you could avoid using a whole new template system. PHP 5 has an XSL 1.0 library compiled by default, and since it's implemented in C, I would bet it's far more performant than any PHP implementation of a template system aside from using PHP itself as a template system.
Then again, there's a lot of people out there that dislike XSL for all sorts of reasons - which to me have always carried the ring of prejudice. I personally think XSL is awesome, and would defend it with vigor. In any case, I'm excited about the work you are doing. - Trevor On 12/3/10 5:49 PM, Daniel Friesen wrote: > Perhaps I should commit what I have so far even though it's not quite > ready for use yet. > > It's enough to do this so far: > http://testwiki.new.wiki-tools.com/index.php?title=Main_Page&useskin=testskin > ((this runs off that ported monobook template I put in the pastie)) > > Right now I'm using smarty's eval: which I don't want to use because it > re-compiles the template each time you run it. > I really wanted to make use of MediaWiki's caching system because MW > already has such a good caching system it's built in, and having to > require extra permissions just to make smarty happy felt messed up. > > > I have a bad habit of starting projects for fun and experimenting them, > then abandoning them later. The ones I finish are usually the ones with > company backing, the really really simple ones, or ones with some other > sort of backing or other people working on it to. So having someone else > working on it too would probably be motivating. > This came after experimenting with porting Wikia's Monaco skin (got 1/3 > the way through), and after it I even started experimenting with writing > an entire language embedded in php that could be used in MW. And there's > my long lived vm based wiki farm experiment. > > > One possibility I suppose, would be to use the vector array as the > standard, but hardcode monobook to flatten it and relocate the tagline. > > Some ideas for the templates besides fixing caching... We should > consider a method of doing personal_urls and whatnot using some blocks > or functions that can aide in the generation of the links and make them > simpler to build with tooltips and whatnot. Perhaps also some sort of > block for content to automatically place the dataAfterContent. The > sidebar block could be made better potentially. > Besides footer_links we could also consider moving most of the toolbox > out of monobook and whatnot. Converting it mostly into something you can > loop through. > > > Btw, the new powered by icon, using a little more rounded and fancy > background: > http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/images/poweredby_mediawiki_88x31.png?revision=76120&view=markup > Anyone else think it feels slightly out of place in monobook? > http://en.wikipedia.org/wiki/?useskin=monobook > I debated tweaking the poweredby, etc... buttons to instead use > something a little more component style, where the content of the button > is an image, but the bg is provided by the skin. Giving you the same > style as before in monobook, but that nice new fancy style in vector. > > ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name] > > > On 10-12-03 11:10 AM, Trevor Parscal wrote: >> This is a really awesome project, I'm sure we can figure out a way for >> Vector and Monobook to be able to use the same arrays. >> >> Let me know if you want some help. >> >> - Trevor >> >> On 12/2/10 6:30 PM, Daniel Friesen wrote: >> >>> On 10-12-02 04:52 PM, Platonides wrote: >>> >>>> Aryeh Gregor wrote: >>>> >>>> >>>>> On Thu, Dec 2, 2010 at 5:17 PM, Paul Houle<[email protected]> wrote: >>>>> >>>>> >>>>>> Of all the code I've seen, the Mediawiki code seems to be one of >>>>>> the most difficult code bases to make simple changes in. When I had to >>>>>> change the template of a mediawiki once, the easiest answer I found was >>>>>> to put a proxy server in front of it, drop out the original template >>>>>> and spit the body text into a new template. (That said, this was a >>>>>> system I already had on the shelf that worked wonders for all sorts of >>>>>> commercial crapware) >>>>>> >>>>>> >>>>> What do you mean by "change the template of a mediawiki"? Do you mean >>>>> templates in the MediaWiki sense, as in pages that can be transcluded >>>>> into other pages? Or do you mean the skin? Skin HTML can usually be >>>>> changed by just grepping a relevant class or id and editing some raw >>>>> HTML, or a pretty simple wrapper layer. It can't be changed without >>>>> hacking the code, so it's certainly a lot harder than in most popular >>>>> web apps, but I'm pretty sure you can do it more easily in almost all >>>>> cases than by postprocessing the HTML output. >>>>> >>>>> >>>> Seems a Usability failure at developer users level. >>>> The proxying solution is completely wrong, yet WMF did it, too. >>>> And looking at http://www.mediawiki.org/wiki/Manual:Skinning it isn't >>>> friendly unless you already know what's it about. >>>> >>>> >>> I was experimenting with an extension to make creating php-less skins >>> possible myself. >>> http://pastie.org/1343349<- here's Monobook ported to a template >>> >>> The biggest thing I see different from WordPress etc... is that there's >>> a minimal amount of boilerplate in them. You don't have to copy the >>> bottom boilerplate, there's no [dataAfterContent], you don't have things >>> like our personal_urls where you have to code the whole tag manually >>> calling to things to make tooltips, etc... and embedding code. The way >>> the TOOLBOX has a bunch of stuff hardcoded into the skin isn't good. And >>> IMHO those footerlinks should be part of MediaWiki instead of hardcoded >>> into the skin. I wanted to make them part of the code, using an array in >>> vector's style, making monobook use it, but fold it onto one line. >>> Unfortunately I was stopped when I noticed that Vector moved tagline >>> from the end, to the end of the first array, after copyright meaning >>> they couldn't use the same array to get the same result. >>> >>> _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
