Version 7 (modified by Fran Boon, 12 years ago) ( diff )


Custom Pages

Sahana Eden supports custom Pages as part of it's overall Templates system.

This allows customisation of:

  • Home page
  • Totally new pages

Custom pages are defined within the templates folder to reduce issues with merging.

Home Page

The web server is normally configured to redirect requests to:




Which maps to controllers/ & the index() function therein.

The default application & controller can be easily edited in web2py/ or within the web server configuration, however editing the default function might cause problems for other Sahana modules.

Sahana Eden is designed to check for the presence of a custom template and, if one is configured, then it attempts to load:


& then run the index() function inside there instead.


  • You must have an in your template folder for this to work (it can be empty).
  • Unlike normal controllers, the scope this function is run in will start empty, so import what you need
  • If a custom View template is passed in from the Template folder then this will need to be provided as a File not a String to work in compiled mode:
    from os import path
    from gluon import current
    response = current.response
    view = path.join(current.request.folder, "private", "templates",
                     response.s3.theme, "views", "index.html")
       # Pass view as file not str to work in compiled mode
       response.view = open(view, "rb")
    except IOError:
       from gluon.http import HTTP
       raise HTTP("404", "Unable to open Custom View: %s" % view)

Custom Page

If a URL is specified like:


The this alternate page will attempt to be loaded using the custompage() function in:


See Also

Note: See TracWiki for help on using the wiki.