Bağlam Duyarlı Yardım - PHP Class

3 Cevap php

Tümü,

Ben MySQL veritabanı ile Zend Framework ve MVC kullanarak inşa PHP Web uygulaması var. Ben uygulama için Context-Sensitive Yardım hayata geçirmeyi planlıyoruz .. Ben araştırma yaptım ama ben bunu başarmak için nasıl iyi bir işaretçiler bulamadık.

Birisi bunu yapar, bir kitap ya da örneğin güzel bir referans beni işaret edebilir? Ben hepsi nasıl yaparsınız .. bu büyük sigorta şirketi web siteleri ve diğer Web 2.0 sitelerinde uygulanan görmek?

Teşekkürler

3 Cevap

Ben PHPMarkdown sözdizimi kullanarak basit bir wiki ile yaptım.

Orada wiki saklanan bir sürü daha ek ilgili belgeler, yani bağlam Yardım sayfaları başlığında öneki 'Help' ile başladı. Bu yardım sayfaları diğer iş süreçleri belgelerine bakın ve çeşitli yerlerde (sırıtarak) kendimi tekrarlamak beni kurtarmak için izin çünkü bu yararlı oldu.

Düzen komut, ben bir yardımcısı aracılığıyla işlenen bir menü öğesi "Yardım" eklendi

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 );
    }
}

bu nedenle bu link her sayfanın sağ üst köşesinde görünür oldu.

Müşteri / düzenleme eylem için yardım sayfası 'Yardım Müşteri Düzenle' olacaktır. Benim sayfaların bir çok bilgi ve zaten onları gömülü bağlantıları yardım vardı: böylece form alanları açıklamaları daha detaylı veya genişletilmiş örnekler sayfaları wiki bağlantıları olan, örneklerle doğru içerik üzerinde bazı danışmanlık almıştı.

Wiki veritabanı şeması basit bir gerçek

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 ;

Manuel modeli ve denetleyicisi (artı birkaç destekleyici yardımcıları) yayınlamak ama onlar biraz uzun mutlu ... Eğer ilgileniyorsanız ve ben buradan kendisine bir blog yazısı ve bağlantı yapacağız varsa bana bildirin.

Yaratmak ve sürdürmek belgeleri ve uygulama içinde wiki tek sayfalara bağlantı için özel bir uygulama (örneğin Wiki) kullanmayı düşünün. Benzer bir şey planlıyorum ve bu gitmek için çok iyi bir yoldur eminim.

Bir Wiki kullanırsanız, documentation:installation:4_creating_databases gibi sayfaları wiki ve örneğin, bir pop-up pencerede wiki sayfasını görüntülemek için özelleştirilmiş bir şablon kullanmak işaret (ne gibi görünecek) senin yardım işlevi olabilir.

Belgeleri korumak için doğru uygulamayı bulmak için olduğu gibi, belki bu soru olur: Good documentation software ve belki de minimalistic tools for developer documentation (biraz farklı odak ama çok iyi öneriler).

Örnekler gerçekten yardımcı olacağını, ama onlar app benzersiz bir kimlik, her ekran vermek ve bu kimliği ile bağlantılı bir veritabanında ilgili yardım saklamak sanırım. Ben zaten bunu yapacağını nasıl: p.

MEZUNLARI başka bir adım (yani bir fieldset hatta ayrı alanlar daha sonra ilgili yardım bilgilerini almak için arama tuşu olarak kullanılabilen benzersiz bir kimliği vermek) aynı şekilde ekran alanlarını bağlamak olacaktır.