Development of the TYPO3 Phoenix User Interface with Ext JS
-
Upload
nils-dehl -
Category
Technology
-
view
3.201 -
download
0
description
Transcript of Development of the TYPO3 Phoenix User Interface with Ext JS
Inspiring people toshareInspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
T3CON10
* Bild austauschen
* fehlende Bildverweise ersetzen
Dienstag, 5. Oktober 2010
Development of the TYPO3 Phoenix User Interface with Ext JS
Nils Dehl <[email protected]>Christopher Hlubek <[email protected]>
01.10.2010
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Christopher Hlubek Nils Dehl
twitter: nilsdehltwitter: hlubek
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
AgendaIntroduction
Challenges of implementing the TYPO3 Phoenix UI
Choosing Ext JS
The Phoenix JS UI architecture
Next steps
Questions
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Introduction
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Challengesof implementing the TYPO3
Phoenix UI
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Smooth workflow &rich user experience1
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Traditional web interface
Web > Page Web > List Web > Preview
Page load
WorkspaceTemplate
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Phoenix user interface
Web > PageWeb > List
Web > Preview
Page load
WorkspaceTemplate
Single page
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Single page workflow
Load everything at once
Intelligent initialization
Manage browser history
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Extensibility2Dienstag, 5. Oktober 2010
Insert menu item
Insert section
Add column
Dienstag, 5. Oktober 2010
Add dialog
Add form fieldChange input
type
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Extensibility
Extend everything
Don‘t worry about extensibility
Easy API
1st level concept
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Development with many (unknown) people
Consistency
Intuitive concepts
Simple vs. Flexible
3
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Robust API(safe and maintainable)
Using it right should be simple
Good documentation
Stable vs. Extensible
4
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Choosing Ext JS
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
ExtJSvery rich component library
cross-browser compatible
great component model
many nice abstractions, f.e. Data Stores
uses Layout Managers
easy to extend
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Ext Direct
ControllerAction
Client
Server
ControllerActionRPC
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
The Phoenix JS UI architecture
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
JavaScript UI architecture
Initialization Configuration
Base Components
Base UI
I18NSchema
informationSecurity
ACLs
ExtDirectServices
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
JavaScript UI concepts
ModuleInitialization
Helper API
Event container
Configuration
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Creating ModulesApplication.createModule(‘F3...SomeModule‘, {configure: function(registry) {
registry.set(‘form/type/...‘, ‘value‘);},initialize: function(application) {
application.afterInitializationOf(‘F3...SomeModule‘,function(someModule) { ... }
);}
});
Dienstag, 5. Oktober 2010
Initialization
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Module 3Module 2
Module 1
t
Initialization order
Module 4?Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Application initialization
for
ever
y M
odul
e:
init
ializ
e()
DOM onReady afterInitializationOfUserInterfaceModule
addContentArea
...
t
createModule
createModule
createModule
Application.afterBootstrap
initialize viewport
...for
ever
y M
odul
e:
confi
gure
()
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Initialization process
Application
Module A Module B
confi
gure
()
confi
gure
()
regi
ster
eve
nts
regi
ster
eve
nts
afte
rBoo
tstr
ap
afte
rBoo
tstr
ap
initi
aliz
e()
initi
aliz
e()
afte
rIni
tializ
atio
n ...
afte
rIni
tializ
atio
n ...
Dienstag, 5. Oktober 2010
Configuration
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Registry
menu
main
content
title "Content"
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Registry
menu
main
content
title "Content"
registry.set('menu/main[]/content/title','Welcome'
)
"Welcome"
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Registry
menu
main
content
title "Content"
registry.set('menu/main[]/content/title','Welcome'
)
"Welcome"
registry.append('menu/main[]', 'management',{title: 'Mgmt'}
)
management
title "Mgmt"
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Registry
menu
main
content
title "Content"
registry.set('menu/main[]/content/title','Welcome'
)
"Welcome"registry.append(
'menu/main[]', 'management',{title: 'Mgmt'}
)
management
title "Mgmt"
registry.set('menu/main[]/management/title', 'Manage'
)
"Manage"
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
RegistryOrder independent configuration
Needs compilation after
Create any JSON structure
Menus
Form definitions
Grid columns
...
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Next StepsRefine the API
Implement more features
Create lots of custom components
Implement the new design
And for that...
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
We need you!
Dienstag, 5. Oktober 2010
Inspiring people toshareDevelopment of the TYPO3 Phoenix User Interface with Ext JS
?????????????
Dienstag, 5. Oktober 2010
inspiring people to share.
Dienstag, 5. Oktober 2010