SlideShare a Scribd company logo
WebApp development introduction
The WebApp team
What will we discuss
Overview of the client architecture

Integrations on the client: plugins vs. widgets
Integrations on the server: module

The anatomy of a WebApp plugin

Examples
Possibilities for theming

Documentation, manual & forum
WebApp Client Architecture
Integrations: Different kinds of addons
Widgets
Plugins
Integrations: Widgets
Integrations: Widgets
Integrations: When wanting more... plugins
Integrations: Two ways to integrate
Bidding system
Insertion points
Integrations: Bidding for image attachments
Integrations: Bidding for image attachments




                                         Attachment
Click on attachment   Open                                 Mail          Bid = 1

                                         Attachment
                             Container                   Calendar        Bid = -1

                                         Attachment
                                                      3rd-party plugin   Bid = 2
Integrations: Add buttons with insertion points
Integrations: Example of insertion points
init : 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
    }]
}
Server integrations
The server-side of the WebApp is written in PHP

The client interacts with modules on the server




There are three ways to extend the server
    Write your own module
    Use the insertion points/hooks on the server
    Add default settings
Integrations: Example of server hook
<?php
class 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;
  }
}
?>
The anatomy of a WebApp plugin
A closer look at the folder structure and manifest
Examples
Possibilities for theming
Majority of the WebApp is styled using CSS

At the moment limited theming can be done

A theming framework is on the roadmap
Documentation, manual and forum
Documentation
   http://developer.zarafa.com/webapp/


Manual
   http://developer.zarafa.com/webapp/manual.pdf


Forum
   https://forums.zarafa.com


Releases on
   https://community.zarafa.com

More Related Content

PDF
Angular 2.0 - What to expect
PPT
PDF
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
PDF
Ngrx meta reducers
PDF
Angular Pipes Workshop
PDF
Angular - injection tokens & Custom libraries
PPT
SynapseIndia creating asp controls programatically development
PDF
Styling recipes for Angular components
Angular 2.0 - What to expect
Demystifying Hooks, Actions & Filters - WordCamp Belfast 2018
Ngrx meta reducers
Angular Pipes Workshop
Angular - injection tokens & Custom libraries
SynapseIndia creating asp controls programatically development
Styling recipes for Angular components

Viewers also liked (16)

PDF
知识到底是什麽?
PDF
Inbound webinar presentation
PPTX
Avidian Technologies' Prophet CRM
PPT
Different hats, same needs: Marketing compliance from doctor’s office to boar...
PDF
Evolution in memory games
PDF
How to Hire a PR Firm
PDF
Alacra On Demand
PPTX
Introducing ProspectStream
PDF
Real Estate Investment Guide - Waveland, Mississippi
PPT
Spotlight on GFI EndPoint Security 2013
PDF
Nsauditor Web Proxy Scanner
PPTX
Where the most popular Youtube stars are today
PDF
Maximize Computer Security With Limited Ressources
PPTX
Web 2.0 and the world of global collaboration v2010
PDF
The Benefits of FileMaker Pro
PDF
09 Ny Brochure
知识到底是什麽?
Inbound webinar presentation
Avidian Technologies' Prophet CRM
Different hats, same needs: Marketing compliance from doctor’s office to boar...
Evolution in memory games
How to Hire a PR Firm
Alacra On Demand
Introducing ProspectStream
Real Estate Investment Guide - Waveland, Mississippi
Spotlight on GFI EndPoint Security 2013
Nsauditor Web Proxy Scanner
Where the most popular Youtube stars are today
Maximize Computer Security With Limited Ressources
Web 2.0 and the world of global collaboration v2010
The Benefits of FileMaker Pro
09 Ny Brochure
Ad

Similar to Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development (20)

