Search:

# CWIS Developers Documentation

# CWIS Developer Documentation

CWIS is designed to be extensible, both to allow extending or modifying the software's functionaiity and to support implementing a look and feel that will optimally meet the needs of the target organization or audience. Toward this end there are two mechanisms explicitly provided: plugins, which are drop-in PHP modules that modify or extend functionality, and interfaces, which are sets of HTML, CSS, and PHP files that supplant or extend the set of web pages presented to the end user.

## General

CWIS Directory Structure - What files are where and why.

- Top-Level
- Site-Specific
- User Interface

## Plugins

Implementing CWIS Plugins - How to modify or extend CWIS functionality via a plugin.

- Names, Files, and Locations
- Classes and Attributes
- Events and Hooks
- Methods and Parameters
- Configuration

Advanced CWIS Plugin Implementation - Advanced topics, such as plugins declaring their own events or having their own PHP or HTML pages.

- Plugin Events
- Plugin Pages
- Plugin Objects
- Database Usage

CWIS Event Callbacks - Points in CWIS where plugins can hook in to modify data or execute their own code.

- Event Types
- User Account Events
- Search Events
- User Interface Events
- Resource Events
- Periodic Events
- Miscellaneous Events

## Interfaces

Implementing CWIS Interfaces - How to modify or extend the look and feel of your CWIS site.

- Loading Precedence
- Standard Page Segments
- Adding a New Interface Step-by-Step
- Common Functions