SlideShare a Scribd company logo
1 of 28
Clemens Prerovsky twitter.com/blacktarmac c.prerovsky@gentics.com
Phoenix +
Agenda Concepts Technical Anatomy Demo PluginDevelopment Roadmap
Aloha is about the flow
Aloha is about just 15 Buttons
Aloha <div> <div> <BR> <BR> is about <p></p> <p></p> <br /> <br /> easy      development
Editables Just edit. Click and edit. This is all you need. While editing you want to see the results immediately without previews or reloads. With Aloha Editor you work on the final document.
Floating Menu
Let‘shave a look http://aloha-editor.com/aloha-nightly/examples/AlohaWorld.html
Plugins Repositories Format Table Link List Technical Anatomy Core Editables FloatingMenu Ribbon Sidebar UI Events Selection / Range Logging i18n jQuery ExtJS / Sencha
Developing a„Product“   plugin
http://aloha-editor.com/aloha-nightly/examples/triSports.html
Plugins Repositories Format Table Link List Core Editables FloatingMenu Ribbon Sidebar UI Events Selection / Range Logging i18n jQuery ExtJS / Sencha
A new plugin... com.example.aloha.plugins.Product /** *AlohaProductExamplePlugin */ EXAMPLE.Product =  newGENTICS.Aloha.Plugin('com.example.aloha.plugins.Product');
Initialization & adding the insert button /** *Initializetheplugin */ EXAMPLE.Product.init = function () { var that = this;  // floating menu "Insert product"-button var insertButton = new GENTICS.Aloha.ui.Button({ 	'iconClass' : 'GENTICS_button GENTICS_button_product', 'size' : 'small', 	'onclick' : function () { 		that.insertProduct(); 	}, 	'tooltip' : this.i18n('button.insertproduct'), 	'toggle' : false }); GENTICS.Aloha.FloatingMenu.addButton( 	'GENTICS.Aloha.continuoustext', 	insertButton, 	GENTICS.Aloha.i18n(GENTICS.Aloha, 'floatingmenu.tab.insert'), 	1 ); Scope! Tab Group
// product scope & product attribute field GENTICS.Aloha.FloatingMenu.createScope(this.getUID('product'), 'GENTICS.Aloha.global'); this.productField = newGENTICS.Aloha.ui.AttributeField(); this.productField.setTemplate('<span><b>{displayName}</b>' + 	'<span class="product-preview" style="background-image: 	url({url});"></span>' + 	'<br class="clear" /><i>{objectType}</i></span>'); this.productField.setObjectTypeFilter(['product']); GENTICS.Aloha.FloatingMenu.addButton( 	this.getUID('product'), 	this.productField, 	this.i18n('floatingmenu.tab.product'), 	1 ); A newScope& theAttribute Field
InsertProduct /** *insertaproductatthecursorposition */ EXAMPLE.Product.insertProduct = function () { // activate floating menu tab GENTICS.Aloha.FloatingMenu.userActivatedTab = this.i18n('floatingmenu.tab.product'); // current selection or cursor position var range = GENTICS.Aloha.Selection.getRangeObject(); // insert a product varnewProduct = jQuery('<div class="GENTICS_block product" contenteditable="false">' + '<div class="image"></div>' + '<div class="name">' + this.i18n('newproductname') + '</div></div>'); // insert the product into the dom and focus it GENTICS.Utils.Dom.insertIntoDOM(newProduct, range, 	jQuery(GENTICS.Aloha.activeEditable.obj)); range.startContainer = range.endContainer = newProduct.contents().get(0); range.select(); this.productField.focus(); }; Switch Tab Cursor Pos
HandleselectionChanged // handle event as soon as a product block is clicked GENTICS.Aloha.EventRegistry.subscribe(GENTICS.Aloha, 'selectionChanged', function(event, rangeObject) { var foundMarkup = that.findProduct( rangeObject ); 	jQuery('.product-selected') 		.removeClass('product-selected'); if ( foundMarkup.length != 0 ) { 		GENTICS.Aloha.FloatingMenu 			.setScope(that.getUID('product')); 		that.productField.setTargetObject(foundMarkup,  'data-product-name'); 		foundMarkup.addClass('product-selected'); 	} 	// re-layout the Floating Menu 	GENTICS.Aloha.FloatingMenu.doLayout(); }); „Link“ Attribute Field Events
So far…
Repositories /** *Createtheresourceobject */ GENTICS.Aloha.Repositories.Product = newGENTICS.Aloha.Repository('com.gentics.aloha.resources.Product'); /** *resourcedata */ GENTICS.Aloha.Repositories.Product.settings.data = [ {  	id: 1,  displayName: 'KuotaKueen K',  	url:'kuota-kueen-k.jpg',  objectType: 'product' },{  	id: 2,  displayName: '2XU Wetsuit',  	url:'2xu-wetsuit.jpg',  objectType: 'product' },… ]; A newRepository
Query &update selectedProduct /** *SearchesaresourceforresourceitemsmatchingqueryifobjectTypes.  */ GENTICS.Aloha.Repositories.Product.query = function(queryString, objectTypeFilter, filter, inFolderId, orderBy, maxItems, skipCount, renditionFilter, callback) { var d = this.settings.data.filter(function(e, i, a) { var r = newRegExp(queryString, 'i');  		return ( jQuery.inArray(e.objectType, objectTypeFilter) > -1 && 				( e.displayName.match(r) || e.url.match(r) )  		); 	}); callback.call( this, d); }; /** *callbackafteraproducthasbeenselectedfromtheresource */ GENTICS.Aloha.Repositories.Product.markObject = function (obj, resourceItem) { EXAMPLE.Product.updateProduct(obj, resourceItem); }; Filtering
Success! http://aloha-editor.com/aloha-nightly/examples/triSports.html
Next up… LinkPlugin
Semantics Framework BOOM! POW! CRUNCH!!! ZONK! BOINK!
Collaboration
Get involved! www.aloha-editor.com github.com/alohaeditor/Aloha-Editor
Aloha Presentation #t3con10

More Related Content

What's hot

Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
ematrix
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109
Thinkful
 

What's hot (10)

Implement rich snippets in your webshop
Implement rich snippets in your webshopImplement rich snippets in your webshop
Implement rich snippets in your webshop
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching Resurrected
 
BDD training v5.0.1
BDD training  v5.0.1BDD training  v5.0.1
BDD training v5.0.1
 
Bdd training v5.2.0 - public
Bdd training   v5.2.0 - publicBdd training   v5.2.0 - public
Bdd training v5.2.0 - public
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
 
Fast Loading JavaScript
Fast Loading JavaScriptFast Loading JavaScript
Fast Loading JavaScript
 
3rd doc
3rd doc3rd doc
3rd doc
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109
 
Web app-la-jan-2
Web app-la-jan-2Web app-la-jan-2
Web app-la-jan-2
 
User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!
 

Viewers also liked

Ecology in Grasslands
Ecology in GrasslandsEcology in Grasslands
Ecology in Grasslands
kkriner72
 
Remember when you were young
Remember when you were youngRemember when you were young
Remember when you were young
richardbran
 
Aplikazioak ii
Aplikazioak iiAplikazioak ii
Aplikazioak ii
superlg15
 
A translation of_the_treatise_chagigah_f
A translation of_the_treatise_chagigah_fA translation of_the_treatise_chagigah_f
A translation of_the_treatise_chagigah_f
torahteachers
 
Prewsentacion
PrewsentacionPrewsentacion
Prewsentacion
Tatiana
 
Corporate Personnel Brochure 2010
Corporate Personnel Brochure 2010Corporate Personnel Brochure 2010
Corporate Personnel Brochure 2010
barbfrazier
 
Presentasjon for fylkestinget 29 09 2010 av arne eidsmo
Presentasjon for fylkestinget 29 09 2010 av arne eidsmoPresentasjon for fylkestinget 29 09 2010 av arne eidsmo
Presentasjon for fylkestinget 29 09 2010 av arne eidsmo
RDA Tromsø
 

Viewers also liked (20)

Ecology in Grasslands
Ecology in GrasslandsEcology in Grasslands
Ecology in Grasslands
 
Remember when you were young
Remember when you were youngRemember when you were young
Remember when you were young
 
2010 Chevrolet Silverado 1500 Wausau WI
2010 Chevrolet Silverado 1500 Wausau WI2010 Chevrolet Silverado 1500 Wausau WI
2010 Chevrolet Silverado 1500 Wausau WI
 
Aplikazioak ii
Aplikazioak iiAplikazioak ii
Aplikazioak ii
 
Moshiach
MoshiachMoshiach
Moshiach
 
Josephus
JosephusJosephus
Josephus
 
WebSpa (SPAQRL web editor)
WebSpa (SPAQRL web editor)WebSpa (SPAQRL web editor)
WebSpa (SPAQRL web editor)
 
A translation of_the_treatise_chagigah_f
A translation of_the_treatise_chagigah_fA translation of_the_treatise_chagigah_f
A translation of_the_treatise_chagigah_f
 
Mitzvot
MitzvotMitzvot
Mitzvot
 
G32 Wiki Leaks Social Media &amp; Whistleblowers The Future Of It Auditing A ...
G32 Wiki Leaks Social Media &amp; Whistleblowers The Future Of It Auditing A ...G32 Wiki Leaks Social Media &amp; Whistleblowers The Future Of It Auditing A ...
G32 Wiki Leaks Social Media &amp; Whistleblowers The Future Of It Auditing A ...
 
Trainingportal fagseminar gasslekkasjer 12juni2012 (Proactima)
Trainingportal fagseminar gasslekkasjer 12juni2012 (Proactima)Trainingportal fagseminar gasslekkasjer 12juni2012 (Proactima)
Trainingportal fagseminar gasslekkasjer 12juni2012 (Proactima)
 
Prewsentacion
PrewsentacionPrewsentacion
Prewsentacion
 
Tcd2015 sots ombordtrening
Tcd2015 sots ombordtreningTcd2015 sots ombordtrening
Tcd2015 sots ombordtrening
 
Lesson Learned - Offshore og energibransjens hms konferanse 2011
Lesson Learned - Offshore og energibransjens hms konferanse 2011Lesson Learned - Offshore og energibransjens hms konferanse 2011
Lesson Learned - Offshore og energibransjens hms konferanse 2011
 
TCD2011 - Effektiv prosedyreopplæring på Trainingportal v/Anne Gro Gabrielsen...
TCD2011 - Effektiv prosedyreopplæring på Trainingportal v/Anne Gro Gabrielsen...TCD2011 - Effektiv prosedyreopplæring på Trainingportal v/Anne Gro Gabrielsen...
TCD2011 - Effektiv prosedyreopplæring på Trainingportal v/Anne Gro Gabrielsen...
 
Fotos aereas
Fotos aereasFotos aereas
Fotos aereas
 
Corporate Personnel Brochure 2010
Corporate Personnel Brochure 2010Corporate Personnel Brochure 2010
Corporate Personnel Brochure 2010
 
Trainingportal Informasjonsmøte - Datapower Learning
Trainingportal Informasjonsmøte - Datapower LearningTrainingportal Informasjonsmøte - Datapower Learning
Trainingportal Informasjonsmøte - Datapower Learning
 
Presentasjon for fylkestinget 29 09 2010 av arne eidsmo
Presentasjon for fylkestinget 29 09 2010 av arne eidsmoPresentasjon for fylkestinget 29 09 2010 av arne eidsmo
Presentasjon for fylkestinget 29 09 2010 av arne eidsmo
 
Trainingportal #hms2013 hvordan lykkes globalt - mintra trainingportal - ch...
Trainingportal #hms2013   hvordan lykkes globalt - mintra trainingportal - ch...Trainingportal #hms2013   hvordan lykkes globalt - mintra trainingportal - ch...
Trainingportal #hms2013 hvordan lykkes globalt - mintra trainingportal - ch...
 

Similar to Aloha Presentation #t3con10

Open social 2.0 sandbox ee and breaking out of the gadget box
Open social 2.0 sandbox  ee and breaking out of the gadget boxOpen social 2.0 sandbox  ee and breaking out of the gadget box
Open social 2.0 sandbox ee and breaking out of the gadget box
Ryan Baxter
 
Mashups as Collection of Widgets
Mashups as Collection of WidgetsMashups as Collection of Widgets
Mashups as Collection of Widgets
giurca
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine
 
Week7
Week7Week7
Week7
H K
 

Similar to Aloha Presentation #t3con10 (20)

Open social 2.0 sandbox ee and breaking out of the gadget box
Open social 2.0 sandbox  ee and breaking out of the gadget boxOpen social 2.0 sandbox  ee and breaking out of the gadget box
Open social 2.0 sandbox ee and breaking out of the gadget box
 
Rich faces
Rich facesRich faces
Rich faces
 
Html5
Html5Html5
Html5
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
 
Mashups as Collection of Widgets
Mashups as Collection of WidgetsMashups as Collection of Widgets
Mashups as Collection of Widgets
 
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
Widgets: Making Your Site Great and Letting Others Help - WordCamp VictoriaWidgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
 
Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
 
Mechanize at the Ruby Drink-up of Sophia, November 2011
Mechanize at the Ruby Drink-up of Sophia, November 2011Mechanize at the Ruby Drink-up of Sophia, November 2011
Mechanize at the Ruby Drink-up of Sophia, November 2011
 
Developing Gadgets
Developing GadgetsDeveloping Gadgets
Developing Gadgets
 
Creating a Webpage
Creating a WebpageCreating a Webpage
Creating a Webpage
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
 
Intro Open Social and Dashboards
Intro Open Social and DashboardsIntro Open Social and Dashboards
Intro Open Social and Dashboards
 
XHTML basics
XHTML basicsXHTML basics
XHTML basics
 
Week7
Week7Week7
Week7
 
ColdFusion Builder Extensions
ColdFusion Builder ExtensionsColdFusion Builder Extensions
ColdFusion Builder Extensions
 
Migration testing framework
Migration testing frameworkMigration testing framework
Migration testing framework
 
How To Create Personal Web Pages On My Web
How To Create Personal Web Pages On My WebHow To Create Personal Web Pages On My Web
How To Create Personal Web Pages On My Web
 
Web accessibility - WAI-ARIA a small introduction
Web accessibility - WAI-ARIA a small introductionWeb accessibility - WAI-ARIA a small introduction
Web accessibility - WAI-ARIA a small introduction
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Aloha Presentation #t3con10

  • 1.
  • 4. Agenda Concepts Technical Anatomy Demo PluginDevelopment Roadmap
  • 5. Aloha is about the flow
  • 6. Aloha is about just 15 Buttons
  • 7. Aloha <div> <div> <BR> <BR> is about <p></p> <p></p> <br /> <br /> easy development
  • 8. Editables Just edit. Click and edit. This is all you need. While editing you want to see the results immediately without previews or reloads. With Aloha Editor you work on the final document.
  • 10. Let‘shave a look http://aloha-editor.com/aloha-nightly/examples/AlohaWorld.html
  • 11. Plugins Repositories Format Table Link List Technical Anatomy Core Editables FloatingMenu Ribbon Sidebar UI Events Selection / Range Logging i18n jQuery ExtJS / Sencha
  • 14. Plugins Repositories Format Table Link List Core Editables FloatingMenu Ribbon Sidebar UI Events Selection / Range Logging i18n jQuery ExtJS / Sencha
  • 15. A new plugin... com.example.aloha.plugins.Product /** *AlohaProductExamplePlugin */ EXAMPLE.Product = newGENTICS.Aloha.Plugin('com.example.aloha.plugins.Product');
  • 16. Initialization & adding the insert button /** *Initializetheplugin */ EXAMPLE.Product.init = function () { var that = this; // floating menu "Insert product"-button var insertButton = new GENTICS.Aloha.ui.Button({ 'iconClass' : 'GENTICS_button GENTICS_button_product', 'size' : 'small', 'onclick' : function () { that.insertProduct(); }, 'tooltip' : this.i18n('button.insertproduct'), 'toggle' : false }); GENTICS.Aloha.FloatingMenu.addButton( 'GENTICS.Aloha.continuoustext', insertButton, GENTICS.Aloha.i18n(GENTICS.Aloha, 'floatingmenu.tab.insert'), 1 ); Scope! Tab Group
  • 17. // product scope & product attribute field GENTICS.Aloha.FloatingMenu.createScope(this.getUID('product'), 'GENTICS.Aloha.global'); this.productField = newGENTICS.Aloha.ui.AttributeField(); this.productField.setTemplate('<span><b>{displayName}</b>' + '<span class="product-preview" style="background-image: url({url});"></span>' + '<br class="clear" /><i>{objectType}</i></span>'); this.productField.setObjectTypeFilter(['product']); GENTICS.Aloha.FloatingMenu.addButton( this.getUID('product'), this.productField, this.i18n('floatingmenu.tab.product'), 1 ); A newScope& theAttribute Field
  • 18. InsertProduct /** *insertaproductatthecursorposition */ EXAMPLE.Product.insertProduct = function () { // activate floating menu tab GENTICS.Aloha.FloatingMenu.userActivatedTab = this.i18n('floatingmenu.tab.product'); // current selection or cursor position var range = GENTICS.Aloha.Selection.getRangeObject(); // insert a product varnewProduct = jQuery('<div class="GENTICS_block product" contenteditable="false">' + '<div class="image"></div>' + '<div class="name">' + this.i18n('newproductname') + '</div></div>'); // insert the product into the dom and focus it GENTICS.Utils.Dom.insertIntoDOM(newProduct, range, jQuery(GENTICS.Aloha.activeEditable.obj)); range.startContainer = range.endContainer = newProduct.contents().get(0); range.select(); this.productField.focus(); }; Switch Tab Cursor Pos
  • 19. HandleselectionChanged // handle event as soon as a product block is clicked GENTICS.Aloha.EventRegistry.subscribe(GENTICS.Aloha, 'selectionChanged', function(event, rangeObject) { var foundMarkup = that.findProduct( rangeObject ); jQuery('.product-selected') .removeClass('product-selected'); if ( foundMarkup.length != 0 ) { GENTICS.Aloha.FloatingMenu .setScope(that.getUID('product')); that.productField.setTargetObject(foundMarkup, 'data-product-name'); foundMarkup.addClass('product-selected'); } // re-layout the Floating Menu GENTICS.Aloha.FloatingMenu.doLayout(); }); „Link“ Attribute Field Events
  • 21. Repositories /** *Createtheresourceobject */ GENTICS.Aloha.Repositories.Product = newGENTICS.Aloha.Repository('com.gentics.aloha.resources.Product'); /** *resourcedata */ GENTICS.Aloha.Repositories.Product.settings.data = [ { id: 1, displayName: 'KuotaKueen K', url:'kuota-kueen-k.jpg', objectType: 'product' },{ id: 2, displayName: '2XU Wetsuit', url:'2xu-wetsuit.jpg', objectType: 'product' },… ]; A newRepository
  • 22. Query &update selectedProduct /** *SearchesaresourceforresourceitemsmatchingqueryifobjectTypes. */ GENTICS.Aloha.Repositories.Product.query = function(queryString, objectTypeFilter, filter, inFolderId, orderBy, maxItems, skipCount, renditionFilter, callback) { var d = this.settings.data.filter(function(e, i, a) { var r = newRegExp(queryString, 'i'); return ( jQuery.inArray(e.objectType, objectTypeFilter) > -1 && ( e.displayName.match(r) || e.url.match(r) ) ); }); callback.call( this, d); }; /** *callbackafteraproducthasbeenselectedfromtheresource */ GENTICS.Aloha.Repositories.Product.markObject = function (obj, resourceItem) { EXAMPLE.Product.updateProduct(obj, resourceItem); }; Filtering
  • 25. Semantics Framework BOOM! POW! CRUNCH!!! ZONK! BOINK!
  • 27. Get involved! www.aloha-editor.com github.com/alohaeditor/Aloha-Editor

Editor's Notes

  1. How is Aloha related to Typo3 v5?Integration of Aloha in Typo3
  2. Agenda
  3. Alohaisaboutgirls – just a lieto catch yourattentionNot getting your head involvedFor editors, writers – for knights of the penShould not have to think about how to achieve sth.
  4. What you see is what you get15 buttons is enough
  5. No browser crapEnter handlinglistsNo iframes
  6. Aloha only loaded onceArbitrary number of editables
  7. Aloha tech Konzept (integration in typo3, editables, floating menu, scope, plugins, resources, events) (15min)
  8. Talk about the technical anatomyBased on 2 main componentsJquery for DOM manipulationExtjs for UI
  9. Vision: I‘m gonna open my very own Triathlon store!Database Search, nicht Autocomplete
  10. triSports is a full-line retail shop and online store located in Vienna, Austria dedicated to the growing number of fitness enthusiasts who are seeking the triathlon, duathlon and aquathlon experience. Here at triSports, we like to have fun. To us, that&apos;s what triathlon is all about. So whether you&apos;re nervously prepping for your first 5K walk or eagerly training for your 14th Ironman, we&apos;re here for you with top-notch triathlon gear, great customer service and plenty of friendly advice. We offer only the best in swim, bike and run gear for the pro- and everyday athlete. We also offer top notch services, such as expert bike fitting, wetsuit rentals, and helpful triathlon workshops.
  11. Components we‘ll be using
  12. 1st create a new folder in the plugins directoryJust extend our plugin object
  13. Whathaveweachieved so far?Added an „insertproduct“ buttonWhich will insert a newproductintothepageAnd bring upthefloatingmenuwithourattributefield