Mediawiki/variable logos

From s23
Jump to navigation Jump to search


Q[edit]

Hello, I have recently customize a style sheet for my wiki, and would love to be able to change out the logo dependant on some property set on the page, the category perhaps. However I have no idea how to do this, and lack the programming skills to try. If anyone knows how to do this, I would be willing to pay (via paypal) anyone that knows how to do this.

My email address is lara@sanctuaryshard.com, please include the cost in your email, and here is the wiki: http://www.sanctuaryshard.com/wiki/index.php?title=Main_Page

A[edit]

Hi, i have implemented a simple version of your requested feature. check out this: Go to a page on this wiki in Category:GNU, you should see a GNU head appearing in our logo, unlike on other pages. Also try pages in Category:ASCII. Those are just random examples. Source code changes i made follow:

go to /var/www/w/skins/MonoBook.php:

around line 138 find the part that says

 <div class="portlet" id="p-logo">

 ...

 </div>

In between these tags, replace the existing code with something like:

if (ereg ("GNU",$this->data['catlinks'])) { ?>
<a style="background-image: url(http://s23.org/w/skins/common/images/wiki-gnu.png);" href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>" title="<?php $this->msg('mainpage') ?>"></a>

<?php } elseif (ereg ("ASCII",$this->data['catlinks'])){ ?>

<a style="background-image: url(http://s23.org/w/skins/common/images/wiki-ascii.png);" href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>" title="<?php $this->msg('mainpage') ?>"></a>

<?php } else { ?>

<a style="background-image: url(<?php $this->text('logopath') ?>);" href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>" title="<?php $this->msg('mainpage') ?>"></a>

explanation:[edit]

if (ereg ("GNU",$this->data['catlinks'])) ...

if the category links contain "GNU"

<a style="background-image: url(http://s23.org/w/skins/common/images/wiki-gnu.png) ..

set the logo to wiki-gnu.png ..

elseif (ereg ("ASCII",$this->data['catlinks']))..

if the category links contain "ASCII"..

<a style="background-image: url(http://s23.org/w/skins/common/images/wiki-ascii.png) ..

set the logo to wiki-ascii.png ..

...

} else {

if nothing matched until now...

<a style="background-image: url(<?php $this->text('logopath') ?>)

set to default logopath from LocalSettings.php.

You need to customize[edit]

You need to change the URLs to your server and the keywords to your desired categories. You can add more "elseif" lines for other categories you want.

The price shall be a volunatary donation to our Wiki. (or, if you have work lets say the equivalent of what you get for 2 hours of your work in your location).


Thank you[edit]

This worked, Much appreciated. A donation has been made.

Thanks, it has arrived and is much appreciated. mutante 11:09, 23 April 2006 (CEST)