Announcing Community Plugin Toolkit for Open Atrium 2.0

Let the Plugin Coding Begin!

On Friday, we posted the Community Plugin Toolkit to the community.openatrium.com site. This “toolkit” is a set of documentation (with code examples to follow) describing how to build Plugins for Open Atrium 2.0 in Drupal 7.

For the past several months, Phase2, with help from some wonderful sponsors, have worked to build a solid architecture and framework for Atrium 2.0. To make community contribution as productive, valuable, and easy as possible, we focused on the API and framework first. Now that we have a stable core and solid architecture, we are excited for the community to start working on Plugins that will provide much of the end-user functionality of Open Atrium.

openatrium_logo copy

Getting Started with Open Atrium 2 Development

Open Atrium 2 (OA2) was architected to make it very easy to develop your own Plugins. An OA2 Plugin is just a Drupal module, whether it comes from Apps, Features, or is just a regular module. The Community Plugin Toolkit (CPT) describes how you hook your module into the Groups and Sections that provide the structure and access control for OA2. Your Plugin can define new Content Types, Views, Panes, Blocks, Boxes, Menus, or most any other normal piece of Drupal content.

For example, let’s say you want to add an Event Calendar plugin to Open Atrium 2. You simply create an Event content type, then add some Date fields for the Start/End of the event. Then add a Google Map Address field for the Event Location. Then you add the Calendar module and create a View of your event calendar. Using the Features module, you export all of this into your own “Event Module”. Once your module is enabled in Open Atrium, you add the Group and Section fields to your Event content type as described in the Community Plugin Toolkit. Then you create a new Panelizer layout for a Section Page called Events. On this page layout you add the Calendar view to the main content region, then add an Upcoming Events view to the right sidebar.

Voila! You now have a rudimentary Event calendar landing page (Section) for a Group. The Group Admin can create a new Section using your Event layout. Members of the Group can create Event content that is assigned to their group. You can even create multiple calendars with different levels of access control, such as a private calendar within a private Section of your Group.

The built-in message and notification system in Open Atrium 2 will automatically generate messages when Events are created, updated, or deleted. You can add your own custom hooks to create a new type of message to remind members when an event is about to begin using custom email templates. You can also create templates to control how your custom event message is displayed in the OA2 Recent Activity “river”.

Creating Plugin functionality for Open Atrium isn’t much different from creating normal Drupal functionality. The steps to integrate your content types into OA2 Groups and Sections are easy to follow. You still have all of the power of Drupal, along with the enhanced content organization and access control of OA2. This architecture allows you to easily re-use your existing Drupal modules within Open Atrium.

Contributing to the Community

While Phase2 Technology continues to maintain the core components of Open Atrium 2, this distribution is open source and community-driven; so most of the functionality will come via community plugins. For example, Open Atrium 2 doesn’t have any “CaseTracker” functionality as part of the core. There are a variety of Project Management tools that different people might need, from simple “To-do” list, to Issue Tracking, to integration with 3rd party ticketing systems such as JIRA. Open Atrium does not want to dictate a specific solution hard-coded into the core project, but wants to allow different Plugin solutions to better meet customer needs.

The new architecture should make it relatively straightforward to integrate your existing modules and functionality into Open Atrium 2. By sharing your Plugins with the community you will be helping to build a world-class Open Source solution for Collaboration, Project Management, and Communications. Eventually, we will have an “App” model that can be used to easily share your Plugins throughout the Open Atrium community. We will have a Plugin browser area on the Open Atrium community site to provide a way to share information about your plugins. For now, just use Drupal.org and submit your modules as normal Drupal Projects. With the Drupal.org Sandbox functionality, any developer can get started and post their own OA2 Plugins.

Where is the code?!

We know it is difficult to start Plugin development without the actual Open Atrium 2 code base to play with. We hope to have the OA2 code put into the Drupal.org Open Atrium Project space within the next week or so. This will be very early Alpha code, but will at least give the community something to start with. Once this code is posted keep in mind that it will be missing functionality and have plenty of bugs. We will eventually enable the Issue Tracker on Drupal.org to handle patches and issues.

 

In the meantime, feel free to post questions or plugin announcements to the Development group on the community.openatrium.com site or contact us directly at openatrium@phase2technology.com.

 

  • Tim Anderson

    Any news on the code base? We would like to build plugins

  • cweagans

    So…any news on a public code release?

    • http://twitter.com/febbraro Frank Febbraro

      Well it all happened sooner than we planned. Code is up on d.o now.

      • http://twitter.com/metastar Michael Hart

        Where? I can’t find it…

        • Frank Febbraro

          We have the code on drupal.org, no releases yet because it is not ready for a release.

          http://drupalcode.org/project/openatrium.git/tree/refs/heads/7.x-2.x

          • Joris Snoek(Lucius Websystems)

            Thanks Mike and OA Dev team,
            very nice to see there is progress in OA2 development!

            But..how to install..?
            When I ‘drush make’ and install OA profile, it gives WSOD.

            When I install minimal profile, I see there OA core module has not-included dependencies.
            I downloaded those, but then after enabling OA core and OA Bartik theme.. WSOD..

            Do you maybe have a Dev dbase I can use..? Or another solution so we can get it up and running?

            Thanks, greets,
            Joris

          • Mike Potter

            Joris: We will be looking into the issue with the install profile this week. As we said, this isn’t a full “release” yet, so it’s still got many bugs and issues. We just wanted to provide the ability for other people to start looking at the code. Getting the dependencies in the right order and getting this to work as a true inherited Panopoly profile is a bit tricky, but we are working on it.

          • Mike Potter

            Joris: We will be looking into the issue with the install profile this week. As we said, this isn’t a full “release” yet, so it’s still got many bugs and issues. We just wanted to provide the ability for other people to start looking at the code. Getting the dependencies in the right order and getting this to work as a true inherited Panopoly profile is a bit tricky, but we are working on it.

          • Joris Snoek(Lucius Websystems)

            Great, thanks!
            Looking forward to it.

  • http://twitter.com/febbraro Frank Febbraro

    @cweagans:disqus @google-30b01ccb4a672d0dc5ff9105d1b66155:disqus We are working through it now. There were some refactorings and name changes we wanted to accomplish before we let it loose. It is very much on it’s way shortly, but we need to wrap a few things up.

  • SweetTomato

    In your post you mention “You can even create multiple calendars with different levels of access control, such as a private calendar within a private Section of your Group.” Does creating multiple calendars mean multiple Event Sections? In either case, can two calendars be displayed on one calendar view?

  • Othermachines

    Do you mean this toolkit? https://community.openatrium.com/dev/node/4744

    I’m at a loss to find something more recent.

    • simplulo

      I’m at a loss to find anything at all.