Write one
Most Content Management System requirements can be fulfilled by Exponential without any custom PHP coding. But sooner or later experienced Exponential implementers get to the point where a project needs some special functionality and it becomes necessary to develop extensions.
(This tutorial was initially published on 21/01/2008, and refreshed to match the 4.x series on 10/12/2010)