MediaWiki

Aus crazylinux.de
Wechseln zu: Navigation, Suche

MediaWiki ist ein freies Wiki-Softwarepaket, welches für die Wikipedia geschrieben worden ist. Es wird als Grundlage der Non-Profit-Organisation der Wikimedia Foundation und viele andere Wikis genutzt, einschließlich dieser Webseite.

http://www.mediawiki.org/

Folgende Erweiterungen bzw. Konfixx waren/sind relevant:

1 Konfiguration

1.1 404/Seite existiert nicht

Ist ein Systemtext: MediaWiki:Noarticletext

Diese Seite enthält momentan noch keinen Text. Du kannst sie <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten]</span>, ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]] oder die zugehörigen <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten]</span>.

1.2 Enabling subpages for a namespace

An easy way to enable subpages for a given namespace is to edit the LocalSettings.php and insert the following:

#LocalSettings.php
# Enable subpages in the main namespace
$wgNamespacesWithSubpages[NS_MAIN] = true;

http://www.mediawiki.org/wiki/Manual:%24wgNamespacesWithSubpages

1.3 Navigation

http://meta.wikimedia.org/wiki/Help:Navigation_bar
MediaWiki:Sidebar

1.4 Eliminating index.php from the url

Das Wiki läuft direkt unter http://crazylinux.de/. Artikel sind damit unter /, also z.b. http://crazylinux.de/Apache2, erreichbar.
http://meta.wikimedia.org/wiki/Eliminating_index.php_from_the_url

#LocalSettings.php
$wgScriptPath       = "";
## If using PHP as a CGI module, the ?title= style usually must be used.
$wgArticlePath      = "/$1";

Zusätzlich muss noch mod_rewrite aktiviert werden. Leider funktioniert die Regeln nicht in der .htaccess, deshalb müssen diese in die Apache-Conf

#/etc/apache2/sites-enabled/mysite.de
RewriteEngine on

# forbid bots to spider pages with certain urls that are forbidden in robots.txt anyway.
RewriteCond %{HTTP_USER_AGENT} .*Yahoo\!\sSlurp.*|.*Googlebot.*|.*msnbot.*
RewriteRule ^/index.php?.*$ /Hauptseite [L,QSA,gone]
RewriteCond %{HTTP_USER_AGENT} .*Yahoo\!\sSlurp.*|.*Googlebot.*|.*msnbot.*
RewriteCond %{REQUEST_URI} !^/Spezial:Alle_Seiten
RewriteRule ^/(MediaWiki|Mediawiki|Spezial):.*?.*$ /Hauptseite [L,QSA,gone]
RewriteCond %{HTTP_USER_AGENT} .*Yahoo\!\sSlurp.*|.*Googlebot.*|.*msnbot.*
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^/?$ /Hauptseite [L,QSA,gone]

# rules for well-behaving bots and normal browser:
RewriteCond %{REQUEST_URI} !^/files/
RewriteCond %{REQUEST_URI} !^/[i|I]cons/

# Don't rewrite requests for files in MediaWiki subdirectories,
# MediaWiki PHP files, HTTP error documents, favicon.ico, or robots.txt
RewriteCond %{REQUEST_URI} !^/(images|skins|cgi-bin|config|extensions)/
RewriteCond %{REQUEST_URI} !^/(redirect|texvc|index).php
RewriteCond %{REQUEST_URI} !^/error/(40(1|3|4)|500).html
RewriteCond %{REQUEST_URI} !^/(favicon.ico|sitemap.xml)
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/opensearch_desc.php
RewriteCond %{REQUEST_URI} !^/profileinfo.php
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} !^/api.php
#RewriteCond %{REQUEST_URI} !^/mw-config
RewriteCond %{REQUEST_URI} !^/load.php
RewriteRule ^/(.*)$ /index.php?title=$1 [L,QSA]

RewriteRule ^/index.php http://crazylinux.de/Hauptseite [L,QSA]

1.5 File Upload

#LocalSettings.php
## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads                = true;
$wgCheckFileExtensions = false;
$wgStrictFileExtensions = false;

