MediaWiki extensions manual
OOjs UI icon advanced-invert.svg
Release status: unmaintained
Implementation Special page
Description Adds a guestbook as a special page.
Author(s) Tino Reichardt
Latest version 0.18 (2021-04-04)
MediaWiki 1.25.x
License GNU General Public License 2.0
Download gbook.tar.bz2

Check usage and version matrix.

This Guestbook' extension adds a guestbook to your wiki installation.

It uses the following user preferences:

  • language of currently logged in user
  • the guestbook entry count per page is defined with the setting of:
preferences -> search -> Hits per page


The installation requires following steps:

  1. downloading the extension files and enabling it in LocalSettings.php
  2. configuring it off-wiki (by editing PHP files) as needed
  3. integrating Special:Guestbook into the MediaWiki:Sidebar or create some link

Adjust LocalSettings.php

  • Download and place the file(s) in a directory called gbook in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php :
    require_once "$IP/extensions/gbook/gbook.php";
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

You can also adjust the moderating rights for the guestbook to some user groups. The default defines, that the user of the group sysop have the ability to moderate/delete guestbook entries. As default exist this setting in gbook.php.

$wgGroupPermissions['sysop']['gbook'] = true;

Adjust variables in gbook.php

You can adjust several variables in the beginning of the file gbook.php. Each one is elucidated with a comment:

/* if set to false, no captcha is needed! */
$want_captcha = true;

 * when these two variables are set, google's re-captcha is used, in favor
 * of the included captcha class (captcha-class.php)
//$recaptcha_pubkey  = "aWNoIGJpbiBrZWluIGtvcnJla3RlciBwdWJrZXkK";
//$recaptcha_privkey = "aWNoIGJpbiBrZWluIGtvcnJla3RlciBwcnZrZXkK";

/* you can define the number of entries per page here */
$EntriesPerPage = 8; /* default: $wgUser->getOption('rows'); */

/* mostly '&' or '?' */
$GetRequestSeperator = "?";

/* bad data (will be ignored or replaced) */
$BadRequestStrings = array("<", ">", "%");

/* define here some regex for catching spammers */
$wgSpamRegex = "/(naughty|spam|viagra)/i";

/* you can specify multiple guestbook aliases here */
//$GuestbookHeadline['1'] = "first special headline"; /* gbReplyto=-1 */
//$GuestbookAlias['book1'] = 1; // -> .../Special:Guestbook/book1
//$GuestbookAlias['lala'] = 1; // -> .../Special:Guestbook/lala

//$GuestbookHeadline['2'] = "SECONDS special headline"; /* gbReplyto=-2 */
//$GuestbookAlias['lalü2'] = 2; // -> .../Special:Guestbook/blubb
//$GuestbookAlias['blubb'] = 3; /* gbReplyto=-3 */

/* gbReplyto=-3 */
$GuestbookMaxID = 3;

/* sysops can moderate the guestbook */
$wgGroupPermissions['sysop']['gbook'] = true;

Linking the Special:Guestbook

The guestbook is a special page, which is not shown is the Special:Specialpages overview. You can create a link to the guestbook with [[Special:Guestbook]]... that's it ;)


The guestbook uses the following css styles:

  • class successbox (creating a new entry was successful)
  • class errorbox (for all error messages)
  • class visualClear (directly after some error/success box)
  • class gbook
    • DIV Layer, which will be used around each entry
    • the class gbook is is defined in "$wiki/extensions/gbook.css" and should be adjusted
    • $wiki/extensions/gbook1.css will override the default style for the first guestbook, you can use this feature, if you have more then one guestbook

Problems / FAQ

The Captcha isn't shown or some error message is there.

  • this problem was reported by a lot of users
  • it isn't the guestbook, its a missing function within PHP
  • solution: build PHP yourself or install the appropriate GD package of your distribution

$wgSpamRegex is altered by this extension absolutely

In line 50 of the gbook.php file the $wgSpamRegex variable is set absolutely to an exemplary regular expression to prevent spam. As long as that is not changed, the $wgSpamRegex default value from DefaultSettings.php and accordingly every value assignment to $wgSpamRegex in LocalSettings.php before the installation line of this extension will be absolutely nullified.