On Sun, 13 Feb 2005 18:27:39 +0000, Ulf Clausen u.clausen@gmx.net wrote:
Maybe you should have a look into SpecialPage.php and SpecialWhatlinkshere.php for inspiration. I think (!) it's basically creating a SpecialPage object and execute() it. untested: include_once("includes/SpecialPage.php"); $sp = new SpecialPage("Whatlinkshere"); $sp->execute();
A bit of testing suggests that this is essentially usable, except that the execute() method takes the page title as a parameter - so, in my test hacking of Parser.php, I found I could use $sp->execute("$this->mTitle->getText()"); Wherever you end up adding it, you'll probably be able to get at a "Title" object for the page being displayed, and call it's getText() method in this way.
However, I notice that this adds the text *as soon as it's called* rather than returning a block of HTML or whatever (which means you've got to find the right place to put it), and that it has a link like "< [[foo]]", which doesn't make sense if you're including it on-page. So you may want to look at SpecialWhatlinkshere and make a modified version that better suits.
Excuse my lack of knowledge, but how and where do I include this code into my pages so it gets executed?
That's a surprisingly awkward question. I guess somewhere in the skin hierarchy, really - which can be a fairly confusing maze...
On 1.3, I would suggest that if you can get a function to return a block of text with the backlinks in it, you could add somewhere in includes/SkinPHPTal.php (in OutputPage.php) something like: $tpl->set( "backlinks", function_that_generates_backlinks() ); and then in xhtml_slim.pt (e.g. just after "{$bodytext}"): {$backlinks}
1.4 is basically the same, but it doesn't use the PHPTal template by default, but a kind of "pre-compiled" version, so the first change is in includes/SkinTemplate.php, and the second, in skins/MonoBook.php, should be more like: <?php $this->html('backlinks') ?>
And while I am writing: Is there a way of telling mediawiki to open external links in a new window? I have tried everything to persuade the parser to accept the HTML code "target=_blank", but failed.
You might want to look at recent threads on this topic, such as: http://mail.wikimedia.org/pipermail/mediawiki-l/2005-February/thread.html#34... http://mail.wikimedia.org/pipermail/mediawiki-l/2005-January/thread.html#291...
I know most of what's been written amounts to "don't do it", but maybe those of you who really really feel like this is a good idea could get together and work something out...