// Add several file types to the default array
$wgFileExtensions = array_merge( $wgFileExtensions, array( 'pdf', 'ppt','htm','zip','.zip' ) );

$wgAllowCopyUploads = true;
$wgUseImageResize               = true;
#$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

#do not do that!!
$wgVerifyMimeType = false;


http://www.mediawiki.org/wiki/Configuring_file_uploads

1.6 No Anonymous

#LocalSettings.php
# Permission keys given to users in each group.
# All users are implicitly in the '*' group including anonymous visitors;
# logged-in users are all implicitly in the 'user' group. These will be
# combined with the permissions of all groups that a given user is listed
# in in the user_groups table.
#
# This replaces wgWhitelistAccount and wgWhitelistEdit
#
# The following line should be commented, otherwise these settings will
# throw away the settings on DefaultSettings.php (you probably don't want this).
# With this line commented you will only overwrite the settings you explicitly
# define here (that's what you probably want).
#$wgGroupPermissions = array();
$wgGroupPermissions['*'    ]['createaccount']   = false;
$wgGroupPermissions['*'    ]['read']            = true;
$wgGroupPermissions['*'    ]['edit']            = false;

Desweiteren sollten natürlich die 'Actions' ausgeblendet werden: http://www.mediawiki.org/wiki/Manual:FAQ#How_do_I_remove_the_article.2Fedit_etc_tabs_for_users_who_are_not_logged_in.3F

1.7 Überschriften nummerieren/numberheadings

#LocalSettings.php
$wgDefaultUserOptions['numberheadings'] = 1;

1.8 Config-Übersicht

http://www.mediawiki.org/wiki/Manual:Configuration_settings

1.9 How do I add more buttons on the edit page?

For adding more toolbar buttons above the edit field, you can use JavaScript code to register them in your MediaWiki:common.js. For example, a button for source code:

var customizeToolbar = function() {
        /* Your code goes here */
$('#wpTextbox1').wikiEditor('addToToolbar', {
                section: 'advanced',
                group: 'format',
                tools: {
                        buttonId: {
                                label: 'Highlight SourceCode',
                                type: 'button',
                                icon: '/skins/common/images/button_image.png',
                                action: {
                                        type: 'encapsulate',
                                        options: {
                                                pre: "<syntaxhighlight lang=\"php\">",
                                                peri: "<?php\n\n?>",
                                                post: "</syntaxhighlight>"
                                        }
                                }
                        }
                }
});
}; 

/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
        mw.loader.using( 'user.options', function () {
                if ( mw.user.options.get('usebetatoolbar') ) {
                        mw.loader.using( 'ext.wikiEditor.toolbar', function () {
                                $(document).ready( customizeToolbar );
                        } );
                }
        }
);}

http://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization

1.10 Robots.txt

http://www.mediawiki.org/wiki/Robots.txt

2 Extensions

2.1 Auth_RemoteUser

Automatic REMOTE_USER Authentication extension automatically logs users using the REMOTE_USER environment variable. Probably you have to replace REMOTE_USER with PHP_AUTH_USER!

apache.conf

<Location ~ "Spezial:Anmelden">
                #Turn on IMAP Authentication                        
                Auth_IMAP_Enabled on                                
                AuthUserFile /dev/null                              

                #AllowOverride none
                AuthBasicAuthoritative off
                AuthType Basic            
                AuthName Wiki-Login              
                Auth_IMAP_Authoritative on

                #Set the IMAP Server to which you want to connect (default=localhost):
                Auth_IMAP_Server localhost

                #Set the port on which the imap server is running (default=143):
                Auth_IMAP_Port 143

                #Turn on some extra logging (login attempts, etc.) in Apache's Error Log
                Auth_IMAP_Log off

                require valid-user
       </Location>

http://www.mediawiki.org/wiki/Extension:AutomaticREMOTE_USER


2.2 Extension:SelectCategory

