CiviCRM Entity - Superior Drupal Integration A parallel, inclusive vision for the future. A working use case of headless CiviCRM.

Slides:



Advertisements
Similar presentations
From the eyes of an Administrator A general overview of e-CFunds Administrative Site, including navigation and exploring the features of this powerful.
Advertisements

Add a Conference Module Screen Shots When you have a conference it is very easy, call the web office and ask how the initial setup of a conference works.
SharePoint Forms All you ever wanted to know about forms but were afraid to ask.
Business Development Suit Presented by Thomas Mathews.
With Folder HelpDesk for Outlook, support centres and other helpdesks can work efficiently with support cases inside Microsoft Outlook. The support tickets.
Become a Panels Rockstar. Audience Survey Have you tried Panels? Are you a …. –Themer / Designer? –Developer / Code Junkie? –Information Architect?
Moving stuff around on your Drupal web pages Alex Bergin / Dept. Agriculture &
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
EXtensible Catalog XC Drupal Toolkit. XC Software Overview User Interface for searching and browsing Library Website (on Drupal) VoyagerUR Research XC.
Document management New: SharePoint and SharePoint Online support Excel Add-in New: Office 365 support via export, filtering APIs, dimension descriptions,
James Gollan d.o: gollyg twitter: gollyg. Overview Files in Drupal 7 The media suite of modules Site recipe: Adding media to your site.
Integrating CRM On Demand with the E-Business Suite to Supercharge your Sales Team Presented by: Tom Connolly, Jason Lieberman Company: BizTech Session.
Creating a SharePoint App with Microsoft Access Services
The Dr ü G Book: An Intro to Drupal The Dr ü G Book: An Intro to Drupal (Dr ü G: Drupal User ’ s Group - users, not developers) This is an introduction.
Sage CRM v7.2 Developers Course An Introduction to the Developer Program.
Hans Hoerschelman. whoami Hans Sr. Application UI 460 Design (moonlight) UIDUG & DrupalHawks.
Drupal 7 as an enterprise web application framework Why as a developer you should use Drupal to build web applications? Klaus Harris DrupalCon Munich 2012.
Using Drupal to Build Applications Chris Porter Acquia, Inc. August 21,
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Installing CiviCRM onto Wordpress. How does it work?
TOP 20 MISTAKES YOU WILL MAKE IN YOUR 1ST DRUPAL PROJECT IZTOK SMOLIČ, ZAGREB.
Proprietary & Confidential The Thread That Ties it All Together Voicethread and Discovery Education Jennifer Dorman denblogs.com/jendorman.
Administration Tab CiviCRM. Data Organization in CiviCRM: "Building Blocks" Contacts Reports Mail Tags Activities Contribe Member Events and Event Attendences.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Unitedstreaming New Features New and easy interface Professional Development Animations and audio files Daily video content New and enhanced tools Customized.
Nonprofit? There's an App for That! Drupal Modules for Activism, Donations and other Nonprofit #NYCCamp Benjamin J. Kallos iMediaEDGE
Entities in Drupal 7 & the Entity API #sudrupalcamp April 6, 2013 JD Leonard ModernBizConsulting.com ModernBizConsulting.com ModernBizConsulting.com.
LEARN THE QUICK AND EASY WAY! VISUAL QUICKSTART GUIDE HTML and CSS 8th Edition Chapter 6: Links.
9 Agenda Views Pages Web Parts Navigation Office Wrap-Up.
Office of Educational Technology School District of Philadelphia Introduction to Sites Google Sites This presentation is available at
Drupal Commerce Better than Uber Andrew Root: druroot.
SIGNZ V3.39 Centre Proposals SIGNZ V3.39 Centre Proposals.
Forensic Drupal Debugging Dan Harris daneesia on drupal.org.
Introduction to Omeka. What is Omeka? - An Open Source web publishing platform - Used by libraries, archives, museums, and scholars through a set of commonly.
Seattle Drupal Clinic Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Introduction to Module Development John Fiala and Ezra Barnett Gildesgame.
Entities in Drupal 7 & the Entity API #sfdug March 11, 2013 JD Leonard ModernBizConsulting.com.
Artezio LLC Address: 3G Gubkina Str., suite 504, Moscow, Russia, Phone: +7 (495) Fax: +7 (495)
CharMeck.org Contributer Training SharePoint 2013 Orientation and Basic Training.
Module 9 User Profiles and Social Networking. Module Overview Configuring User Profiles Implementing SharePoint 2010 Social Networking Features.
Outline of Drupal Gardens setup and site export ENTICE meeting 12 November 2010 Silvia Tomanin DG-CO.
Adxstudio Portals Training
Social CRM March 7, The Case for Social CRM » On average 31% of people change their address every year New job Moving ISP change Change.
Set Up A Website Lecturer: David Nicol. Free Web Provider There are various organisations which provide free websites and web space. Many offer a variety.
Forms Manager. What is Forms Manager? Forms Manager is a completely new online form creation and form data management tool.
CiviCRM v3.2 Why you’ve got to get it (release highlights) (updated 7/19/2010)
Using Workflow With Dataforms Tim Borntreger, Director of Client Services.
Developer Exam Preparation Thom Robbins Bryan Soltis
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Here are some things you can do while you wait 1.Open your omeka.net site in your browser (e.g. 2.Open.
INFM 700 Project 3 (Aqua) - Akashdeep Ray - Arnaud Lawson - Neha AR - Vidisha Vedvyas.
CRM Training Courses &Online Courses and Salesforce Online | classroom| Corporate Training | certifications | placements| support.
CMS Showdown What Is A Content Management System (CMS)? CMS Website Content Outside Content Social Media Connections with CRM Programs Statistics and.
What it is about? © SkillsRate is registered mark of SKILLSRATE SRL It is all about testing, testing skills,
Thinking of Drupal 8? Get started with the resources.
Varnish Cache and its usage in the real world Ivan Chepurnyi Owner EcomDev BV.
Web Content And Customer Relationship Management Solution. Transforming web sites into a customer-focused, revenue generating channel with less stress.
SCEC Drupal Website Development Overview and Status
CiviCRM CMS Integration
Panelize all the Things!
Fast Action Links extension A love letter to CiviCRM
Better Living through Extensions
…and web frameworks in general
A Framework for Partial Payments
Superior Drupal Integration for CiviCRM with a focus on Events
INFM 603 Main Class Project
One Content Type to Rule Them All
…and web frameworks in general
Advanced Tips and Tricks
Presentation transcript:

CiviCRM Entity - Superior Drupal Integration A parallel, inclusive vision for the future. A working use case of headless CiviCRM

What is CiviCRM Entity? It’s not just a tool, it’s the electric cable that powers the tool Drupal module that integrates nearly 30 CiviCRM entities including: ●Contacts ●Addresses ● s ●Phones ●Notes ●Activities ●Events ●Contributions ●Participants ●Price Sets

What is CiviCRM Entity? CiviCRM Wi-fi for your Drupal website A Drupal module that makes Drupal think CiviCRM data IS Drupal data Opens up CiviCRM to functionality and customization using 100s of Drupal modules via Drupal Core and Drupal Entity API Wraps CiviCRM API Entities calls in extended Drupal Entity controllers.

Why CiviCRM Entity? A parallel, inclusive vision for the future. Drupal People Want To Use Drupal Modules! Attempted forks of CiviCRM to pure Drupal have failed, don’t leave it, use it differently. The idea is to use CiviCRM as a library and provide COMPLETE DRUPAL INTEGRATION. ‘Headless CiviCRM’ with focus on integration modules.

Why CiviCRM Entity? Because CRM is not just needed by non-profits organizations One website, One system Consistent and familiar interface Attractive to Drupal developers Build interfaces for alternative CRM use cases Don’t wait for CiviCRM to have a feature, Drupal may already have it

Why CiviCRM Entity? Because Most People Use CiviCRM With Drupal Anyway Fully ⅔ of CiviCRM Installations are integrated with Drupal 7 That’s called a super majority.

Why CiviCRM Entity? Use CiviCRM in new and different ways

Why CiviCRM Entity? Because CiviCRM is the BEST OPEN SOURCE CRM If you integrate with Drupal, CiviCRM is the BEST. Codified business logic coming from years of CRM community interaction High quality PHP, Javascript, and REST API Normalized Database Structure

CiviCRM Entity -- Who is it for? Drupal Developers Drupal Site builders Drupal Implementers Drupal Content Creators Drupal Savvy Anybody

Uses for Content Creators Blend CiviCRM data with Drupal data Allow content creators to use CiviCRM data in other Drupal content or entities, without giving them access to CiviCRM Back end Integrate with complex authoring and revisioning workflows One Website, One Interface Content Creators need only know Drupal entity-and-inline-entity-form

Uses for Site Builders Any Drupal module that makes use of Drupal entities, can make use of CiviCRM data. ●Add Drupal Fields to CiviCRM data ●Field group ●Views & co. ●Rules & co. ●Entity Reference & co. ●Display Suite ●Search API ●Facet API ●Voting API / Fivestar ●Entity Views Attachments ●OpenLayers Maps ●Leaflet Maps ●Reply -- for comments on entities ●Views Bulk Operations ●Entityqueue ●Flag ●More but I’m out of space….

Uses for Site Builders Drupal Fields! ●Add any Drupal field type ●Use any Drupal field formatters (for Drupal Fields) ●Customizable layout with Display Suite both for viewing and editing ●Field groups You may never see another CiviCRM Custom Field Type...Don’t wait, you can have it now! ●Responsive Images ●Slideshows ●Videos ●Audio ●Etc….. There are many available Drupal field types in contributed modules

Custom fields Vs. Drupal Fields CiviCRM Custom Fields vs. Drupal fields Rule of Thumb If it has to do with Presentation, do it with Drupal fields. If it has to do with long term data storage, do it with CiviCRM Custom Fields (and then only we use CiviCRM custom fields if 1)Technically we have to for some reason 2)The client specifically wants it there 3)The client has to have it in a CiviCRM Custom Report Which doesn’t happen very often because we use Views for Reports. Export data from Views with Views Data Export module

