Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:user:gs2_customization [2015/03/19 11:12] (current)
Line 1: Line 1:
 +====== 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:
 +
 +<​code>​
 +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.
 +}
 +</​code>​
 +
 +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. 
 +
 +<​code>​
 +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.
 +}
 +</​code>​
 +
 +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:
 +
 +<​code>​
 +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>​
 +}
 +
 +</​code>​
 +
 +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.