||SchoolSite web site designer
|SchoolSite is a very flexible web site design package I wrote for Aaron's school. It was specifically designed to fulfill their needs, which include:
- Simple to use: the teachers do not have the time or interest to learn a complicated system.
- Simple to maintain: no expertise needed (I had the time to write it, but don't want to be a full-time unpaid staffer)
- Allows building an attractive site which is easy to navigate
- Changes are local: adding or changing a page will show up on navigation menus without any further changes or configuration
- Allows multiple users freely to maintain their own "subsites" where they can add, change, or delete their own pages only.
- Flexible design that does not look like a template.
- Expandible functionality
- Support for selectable English and Chinese pages
These goals (and some others) are accomplished by a package written in PHP. Adding a page is as simple as setting a table size, assigning a cell type to each cell, and filling in the contents.
You can try it here: this is what the admin user sees. You can create or edit pages, and your changes will be displayed, though not be written out. In addition, you cannot upload or delete existing photos, though you can select among existing photos in designing your page. (Sorry, this functionality has been removed because people were trying to use it to attack my site. No one succeeded, but I cannot feel completely confident the security is unbreakable)
|The table divides the new page into a number of cells, for instance 3 rows by 2 columns. Each cell is then assigned a type. These types are:
- Blank: nothing is put in them
- Topic: A text cell. There is an optional heading, and a box to fill in text to display. Entering plain text is fine (carriage returns are translated into HTML line feeds), and HTML tags are allowed, so a more knowledgeable user can use bold, colors, links, and so on.
- Picture: Displays a picture and an optional caption. The size can be limited, and if it is SchoolSite will resize the image properly on the server to improve the loading speed.
- Include: Allows a file to be interpreted to fill the cell. The file can be regular HTML as well as PHP. There is a small library of useful PHP functions that can be used, or a knowledgeable person setting up the site can write his own.
- Frame: Fills the cell with a separate frame, and the frame with the contents of a given URL. (NOTE: Some browsers give this a 0 height so it is not visible. Put an Include box next to any frame, choose line.php, and pass the argument vertical=1&length=400)
- Horizontal Continue: Causes the cell to the left to use an extra column to display. For instance, you could write a single block of text with 2 photos side-by-side beneath it.
- Vertical Continue: Same as Horizontal Continue, but the cell uses an extra row to display. These 2 can be combined to provide very flexible layouts.
The package is currently available for anyone who writes and asks. I will make it downloadable as soon as I get around to documenting it, and maybe adding a few more features.
Currently it is free; my thought is to ask for small donations if it is used for a live site (maybe waived for nonprofits), but it is free to anyone using it before the documentation is complete.