Odyssey Application: Website Maintenance
This application allows authorized individuals to maintain the menus and other centralized information that is part of the CS implementation of the UW CLF.
Creation of a new hostname requires using direct SQL access on the database, and authorizing somebody to manage the root of that host. Updating per-host information also requires SQL access. Everything else is done through the web interface.
Data Storage
The information is kept in the
database.cs
database
app_website
. Important tables are:
-
menuRoot
: Gives the information about a menu tree, which corresponds to a hostname. The "code" is actually the hostname. The "itemid" is the menu item ID of the root menu item. The addressBlock, searchDomain, mainTitle, subTitle, and subURL are used to generate the title bar, contact box at the bottom of the page, and the Google search box.
-
menuItem
: Gives the basic information about a menu item: its item ID, parent, and "birth order", and the label that will be displayed in the menu.
-
menuIntLink
: Gives the additional information required for an internal link. This consists of its name, which corresponds to a URL path component, and an indication of whether it is a directory and whether it is hidden.
-
menuExtLink
: Gives the additional information required for an external link. This consists of its URL.
-
menuFragLink
: Gives the additional information required for a URL fragment link. This consists of its URL fragment identifier.
-
menuContactEmail
: Specifies the contact email for a menu item and its children, except as overridden by further records of this table.
Authorization
Authorization information for the web interface is contained in table
app_website.itemOwner
. Mostly this can be maintained through the web interface; access to a particular directory includes the ability to authorize and de-authorize people in that directory and its subdirectories. The only usual exception is that whenever a new host is created somebody must be authorized at the root of that host by inserting an entry in this table using SQL.
--
IsaacMorland - 08 Feb 2007