Table of Contents
Greenstone 2 Customization
Here are some tips for how to do various Greenstone 2 customizations.
Changing the library logo
Put your new logo image into greenstone2/web/images. Then modify greenstone2/macros/home.dm, replacing all instances of "gsdlhead.gif" with the name of your logo image file.
Adding a new static page
Adding a new static page to Greenstone is relatively simple and involves only customizations to macro files (found in greenstone2/macros, or greenstone2/collect/<collname>/macros). (Adding a dynamic page is more difficult and involves adding a new action to the C++ receptionist.)
Add a new static page to the library
1. Create a macro file for the new page, in gsdl/macros, eg history.dm
A very basic content might look like this:
package history _pagetitle_ {Library History} _content_ { <h2>The History of Our Library</h2> Our library was created in June 2011, by an amazing team of volunteers... Thanks for all your help. }
The _pagetitle_ macro defines the title that appears in the browser window frame. The <h2> bit in content gives a header for the actual page.
The page will be styled like the rest of the library, and have the 'home help prefs' buttons along the top.
2. Tell the library about the new page
Edit greenstone2/etc/main.cfg. Add history.dm to the macrofiles list. This tells the Greenstone library to read in that macro file.
3. Link to the new page from the home page
Edit the _content_ macro in macros/home.dm, adding the link where you want it. The link will look something like
<a href="_httppagex_(history)">Library History</a>. Note that the page name (history) in the URL (_httppagex_(history) ) must correspond to the package name in the macro file (package history). It has nothing to do with the actual filename.
Add a new static page to a collection
To add a page for just one collection, then we will do the modifications in the collection's macros/extra.dm file, rather than in the main macros folder.
1. Create the new page
This is similar to above, but we can just add it into extra.dm instead of creating a new file.
package history _pagetitle_ {Collection History} _content_ { <h2>The History of Our Collection</h2> This collection was created in June 2011, by an amazing team of volunteers... Thanks for all your help. }
The page will have the home/help/prefs buttons, and the collection logo/link image. To add the navigation bar (containing search and classifier buttons), add _optnavigationbar_ at the start of the _content_ macro (above the <h2>…</h2> part).
We don't need to tell the library about the macro file as extra.dm is always loaded automatically.
However, if you do want the new page to be in its own macro file, then put the file into the collection's macro folder (or into the main greenstone2/macros folder if more than one collection might use it) and you will need to edit the macrofiles line of greenstone2/etc/main.cfg as above, adding in the new filename.
2. Link to the new page
Where do you want the new page linked from? If it is just a link from the about page, then add "package about" to the extra.dm file, and copy the _content_ macro from greenstone/macros/about.dm there as well. Then add in a link to the page, using _httppagex_(history) as the URL.
For example, it may look like this:
package about _content_ { _optnavigationbar_ <div class="document"> _If_("_cgiargqt_" ne "1", _If_("_cgiargu_" ne "1",_aboutqueryform_) ) _If_(_Global:collectionextra_,<p>_textabout_) _textsubcollections_ <div class="section"> <h3>_help:textsimplehelpheading_</h3> _help:simplehelp_ </div> <a href="_httppagex_(history)">Collection History</a> </div> }
Here I have added the link at the end of the page. Note that the page name (history) in the URL (_httppagex_(history) ) must correspond to the package name in the macro file (package history). It has nothing to do with the actual filename.