Table of Contents

PhD O.E. - Online editor for the PHP Manual

The original application is http://socghop.appspot.com/student_project/show/google/gsoc2009/php/t124024180468
The original proposal is http://mrkschan.blogspot.com/2009/04/my-gsoc-proposal-submitted-to-phpnet.html

Details

Abstract

Currently, the documentation work is synchronized by cvs. But still, there are potential conflicts due to redundant work. Besides, it's not that easy to share the works or even pipelining the works in a distributed environment. Therefore, a centralized environment is introduced.

The editor is still under development and the source can be found by http://svn.php.net/viewvc/web/doc-editor/trunk/

To checkout: svn co http://svn.php.net/repository/web/doc-editor/trunk doc-editor

Timeline

The Planned one...

The Executing one...

UI Structure

The factored Doc-Editor ui structure as follow (in JSON with ExtJS component).

ui = Ext.Viewport {
    layout : 'border',
    items  : [
        { // logo
            region : 'north'
        }, {
            layout : 'accordion',
            region : 'west',
            tbar   : [ new ui.component.MainMenu() ]
            items  : [
                ui.component.StaleFileGrid.getInstance(),
                ui.component.ErrorFileGrid.getInstance(),
                ui.component.PendingReviewGrid.getInstance(),
                ui.component.NotInENGrid.getInstance(),
                ui.component.RepositoryTree.getInstance(),
                ui.component.PendingCommitGrid.getInstance(),
                ui.component.PendingPatchGrid.getInstance()
            ]
        }, { // main-panel
            id     : 'main-panel',
            region : 'center',
            xtype  : 'tabpanel',
            items  : [
                { // Home tab
                    xtype : 'panel',
                    items : [
                        ui.component.SummaryGrid.getInstance(),     // show if Non-EN user
                        ui.component.TranslatorGrid.getInstance(),  // show if Non-EN user
                        ui.component.LocalMailGrid.getInstance(),
                        ui.component.BugsGrid.getInstance(),        // show if Non-EN user
                        ui.component.TranslationGraph.getInstance() // show if Non-EN user
                    ]
                }
            ]
        }
    ]
}

Factored Php Classes

Brainstorming idea

This section list out ideas for future development.

Further re-structuring the entire thing

Ideas

Concerns

WYSIWYG doc-book edit

Ideas

Concerns