Drupal VM supports MySQL, MariaDB, and PostgreSQL

Posted by Jeff Geerling's Blog on October 1, 2016 at 6:52pm

PostgreSQL elephant transparent PNG
The PostgreSQL logo. Same family as PHP's mascot!

For the past few years, I've been intending to kick the tires of PostgreSQL, an open source RDBMS (Relational DataBase Management System) that's often used in place of MySQL, MariaDB, Oracle, MS SQL, or other SQL-compliant servers. Drupal 7 worked with PostgreSQL, but official support was a bit lacking. For Drupal 8, daily automated test builds are finally being run on MySQL, SQLite, and PostgreSQL, so many of the more annoying bugs that caused non-MySQL database engines to fail have finally been fixed!

A day at DrupalCon with Inky

Posted by Amazee Labs on October 1, 2016 at 9:33am
A day at DrupalCon with Inky

Now that all the talking is over, it's time to get down to some real work!

Ingrid Talbot Sat, 10/01/2016 - 11:33

The last big party was held last night at the Annual Trivia Night. It is apparently always hosted by the Irish contingent, so expectations were high, and were seemingly exceeded. For me being a first-timer at Trivia Night, I was quickly snapped up onto a team as I came with newbie bonus points. It was a hysterical evening, which few people outside of the Drupal community would ever be able to appreciate.

Trivia Night at DrupalCon Dublin

Friday is a day for all remaining delegates to get together and sprint. While there are sprints happening throughout the week, as there are no other presentations, this is the day for focused and mentored sprinting, to help get new people involved and allow teams to gather to work together.

A "sprint", in Drupal terms, is when developers and interested parties get together to work on further building and developing the core Drupal project. While it's not the only way to contribute back to Drupal, it is the most significant and direct.

First time sprinters workshop

I joined the First-Time Sprinters Workshop where we were guided through the installation of a local environment and other supporting tools. I got to use IRC for the first time since 2003, which was a bit of a flashback, and for me enforced what -enzo- had talked about yesterday. It also gave me the opportunity to explore Drupal 8.3.0 which is due to be released next week.

While all the guys around me were getting dug into code, I struggled to find a non-coding issue to help out on. Until Shannon Vettes of Acquia got hold of me, and some other Project Managers, to discuss how we can help, without needing to write a line of code.

Stuck into code

I was then introduced to a variety of Core Contributors and ended up being added, in some loose way, to the team behind the Migration Initiative. The intention is, that as a PM, I can help them sort through the issue queue and maybe provide a bit of focus at times.

Various other Amazee's were already stuck into their issues at hand and helping out as Mentors.

When lunch came out there was great fascination at the gorgeous, wooden lunchboxes that appeared. Filled with fresh and tasty food.

Lunchboxes

By the afternoon, people were spread out all over the place, finding any gap to gather around to hold discussions.

Sprinting anywhere

Sprinting all over

Sprinting

All good things must eventually come to an end. And while the Sprints will continue over the weekend, I eventually had to leave to catch my plane out. It has been quite a fabulous week, with many thanks to everyone who contributed in any way.

Empty CCD

But wait, there's more!

As I got onto the bus, another delegate was sadly taking off his accreditation lanyard and tucked it away. But then he noticed me and shuffled over. He had seen my presentation with Josef on Tuesday and had a few questions. So my conference extended all the way to the airport.

Go dtí an bhliain seo chugainn!

Drupal as an Integration Point: DrupalCamp LA 2016 Table Talk - pt. 3/5

Posted by ActiveLAMP on October 1, 2016 at 1:01am

Part three of our table talk! This week the agency owners of Achieve Internet, Stauffer, ActiveLAMP and Facet Interactive discuss the power of Drupal as an integration point.

Read more...

Acquia a leader in 2016 Gartner Magic Quadrant for Web Content Management

Posted by Dries Buytaert on September 30, 2016 at 6:43pm

This week Acquia was named a leader in the Gartner Magic Quadrant for Web Content Management. We're quite excited about it at Acquia as it's the third year in a row that we received this recognition from Gartner.

