This is an old revision of the document!
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
- Student: KS Chan
- Mentor: Yannick Torrès
- Timezone: GMT +08:00
- Mailing list: phpdoc@lists.php.net
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...
- Community Bonding Period - Study current PhD OE architecture. Confirm refactoring procedures and exact deliverables with mentor.
- May 23 ~ June 20 [around 4 man week] - Refactor & Test main.js
- June 20 ~ June 27 [around 1 man week] - Merge Refactored code with trunk + Testing + Documentation
- June 27 ~ July 4 [around 1 man week] - Compile interim report
- July 4 ~ July 18 [around 3 man week] - Refactor & Test class.php
- July 18 ~ July 25 [around 1 man week] - Merge Refactored code with trunk + Testing + Documentation
- July 25 ~ August 15 [around 3 man week] - Implement mod_rewrite, reflect changes in php and js + Testing + Documentation
- August 15 onwards - Compiling final report
The Executing one...
- May 16 - I started looking at the main.js for a study into the main.js.
- May 18 - I was fooled by a bug during abstraction of XHR in main.js. Read the story at http://mrkschan.blogspot.com/2009/05/my-gsoc2009-may-18.html.
- May 24 - I completed the XHR abstraction and reflected changes accordingly. Read the story at http://mrkschan.blogspot.com/2009/05/my-gsoc2009-may-24.html.
- May 31 - I caught a bug during refactoring. Read the story at http://mrkschan.blogspot.com/2009/05/my-gsoc2009-may-31.html. I'm having discussion with Yannick on howto make the code looks good while keep it works.
- June 11 - This morning, I was trying to refactor all code-mirror editor into a reusable component. In the process, I need to allow editor scroll-synchronization ... Read the story at http://mrkschan.blogspot.com/2009/06/my-gsoc2009-june-11.html
- June 21 - It's a GDay! The refactoring work is close to finish... The next task is to complete the rest and wrapping up. Read the story at http://mrkschan.blogspot.com/2009/06/my-gsoc2009-june-21.html
- July 03 - The first milestone is reached =] JS namespace is clear and going to work on the second milestone. Read the story at http://mrkschan.blogspot.com/2009/07/my-gsoc2009-july-03.html
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 ] } ] } ] }