Mediawiki Extensions Einbinden
Die ist eine kleine Liste von nützlichen Extensions für das MediaWiki inklusive Installations- und Konfigurationsanleitung. Es sind keine Must Have Extensions aber ein Blick darauf lohnt sich sicherlich!
FCKEditor
!!!Achtung!!! Funktioniert seit MediaWiki 1.18 nicht mehr.
cd /path/to/mediawiki/extensions/ wget http://upload.wikimedia.org/ext-dist/FCKeditor-MW1.17-r81394.tar.gz tar -xzvf FCKeditor-MW1.17-r81394.tar.gz rm FCKeditor-MW1.17-r81394.tar.gz
LocalSettings.php
# Enable FCKEditor require_once("$IP/extensions/FCKeditor/FCKeditor.php"); $wgUseAjax = 'true'; $wgFCKEditorToolbarSet = "Wiki";
Tips:
Bei Debian Squeeze und Ubuntu 11.04 kann der FCKEditor einfach als Extension nachinstalliert werden und aktiviert werden:
aptitude install mediawiki-extensions-fckeditor mwenext FCKeditor.php
/usr/share/mediawiki/extensions/FCKeditor/fckeditor_config.js
Einkomentieren um auch die Text und Hintergrundfarbe ändern zu können:
['TextColor','BGColor'],
Hinzufügen um das Copy and Paste ohne nervigen PopUp zu erledigen:
FCKConfig.AutoDetectPasteFromWord = true; FCKConfig.CleanWordKeepsStructure = false; FCKConfig.ForcePasteAsPlainText = false;
PDFExport
Als erstes muss die Abhängigkeit htmldoc
installiert werden:
aptitude install htmldoc
einfach unter extensions
einen Ordner Namens PdfExport
erstellen und hier die 4 PHP Files ablegen:
-rw-r--r-- 1 root root 11K 2011-06-22 20:17 PdfExport_body.php -rw-r--r-- 1 root root 190 2011-06-22 20:17 PdfExport.i18n.alias.php -rw-r--r-- 1 root root 8.7K 2011-06-22 20:17 PdfExport.i18n.php -rw-r--r-- 1 root root 2.0K 2011-06-22 20:17 PdfExport.php
und einbinden
LocalSettings.php
# Enable PdfExport require_once("$IP/extensions/PdfExport/PdfExport.php");
WikiEditor
!!!Achtung!!! Seit MediaWiki 1.18 ist dieser standardmäßig dabei und muss nur konfiguriert werden.
cd /path/to/mediawiki/extensions/ svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/WikiEditor/
LocalSettings.php
# Enable WikiEditor require_once( "$IP/extensions/WikiEditor/WikiEditor.php" ); $wgDefaultUserOptions['usebetatoolbar'] = 1; $wgDefaultUserOptions['usebetatoolbar-cgd'] = 1; $wgDefaultUserOptions['wikieditor-preview'] = 1;
SyntaxHighlight_GeSHi
Achtung! Ist mittlerweile Standardmäßig bei MediaWiki Neuinstallationen dabei!
cd /path/to/mediawiki/extensions/ svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi
LocalSettings.php
# Enable SyntaxHighlight_GeSHi wfLoadExtension( 'SyntaxHighlight_GeSHi' );
-- Nicht mehr nötig --
damit wie bei pre
ein blau gestrichelter Rahmen um den Code erscheint, der Hintergrund Grau und die Schriftgröße genauso groß ist muss die Geshi.css
Datei angepasst werden:
http://www.domain.tld/index.php/MediaWiki:Geshi.css
/* This css will override styles used by the GeSHi syntax highlighting, such that less awful colors for the highlighting can be chosen. */ /** * Language code: "vb" * * Overrides colors used for keywords from that horrible gold * to more tolerable blue. Other colors left as default at present time. */ .source-vb .kw1 { color: #006 !important; } /** * Language code: "cpp" * * Color fix for member variables */ .source-cpp .me1 { color:#499; } .source-cpp .me2 { color:#499; } /* Reinstating borders */ body.skin-monobook div.mw-geshi { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } body.skin-modern div.mw-geshi { border: solid 1px #3c78b5; padding: 0.4em; background-color: #f0f0f0; } body.skin-simple div.mw-geshi { margin: 2em; border: solid 1px black; } body.skin-chick div.mw-geshi { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } body.skin-vector div.mw-geshi { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* Fix so <syntaxhighlight> tags, and .css and .js pages, get normal text size also in some versions of Firefox, Safari, Konqueror, Chrome etc. */ div.mw-geshi div, pre { font-family: monospace, "Courier New" !important; } /* Geshi's colourscheme for MySQL is absolutely hideous. */ .mysql.source-mysql .kw1, .mysql.source-mysql .kw2, .mysql.source-mysql .kw3, .mysql.source-mysql .kw6, .mysql.source-mysql .kw10 { color: #993333; } .mysql.source-mysql .coMULTI, .mysql.source-mysql .sy1 { color: #808080; } .mysql.source-mysql .br0 { color: #66cc66; }
Lockdown
cd /path/to/mediawiki/extensions/ git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/Lockdown"
LocalSettings.php
# Enable Lockdown wfLoadExtension( 'Lockdown' ); $wgSpecialPageLockdown['Version'] = array('user', 'bureaucrat', 'sysop'); $wgSpecialPageLockdown['Export'] = array('user', 'bureaucrat', 'sysop'); $wgSpecialPageLockdown['Listfiles'] = array('user', 'bureaucrat', 'sysop'); $wgSpecialPageLockdown['Listusers'] = array('user', 'bureaucrat', 'sysop'); $wgSpecialPageLockdown['Statistics'] = array('user', 'bureaucrat', 'sysop'); $wgSpecialPageLockdown['Booksources'] = array('user', 'bureaucrat', 'sysop'); $wgSpecialPageLockdown['Protectedpages'] = array('user', 'bureaucrat', 'sysop'); $wgActionLockdown['history'] = array('user', 'bureaucrat', 'sysop'); $wgActionLockdown['edit'] = array('user', 'bureaucrat', 'sysop');
SimpleSecurity
Achtung: Funktioniert nicht mehr!!!
cd /path/to/mediawiki/extensions/ wget http://upload.wikimedia.org/ext-dist/SimpleSecurity-MW1.17-r76413.tar.gz tar -xzf SimpleSecurity-MW1.17-r76413.tar.gz rm SimpleSecurity-MW1.17-r76413.tar.gz
LocalSettings.php
# Enable SimpleSecurity $wgSecurityUseDBHook = true; #Bei MW 1.17 weglassen! include_once("$IP/extensions/SimpleSecurity/SimpleSecurity.php"); $wgSecurityRenderInfo = true; $wgSecurityAllowUnreadableLinks = false;
damit Die Sicherheitsbenachrichtigung besser erkennbar ist, folgendes in der Common.css
eintragen:
http://wiki.domain.tld/index.php/MediaWiki:Common.css
/* Das folgende CSS wird für alle Benutzeroberflächen geladen. */ #security-info-toggle { background: transparent url(/wiki/skins/monobook/lock_icon.gif) no-repeat scroll left center; padding-left: 16px; } #security-info { border: 1px solid #ccc; background: #eee; }
Vector
!!!Achtung!!! Der Vector Skin ist seit MediaWiki 1.18 standardmäßig dabei.
cd /path/to/mediawiki/extensions/ wget http://upload.wikimedia.org/ext-dist/Vector-MW1.17-r87170.tar.gz tar -xzf Vector-MW1.17-r87170.tar.gz rm Vector-MW1.17-r87170.tar.gz
LocalSettings.php
# Enable Vector Extension require_once( "$IP/extensions/Vector/Vector.php" ); $wgVectorUseSimpleSearch = true;
Collection
cd /path/to/mediawiki/extensions/ wget http://upload.wikimedia.org/ext-dist/Collection-MW1.17-r85033.tar.gz tar -xzvf Collection-MW1.17-r85033.tar.gz rm Collection-MW1.17-r85033.tar.gz
LocalSettings.php
# Enable Collection Extension require_once("$IP/extensions/Collection/Collection.php"); $wgCollectionFormats = array( 'rl' => 'PDF', 'odf' => 'ODT', 'xhtml' => 'XHTML', 'docbook' => 'Docbook XML', );
Description2
Diese Extension sorgt dafür das der Meta Tag Description mit den nötigen Beschreibungen gefüttert wird. Dies verbessert das Suchmaschinen Ranking.
Die Installation ist wie immer ziemlich einfach:
cd /path/to/mediawiki/extensions/
Hier dann die heruntergeladene Datei hineinkopieren
tar -xzvf wikimedia-mediawiki-extensions-Description2-3fe7637.tar.gz
rm wikimedia-mediawiki-extensions-Description2-*.tar.gz
mv wikimedia-mediawiki-extensions-Description2-* Description2
LocalSettings.php
# Description2
require_once( "$IP/extensions/Description2/Description2.php" );
$wgEnableMetaDescriptionFunctions = true;
Google Analytics Plugin
cd /path/to/mediawiki/extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/googleAnalytics.git
LocalSettings.php
# Google Analytics
require_once( "$IP/extensions/googleAnalytics/googleAnalytics.php" );
$wgGoogleAnalyticsAccount = 'UA-9210947-3';
Google Adsense Plugin
cd /path/to/mediawiki/extensions/ git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleAdSense"
LocalSettings.php
# Enable Google Adsense
require_once( "$IP/extensions/GoogleAdSense/GoogleAdSense.php" );
$wgGoogleAdSenseClient = 'ca-pub-65629xxx736782828';
$wgGoogleAdSenseSlot = '607xx3096';
$wgGoogleAdSenseID = 'wiki';
$wgGoogleAdSenseWidth = 120;
$wgGoogleAdSenseHeight = 250;
MediaWiki:Common.css
/* Pad Google AdSense box in portlet in sidebar */
#p-googleadsense-portletlabel .Body {
padding-top: 10px !important;
/* text-align: center; */
}
Here you can change the description of the adsense bar:
MediaWiki:Googleadsense-portletlabel
Sponsored Link
To bring it in the right Position in your Sidebar, just put it in the right place:
- https://yourwikiurl/wiki/MediaWiki:Sidebar
googleadsense-portletlabel
* navigation ** mainpage|mainpage * googleadsense-portletlabel * Quicklinks
Since MediaWiki 1.35 and with the Vector Skin, Sidebar Gadgets are not shown anymore. But you can enable it again by modifying MediaWiki:Vector.css
just add these lines at the bottom of
- https://yourwikiurl/MediaWiki:Vector.css
.emptyPortlet {
display: block;
}
Here is a hack to uncollapse google Adsense bar by default (not needed anymore):
skins/Vector/collapsibleNav.js (near Line 170)
// In the case that we are not showing the new version, let's show the languages by default if ( state == 'true' || id == "p-googleadsense" || ( state == null && i < 1 ) || ( state == null && version == 1 && id == 'p-lang' ) ) {
For further instructions see:
SelectCategory
Diese Extension ermöglicht es am unteren Ende des Editors eine oder mehrere Kategorien für einen Artikel festzulegen.
cd /path/to/mediawiki/extensions/
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SelectCategory.git
LocalSettings.php
require_once( "$IP/extensions/SelectCategory/SelectCategory.php" );
Um die Liste, der Kategorien etwas kleiner und scrollbar zu machen kann folgender Code in die MediaWiki:Common.css
eingetragen werden:
/* verkleinert die Kategorie Liste */
#SelectCategoryList
{
list-style-image: none;
list-style-type: none;
background-color:#EEEEEE;
height: 250px;
width: 50%;
overflow: scroll
}
WikiCategoryTagCloud
Mit diesem Plugin ist es Möglich eine Category Cloud auf einer beliebigen Seite zu positionieren. Somit kann man zum Beispiel auf der Startseite eine Kategorie Wolke sichtbar machen, um so einen schnellen Einstieg in die Kategorien zu ermöglichen.
cd /path/to/mediawiki/extensions/
git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiCategoryTagCloud"
LocalSettings.php
require_once( "$IP/extensions/WikiCategoryTagCloud/WikiCategoryTagCloud.php" );
Um die Cloud in einem Artikel zu aktivieren kann zum Beispiel folgende Zeile eingefügt und angepasst werden. Man kann hier ganz normale css Parameter verwenden!
<tagcloud style="width:220px;height:auto;text-align:center;margin-left:5px;margin-right:5px;margin-top:5px;margin-bottom:5px;">min_size=65</tagcloud>
Patch für folgende Fehlermeldung:
Warning: Illegal offset type in isset or empty in (...)/includes/Title.php on line 117 Warning: trim() expects parameter 1 to be string, array given in (...)/includes/Title.php on line 2286 Notice: Undefined index: linkstyle in $IP\extensions\WikiCategoryTagCloud\WikiCategoryTagCloud.php on line 66
extensions/WikiCategoryTagCloud/WikiCategoryTagCloud.php
function invalidateCache() {
//$titles[0] = explode( "\n", wfMsg( 'tagcloudpages' ) );
$titles = explode( "\n", wfMsg( 'tagcloudpages' ) );
/*$link_style = $params['linkstyle'];*/
$link_style = '';
if (isset($params) && isset($params['linkstyle'])) {
$link_style = $params['linkstyle'];
}
Seit MediaWiki 1.35 und dem damit aktualisierten Vector Skin werden Sidebar Gadgets nicht mehr angezeigt. Man kann dies jedoch wieder aktivieren in dem man die MediaWiki:Vector.css
bearbeitet.
dafür einfach die folgenden Zeilen der CSS Konfiguration anhängen:
- https://yourwikiurl/MediaWiki:Vector.css
.emptyPortlet {
display: block;
}
CategoryTagCloud
Diese Extension ist änlich wie die oben beschriebene WikiCategoryTagCloud Extension. Nur das diese eine Category Cloud in die Sidebar einfügt. Die Installation erfolgt folgendermaßen:
cd /path/to/mediawiki/extensions/
wget http://cat-tagcloud.svn.sourceforge.net/svnroot/cat-tagcloud/trunk/trunk/CategoryTagCloud.tar.gz
tar -xzvf CategoryTagCloud.tar.gz
rm CategoryTagCloud.tar.gz
LocalSettings.php
require_once( "$IP/extensions/CategoryTagCloud/CategoryTagCloud.php" );
Konfiguriert wird die Extension hier:
CategoryTagCloud.body.php
$MIN_SIZE = 30;
$INCREASE_FACTOR = 70;
// Build up an array and keep track of mins and maxes
$minCount = -1;
$maxCount = -1;
$categories = array();
//
und den Style ändert man im css File:
css/style.css
.tagcloud {
width: 98%;
text-align: center;
//background-color: #FDFDFD;
padding: 10px 5px 10px 3px;
}
.tagcloud a {
//color: #0052CB;
margin-left: 0px;
margin-right: 10px;
font-weight: bold;
}
Problem mit DB_SLAVE bei MW >= 1.34
Nach einem Update auf MediaWiki 1.34 kommt es bei der Verwendung dieser leider nicht mehr wirklich aktuellen Extension zu einem Fehler:
MediaWiki internal error. Original exception: [87704f0380f80aabaced53ad] /wiki/Test UnexpectedValueException from line 462 of /var/www/html/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Invalid server index index #DB_SLAVE Backtrace: #0 /var/www/html/includes/libs/rdbms/loadbalancer/LoadBalancer.php(896): Wikimedia\Rdbms\LoadBalancer->getConnectionIndex(string, array, string) #1 /var/www/html/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1043): Wikimedia\Rdbms\LoadBalancer->getConnection(string, array, string, integer) #2 /var/www/html/includes/GlobalFunctions.php(2576): Wikimedia\Rdbms\LoadBalancer->getMaintenanceConnectionRef(string, array, string) #3 /var/www/html/extensions/CategoryTagCloud/CategoryTagCloud.body.php(39): wfGetDB(string) #4 /var/www/html/extensions/CategoryTagCloud/CategoryTagCloud.body.php(89): CategoryTagCloud::countCategoryOcurrences(array, integer, integer) #5 /var/www/html/includes/Hooks.php(174): CategoryTagCloud::renderTagCloudBox(SkinVector, array) #6 /var/www/html/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL) #7 /var/www/html/includes/skins/Skin.php(1325): Hooks::run(string, array) #8 /var/www/html/includes/skins/Skin.php(1352): Skin->{closure}() #9 /var/www/html/includes/skins/SkinTemplate.php(452): Skin->buildSidebar() #10 /var/www/html/includes/skins/SkinTemplate.php(215): SkinTemplate->prepareQuickTemplate() #11 /var/www/html/includes/OutputPage.php(2574): SkinTemplate->outputPage() #12 /var/www/html/includes/MediaWiki.php(907): OutputPage->output(boolean) #13 /var/www/html/includes/MediaWiki.php(919): MediaWiki->{closure}() #14 /var/www/html/includes/MediaWiki.php(527): MediaWiki->main() #15 /var/www/html/index.php(44): MediaWiki->run() #16 {main} ...
Dieser kommt davon das DB_SLAVE
durch DB_REPLICA
ersetzt wurde. Um das Ganze zu fixen einfach in der Datei CategoryTagCloud/CategoryTagCloud.body.php
die Zeile mit DB_SLAVE
anpassen:
$db = &wfGetDB(DB_REPLICA);
Danach sollte alles wieder wunderbar funktionieren!
Debugging RSS Feed & CategoryTagCloud Problem
Nachdem man die Extension aktiviert hat, wird man schnell merken, dass die RSS Feeds des Mediawikis nicht mehr funktionieren und folgenden Fehler auspuckt:
XML-Verarbeitungsfehler: XML- oder Text-Deklaration nicht am Beginn der Entität Adresse: http://twiki.laub-home.de/index.php?title=Spezial:Letzte_%C3%84nderungen&feed=atom Zeile Nr. 2, Spalte 1: <?xml version="1.0"?> ^
Ich konnte diesen Fehler dadurch beheben, in dem ich in allen php Dateien der Extension den PHP End Tag am Ende entfernt habe:
?>
dies kann mit folgendem Befehl durchgeführt werden:
cd /path/to/extensions/CategoryTagCloud
sed -i 's@^?>@@g' *.php
CookieWarning
Da nach neuem Gesetz in vielen Ländern nun der Betreiber einer Webseite verpflichtet ist auf Cookies hinzuweisen, hier eine Extension die ich in diesem Wiki verwende.
Installation:
cd /path/to/mediawiki/extensions
git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/CookieWarning"
LocalSettings.php
# Cookie Warning Extension
wfLoadExtension( 'CookieWarning' );
$wgCookieWarningEnabled = true;
RelatedArticles
Die Extension RelatedArticles lässt es zu, das im Footer passende andere Seiten angezeigt werden.
Installation:
cd /path/to/mediawiki/extensions
git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/RelatedArticles"
LocalSettings.php
# Related Articles
wfLoadExtension( 'RelatedArticles' );
$wgRelatedArticlesFooterWhitelistedSkins = ['minerva', 'vector'];
$wgRelatedArticlesDescriptionSource = 'pagedescription';
Ist die Extension richtig installiert, dann kann man in jede Seite mit dem Tag {{#related:SITENAME}} mit einer anderen verbinden.
Um einen Button im WikiEditor zu bekommen, sollte man das folgende Code Schnipsel in der MediaWiki:Common.js
einfügen
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'insert',
'tools': {
'sourcetext': {
label: 'RelatedArticle',
type: 'button',
icon: '/images/buttons/article.png',
action: {
type: 'encapsulate',
options: {
pre: "{{#related:",
periMsg: "insert sitename here",
post: "}}"
}
}
}
}
});