Website Projects
TinySite
I wrote TinySite to allow non-technical people to manage their own websites. I of course had to do the initial install, but once that was done all it takes to update the site is a simple password. It doesn’t do file uploads, but there are other PHP scripts you can use for that if you need it. It’s not really a CMS, but behaves more like a very limited WYSIWYG wiki. Content is stored as plain text files, making it database-less and easy to move around. When a page is requested, the site will return either a text file (formatted to look nice on screen) or a PHP script. The results are always wrapped in the site template.
This project caters to administrators who want to use a completely custom website design, but need to permit non-technical users to update content.
It works great for small websites like this one: Park Row Offsite Status. I have used this framework to deploy half a dozen websites for various organizations who just needed something simple to get their message out there.
Smarty is used for templating, TinyMCE for editing.
Source: https://github.com/ecc12/pub/tree/master/php/tinysite
Ckxng Simple Website
This website framework is powered by a single PHP script and and an htaccess file. The content is stored in flat, human-readable files. If every data file were printed out, page by page, it would all still make perfect sense. No database, no mess. Just text files.
Content files go in the /pg/ directory and can be accessed as /pg/file.txt directly, or as /pg/file.html (or /index.php?p=file) to be wrapped in the website template and processed through Markdown. Files can be organized into folders (/pg/folder/folder/file.html and /index.php?p=folder/folder/file). Images and other files can be placed in these directories and accessed directly as well (/pg/images/photo.jpg).
This project caters to administrators who are looking for total minimalism in content management. It includes exactly the features I wanted with none of the fuss.
htaccess:
rewriteengine on rewriterule (pg/.*)\.html$ index.php?p=$1 [L,QSA]
index.php (download as index.txt) also available in Ruby and Perl.
Optionally, I import PHP Markdown Extra to make my posts prettier. I use File Thingie to make changes to files.
Source: https://github.com/ecc12/pub/tree/master/php/microsite
Source: https://github.com/ecc12/pub/tree/master/ruby/microsite
WordPress Implementation
WordPress is one of my favorite ways to give non-technical users a way to do more than just put text on a page. Using WordPress and the various plugins that are available, just about anyone can create beautiful content online. It takes some technical know-how to get the site up and running, but once it’s deployed any authorized person can login and post new content or make changes to existing pages. Though it requires a database, WordPress can be installed onto very inexpensive hosting plans.
An example of a WordPress site (beside this one) can be found at: Park Row Church of Christ
Administration Projects
Technology Simplification
One church had an email system which was hosted by a friend of a member that was plagued by frequent downtime and errors. This unreliable service also came at a completely unreasonable cost. Over the course of several months, we worked together to replace expensive, under-performing or under-utilized services and implement exactly what they needed to do their work seamlessly.
Because the church did not have permanent technology staff, we focused on remotely-hosted solutions with excellent support and a familiar user interface. Eventually, we setup a system where the staff had access to the right tools and performance and reliability were stable.
FellowshipOne Directory
Park Row Church of Christ uses FellowshipOne to manage their directory and member database. Since FellowshipOne does not come with a printed directory report that met their needs, I made a custom one using FellowshipOne’s API. This allows the office staff and volunteers to maintain the directory in FellowshipOne, but get all the benefits of a printed directory.
The following content was extracted from FellowshipOne’s API and presented in an easily printable form:
- Directory by household
- Household contact info (address, home phone)
- Member contact info (mobile, email, work)
- Family photo
- Household members sorted by last name, members by head of household, spouse, children, then by first name
- Display anniversaries, birthdays, baptism dates
- Front and back pages for general info
Module source: https://github.com/ecc12/pub/tree/master/perl/Ecc12-FellowshipOne-API-OAuth