Drupal Fields on CiviCRM Contact pages So you have some Drupal fields on your CiviCRM Contacts and you want to show that data in the CiviCRM backend Put them on the Contact Summary Page as a Tab or a Fieldset Bonus: Any Views content can go in the Contact Summary Page 1.Open/create your view listing CiviCRM Contacts and add a new “CiviCRM Contact Page” display 2.Add a Contact ID Contextual Filter 3.Add Drupal fields at will and save (Make sure to set all of the page settings!) ●Activity Status ●Region(Summary Pane or Tab) ●Weight ntact_page

Workshop -- Entity Reference Reference CiviCRM Data from any other Drupal Entity Display a specific View Mode of that data along with the Node/Entity data Rules Chaining Views Relationships

Workshop -- Drupal View Pages Drupal View pages for CiviCRM Data ●Recommend installing Display Suite ● ●Create Multiple View Modes ●Arrange fields as you like ●Display Suite Custom Fields !!! ●Use Rendered View Modes in Views or EntityReference field displays Example: /civicrm-contact/1

Workshop -- Drupal Edit Pages We got your form builder right here Drupal add/edit pages for CiviCRM Data Recommend installing Display Suite Forms A sub-module of Display Suite Arrange custom edit forms with field groups Example: /civicrm-contact/1/edit

