2010-03-08 57 views
1

所有,上下文相關幫助 - PHP類

我使用Zend Framework和MVC與MySQL數據庫建立了一個PHP的Web應用程序。我計劃爲應用程序實現上下文相關幫助。我做了我的研究,但是我沒有找到關於如何實現這一點的任何好的指針。

有人能指點我一本書或一個很好的參考與這樣做的例子嗎?我看到這在主要的保險公司網站和其他Web 2.0網站中實施。他們如何做到這一點?

感謝

+1

你能舉個例子嗎? – smack0007 2010-03-09 07:56:44

回答

2

我用一個簡單的wiki使用PHPMarkdown語法來做到這一點。

Wiki中存儲了更多額外的相關文檔,因此上下文幫助頁面在標題中以前綴'Help'開頭。這很有用,因爲它允許幫助頁面引用其他業務流程文檔,並幫助我在幾個地方重複自己(笑)。

在佈局腳本,我添加了一個菜單項「幫助」,這是通過輔助

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 ; 

快樂張貼手動模式和控制器(加上一些配套傭工),但他們是有點長...讓我知道,如果你有興趣,並我會做一個博客文章並從這裏鏈接到它。

+0

謝謝一堆史蒂夫..我認爲這是非常有用的,並將欣賞鏈接到博客帖子..:D! – Jake 2010-03-14 12:34:28

+0

不用擔心。感謝您選擇我的答案:-)。博客文章在這裏http://www.lightlysalted.co.nz/2010/03/context-sensitive-help-in-zend-framework/它確實需要寫成一個適當的多頁面教程,但我已經耗盡時間,並認爲我應該儘快給你一些東西。如果您需要其他視圖和一些有用的幫助者,請通過網站給我發電子郵件,然後我會發送給他們...... – Steve 2010-03-21 08:20:42

0

例子的確會有所幫助,但我想他們給在應用程序的每個屏幕一個唯一的ID,並存儲在該ID連接數據庫相關的幫助。這就是我無論如何都會這麼做的事情:p。另一步是以相同的方式鏈接屏幕區域(即給一個字段集或甚至單獨的字段一個唯一的ID,然後可以用它作爲查找鍵來檢索相關的幫助信息)。

1

考慮使用專門的應用程序(例如Wiki)來創建和維護文檔,並從應用程序中鏈接到wiki中的單個頁面。我正在計劃類似的事情,我很確定這是一條非常好的路。例如,如果您使用Wiki,您可以將您的幫助功能(無論看起來像什麼)指向documentation:installation:4_creating_databases等維基頁面,並使用自定義模板在彈出窗口中顯示維基頁面。

至於找到正確的應用程序來維護文檔,也許這個問題有幫助:Good documentation software也許還minimalistic tools for developer documentation(稍有不同的重點,但非常好的建議)。