Organizations planning large WCM deployments rely on reports such as the Gartner Magic Quadrant for Web Content Management to give them a comprehensive view of the competitive landscape. Acquia's strong placement will cause many organizations to give Drupal a closer look for their content management projects. Acquia is the only open source company included among the six leaders, and as CMSWire's Dom Nicastro reported, "Acquia made the biggest positive move" of all the solutions ranked in Gartner's report.

What I found especially interesting in this year's report was their observation that the WCM market is beginning to split in two subcategories: the first subcategory treats the web as an ever more important channel for marketing and communications; the second subcategory is focused on more profound digital transformations, where WCM is a strategic technology to create new business models and build new digital experiences.

Drupal is used for both. Johnson & Johnson, MillerCoors and Motorola are examples of brands that are creating digital experiences to support their marketing and communications. Look to the City of Boston's work to reimagine citizen engagement, or the innovation at Hubert Burda Media to transform the publishing industry for the next digital age as examples of the latter.

Getting Started with Waterwheel.js and Resource Discovery

Posted by Acquia Developer Center Blog on September 30, 2016 at 5:47pm

For developers of Drupal-backed JavaScript applications, simply having an HTTP client which can make requests against Drupal 8’s core REST API is often not enough. JavaScript developers are sometimes stymied by nuances unique to Drupal which leak out when consuming Drupal’s REST API, such as Drupal-specific paths for resources and confusing data structures in responses. Waterwheel.js alleviates these barriers to JavaScript developers by providing an additional API atop Drupal REST which allows you to retrieve and manipulate content entities in Drupal 8 without needing to deeply understand Drupal’s internals.

Tags: acquia drupal planet

Routing and controllers in Drupal 8

Posted by lakshminp.com on September 30, 2016 at 5:25pm

The routing system of Drupal 8 is a complete rewrite of Drupal 7 and its previous versions' hook_menu. A Drupal route is a URL path with a specific return content. This return content is usually specified as a method of a controller class which returns a render array.

The routing system is powered by Symfony's HTTP Kernel component, which we will revisit later. It is not necessary to understand this in order to work with routes.

Let's dive straight away and create a new route.

First, we shall create a module to hold all the code in this chapter. You can checkout the code:

$ git clone [email protected]:drupal8book/myroute.git
$ cd myroute
$ git checkout -f simple-route

or walk along with me by typing the code or using drupal console to generate it.

$ drupal generate:module

 Enter the new module name:
 > myroute

 Enter the module machine name [myroute]:
 > 

 Enter the module Path [/modules/custom]:
 > 

 Enter module description [My Awesome Module]:
 > Routing and controllers

 Enter package name [Custom]:
 > D8MD

 Enter Drupal Core version [8.x]:
 > 

 Do you want to generate a .module file (yes/no) [yes]:
 > no 

 Define module as feature (yes/no) [no]:
 > 

 Do you want to add a composer.json file to your module (yes/no) [yes]:
 > no

 Would you like to add module dependencies (yes/no) [no]:
 > 


 Do you confirm generation? (yes/no) [yes]:
 > 

Generated or updated files
 Site path: /var/www/html
 1 - modules/custom/myroute/myroute.info.yml

Let's write a simple controller which prints "hello world" when we hit the path /hello.

$ drupal generate:controller

 Enter the module name [email_management]:
 > myroute

 Enter the Controller class name [DefaultController]:
 > HelloWorldController

 Enter the Controller method title (to stop adding more methods, leave this empty) [ ]:
 > Hello World

 Enter the action method name [hello]:
 > 

 Enter the route path [/myroute/hello/{name}]:
 > hello

 Enter the Controller method title (to stop adding more methods, leave this empty) [ ]:
 > 

 Do you want to generate a unit test class (yes/no) [yes]:
 > no


 Do you want to load services from the container (yes/no) [no]:
 > no


 Do you confirm generation? (yes/no) [yes]:
 > 

Generated or updated files
 Site path: /var/www/html
 1 - modules/custom/myroute/src/Controller/HelloWorldController.php
 2 - modules/custom/myroute/myroute.routing.yml
 // router:rebuild

 Rebuilding routes, wait a moment please


 [OK] Done rebuilding route(s).

Make sure you enable the module.

$ drush en myroute -y

Open modules/custom/myroute/src/Controller/HelloWorldController.php and change the markup text to "Hello World".

