Back to index

awl  0.53
awl Namespace Reference

Authentication handling class. More...


Detailed Description

Authentication handling class.

A class for XML elements which may have attributes, or contain other XML sub-elements.

A class to assist with construction of XML documents.

A class for XML Documents which will contain namespaced XML elements.

Handling of namespacing for XML documents.

A Class for representing components within an vComponent.

A Class for representing properties within a vComponent (VCALENDAR or VCARD)

A Class for handling vCalendar & vCard data.

A Class for handling vCalendar data.

Rules used for validation of form fields.

Classes to handle validation of form data.

We need to access some session information.

A class to handle reading, writing, viewing, editing and validating usr records.

Functions involved in translating with gettext

Translation.

A class for creating and holding session information.

Session handling class and associated functions.

The PgQuery Class.

PostgreSQL query class and associated functions.

A MenuSet is a hierarchy of MenuOptions, some of which might be MenuSet objects themselves.

Each menu option is an object.

Some intelligence and standardisation around presenting a menu hierarchy.

Everything below here is deprecated and should be avoided in favour of using, improving and enhancing the more sensible structures above.

A Class for representing components within an iCalendar.

A Class for representing properties within an iCalendar.

iCalendar

Lightweight class for sending an e-mail.

A Base class to use for records which will be read/written from the database.

Some functions and a base class to help with updating records.

A class to handle displaying a form on the page (for editing) or a structured layout of non-editable content (for viewing), with a simple switch to flip from view mode to edit mode.

Individual fields used for data entry / viewing.

Classes to handle entry and viewing of field-based data.

The class for the Editor form in full.

A class for the fields in the editor.

Class for editing a record using a templated form.

Start a new Browser, add columns, set a join and Render it to create a basic list of records in a table.

BrowserColumns are the basic building blocks.

Table browser / lister class.

Utility functions of a general nature which are used by most AWL library classes.

Database upgrader class and associated functions.

The AwlQuery Class.

AwlDatabase

The AwlDBDialect class handles support for different SQL dialects.

AwlDatabase - support for different SQL dialects.

Methods in the AwlDBDialect class which we inherit, include: __construct() SetSearchPath( $search_path ) GetVersion() GetFields( $tablename_string ) TranslateSQL( $sql_string ) Quote( $value, $value_type = null ) ReplaceParameters( $query_string [, param [, ...]] )

AwlDatabase query/statement class and associated functions.

Authentication has already happened.

Authenticate against a different PostgreSQL database which contains a usr table in the AWL format.

The authentication handling plugins can be used by the Session class to provide authentication.

A class for authenticating and retrieving user information.

This class provides a basic set of methods which are used by the Session class to provide authentication.

This class is expected to be replaced, overridden or extended in some instances to enable different pluggable authentication methods.

AuthPlugin

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

Each authenticate hook needs to:

It can expect that:

In order to be called:

AuthPlugin

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

We know the username, we just need to do the authorisation / access control. The password is ignored.

This subpackage provides some functions that are useful around database activity and a AwlDBDialect, AwlDatabase and AwlStatement classes to simplify handling of database queries and provide some access for a limited ability to handle varying database dialects.

The class is intended to be a very lightweight wrapper with some features that have proved useful in developing and debugging web-based applications:

See http://wiki.davical.org/w/AwlDatabase for design and usage information.

If not already connected, AwlDatabase will attempt to connect to the database, successively applying connection parameters from the array in $c->pdo_connect.

We will die if the database is not currently connected and we fail to find a working connection.

AwlDatabase

Author:
Andrew McMillan andre.nosp@m.w@mo.nosp@m.rphos.nosp@m.s.co.nosp@m.m

Typically there will only be a single instance of the database level class in an application.

This subpackage provides dialect specific support for PostgreSQL, and may, over time, be extended to provide support for other SQL dialects.

See http://wiki.davical.org/w/Coding/AwlQuery for design and usage information.

AwlDatabase

Author:
Andrew McMillan andre.nosp@m.w@mo.nosp@m.rphos.nosp@m.s.co.nosp@m.m

This subpackage provides dialect specific support for PostgreSQL, and may, over time, be extended to provide support for other SQL dialects.

If you are looking for the place to add support for other SQL dialects, this is the class that you should be looking at. You might also look at the AwlDatabase class which extends this one, but these are the core capabilities which most probably need attention.

Author:
Andrew McMillan andre.nosp@m.w@mo.nosp@m.rphos.nosp@m.s.co.nosp@m.m

This class builds and executes SQL Queries and traverses the set of results returned from the query.

Example usage $sql = "SELECT * FROM mytable WHERE mytype = ?"; $qry = new AwlQuery( $sql, $myunsanitisedtype ); if ( $qry->Exec("typeselect", line, file ) && $qry->rows > 0 ) { while( $row = $qry->Fetch() ) { do_something_with($row); } }

Author:
Andrew McMillan andre.nosp@m.w@mo.nosp@m.rphos.nosp@m.s.co.nosp@m.m