The SelectCategory extension provides three functions:

  • It shows a list of all categories (unless a custom root category is configured) in their hierarchical structure on the edit page.
  • It strips all categories linked within a page upon editing and selects them in the category list list.
  • It adds selected categories from the list to the text body of the page on saving.

http://www.mediawiki.org/wiki/Extension:SelectCategory

2.3 Syntax-Highlighting

This extension adds the source tag to present formatted source code.
http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi

2.4 Last Updates (News)

http://www.mediawiki.org/wiki/Extension:News

broken with 1.12.0, but quick&dirty patch is available. It will use the old Parser-Class. Line $html="<fieldset..."; is optional.

/www/htdocs/wiki/extensions/News$ diff NewsRenderer.php.orig NewsRenderer.php

86a87
>               $parser = new Parser_oldPP;
107a109
>                       $this->templateparser->ClearState();
337,339c339,342
<                       #$output = $this->templateparser->parse( $text, $wgTitle, $this->templateoptions, true );
<                       $text .= $this->postfix;
<                       $html = $this->templateparser->recursiveTagParse( $text );
---
>                       $output = $this->templateparser->parse( $text, $wgTitle, $this->templateoptions, true );
>                       #$text .= $this->postfix;
>                       $html = $output->getText();
>                       #$html = $this->templateparser->recursiveTagParse( $text );
345a349
>               $html = "<fieldset class=\"special\"><legend>&Auml;nderungen</legend>". $html."</fieldset>";
550a555
>                       $this->templateparser->mOptions = $this->templateoptions;

to apply the patch save the diff as NewsRenderer.php.patch and execute

patch NewsRenderer.php <NewsRenderer.php.patch

<fixed>1 of 5 patches will not apply (don't know the reason), so you have to edit NewsRenderer.php manually. See line 337</fixed>

2.5 TagCloud

The WikiCategoryTagCloud extension allows to add tag clouds based on categories to a page. https://www.mediawiki.org/wiki/Extension:WikiCategoryTagCloud

#LocalSettings.php
require_once "$IP/extensions/WikiCategoryTagCloud/WikiCategoryTagCloud.php";

Define the pages where you are going to add the tag cloud:
Edit the wiki page "MediaWiki:Tagcloudpages". Put one this page all the pages where you have included your tag, one page per line.

Hauptseite


Usage:
The simple way to display the cloud is to add in a page :

<tagcloud class="" linkclass="" style="border: 0px solid rgb(238, 238, 238); padding: 15px 10px; width: 98%; text-align: center;" linkstyle="font-weight:bold;">
min_size=100
increase_factor=200</tagcloud>

2.6 Sitemap (Google)

Note: Since MediaWiki 1.6, the MediaWiki core has a Google site map generator which may be more appropriate than this extension. It is a command-line utility, and it is located at maintenance/generateSitemap.php in your MediaWiki directory. The command line is "php generatesitemap.php sitename" and is run from the maintenance directory at the server's command line interface.

https://www.mediawiki.org/wiki/Manual:GenerateSitemap.php


$wgSitemapNamespaces = array( 0);

2.7 Top10-Pages

http://www.mediawiki.org/wiki/Extension:TopTenPages

$wgttpAlwaysStartAtOne = true;


#function efTopTenPagesRender
                      return "<fieldset><legend>Top 10</legend>".$parser->recursiveTagParse( "{{Special:TopTenPages/$offset/$limit}}", $frame )."</fieldset>";


2.8 DirList

This extension lists the content of a directory in a table and creates links for downloading files.
http://www.mediawiki.org/wiki/Extension:DirList

2.9 Extension:WikiEditor

WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing. It is also the editing interface that Wikipedia currently uses. http://www.mediawiki.org/wiki/Extension:WikiEditor

#LocalSettings.php
# Enables use of WikiEditor by default but still allow users to disable it in preferences
$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;

# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1; 
# Displays the Publish and Cancel buttons on the top right side
$wgDefaultUserOptions['wikieditor-publish'] = 1; 
# Displays a navigation column (summary) on the right side
$wgDefaultUserOptions['usenavigabletoc'] = 1;