public function hello() {
  return [
    '#type' => 'markup',
    '#markup' => $this->t('Hello World')
  ];
}

you might need to rebuild cache.

$ drush cr

Hit /hello.

The equivalent Drupal 7 code for this would be something on the lines of

// inside myroute.module...

function myroute_menu() {
  $items = array();
  $items['main'] = array(
    'title' => Hello World',
    'page callback' => myroute_hello',
    'access arguments' => array('access content'),
    'type' => MENU_NORMAL_ITEM,
    'file' => 'myroute.pages.inc'
  );
  return $items;
}

// inside myroute.pages.inc 

function myroute_hello() {
  return t(‘Hello World’);
}
Routes with parameters

This is great, but how to add URL parameters?

Let's add a new route with a URL parameter.

$ cd myroute
$ git checkout -f route-with-params

or if you choose to use drupal console,

drupal generate:controller
 Enter the module name [email_management]:
 > myroute

 Enter the Controller class name [DefaultController]:
 > GreetingController

 Enter the Controller method title (to stop adding more methods, leave this empty) [ ]:
 > Greeting

 Enter the action method name [hello]:
 > greeting

 Enter the route path [/myroute/hello/{name}]:
 > hello/{name}

 Enter the Controller method title (to stop adding more methods, leave this empty) [ ]:
 > 

 Do you want to generate a unit test class (yes/no) [yes]:
 > no


 Do you want to load services from the container (yes/no) [no]:
 > 


 Do you confirm generation? (yes/no) [yes]:
 > 

Generated or updated files
 Site path: /var/www/html
 1 - modules/custom/myroute/src/Controller/GreetingController.php
 2 - modules/custom/myroute/myroute.routing.yml
 // router:rebuild

 Rebuilding routes, wait a moment please


 [OK] Done rebuilding route(s).

Edit the greeting controller function to print the name.

public function greeting($name) {
  return [
    '#type' => 'markup',
    '#markup' => $this->t('Hello, @name!', ['@name' => $name]),
  ];
}

Try /hello/Joe.

/hello/123-456 works too. Let's tone it down a little and add a validation criteria for the parameter.

Names can only have alphabets and spaces.

myroute.greeting_controller_greeting:
  path: 'hello/{name}'
  defaults:
    _controller: '\Drupal\myroute\Controller\GreetingController::greeting'
    _title: 'Greeting'
  requirements:
    _permission: 'access content'
    name: '[a-zA-z ]+'

Rebuild the cache for this to take effect.

$ drush cr

/hello/123-456 will now give a 404. Try /hello/Joe%20Pesci.

Custom permissions

How about adding custom permissions? What if we want to show the /hello page only to users who can administer content.

$ cd myroute
$ git checkout -f custom-access-check

We first indicate that the route uses custom permissions.

myroute.hello_world_controller_hello:
  path: 'hello'
  defaults:
    _controller: '\Drupal\myroute\Controller\HelloWorldController::hello'
    _title: 'Hello World'
  requirements:
    _custom_access: '\Drupal\myroute\Controller\HelloWorldController::custom_access_check'

Note that the _permission parameter has been replaced by _custom_access parameter.

Lets implement this custom access method inside the HelloWorldController.

// add the required namespaces at the top.
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Access\AccessResult;

  /**
   * Custom access check
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   access checking done against this account.
   */
  public function custom_access_check(AccountInterface $account) {
    return AccessResult::allowedIf($account->hasPermission('access content') &&
      $account->hasPermission('administer content'));
  }

Rebuild cache and try hitting /hello as an anon user, you should get an "Access denied" page. Of note here is the AccessResult class, which was introduced to make access check related data cacheable.

Dynamic routes

Defining routes via a YAML file applies to static paths. If we want to route programmatically, we have to define and return a \Symfony\Component\Routing\Route object.

$ cd myroute
$ git checkout -f dynamic-routes

To illustrate the concept of dynamic routes, let's take an imaginary requirement where we have a custom path, /content_types/{content_type}, which will display all the fields of a content type {content_type}. In order to create a dynamic route for the same, we have to create our own Routing class inside the src/Routing directory and override the routes() method. This is equivalent to its YAML cousin, the myroute.routing.yml file, but written in PHP.