CiviCRM Entity for Developers Drupal Developers like to use the Drupal API and standards Entity API, CRUD operations Full Entity Metadata Wrappers Drupal theming practices, preprocess and templates Customize your site without knowing a single bit of CiviCRM API Build your own custom, responsive forms for specific use cases

Drupal Core API entity_load() Standard Drupal entity hooks ●hook_entity_load() ●hook_entity_view() ●hook_entity_update ●hook_entity_insert() ●hook_entity_presave() ●hook_entity_delete() ●hook_form_alter() mymodule_entity_presave($entity, $type) { // if its a contact if($type == 'civicrm_contact'){ // do something } ….. $contact = entity_load(‘civicrm_contact’, array(45)); $name = $contact->display_name;

Drupal Entity API ●entity_load_single() ●entity_save() ●entity_metadata_wrapper() metadata-wrappers We have access to a fully OOP API RIGHT NOW!! $contact = entity_load_single('civicrm_contact', 45); $contact_wrapper = entity_metadata_wrapper('civicrm_contact', $contact); $name = $contact_wrapper->first_name->value(); $name = $name. ' The Dude'; $contact_wrapper->first_name->set($name); $contact_wrapper->save(); Get metadata $info = $contact_wrapper->first_name->info();

Integrate additional CiviCRM Entities CiviCRM Entity 7.x-beta2 provides: hook_civicrm_entity_supported_info(). Works in CiviCRM Extensions or Drupal modules Permissions default to ‘administer CiviCRM’ See civicrm_entity.api.php State/Province API Entity County API Entity provided by custom extension function countyapi_civicrm_entity_supported_info(&$entity_info) { $entity_info['civicrm_county'] = array( 'civicrm entity name' => 'county', 'label property' => 'name', ); $entity_info['civicrm_state_province'] = array( 'civicrm entity name' => 'stateprovince', 'label property' => 'name', ); }

Alter the Drupal Entity Integration Acts as typical _alter() hook as well Drupal View/Edit/Create/Delete Form permissions Use one or more Drupal permission machine names function mymodule_civicrm_entity_supported_info(&$civicrm_entity_info) { $civicrm_entity_info['civicrm_phone'] = array( 'permissions' => array( 'view' => array(‘my custom permission’), 'edit' => array('edit all contacts', ‘my custom permission’), 'update' => array('edit all contacts', ‘my custom permission’), 'create' => array('edit all contacts', ‘my custom permission’), 'delete' => array('delete contacts', ‘my custom permission’), ), ); }

Alter the Drupal Entity Integration Theme Template Settings ‘template’ => name of file without the.tpl.php ‘path’ => path to location of template file function mymodule_civicrm_entity_supported_info(&$civicrm_entity_info) { $civicrm_entity_info['civicrm_phone'] = array( 'theme' => array( 'template' => 'civicrm-phone', 'path' => drupal_get_path('module', 'mymodule'). '/templates' ), ); }

Alter the Drupal Entity Integration Display Suite Formatters Alter output of entity properties Output as links Output Option Values Output Booleans as Yes/No, True/False function mymodule_civicrm_entity_supported_info(&$civicrm_entity_info) { $civicrm_entity_info['civicrm_phone'] = array( 'display suite' => array( 'link fields' => array( array( 'link_field' => 'contact_id', 'target' => 'civicrm_contact', ), 'option fields' => array( 'location_type_id', 'mobile_provider_id', 'phone_type_id'), 'boolean fields' => array('is_primary', 'is_billing',), ), ); }

function mymodule_civicrm_entity_supported_info(&$civicrm_entity_info) { $civicrm_entity_info['civicrm_phone'] = array( 'civicrm entity name' => 'phone', 'label property' => 'phone', 'permissions' => array( 'view' => array('my custom permission'), 'edit' => array('edit all contacts', 'my custom permission'), 'update' => array('edit all contacts', 'my custom permission'), 'create' => array('edit all contacts', 'my custom permission'), 'delete' => array('delete contacts', 'my custom permission'), ), 'theme' => array( 'template' => 'civicrm-phone', 'path' => drupal_get_path('module', 'mymodule'). '/templates' ), 'display suite' => array( 'link fields' => array( array( 'link_field' => 'contact_id', 'target' => 'civicrm_contact', ), 'option fields' => array('location_type_id', 'mobile_provider_id', 'phone_type_id'), 'boolean fields' => array('is_primary', 'is_billing',), ), ); }

CiviCRM Entity Address Extra -- extra address tokens CiviCRM Entities Flexiform -- another way to make customizable forms CiviCRM Entity Inline -- integrates with Inline Entity Form CiviCRM Price Field Aux - Good example of extended Views integration, Views relationships for Price Sets, Price Fields, Price Field Values for Events and Contributions Developers are already using it…. It’s not just a tool, it’s the electric cable that powers the tool

Development Plans Short Term: Foolproof form validation Improved “Psuedo reference” field handling Mid Term: Entity-ize Profiles and be able to view, add, edit profiles and fields on profiles Long Term: Contribution and Event registration view pages that fetch price set info and run the transactions Drupal 8 version -- more important now that Webform is unlikely to be ported. Backdrop version

Development Plans The reality of Drupal 8 integration without Webform CiviCRM Exposure of Profiles as Entities and Rules reactions The improved Contact Form? Consider Drupal Commerce Integration

I have so much more I could talk about and teach. Consider my presence a non-stop Drupal/CiviCRM Integration BOF before, during, and after each day of conference Ask me a question, let me help solve your problem If I can’t figure it out or at least provide a plan of action in 30 minutes, I’ll eat my hat. Mark Hanna