I did this with a simple wiki using PHPMarkdown syntax.
There was a whole lot more additional related documentation stored in the wiki, so context Help pages started with the prefix 'Help ' in the title. This was useful because it allowed help pages to refer to other business process documentation and to save me repeating myself in several places (grin).
In the layout script, I added a menu item "Help" which was rendered via a helper
class Zend_View_Helper_ContextHelp extends Zend_View_Helper_Abstract
{
//-------------------------------------------------------------------------
/*! \brief Context sensitive help: links to wiki page
*/
function contextHelp( $title = 'Help' )
{
$controller = Zend_Controller_Front::getInstance();
$request = $controller->getRequest();
$page = 'Help ' . ucfirst( $request->getControllerName() );
if ($request->getActionName() != 'index') $page .= ' ' . ucfirst( $request->getActionName() );
return $this->view->url( array( 'controller' => 'manual', 'action' => 'index', 'page' => $page ), null, true );
}
}
so this link was visible in the top right corner of every page.
For the customer/edit action the help page would be 'Help Customer Edit'. A lot of my pages had help information and links already embedded in them: so form fields had descriptions advising on correct content with examples, some with links to wiki pages for more detail or extended examples.
The wiki database schema is real simple
CREATE TABLE `manual` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT COMMENT 'Unique manual identifier',
`title` varchar(40) NOT NULL DEFAULT '' COMMENT 'Short title of this page',
`content` text NOT NULL COMMENT 'Content of the page. (wiki format)',
`user_id` mediumint(9) NOT NULL DEFAULT '0' COMMENT 'The related user',
`last_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Date and time this record was last changed',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `title` (`title`),
KEY `last_modified` (`last_modified`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Franchise Manual' AUTO_INCREMENT=50 ;
Happy to post the Manual model and controller (plus a few supporting helpers) but they are a bit long... let me know if you are interested and I'll make a blog post and link to it from here.