<?php

/**
 * @file
 * Contains \Drupal\myroute\Routing\CTRoutes.
 */

namespace Drupal\myroute\Routing;

use Symfony\Component\Routing\Route;

/**
 * Dynamic routes for content types.
 */
class CTRoutes {

  /**
   * {@inheritdoc}
   */
  public function routes() {
    $routes = [];
    $content_types = \Drupal::service('entity.manager')->getStorage('node_type')->loadMultiple();
    foreach ($content_types as $content_type) {
      $routes['myroute.content_type_controller.' . $content_type->id() ] = new Route(
        '/content_types/' . $content_type->id(),
        array(
          '_controller' => '\Drupal\myroute\Controller\CTController::fields',
          '_title' => 'Field info for ' . $content_type->label(),
          'content_type' => $content_type->id(),
        ),
        array(
          '_permission'  => 'access content',
        )
      );
    }
    return $routes;
  }
}

The custom router above creates an array of routes for every content type in the system and returns it. For instance, if there are 3 content types in the system, like page, foo and bar, there will be 3 routes with paths /content_types/page, /content_types/foo and /content_types/bar respectively.

Let's flesh out the CTController as well.

<?php

namespace Drupal\myroute\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * Class CTController.
 *
 * @package Drupal\myroute\Controller
 */
class CTController extends ControllerBase {

  /**
   * List fields info of a content type.
   *
   * @return string
   *   Return field list.
   */
  public function fields($content_type) {
    $render = '<table><tr><th>' . $this->t('Field type') . '</th><th>' . $this->t('Label') . '</th></tr>';
    $field_definitions = \Drupal::entityManager()->getFieldDefinitions('node', $content_type);
    foreach ($field_definitions as $field_name => $field_definition) {
      if (!empty($field_definition->getTargetBundle())) {
        $render .= '<tr><td>' . $field_definition->getType() . '</td><td>' . $field_definition->getLabel() . '</td></tr>';
      }
    }
    $render .= '</table>';
    return [
      '#type' => 'markup',
      '#markup' => $render,
    ];
  }
}

The field() method looks up the field definitions of the contenttype argument and renders it as a HTML table.

Finally, we have to indicate Drupal to pick up the custom Routing class we've added. This can be done by adding a _route_callbacks item to the routing YAML file.

route_callbacks:
  - '\Drupal\myroute\Routing\CTRoutes::routes'

Rebuild the cache and you are all set. Hit the content_types/article page, you should see something like this(provided you have the article CT in your system).

Article CT listing

Palantir.net's Guide to Digital Governance: An Introduction and Starting at the 10,000ft View

Posted by Palantir on September 30, 2016 at 1:54pm
Palantir.net's Guide to Digital Governance: An Introduction and Starting at the 10,000ft View Palantir.net's Guide to Digital Governance brandt Fri, 09/30/2016 - 08:54 Scott DiPerna Sep 29, 2016Illustrated collage of website icons

Palantir.net’s Guide to Digital Governance is intended to help get you started when developing a governance plan for your institution’s digital communications.

In this post we will cover...
  • What is governance?
  • Topics you should consider when developing a governance plan for your digital communications
  • Where to begin

We want to make your project a success.

Let's Chat.

Introduction

In this age of information, digital communications are perhaps the most vital form of outreach an organization has for presenting itself to the world. Today it is probably more likely that a person’s first experience or interaction with your organization will occur through the internet. It is then no wonder that most institutions feel they must have a website or they have to be on Facebook and Twitter. These are now the places where reputations are built and managed.

There are no shortages of services and materials for building a digital presence, whether it is on the web or a social network; however there is less focus on how these presences will be managed and maintained after they are built. This is the all-important and too-often neglected role of digital governance, otherwise known as the ownership, management, and sustainability plan for an organization’s various digital communications platforms.

Governance seems simple at a distance – it is the set of rules an organization will follow for its digital communications – but the devil is in the detail, and the details are precisely where the process of defining a governance plan becomes prickly. The details are also where many will become bogged down, lose momentum, and set the plans aside, never to be addressed again until a problem arises.

To help get you started developing a governance plan for your institution’s digital communications, I have put together a guide that outlines many of the questions you will want to answer in thinking through policies and guidelines in your governance plan.

