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

Implement rich snippets in your webshop
Implement rich snippets in your webshopImplement rich snippets in your webshop
Implement rich snippets in your webshopArjen Miedema
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching ResurrectedBen Scofield
 
Bdd training v5.2.0 - public
Bdd training   v5.2.0 - publicBdd training   v5.2.0 - public
Bdd training v5.2.0 - publicArnauld Loyer
 
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 Finalematrix
 
Fast Loading JavaScript
Fast Loading JavaScriptFast Loading JavaScript
Fast Loading JavaScriptAaron Peters
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109Thinkful
 
Web app-la-jan-2
Web app-la-jan-2Web app-la-jan-2
Web app-la-jan-2Thinkful
 
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!Greg Bell
 

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 Grasslandskkriner72
 
Remember when you were young
Remember when you were youngRemember when you were young
Remember when you were youngrichardbran
 
2010 Chevrolet Silverado 1500 Wausau WI
2010 Chevrolet Silverado 1500 Wausau WI2010 Chevrolet Silverado 1500 Wausau WI
2010 Chevrolet Silverado 1500 Wausau WIWheelers Automotive
 
Aplikazioak ii
Aplikazioak iiAplikazioak ii
Aplikazioak iisuperlg15
 
WebSpa (SPAQRL web editor)
WebSpa (SPAQRL web editor)WebSpa (SPAQRL web editor)
WebSpa (SPAQRL web editor)tbgdn
 
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_ftorahteachers
 
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 ...Pw Carey
 
Prewsentacion
PrewsentacionPrewsentacion
PrewsentacionTatiana
 
Corporate Personnel Brochure 2010
Corporate Personnel Brochure 2010Corporate Personnel Brochure 2010
Corporate Personnel Brochure 2010barbfrazier
 
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 eidsmoRDA 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 boxRyan Baxter
 
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 Alfresco Software
 
Mashups as Collection of Widgets
Mashups as Collection of WidgetsMashups as Collection of Widgets
Mashups as Collection of Widgetsgiurca
 
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 VictoriaJeff Richards
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в MagentoMagecom Ukraine
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overviewreybango
 
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 2011rivierarb
 
Developing Gadgets
Developing GadgetsDeveloping Gadgets
Developing GadgetsQuirk
 
Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax componentsIgnacio Coloma
 
Intro Open Social and Dashboards
Intro Open Social and DashboardsIntro Open Social and Dashboards
Intro Open Social and DashboardsAtlassian
 
Week7
Week7Week7
Week7H K
 
ColdFusion Builder Extensions
ColdFusion Builder ExtensionsColdFusion Builder Extensions
ColdFusion Builder ExtensionsTerry Ryan
 
Migration testing framework
Migration testing frameworkMigration testing framework
Migration testing frameworkIndicThreads
 
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 Websritikumar
 
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 introductionGeoffroy Baylaender
 

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

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 

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