PPTX
Integrating with Zarafa
PDF
Developing Mobile Apps, Lecture 5
PDF
Zyncro zyncro apps & ui customization feb 2013
PDF
Plugins 2.0: The Overview
PDF
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
PDF
A W3C Widget implementation: The Palette Portal
PDF
S60 3rd FP2 Widgets
PDF
Introduction to REST and JAX-RS
ZIP
Twiggy - let's get our widget on!
PDF
Taming Beastly Web Applications with Server-Side OSGi
PDF
Plugins Are Blueprints
ODP
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
PDF
Miha Lesjak Mobilizing The Web with Web Runtime
PDF
jQuery UI and Plugins
PDF
GlassFish v3 Lite Admin Console
PDF
Netapp Michael Galpin
PDF
Building 3rd party widgets with JavaScript
PDF
Write your first WordPress plugin
PDF
WordPress Plug-ins
PDF
Easy as pie creating widgets for ibm connections
Integrating with Zarafa
Developing Mobile Apps, Lecture 5
Zyncro zyncro apps & ui customization feb 2013
Plugins 2.0: The Overview
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
A W3C Widget implementation: The Palette Portal
S60 3rd FP2 Widgets
Introduction to REST and JAX-RS
Twiggy - let's get our widget on!
Taming Beastly Web Applications with Server-Side OSGi
Plugins Are Blueprints
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
Miha Lesjak Mobilizing The Web with Web Runtime
jQuery UI and Plugins
GlassFish v3 Lite Admin Console
Netapp Michael Galpin
Building 3rd party widgets with JavaScript
Write your first WordPress plugin
WordPress Plug-ins
Easy as pie creating widgets for ibm connections
Ad

More from Zarafa (20)

PPTX
Zarafa SummerCamp 2012 - Android Workshop
PPT
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
ODP
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
ODP
Zarafa SummerCamp 2012 - Keynote Peter Ganten
ODP
Zarafa SummerCamp 2012 - Yubikey integration
PPT
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
ODP
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
PDF
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
PDF
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
PDF
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
PDF
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
PDF
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
PPT
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
ODP
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
ODP
Zarafa SummerCamp 2012 - Open Generation Gap
PPT
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
PPT
Zarafa SummerCamp 2012 - Zarafa 7.1 features
PPTX
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
PDF
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
PPT
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
KodekX | Application Modernization Development
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Spectroscopy.pptx food analysis technology
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Empathic Computing: Creating Shared Understanding
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KodekX | Application Modernization Development
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The AUB Centre for AI in Media Proposal.docx
Encapsulation_ Review paper, used for researhc scholars
Spectroscopy.pptx food analysis technology
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Advanced methodologies resolving dimensionality complications for autism neur...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
Chapter 3 Spatial Domain Image Processing.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Empathic Computing: Creating Shared Understanding
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Understanding_Digital_Forensics_Presentation.pptx
20250228 LYD VKU AI Blended-Learning.pptx

Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development

  • 2. What will we discuss Overview of the client architecture Integrations on the client: plugins vs. widgets Integrations on the server: module The anatomy of a WebApp plugin Examples Possibilities for theming Documentation, manual & forum
  • 4. Integrations: Different kinds of addons Widgets Plugins
  • 7. Integrations: When wanting more... plugins
  • 8. Integrations: Two ways to integrate Bidding system Insertion points
  • 9. Integrations: Bidding for image attachments
  • 10. Integrations: Bidding for image attachments Attachment Click on attachment Open Mail Bid = 1 Attachment Container Calendar Bid = -1 Attachment 3rd-party plugin Bid = 2
  • 11. Integrations: Add buttons with insertion points
  • 12. Integrations: Example of insertion points init : 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. Server integrations The server-side of the WebApp is written in PHP The client interacts with modules on the server There are three ways to extend the server Write your own module Use the insertion points/hooks on the server Add default settings
  • 14. Integrations: Example of server hook <?php class 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. The anatomy of a WebApp plugin A closer look at the folder structure and manifest
  • 17. Possibilities for theming Majority of the WebApp is styled using CSS At the moment limited theming can be done A theming framework is on the roadmap
  • 18. Documentation, manual and forum Documentation http://developer.zarafa.com/webapp/ Manual http://developer.zarafa.com/webapp/manual.pdf Forum https://forums.zarafa.com Releases on https://community.zarafa.com