The format is literally a series of questions you can answer that will help you begin to consider key issues in digital governance and how you want to handle them.

The guide is based largely on work I have done in higher education, but I have generalized here for broad use across industries.

The guide has sixteen sections that follow a specific order intended to help you start at a high-level of thinking about your digital communications, properties and assets, and then focus on greater and greater levels of detail.

The sections are as follows:

  1. Starting at the 10,000ft View – Define the digital ecosystem your governance planning will encompass.
  2. Properties and Platforms – Define all the sites, applications and tools that live in your digital ecosystem.
  3. Ownership – Consider who ultimately owns and is responsible for each site, application and tool.
  4. Intended Use – Establish the fundamental purpose for the use of each site, application and tool.
  5. Roles and Permissions – Define who should be able to do what in each system.
  6. Content – Understand how ownership and permissions should apply to content.
  7. Organization – Establish how the content in your digital properties should be organized and structured.
  8. URLs – Define how URL patterns should be structured in your websites.
  9. Design – Determine who owns and is responsible for the many aspects design plays in digital communications and properties.
  10. Personal Websites – Consider the relationship your organization should have with personal websites of members of your organization.
  11. Private Websites, Intranets and Portals – Determine the policies that should govern site which are not available to the public.
  12. Web-Based Applications – Consider use and ownership of web-based tools and applications.
  13. E-Commerce – Determine the role of e-commerce in your website.
  14. Broadcast Email – Establish guidelines for the use of broadcast email to constituents and customers.
  15. Social Media – Set standards for the establishment and use of social media tools within the organization.
  16. Digital Communications Governance – Keep the guidelines you create updated and relevant.

Starting at the 10,000ft View

When I first begin to think about digital governance for any organization, I like to back up as far as I can to see everything I should include in my planning, or what people sometimes call the 10,000ft view.

Digital communications can encompass many different things, from websites to social networks to broadcast email, so I suggest backing up to the point where you are looking at the various platforms that will be part of your planning.

Here is a list of some common platforms encompassed in a digital communications strategy:

  • Public Websites
  • Private Websites
  • Intranets & Portals
  • Web-Based Applications
  • E-Commerce
  • Social Networks
  • Digital Media
  • Broadcast Email
  • Digital Communications Governance* 

This list contains the common “properties” or platforms on which a digital communications strategy is built, or at the very least they are some basic categories for the grouping of such properties.

For instance, your organization may have a main website with many sub-sites or microsites. Others may be combined in your institution; for example, all of your web-based applications may be built within your Intranet site.

Make your own list align with the properties you need to include in your governance plan. These will be your top level categories.

* Few among us would likely think to include “Digital Communications Governance” on this list, but I do so precisely for that reason, and because I want to reinforce that Governance (its documents, people, and processes) is a living thing that needs to be maintained over time, just like the rest of the list.

It’s oddly self-referential to think about governance for Governance, but think of it like the part of the Constitution that describes how to amend the Constitution.

This is the first post in our new series, Palantir's Guide to Digital Governance. Check back on our blog every Monday for the next step in developing your digital governance plan.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

Choosing the Best Host for Drupal 8

Posted by OSTraining on September 30, 2016 at 11:23am

At OSTraining we often get asked to help our clients make the right choice for Drupal hosting.

You may often hear that Drupal hosting is expensive, but there are some very reliable and affordable options available.

For Drupal 8 you will need a host that is running the latest stable releases.

Wot no themes? This might be why there are so few themes available for Drupal 8

Posted by Red Route on September 30, 2016 at 9:50am

In a recent article on OS Training, Steve Burge asks Why Are There So Few Drupal 8 Themes? It’s true that the number of themes out there is pretty low, and Steve's article considers some possible reasons for that, mainly relating to the supply side of the market. I'd prefer to focus on the demand side in answering that question.

My observations should be prefaced by the caveat that I’m probably not a typical "site builder”, whatever that means. I’m a senior software engineer, working at a big systems integrator, building websites for large organisations. But I've built sites for myself, and for friends, and I used to work at a small digital agency, and after nearly 8 years on drupal.org, I can count on one hand the number of times I’ve used a contributed theme on a site I've built, excluding Zen or one of the other base themes.

