Я сделал это с помощью простой вики с использованием синтаксиса PHPMarkdown.
В вики было гораздо больше дополнительной связанной документации, поэтому страницы контекстной справки начинались с префикса «Справка» в заголовке. Это было полезно, поскольку позволяло страницам справки ссылаться на другую документацию по бизнес-процессам и избавляло меня от повторения в нескольких местах (ухмылка).
В скрипт макета я добавил пункт меню «Справка», который отображался с помощью помощника
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 );
}
}
, поэтому эта ссылка была видна в правом верхнем углу каждой страницы.
Для действия клиента / редактирования страница справки будет «Помочь клиенту редактировать». Многие из моих страниц содержали справочную информацию и ссылки, уже встроенные в них: поэтому в полях формы были описания, предлагающие правильное содержание с примерами, некоторые со ссылками на вики-страницы для более подробной информации или расширенных примеров.
Схема базы данных вики очень проста
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 ;
Рад опубликовать руководство модели и контроллера (плюс несколько вспомогательных помощников), но они немного длинны ... дайте мне знать, если вы заинтересованы, и я сделаю пост в блоге и ссылку на него отсюда.