MediaWiki

From Blue-IT.org Wiki

Tools

Convert phpbb code

Simple and perfect quick and dirty bash script (this is not a real parser):

  • does not preserver numbered lists!
  • and some other limitations ;)
#!/bin/bash
myScript="${1}"
myBasename="$(basename "${myScript}")"

cat "${myScript}" | \
	sed -e "s/\[B\]/\'\'\'/g" | \
	sed -e "s/\[\/B\]/\'\'\'/g" | \
	sed -e "s/\[I\]/\'\'/g" | \
	sed -e "s/\[\/I\]/\'\'/g" | \
	sed -e "s/\[U\]//g" | \
	sed -e "s/\[\/U\]//g" | \
	sed -e "s/\[LIST\]//g" | \
	sed -e "s/\[\/LIST\]//g" | \
	sed -e "s/\[LIST\=1\]//g" | \
	sed -e "s/\[\/LIST\=1\]//g" | \
	sed -e "s/\[CODE\]/\<code\>/g" | \
	sed -e "s/\[\/CODE\]/\<\/code\>/g" | \
	sed -e "s/\[\*\]/\*\ /g" | \
	sed -e "s/\[\/I\]/\*\ /g" | 
	sed -e "s/^\ \*\ \ /\*\ /g" | \
	sed -e "s/^\ \*\ /\*\ /g" | \
	sed -e "s/\*\ \ /\*\ /g" | \
	sed -e "s/\*\ \ \ /\*\ /g" | \
	sed -e "s/\[URL\=\"/\[/g" | \
	sed -e "s/\"\]/\ /g" | \
	sed -e "s/\[\/URL\]/\]/g" | \
	sed -e "s/^\ //g" | \
	sed -e "s/^\  //g" | \
	sed -e "s/^\   //g" | \
	sed -e "s/^\    //g" | \
awk '{system("echo -n \"\""); print $0}' > "$(pwd)/${myBasename}.wiki"
echo ----------------------------------------------
echo "---- Copy & Past into the wiki ---------------"
echo vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
cat "$(pwd)/${myBasename}.wiki"
echo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "--- END --------------------------------------"
echo ----------------------------------------------
rm "$(pwd)/${myBasename}.wiki"

Add a whitepace in front of a given textfile

Mediawikisyntax forces you to add a whitespace in front of each line to get teh "source code view".

Pass a text file to the following script and copy and paste the terminal output:

#!/bin/sh
#
myScript="${1}"
myBasename="$(basename "${myScript}")"

cat "${myScript}" | awk '{system("echo -n \" \""); print $0}' > "$(pwd)/${myBasename}.wiki"
echo ----------------------------------------------
echo "---- Copy & Past into the wiki ---------------"
echo vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
cat "$(pwd)/${myBasename}.wiki"
echo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "--- END --------------------------------------"
echo ----------------------------------------------
rm "$(pwd)/${myBasename}.wiki"

vserver installation - SuSE 9.0

Initial installation

Concerns

  • Media Wiki 1.6.6
  • Mysql 4.0.15
  • SuSE 9.0 on vserver

Patches

There are some major problems concerning the installation of media wiki on SuSE 9.0 on a vserver:

  1. Mysql is only version 4.0.15
  2. PHP is per default limited in memory

You will get an error during installation.

Because of a bug in php you should do 3 things:

1. php.ini

First edit /etc/php.ini an change the memory limit from 8 to 50MB:

memory_limit = 50M      ; Maximum amount of memory a script may consume (8MB)

2. tables.sql

Second due to a bug in older mysql versions you have to change two installation files of the media wiki.

At the end of the file

/srv/www/PathToMediaWiki/maintenance/mysql5/tables.sql

Change

KEY (job_cmd, job_namespace, job_title)
) TYPE=InnoDB, DEFAULT CHARSET=utf8;

to

KEY (job_cmd(255), job_namespace, job_title(255))
) TYPE=InnoDB, DEFAULT CHARSET=utf8;

3. patch-job.sql

(!) The same (!) like for tables.sql you have to do in file maintenance/archives/patch-job.sql

Database related

Alter user groups in the database

Also see the MediaWiki Manual pages: User_rights

Edit your mysql database:

mysql -u root -p
mysql> use YourMediawikiDBName

Show the actual user settings:

mysql> select user_id,user_name from user;
+---------+-----------+
| user_id | user_name |
+---------+-----------+
|       1 | aUsername |
|       2 | WikiSysOp |
+---------+-----------+
2 rows in set (0.00 sec)

Show the actual usergoups assigned to what users:

mysql> select * from user_groups;
+---------+------------+
| ug_user | ug_group   |
+---------+------------+
|       1 | bureaucrat |
|       1 | sysop      |
|       2 | sysop      |
+---------+------------+
3 rows in set (0.00 sec)

Delete a row:

mysql> DELETE from  user_groups where  ug_group='aGroup' and ug_user='####';

Assign a user to a group:

mysql> INSERT INTO user_groups (ug_user, ug_group) VALUES ('####', 'aGroup');

... where '####' is the user_id of the appropriate user.

Localsettings.php

You find the file in /srv/www/PathToMediaWiki/. . Also see the MediaWiki Manual pages: User_rights.

## PERMISSIONS
# This snippet prevents new registrations from anonymous users
# (Sysops can still create user accounts)
#$wgGroupPermissions['*']['createaccount'] = false;
## USERS
## see: http://meta.wikimedia.org/wiki/Help:User_rights
# This snippet prevents editing from anonymous users
$wgGroupPermissions['*']['edit'] = false;
# This will still allow logged in users to edit
$wgGroupPermissions['user']['edit'] = true;
# No Pin header for non-logged in users
$wgShowIPinHeader = false;
# This snippet prevents new registrations from anonymous users
# (Sysops can still create user accounts)
#$wgGroupPermissions['*']['createaccount'] = false;