The obvious comparison to make is with Wordpress, which has far more themes available, not least because they maintain backwards compatibility. While the Wordpress community may be our twin island, the Drupal community is in a different place.

Even though I built a site to showcase Drupal themes, I just don't have an interest in contributed themes these days, and I don't think I'm alone in that - as I see it, Drupal site builds generally fall into one of three categories:

Organisations paying someone else to build a site for them

Drupal is complex enough that the people and organisations who work with it aren't at the bottom end of the market. If you’re spending more than a couple of hundred pounds on your website, you probably want it to look different from other sites, and you probably have a budget for a designer.

Technically minded people who are building their own sites

I don’t want to further the stereotype of techies having no design sense, but for a lot of people in this category, Bartik is good enough, in the same way that Bootstrap is good enough for some startups. It’s all about the content, and it doesn't really matter to the site owner if it looks the same as other sites. For some people, that might even be considered a good thing. If they do care about design, then (like me) they probably want to design their own site anyway.

Community groups without much money to spend

This is probably the main target market for contributed themes. They want the site to look nice, and to look different, but they don’t want to spend money on it.

When even the maintainer of one of the main core themes is promoting a premium theme, it seems clear that there is a demand for a premium themes market. How that will work is another question.

Tags:  Drupal Drupal 8 open source All tags

Wot no themes? This might be why there are so few themes available for Drupal 8

Posted by Red Route on September 30, 2016 at 9:50am

In a recent article on OS Training, Steve Burge asks Why Are There So Few Drupal 8 Themes? It’s true that the number of themes out there is pretty low, and Steve's article considers some possible reasons for that, mainly relating to the supply side of the market. I'd prefer to focus on the demand side in answering that question.

My observations should be prefaced by the caveat that I’m probably not a typical "site builder”, whatever that means. I’m a senior software engineer, working at a big systems integrator, building websites for large organisations. But I've built sites for myself, and for friends, and I used to work at a small digital agency, and after nearly 8 years on drupal.org, I can count on one hand the number of times I’ve used a contributed theme on a site I've built, excluding Zen or one of the other base themes.

The obvious comparison to make is with Wordpress, which has far more themes available, not least because they maintain backwards compatibility. While the Wordpress community may be our twin island, the Drupal community is in a different place.

Even though I built a site to showcase Drupal themes, I just don't have an interest in contributed themes these days, and I don't think I'm alone in that - as I see it, Drupal site builds generally fall into one of three categories:

Organisations paying someone else to build a site for them

Drupal is complex enough that the people and organisations who work with it aren't at the bottom end of the market. If you’re spending more than a couple of hundred pounds on your website, you probably want it to look different from other sites, and you probably have a budget for a designer.

Technically minded people who are building their own sites

I don’t want to further the stereotype of techies having no design sense, but for a lot of people in this category, Bartik is good enough, in the same way that Bootstrap is good enough for some startups. It’s all about the content, and it doesn't really matter to the site owner if it looks the same as other sites. For some people, that might even be considered a good thing. If they do care about design, then (like me) they probably want to design their own site anyway.

Community groups without much money to spend

This is probably the main target market for contributed themes. They want the site to look nice, and to look different, but they don’t want to spend money on it.

When even the maintainer of one of the main core themes is promoting a premium theme, it seems clear that there is a demand for a premium themes market. How that will work is another question.

Tags:  Drupal Drupal 8 open source All tags

Integrate your Drupal Website with CRM Applications for Better Customer Engagement

Posted by Srijan Technologies on September 30, 2016 at 7:53am

Customers are the heart of a business. As a business owner interacting directly with customers, or as a digital marketer for a business, you need to:

  • Track prospects and customers to provide individualized services.
  • Manage leads to find the high quality ones and improve revenue.
  • Engage with customers—the right tools can give you specific information about customers and their transactions.
  • Integrate social media with the business for better marketing and customer relationships.
  • Automate and optimize the end-to-end sales process.

The objectives mentioned above require a well thought out Customer Relationship Management (CRM) strategy. A CRM application seamlessly integrated with the business/CMS website can help in achieving this, leading the company to better customer retention and higher profitability.

