O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development

1.166 visualizações

Publicada em

Publicada em: Tecnologia, Arte e fotografia
  • Entre para ver os comentários

  • Seja a primeira pessoa a gostar disto

Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development

  1. 1. WebApp development introductionThe WebApp team
  2. 2. What will we discussOverview of the client architectureIntegrations on the client: plugins vs. widgetsIntegrations on the server: moduleThe anatomy of a WebApp pluginExamplesPossibilities for themingDocumentation, manual & forum
  3. 3. WebApp Client Architecture
  4. 4. Integrations: Different kinds of addonsWidgetsPlugins
  5. 5. Integrations: Widgets
  6. 6. Integrations: Widgets
  7. 7. Integrations: When wanting more... plugins
  8. 8. Integrations: Two ways to integrateBidding systemInsertion points
  9. 9. Integrations: Bidding for image attachments
  10. 10. Integrations: Bidding for image attachments AttachmentClick on attachment Open Mail Bid = 1 Attachment Container Calendar Bid = -1 Attachment 3rd-party plugin Bid = 2
  11. 11. Integrations: Add buttons with insertion points
  12. 12. Integrations: Example of insertion pointsinit : function(){ ... this.registerInsertionPoint(previewpanel.toolbar.right, this.createPreviewPanelBtn, this); ...}createPreviewPanelBtn : function(insert){ return [{ xtype : menuitem, overflowText : _(Spreed Button), iconCls : icon_spreed_setup, handler : this.onPreviewBtn, scope : this }]}
  13. 13. Server integrationsThe server-side of the WebApp is written in PHPThe client interacts with modules on the serverThere are three ways to extend the server Write your own module Use the insertion points/hooks on the server Add default settings
  14. 14. Integrations: Example of server hook<?phpclass Pluginexample extends Plugin { function Pluginexample(){} function init(){ $this->registerHook(server.core.properties.addressbookitem.mailuser); } function execute($eventID, &$data){ switch($eventID){ case server.core.properties.addressbookitem.mailuser: $this->addABObjectProps($data); break; } } function addABObjectProps(&$data) { $data[properties][propname] = "PT_TSTRING:PSETID_Address:0x9999"; $data[properties][propname2] = PR_PROPERTY_DEFINITION; }}?>
  15. 15. The anatomy of a WebApp pluginA closer look at the folder structure and manifest
  16. 16. Examples
  17. 17. Possibilities for themingMajority of the WebApp is styled using CSSAt the moment limited theming can be doneA theming framework is on the roadmap
  18. 18. Documentation, manual and forumDocumentation http://developer.zarafa.com/webapp/Manual http://developer.zarafa.com/webapp/manual.pdfForum https://forums.zarafa.comReleases on https://community.zarafa.com

×