GHS is a frontend for Menalto Gallery 3, using HighslideJS to neaten up things.

While Menalto Gallery is by far the best and most complete web gallery software I know, it's not very good for creating a nice looking portfolio. This is where HighslideJS comes in play: Its gallery features are very basic, but it's good looking with all the bells and whistles, modern javascript knows. GHS is the glue between those two pieces of software. You can see it in action here.

Outdated and abandoned!
Neither Menalto Gallery 3 nor GHS are being developed anymore. Don't use it!


  • Rich Javascript powered interface
  • Frontpage slideshow (latest / featured)
  • Album slideshow
  • Intelligent album and image description
  • Facebook meta-tags
  • Fully configurable
  • Multilingual
  • Tested with current versions of Firefox, Chrome, Opera and Internet Explorer
    (IE shows strange behaviour for some users - under investigation)



I'm presuming, you have Apache and PHP already installed.

The PEAR Packages and its dependencies are included in the GHS package, so you can easily install GHS on hosting providers without PEAR. If you can manually install (and update) PEAR package, this is always prefered..!

Next install Menalto Gallery 3 following their guide, if you haven't already.. You need to enable the included Plugins "REST API" and optionally "RSS" (for the frontpage slideshow).

Now grab the latest version of HighslideJS and copy the contents of the package to your webspace at <ghs-root>/data/include/highslide/ (so the file highslide-full.packed.js will be at data/include/highslide/highslide-full.packed.js) Be sure to check their license! Only private use is free, but they offer quiet fair licenses for commercial usage, too.. (No, I'm not getting any revenue from that..! Yet.. ;))


Config file

Find the file <ghs-root>/data/include/config.default.inc.php copy it to <ghs-root>/data/include/config.inc.php and open your newly created config.inc.php with a text-editor.

You will find all configuration options explained and filled with an example:

define( 'G3URL', 'http://example.com/gallery3' );

The Full URL to your gallery3 installation.

define( 'G3KEY', '112233445566778899aabbccddeeff00' );

The REST API Key of your Gallery3 installation. You maybe want to create an own user for GHS.

define( G3REWRITE, false );

Does your gallery3 installation use URL rewriting? (true/false) If there is an "index.php" in your gallery3 URLs (e.g. when clicking on an album in gallery3) it does'nt (false), if there isn't, it does (true)

define( 'LANG', 'en' );

The language your GHS installation should speak. Currently supportet: English (en) and German (de). See contents of <ghs-root>/data/lang/ to add your own language.

define( 'TITLE', 'John Does precious moments' );

The Title of your GHS installation. This will be used for the title tag

define( 'TITLEBOX', true );

If set to true, your GHS installation will have an extra box containing your TITLE (see above). If set to false, it won't..

define( 'INTRO', 'http://creativecommons.org/licenses/by-nd/3.0/" target="_blank"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="BY-NC-ND" /></a>All photos on this page are property of John Doe and  licensed unter Creative Commons License BY-NC-ND<br />No commercial usage, private usage only unchanged an with link to this gallery');

Define your own Intro-Text to show in an extra box above your gallery. (Second box (or first, when TITLEBOX is disabled) from top) All HTML Tags are allowed.

define( 'TITLEPOS', 'inside' );

Where to show album captions: inside thumbnails or below?

Optional files


If you want to add a litte more info about your person, you can copy the file <ghs-root>/data/include/aboutme.default.inc.php to <ghs-root>/data/include/aboutme.inc.php and edit its contents.
If you don't want an about me site, simply delete the file <ghs-root>/data/include/aboutme.inc.php when it exists.
When the file is found, an icon will be displayed right to your INTRO text, if it isn't found, there will be no icon..


Normally, the frontpage slideshow shows the lates photos based on the gallery3 rss-feed. Alternatively you can chose the photos shown at the slideshow by adding a file named featured.txt to your ghs root.
This file needs to contain a comma seperated list of image IDs. For example: 4,8,15,16,23,42
You can find the image IDs in your gallery3 installation or in GHS by opening the image you want and hovering over the "open in menalto gallery" icon right to the image description. There you find it at the end of your tooltip in brackets.
eg: "Details (open in menalto gallery) (42)" is imageID 42.


Use the file <ghs-root>/data/css/users.css to change or add css style definitions. Your definitions in this file will overwrite the default ones and the file won't be overwritten at the next update.


GHS is written with updates in mind: All your modifications live in extra files, not to be overwritten by updates. So for updating your can simply use the current release package and overwrite your old installation with the new files from that package.


See a demo of the current development version here.



5000 Characters left

  • fido.de

    German FidoNet landing page with manuals, application form, nodelists, Torsten Bamberg's FidoPedia and Ulrich Schroeter's Archive. Visit Website

  • nlget

    Download up-to-date FidoNet and OtherNet Nodelists and more from a static URL. Visit Website

  • pwGen

    Free online password generator generating passwords client-side with javascript, so they are not transferred over the internet. Visit Website

  • Origami CD-Case

    Ever needed a CD-case but had none? With this site, you can easily print a origami cd-case with titles and multiline description. Visit Website

  • chop.at

    An URL-shortener with some special features like qr-code generation, thumbnail preview and Geocaching shortcuts. Visit Website

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.