Drupal allows custom integration with any type of third-party API. Drupal 8 has a revamped web services module which makes it even easier to integrate with third-party applications. Here are some CRM applications that Drupal can work with:

Webform CiviCRM
CiviCRM is a web-based contact relationship management application built in PHP. It integrates well with Drupal. It works seamlessly for functions like synchronization between Drupal roles and CiviCRM memberships, rules and triggers, Ubercart, views and web forms. It is a good tool for managing online subscriptions and contacts. Drupal modules can also be built to make use of direct CiviCRM.

Too many security updates, poor online documentation and lack of all CRM features are some drawbacks of CiviCRM.

RedHen CRM
The best part about RedHen CRM is that its high level design is similar to Drupal Commerce, and therefore it uses Drupal capabilities well. It is a lightweight CRM application that has features like contact management, engagement tracking, customisable forms for input, etc. It is highly customisable, making it advantageous for businesses with very specific requirements. However, the frequency of software updates is very low.

Salesforce Suite
Salesforce.com is a popular cloud-based CRM application. It automates the end-to-end sales process. Drupal has a module called Salesforce Suite. This module enables integration between Drupal entities and Salesforce data objects, allowing data exchange between Drupal-based applications and Salesforce. You can create object mapping and extend the APIs to create functionality for customised business workflows. But the options available depend on the license you have. Salesforce is better suited for big businesses.

Other CRM applications that Drupal works well with include:

  • CRM Core is a platform within Drupal which can be used to track contacts, relationships and activities. It allows reporting and bulk operations, like sending emails to customers and merging contacts.
  • OpenCRM is a native Drupal CRM solution that has tools such as entities, rules, fields, etc, that can be used to build a CRM system as per client requirements.
  • SugarCRM is a highly customizable CRM solution that can integrate with Drupal to provide integration via web form integration and data synchronization.

A Drupal-based CRM product is a good choice as it can be customised for specific requirements. On the other hand, CRM products like Salesforce or Microsoft Dynamics are more comprehensive but might need more work when it comes to customisation.

Srijan has experience and expertise in projects involving integration of Drupal with CRM applications. These projects have its helped clients build a reliable CRM strategy.

A day at DrupalCon with Urs

Posted by Amazee Labs on September 30, 2016 at 7:23am
A day at DrupalCon with Urs

..... aaaand it’s a wrap (almost)!

Urs Bucher Fri, 09/30/2016 - 09:23

Today was the last day of this years’ DrupalCon in Europe (well, almost - there’s some serious sprinting going on Friday and Saturday still). We finished the con off with still a lot of talking to old and new friends on and off our booth, not one, but two sessions and an onstage surprise gig by @dasjo at the closing session when the location of next years’ European DrupalCon was revealed.Josef on stage at DrupalConEur in Dublin announcing Vienna as the location of DrupalConEur 2017

DrupalConEur Vienna StickerI don’t know why, but this reminds me of Vienna anyway...

On the fun side, we had a rather prominent visitor coming by our booth and playing, aahm, testing our HoloLens. Which clearly proves that boys will always be boys; won’t they?@Dries testing our HoloLens

Once the visitors were gone we cleaned up our booth and donated our booth furniture to the lovely people at Oxfam Ireland. We’re not only talking about giving back to communities, we’re just doing it! Booth furniture we donated to Oxfam Ireland

So, that’s almost all, but stay tuned, we've got one last blog post from the Friday sprint comin`.

4 useful tools you should know before starting your first Drupal 8 project

Posted by Cocomore on September 29, 2016 at 10:00pm

For those who are thinking about developing with Drupal 8 in the future, we started a blog series in which we give some helpful tips and talk about our experiences with the latest version of the CMS. In the third and last part of the series we introduce four useful tools which will help developers to save time and avoid common mistakes.

A Dozen Reasons Why Developers Will Want to Attend Acquia’s Upcoming Engage Conference

Posted by Acquia Developer Center Blog on September 29, 2016 at 7:19pm

The Tech Talks at Acquia Engage have always been among the most popular sessions, so I’m excited to announce that for Acquia’s upcoming Engage 2016 conference (Nov 1-3 in Boston) we’ve more than doubled the number of Tech Talks.

Tags: acquia drupal planet