This subpackage provides some functions that are useful around database schema creation and changes. The AwlUpgrader Class.

This class updates an Awl database to a newer schema version.

Utilities

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

Browsers are constructed from BrowserColumns and can support sorting and other interactive behaviour. Cells may contain data which is formatted as a link, or the entire row may be linked through an onclick action.

Browser

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

You can specify just the field name, and the column header or you can get fancy and specify an alignment, format string, SQL formula and cell CSS class.

You can, of course, get a lot fancier with setting ordering, where clauses totalled columns and so forth.

classEditor

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

DataEntry

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

This object is not really intended to be used directly. The more normal interface is to instantiate an EntryForm and then issue calls to DataEntryLine() and other EntryForm methods.

Understanding the operation of this class (and possibly auditing the source code, particularly EntryField::Render) will however convey valuable understanding of some of the more esoteric features.

Todo:
This class doesn't really provide a huge amount of utility between construct and render, but there must be good things possible there. Perhaps one EntryField is created and used repeatedly as a template (e.g.). That might be useful to support... Why is this a Class anyway? Maybe we should have just done half a dozen functions (one per major field type) and just used those... Maybe we should build a base class for this and extend it to make EntryField in a better way.

EntryField is only useful at present if you desperately want to use it's simple field interface, but want to intimately control the layout (or parts of the layout), otherwise you should be using EntryForm as the main class.

This subpackage provides some functions that are useful around single record database activities such as insert and update.

DataUpdate

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

EMail

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz
Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

A Class for handling Events on a calendar (DEPRECATED)

See the MenuSet class for examples as that is the primary interface.

See also:
MenuSet

MenuSet

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

The menu options are presented in HTML span tags, and the menus themselves are presented inside HTML div tags. All layout and styling is expected to be provide by CSS.

A non-trivial example would look something like this: *require("MenuSet.php"); $main_menu = new MenuSet('menu', 'menu', 'menu_active'); ... $other_menu = new MenuSet('submenu', 'submenu', 'submenu_active'); $other_menu->AddOption("Extra Other","/extraother.php","Submenu option to do extra things."); $other_menu->AddOption("Super Other","/superother.php","Submenu option to do super things."); $other_menu->AddOption("Meta Other","/metaother.php","Submenu option to do meta things."); ... $main_menu->AddOption("Do This","/dothis.php","Option to do this thing."); $main_menu->AddOption("Do That","/dothat.php","Option to do all of that."); $main_menu->AddSubMenu( $other_menu, "Do The Other","/dotheother.php","Submenu to do all of the other things.", true); ... *if ( isset($main_menu) && is_object($main_menu) ) { $main_menu->AddOption("Home","/","Go back to the home page"); echo $main_menu->Render(); } In a hierarchical menu tree, like the example above, only one sub-menu will be shown, which will be the first one that is found to have active menu options.

The menu display will generally recognise the current URL and mark as active the menu option that matches it, but in some cases it might be desirable to force one or another option to be marked as active using the appropriate parameter to the AddOption or AddSubMenu call.

This subpackage provides some functions that are useful around database activity and a PgQuery class to simplify handling of database queries.

The class is intended to be a very lightweight wrapper with no pretentions towards database independence, but it does include some features that have proved useful in developing and debugging web-based applications:

The database should be connected in a variable $dbconn before PgQuery.php is included. If not already connected, PgQuery will attempt to connect to the database, successively applying connection parameters from the array in $c->pg_connect.

We will die if the database is not currently connected and we fail to find a working connection.

PgQuery

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

This class builds and executes PostgreSQL Queries and traverses the set of results returned from the query.

Example usage $sql = "SELECT * FROM mytable WHERE mytype = ?"; $qry = new PgQuery( $sql, $myunsanitisedtype ); if ( $qry->Exec("typeselect", line, file ) && $qry->rows() > 0 ) { while( $row = $qry->Fetch() ) { do_something_with($row); } }

This subpackage provides some functions that are useful around web application session management.

The class is intended to be as lightweight as possible while holding all session data in the database:

Session

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz
Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

We use the DataEntry class for data display and updating We use the DataUpdate class and inherit from DBRecord A class to handle reading, writing, viewing, editing and validating usr records.

User

Validation

Author:
Emily Mossman emily.nosp@m.@mcm.nosp@m.illan.nosp@m..net.nosp@m..nz

When parsed the underlying structure is roughly as follows:

vCalendar( array(vComponent), array(vProperty), array(vTimezone) )

with the TIMEZONE data still currently included in the component array (likely to change in the future) and the timezone array only containing vComponent objects (which is also likely to change).

vCalendar

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

When parsed the underlying structure is roughly as follows:

vComponent( array(vComponent), array(vProperty) )

vComponent

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz

XMLDocument

Author:
Andrew McMillan andre.nosp@m.w@mo.nosp@m.rphos.nosp@m.s.co.nosp@m.m

XMLElement

Author:
Andrew McMillan andre.nosp@m.w@mc.nosp@m.milla.nosp@m.n.ne.nosp@m.t.nz