Why Are There So Few Drupal 8 Themes?

Posted by OSTraining on September 29, 2016 at 5:26pm
Drupal 8 Themes for Beginners

Back in January this year, we talked about Drupal 8 themes. At that time, there were 86 themes for Drupal 8 on Drupal.org.

9 months later? There are only 133 themes for Drupal 8.

In the whole of 2016, we've added only 47 themes for Drupal 8.

Drupal RTL in the real world

Posted by Third & Grove on September 29, 2016 at 4:30pm
Drupal RTL in the real world mira Thu, 09/29/2016 - 12:30

A gentle introduction to Namespaces in Drupal 8

Posted by Blair Wadman on September 29, 2016 at 3:17pm

Drupal 8 represents a major shift away from “Drupalisms” to mainstream object-orientated PHP. Experienced developers who are used to other frameworks like Symfony, should find it much easier to pick up Drupal now than they would have in Drupal 7 and previous versions. But this shift presents challenges for those of who are used to the Drupal 7 way of doing things and aren’t necessarily up to speed with all the new PHP best practices.

Over the next few weeks, I’ll be sharing tutorials on some of the key concepts you need to understand in order to master Drupal 8 module development. This week, we are going to look at namespaces.

Everything about Dries's Keynote at DrupalCon Dublin 2016

Posted by Faichi.com on September 29, 2016 at 2:18pm

A day at DrupalCon with Sarah

Posted by Amazee Labs on September 29, 2016 at 9:58am
A day at DrupalCon with Sarah

Third day of DrupalCon and the second day of the sessions was packed with awesome talks and interesting encounters at our Café Amazee booth.

Sarah Geissberger Thu, 09/29/2016 - 11:58 goodies and giveaways

Starting off my day with the first talk by Junaid Masoodi on Design Principles for MVP (minimum viable product). He covered the basic UX principles:

  • Unity / Harmon
  • Balance
  • Hierarchy
  • Scale / Proportion
  • Dominance / Emphasis
  • Similarity / Contrast

Showing examples like Evernote's or Airbnb’s onboarding screens, that users normally skip very quickly but still aim to give enough information on a company’s unique value and leaving a nice first impression.

The second talk I listened to was by Lauri Eskola about Drupal 8 theming in depth. Starting with an introduction to twig, covering basic syntax he dived deeper into some twig magic such as includes, twig blocks, embeds and building reusable component-based approaches. Stating that “Our deliverables should be systems, including components not pages”, meaning elements that are self-contained and nestable. The talk also included a high-level summary of Drupal 8 theming system and how it works in the backend.

audience

Packed with methodologies and hands-on examples on how to get over some everyday struggles as a frontend developer, I went on to listen to another talk on the frontend track. The speakers Nikhil Sukul and Vidit Anjaria talked about how to Animate your site. They began with a short history of animation on the web: from gifs how it first started to Flash in the nineties and to todays CSS3, Web GL and HTML5 animations. Continuing with the 12 animation principles, they spoke about the performance of specific animation options and attributes and ended their speech with straightforward examples.

Meanwhile, the HoloLens was a big success on our booth, a lot of people came by to search and destroy robots. Never done that? Then come by our booth and give it a try, it’s great fun!

hololenshololens

My third day at DrupalCon ended indulging in a very delicious dinner with the whole Amazee DrupalCon crew at Opium. A restaurant in the hub of Wexford Street, serving top-notch Thai and Vietnamese food. Beautiful interior and sparse lighting completed the impression but see for yourself on the picture, or better go check out their fantastic food!

opium-restaurant-bar

Annertech: Web Agency of the Year

Posted by Annertech on September 29, 2016 at 7:46am
Annertech: Web Agency of the Year

My fingers are trembling typing this. I can't believe it. This morning everyone in Annertech land is thinking "did that really just happen?" It appears it did, we are the web agency of the year!

Last night, to top off the other three awards we won - best arts and culture website, most beautiful website in Ireland, and best website - we then went on to win Best Web Agency 2016.

Speaking to accept the award, Alan Burke thanked the great team we have in Annertech and our fantastic clients who trust us with such important work.

Pages

Subscribe with RSS Subscribe to Drupal.org aggregator - Planet Drupal