Development News

Chocolate Lily: Managing Shared Configuration Part 7: Core Configuration

Main Drupal Feed - Thu, 09/27/2018 - 16:00

This is the seventh and (promise!) penultimate installment in a series presenting work on shared configuration that comes out of the Drutopia initiative and related efforts, beginning with Part 1, Configuration Providers.

In this series we've covered how to create and update reusable packages of configuration in Drupal, otherwise known as features.

In Part 6, we saw how the Features module can be used to package configuration that will be used by multiple different features into a "core" feature. An example is when multiple fields use the same storage. A core feature might provide a field_tags field storage, allowing multiple features to add a field_tags field to different content types. All the features that provide a field would require the core feature.

This approach helps to manage dependencies among different features, but it has at least two major shortcomings.

  • Any site that wants to install even a single feature that's dependent on the core feature will get all the core configuration--whether or not it's needed. For example, if the core feature provides five field storages but only one is required by the dependent feature, all five will still be created on the site.
  • Features from different sets or distributions will have conflicting dependencies. Say we have two different distributions, A and B. An event feature from distribution A requires the distribution A core feature, which provides the field_tags field storage. An article feature from distribution B requires the distribution B core feature, which provides an identical field_tags field storage. The event feature should theoretically be compatible with the article feature. But in practice they can't be installed on the same site, since an attempt to install both core features will raise an exception since configuration provided by the first-installed core feature will already exist on the site when the second is queued for installation.

In this installment we'll look at options for managing shared configuration that's required across multiple features--or multiple distributions.

Morpht: Simple Social Service links for Drupal 8

Main Drupal Feed - Thu, 09/27/2018 - 11:46

There are couple of online tools, and integration modules to get sharing widget to your site. They rely on JavaScript and the security of your users is questionable. This article will show you how to create a simple yet flexible and safer service sharing widget without line of JavaScript.

Background

The main reason why not to use some of the tools like AddToAny is the security. This is often a case for government or other public facing project such as GovCMS. Sharing widget of these services is not connecting directly to the social service, but it is processed on their servers first. And they can track the user on through the web because of the fingerprint they made. Another reason is that the JS code is often served from a CDN so you don’t know when the code changes and how? Have they put them some malicious script? I don’t want this on my site. And clients often as well. :)

Thankfully each service provide a simple way how to share content and we will use that.

Final example

You can see the final result in action with different styling applied at our example GovCMS 8 demo page (scroll down to the bottom of page).

Site build

First we need to prepare the data structure. For our purpose we will need to create a custom block type, but it can be easily done as a paragraph too.

Custom block name: Social Share
Machine name: [social_share]

And throw in few Boolean fields. One for each service.

Field label: [Human readable name] e.g. “Twitter”
Machine name: [machine_name] e.g. “social_share_twitter” – this one is important and we will use it later.

Go to the manage display screen of the block (/admin/structure/block/block-content/manage/social_share/display) and change the Output format to Custom. Then fill in the Custom output for TRUE with the text you like to see on the link e.g. "Share to twitter".

Now we are able to create a new block of the Social share type and check some of these checkboxes. Users will see only the Labels as result.

Theming

The fun part is changing the output of the field from simple label to actual share link.
First we need to know how the final link looks like.
Links examples:

Facebook: http://www.facebook.com/share.php?u=[PAGE_URL]&title=[PAGE_TITLE] Twitter: http://twitter.com/intent/tweet?status=[PAGE_TITLE]+[PAGE_URL] LinkedIn: http://www.linkedin.com/shareArticle?mini=true&url=[PAGE_URL]&title=[PAGE_TITLE]&source=[BASE_PATH] E-mail: mailto:?subject=Interesting page [PAGE_TITLE]&body=Check out this site I came across [PAGE_URL]

To get it work we need a current page Page URL, Page title, and Base path. Only the page URL is directly accessible from TWIG template. The other two needs to be prepared in preprocess. Lets add these in the theme_name.theme file.

/** * Implements template_preprocess_field(). */ function theme_name_preprocess_field(&$variables, $hook) { switch ($variables['field_name']) { case 'field_social_share_twitter': $request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $title = \Drupal::service('title_resolver') ->getTitle($request, $route_match->getRouteObject()); if (is_array($title)) { $variables['node_title'] = $title['#markup']; } else { $variables['node_title'] = (string) $title; } $variables['base_path'] = base_path(); break; } }

As we probably will have more then one service we should use the DRY approach here. So we create extra function for the variable generation.

/** * Preprocess field_social_share. */ function _theme_name_preprocess_field__social_shares(&$variables) { $request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $title = \Drupal::service('title_resolver') ->getTitle($request, $route_match->getRouteObject()); if (is_array($title)) { $variables['node_title'] = $title['#markup']; } else { $variables['node_title'] = (string) $title; } $variables['base_path'] = base_path(); }

And we than call it for various cases. If some service will need more variables it will be easy to add it in different function. So we don’t process whats not required.

/** * Implements template_preprocess_field(). */ function theme_name_preprocess_field(&$variables, $hook) { switch ($variables['field_name']) { case 'field_social_share_facebook': _theme_name_preprocess_field__social_shares($variables); break; case 'field_social_share_twitter': _theme_name_preprocess_field__social_shares($variables); break; case 'field_social_share_linkedin': _theme_name_preprocess_field__social_shares($variables); break; case 'field_social_share_email': _theme_name_preprocess_field__social_shares($variables); break; } }

Now we have the Node title and Base path prepared to be used in field templates.

Enable twig debug and look in the markup for the checkbox. You will see couple of suggestions, the one we are looking for is field--field-social-share-twitter.html.twig.

As the output should be single link item it is safe to assume we can remove all the labels condition and the single/multiple check as well. On the other hand we need to ensure that if the checkbox is unchecked it will not output any value. That is particularly hard in TWIG as it doesn’t have any universal information about the state of checkbox. It has only access to the actual value. But since we don’t know the value of custom label we cannot use it. However there is a small workaround we can use. Remember we hav not set the FALSE value.
We can check if the field is outputting any #markup. The empty FALSE value will not produce anything, hence the condition will fail.

{% if item.content['#markup'] %}

Here is the full code for field template:

{% set classes = [ 'social-share__service', 'social-share__service--twitter', ] %} {% for item in items %} {% if item.content['#markup'] %} "http://twitter.com/intent/tweet?status={{ node_title }}+{{ url('') }}" title="Share to {{ item.content }}">{{ item.content }} {% endif %} {% endfor %}


For other services you need to adapt it. But it will still follow the same pattern.

And we are done. Now your block should return links to sharing current page to the service.

Pro tip:

So far we have not use any contrib module. But obviously your client would like to have some fancy staying applied. You can add everything in the theme, but that will be only one hardcoded option. For easier live of editors you can use Entity Class formatter module to easily add classes to the block from a select list. You can provide multiple select list for Size, Color, Rounded corners, Style etc.

Result

At this point we have the simple social share widget ready. We can select which predefined services will show in each instance and how will they look. E.g. On blog post you can have sharing for Twitter, Facebook and Email styled as small rounded icons. But with another instance of the block you can have only large squared LinkedIn icon + label shown on Job offering content type.

Further notes

After I wrote first draft of this article new module appeared which work in very similar way. Give it a try at Better Social Sharing Buttons. It will be quicker to get up ad running as it has predefined styles and services, but that can be a drawback at the same time. If I need different style, or extra service it can be harder to add it.

OpenSense Labs: Power Of Microservices Architecture In Drupal Development

Main Drupal Feed - Thu, 09/27/2018 - 11:45
Power Of Microservices Architecture In Drupal Development Shankar Thu, 09/27/2018 - 17:15

One of the reasons why The New York Times is able to catch up to its growing user base is its inclination towards technological advancements. That was evident when it leveraged the power of microservice architecture via a remodelled video publishing platform to scale with their newsroom demands. They also moved their infrastructure to the cloud which resulted in a stable and scalable email platform, powered by a suite of microservices, for sending emails to the readers.


Why are big enterprises like The New York Times leaning towards microservices? Microservices has grown exponentially and holds an astronomical future for the digital businesses. It will be interesting to see how traditional CMS like Drupal finds a place in the world of microservices. But before plunging into all that, one might wonder where did this ‘microservices’ thing originate from?

Tracing the roots in the UNIX world

New Relic has compiled an interesting and brief timeline of the evolution of microservices. Microservices has its roots in the Unix world that takes us back to more than three decades ago.

As a term, microservices was first documented in 2011 by Martin Fowler

Service-oriented architecture (SOA), a design principle where services are offered to other components by application components via communication protocol over a network, was all the rage decades ago. Due to a superabundance of failures and costly implementations, the SOA earned a poor reputation and took a backseat. Martin Fowler, among others, has said that microservices are a new spin on SOA.

As a term, it was first documented in 2011 by Fowler at a software architects’ workshop.

In 2012, a presentation was given by James Lewis at the 33rd Degree in Krakow which was titled “Microservices - Java, the Unix Way”. This delineated microservices as a means of building software more rapidly by dividing and conquering and used Conway’s Law to structure teams.

Since that time, the adoption of microservice architecture has grown and many organisations are going for microservices as their default style for building enterprise applications.

Understanding the terminology Source: LeanIX GmbH

What are microservices? Microservices are an architecture for splitting a monolithic application into smaller pieces. Each of those pieces offers a certain function through a well-defined and carefully handled API.

The collection delivers the same overall business value like the monolithic application with the difference being these independently working individual pieces in microservices. That means they can be updated swiftly without impacting an entire application.

“The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies”. - Martin Fowler

"A microservice architectural style is an approach to develop a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API".

Netflix is an unsurpassed example of microservices adoption. It moved from a traditional development model with several engineers producing a monolithic DVD-rental application to a microservices architecture. Small teams could focus on the end-to-end development of hundreds of microservices that work together to serve digital entertainment to millions of Netflix customers every day.

Source: LeanIX GmbH

The main difference between monolithic and microservices architecture, as can be seen in the depiction above, is that all the features and functionalities were under a single umbrella. That is, they were under a single instance sharing a single database. With microservices, each feature is allotted a different microservice, managing its own data, and performing a different set of functionalities.

How good or bad are microservices? Source: Logentries

The benefits of microservices are laid out below:

  • Autonomous deployments: You can update a service without having to redeploy the entire application and rollback or roll forward an update during mishaps. Fixing bugs and feature releases are much more manageable with fewer challenges.
  • Autonomous development: Building, testing and deploying a service would need a single development team leading to perpetual innovation and swift release cadence.
  • Small teams: Teams can lay their focus onto one service thereby simplifying the understanding of the codebase with the smaller scope for each service.
  • Isolation of faults: Downtime in one of the services won’t affect the overall application. This does not mean that you get resiliency for free.
  • Tech stack mixture: Technology that is deemed most fit for a service can be selected by the teams.
  • Scalability at granular levels: Independent scaling of services is possible.

Some of the challenges are outlined below:

  • Intricacy: More moving parts are there in microservice application than the equivalent monolithic application.
  • Development and testing: Developing against service dependencies would need a different approach and testing service dependencies is difficult particularly when the application is evolving rapidly.
  • The dearth of administration: The decentralised approach for building microservices may lead to numerous languages and frameworks thereby making it harder to manage.
  • Network congestion and latency: Usage of granular services can result in more inter-service communication. Chances are that if the chain of service dependencies gets too elongated, additional latency can be a challenge.
  • Data integrity: Data consistency can be a hurdle with each microservice responsible for its own data persistence.
  • Management: Correlated logging across services can become a formidable task.
  • Update issues: If not for a careful design, several services updating at a given time could result in backward or forward compatibility.
  • Team skill-set: As the highly distributed systems, microservices require a team with the right mix of skills and experience.
Taking Drupal into the context

Drupal is a monolith. How can it survive this trend of microservices? Drupal, being an amazing content management framework, provides a great content editing experience and has been pioneering digital innovation. With that being said, microservices architecture can be used for development and deployment of applications using Drupal. Let’s see how Drupal can put into the scheme of things.

Demonstration at DrupalCon Vienna 2017

A presentation held at DrupalCon Vienna 2017 demonstrated an effective way of integrating Drupal 8 in a microservices architecture.
 
Drupal 8 proved to be a useful content management framework for this implementing microservices architecture because of its:

  • Symfony components,
  • Composer to manage external dependencies,
  • and the magnificent results of the Web Services and Context Core Initiative (WSCCI).
     


It exhibited the delegation of asynchronous work from Drupal to a set of very reactive applications written in Go with some assistance of RabbitMq queues. Elasticsearch was leveraged as a common data storage between services and REST endpoints were exposed where the endpoints could notify back to Drupal.
 
Furthermore, methods of connecting websocket server to push and pull messages between services were shown. To run all these services in a controlled and replicable manner, services of Ansible and Docker were extracted.

Demonstration at Drupal Developer Days Lisbon 2018

Another session at Drupal Developer Days Lisbon 2018 delineated how the citizen portal of the city of Reykjavik (Iceland) was relaunched using Drupal and microservices.
 
With the incorporation of more than 100 web services ranging from simple services like registering a dog or renewing a driver’s license to the intricate services like the admissions of children to school or updating the residential address.


Powered by Drupal 8, this new portal integrates the services with a microservices architecture using JSON Schema as communication protocol. The microservices architecture was chosen to let centralised data collection and presentation in a single portal while simultaneously incorporating a heterogeneous landscape of services autonomously from one another.

Predictions ahead

Oracle’s Cloud Predictions 2018 report states that by 2020, the lion’s share of new applications will be powered by microservices architectures.

Open source has given a whopping push to the microservices architecture. Its several components support continuous integration and delivery pipelines, microservices platforms, containers, container management and orchestration, container registry service, and serverless capability.

Open source has given a whopping push to the microservices architecture

Adoption of cross-cloud containers like Docker and Kubernetes is on the upwards trajectory and developers consider an open cloud stack to prevent vendor lock-in.

Source: Market Research Future

According to a report on Market Research Future, the microservices architecture market is expected to reach $32.01 billion by 2023 with a Compound Annual Growth Rate (CAGR) of around 16.17% during the forecast period.

Another report on Research and Markets for the forecast period of 2017 to 2023 states that as far as the ‘Market Analysis’ is concerned, the rise in the cloud adoption is integral for microservices market. This is because the microservices architectures function on smaller and simpler services. Also, there is a high demand from North American companies as they have implemented it in e-commerce, financial, and travel services. This has helped in storing data and information cost-effectively and enhanced the efficacy, agility and scalability.

The report on Research and Markets has an interesting ‘Countries and Vertical Analysis’ vis-à-vis microservices. Most of the major players are in the American region with the prominent vendors covered in the report include the likes of Cognizant, IBM Corporation, Datawire, Salesforce, Infosys Ltd., MuleSoft Inc., and Software AG. Japan, the US and China are expected to witness a tremendous growth in microservices adoption.

Conclusion

Microservices architectures streamline the overall application development lifecycle leading to quicker testing, higher quality and more releases. Such an architecture can be hugely useful for efficient management of Drupal-based projects. Innovation has always been something Drupal is greatly supportive of. Adopting a microservice architecture for Drupal development is possible and is extremely fruitful.

Organisations should be wary of their digital business ecosystem and should understand the challenges that they might have to encounter during its adoption. Opensense Labs has been in the constant pursuit of bringing a positive change for our valued partners with our expertise in Drupal.

Contact us at hello@opensenselabs.com to know more about microservices architectures and its value to your organisational setup.

blog banner blog image microservices Drupal microservices Drupal 8 Drupal CMS Drupal and microservices UNIX Service-oriented architecture SOA Microservices architecture DrupalCon Drupal Developer Days monolithic monolithic architecture Blog Type Articles Is it a good read ? On

what is it field

Drupal News Org - Thu, 09/27/2018 - 09:51

Information technologies are omnipresent, yet IT engineering remains a mystery to many. To most people, an IT engineer is a wizard behind the screen who makes sure computers work smoothly. To an extent, they might be right, but there is much more to the vocation than just installing a firewall and updating the OS.

And it is important to differentiate between career paths here, because the sector is so prolific and ever-changing, that knowing what exactly to expect from it is the key to becoming a happy IT engineer. Firstly, IT engineers may either specialize in software development or computer hardware engineering. The first includes computer programming and smartphone apps, and the latter – designing physical products.

what is it field

Drupal version: Drupal 4.5.x or older

Matt Glaman: Tracking changes in Migrate with dynamic row hashes

Main Drupal Feed - Thu, 09/27/2018 - 06:00
Tracking changes in Migrate with dynamic row hashes Thu, 09/27/2018 - 01:00 mglaman

When it comes to Drupal and external data, I use Migrate. A lot. Like a lot, lot, lot. Many times this data is being imported over CSV files that are pushed to a server at some defined interval. Usually, the data can be derived directly from the CSV file itself, other times a custom process plugin derives data from other information. Drupal's Migrate system has two steps to check if new data should be imported or skipped. First, you can tell the migration source to track changes for each row. Then, if you are tracking changes, it hashes each row of data to see if it has been changed.

ActiveLAMP: Quick Setup with Composer Template for Drupal Projects

Main Drupal Feed - Thu, 09/27/2018 - 00:34

Pairing Composer template for Drupal Projects with Lando gives you a fully working Drupal environment with barely any setup.

Read more...

a-fro.com: Creating Paragraphs Entities for Dynamic Content

Main Drupal Feed - Wed, 09/26/2018 - 17:28

The paragraphs module has become a central ingredient for many component-based sites in recent years. However, our content strategy also often requires components that display dynamic content (think "Read Next", or "Also of Interest"). In this tutorial, I'll demonstrate how we've been solving this problem, by building paragraph bundles that serve as configuration entities that we can then use as arguments that we pass to a view via the Twig Tweak module. You can see a working version of the dynamic content component we'll be building in the "Up Next" card grid at the bottom of this tutorial. 

Commerce Guys: 2018: The Decoupled Summer of Drupal Commerce

Main Drupal Feed - Wed, 09/26/2018 - 15:00

We’ve had several great opportunities this summer to connect with the Drupal community and share our latest work on Drupal Commerce. We’ve been able to highlight specifically our efforts to progressively decouple Drupal Commerce on Drupal 8.

Drupal Camp Asheville 2018
Ryan Szrama gave a demo on Saturday, July 14, based on the Belgrade demo store that provided an overview of Commerce Cart API Flyout. We detailed this work in our recent blog post announcing the feature.

A fully decoupled Drupal Commerce experience—including support for complex forms like checkout—is something that Commerce Guys is committed to delivering by the end of 2019. Until then, our strategy is to progressively decouple the product catalog and shopping cart to help sites scale in addition to opening new user interfaces. In Ryan’s words, “We started with the shopping cart because that’s the obvious way to help large websites avoid a common bottleneck for performance.”

Watch Ryan’s session to learn more about the Commerce Cart API project and see the demo.

Decoupled Drupal Days 2018
Next, Matt Glaman presented his talk “The road to a headless Drupal Commerce future” at Decoupled Drupal Days in NYC.

The session reviewed the development of the Commerce Cart API in greater depth. It covers our research into the RESTful Web Services and contributed JSON API projects (potentially in core soon) as future dependencies that the Cart API can adopt. Matt demonstrated even more progress on the project since Ryan’s demo, including a fully decoupled React based front-end.

This talk put the progressively decoupled Drupal Commerce Add to Cart form and shopping cart on display for the community with the expressed desire that Drupal based merchants will have an out of the box experience rivaling other major e-commerce software platforms.

Drupal Europe 2018
Matt’s session at Drupal Europe covered our latest developments in the Commerce Cart API and Flyout as part of the dedicated eCommerce track. This was an iteration of the Drupal Drupal Days session, including any improvements and additions in the time between Drupal Europe and Decoupled Drupal Days.

If you’re interested in contributing to the roadmap for decoupling Drupal Commerce, connect with Matt to learn where to get involved or how to give us feedback from your implementations.

Drupal Association blog: Drupal.org Terms of Service update - September 2018

Main Drupal Feed - Wed, 09/26/2018 - 13:58

As part of our ongoing activities to ensure a safe and welcoming environment for collaboration in Open Source, we have updated the drupal.org Terms of Service, at drupal.org/terms

This change has clarified which behaviors will be regarded as “harassment” and are, therefore, not acceptable whilst using the Drupal online services. The language is now in line with that already employed in the DrupalCon Code of Conduct.

The updated text, from Section C - Activities, now reads as:

  • Harassment will not be tolerated in any form, including but not limited to: harassment based on gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age or religion. Any report of harassment will be addressed immediately. Harassment includes, but is not limited to:
     

    • Comments or imagery that reinforce social structures of domination related to gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age, or religion.

    • Unwelcome comments regarding a person’s lifestyle choices and practices, including those related to food, health, parenting, drugs, and employment.

    • Abusive, offensive, or degrading language or imagery

    • Language or imagery that encourages, glorifies, incites, or calls for violence, emotional, or physical harm against an individual or a group of people

    • Intimidation, stalking, or following

    • Sexual imagery. At a minimum, no images containing nudity or expressions of sexual relationships that might be deemed inappropriate for a business environment should be uploaded or linked to

    • Unwelcome sexual attention or advances

    • Advocating for, or encouraging, any of the above behavior

You do not need to do anything to acknowledge this update.

Whilst you are here…

Are you receiving all the news and information you need? The Drupal Association publishes a number of news updates and you might be missing out. Check which news updates you are receiving by visiting our recently updated subscription page at http://eepurl.com/hWxwQ

Agiledrop.com Blog: Happy 5th birthday, Agiledrop!

Main Drupal Feed - Wed, 09/26/2018 - 13:45
Today, Agiledrop celebrates exactly 5 years from its official incorporation, so the company is in a festive mood. For this article, we wanted to look at the past and tell the story about how it all started. READ MORE

Flocon de toile | Freelance Drupal: A cache example in action with Drupal 8

Main Drupal Feed - Wed, 09/26/2018 - 12:24

As we say in terms of computer programming, only two things are extremely complex: naming variables and invalidating the cache. Drupal 8 has an automatic caching system activated by default that is truly revolutionary, which makes it possible to offer a cache for anonymous visitors and especially for authenticated users without any configuration. This cache system is based on three basic concepts:

Droptica: Drupal 8-based online store... or Drupal Commerce.

Main Drupal Feed - Wed, 09/26/2018 - 12:22
It’s been two years since the première of Drupal 8. We already got used to the differences between versions 7 and 8, and a lot of websites were created based on D8. Many Drupal 7-based websites are applications that use Drupal Commerce – an e-commerce module for Drupal. Many of the applications were set-up with the Commerce Kickstart distribution, which was based on this add-on. What’s the way to do it with D8? For a long time, only the alpha version was available, then a beta version was released. On the 20th of September 2017, we saw the release of version 2.0. As of today, the current version is 2.3. We'll see what’s new in DC and how it works with D8. For testing purposes, we are going to use DC 2.3 and Drupal 8.4.3.

Sooper Drupal Themes: 6 Amazing Websites About Learning Drupal You Should Visit

Main Drupal Feed - Wed, 09/26/2018 - 09:47

Are you interested in building a fully functional Drupal website but don’t know where to start? Or experience time-consuming difficulties in the process of achieving your goals with Drupal? There is no better way to learn and further develop your skills than to follow along with the finest video tutorials provided by experienced members of the Drupal community.

Sooperthemes has put together a list with some of the most useful websites that provide high quality and up-to-date Drupal tutorials.


1. BuildAModule (Free and Premium Tutorials)

BuildAModule has been dedicated to sharing Drupal tutorials to the community for more than four years now. With a rich library of an astonishing 2240 videos, BuildAModule provides an easy way of learning that is suitable for everyone interested in building a Drupal website. People who just started with Drupal and those who already have experience in working with it can find material which best suit their goals and needs. The range of topics covered in BuildAModule tutorials include: 


  • Drupal 8 Site Building, a series of 265 videos aimed to teach the basics of Drupal to people who are complete beginners in the industry, or those who are already familiar with some aspects of Drupal but want to further develop a strong foundation before starting to work on more advanced projects.
  • Setting up a Web Environment with Drupal, a short list of nine videos which will assist and guide you on how to set up a Drupal Web Environment on all platforms (Mac, Windows, Linux).
  • Upgrading to Drupal 8, 87 videos to help you understand the difference between Drupal 7 and Drupal 8, get you ready to migrate your Drupal 7 website to the newest version or help you start a new Drupal 8 project.
  • Front End Development, providing 574 tutorials related to HTML, CSS and JavaScript for people interested in learning the most frequently used tools and techniques related to these technologies.

BuildAModule videos are used by major educational institutes, web development shops and training companies. They are also neatly organized so every step of the process is clearly defined and easy to follow.


2. OSTraining (Free and Premium Tutorials)

Over the past years OSTraining has made a name for themselves by providing a wide range of  tutorials on various open source CMS software projects including Drupal 8. Currently there are 15 Drupal 8 classes available, divided into 4 categories:

  1. Drupal 8 Beginner (level: Beginner)
  2. Drupal 8 Site Management (level: Beginner & Intermediate)
  3. Drupal 8 Design (level: Intermediate & Advanced)
  4. Drupal 8 Development  (level: Advanced)

Depending on your skill level and current knowledge of Drupal 8, you can pick the classes that best fit your objective.

In addition to the premium tutorials on their website, OSTraining has also produced a great YouTube Playlist which consists of 63 Beginner Tutorials that will guide you through the essential Drupal concepts and provide basic knowledge needed in order to start working on your own project.


3. Drupalize (Free and Premium Tutorials)

If you are at least a little bit familiar with Drupal, then you most likely heard about Drupalize.

Drupalize is one of the most active players when it comes to updating their tutorials in order to keep the content up-to-date with the new features that come to Drupal 8. The material provided by them starts all the way from the Basics and Site Building, and moves on to covering more advanced topics such as Management and Strategy.

With the largest collection of Drupal premium learning videos, Drupalize has thousands of tutorials you can choose from. If you are interested in: Learning to Build Drupal Websites, Working with Drupal Themes, Becoming a Drupal Developer, Learning Drupal 8 or in an Introduction to the Drupal CMS - then Drupalized is the right choice for you!

Not sure whether or not it’s worth the investment? Check out their YouTube Playlists made in association with Lullabot, which cover topics such as: Drupal 8 User Guide, Configuration System, or How to Install Drupal for Local Development and see if the content provided by them meets your expectations.
In order to recognize contributors' hard work, Drupalize.me offers a Free Membership to the drupal.org Project Maintainers and those listed in the Drupal 8 MAINTAINERS.txt file.


4. Webwash

Whether you are a beginner or a more advanced user of Drupal, you are going to find interesting, useful and up-to-date content on Webwash.
In addition to the free and premium content offered on their website, Webwash has put together an impressive gallery of high quality tutorials available on their YouTube Channel. While you will find topics like New Media Management Functionality in Drupal 8.6, you will also stumble upon some interesting Live Streams. Also, if you encounter any difficulties or some points are not clear, the creator behind the camera Ivan Zugec is also active in the comments section and more than happy to answer the questions you have.

Last but not least, Webwash also provides premium consultancy for Drupal users who need help in building a website. Before commiting to paying the consultancy fee, you can apply for a 15 minute Free consultation and see whether or not this is the right fit for you.


5. Lynda

Lynda.com has been sharing tutorials for Students, Project Managers, IT and Design Professionals for over 20 years now. Currently a part of LinkedIn, they serve more than 10k organizations worldwide and provide tutorials for anyone working in Business, Design, Marketing, Developer and many other industries.

Lynda has a long list of Drupal related tutorials, touching on topics such as: Drupal 8 Essential Training, Drupal Responsive Design, Create Your First Online Store with Drupal Commerce or Drupal 8 Configuration Management. These tutorials have assisted tens of thousands of people in learning Drupal and helped them achieve their personal and professional goals.


People who want to use Lynda for the first time can apply for a Free Month membership which gives access to all the tutorials available in the library, but most importantly the Drupal 8 ones!


6. Drupal Up

Even though Drupal Up currently has only 351 subscribers on their YouTube Channel, the type of tutorials they provide is impressive and definitely worth taking a look at.

With a new video up and ready every Monday, Drupal Up covers topics like Module Development, Theming, Site Building and General Tips for an easier and better development. You don’t have to be an expert in Drupal in order to follow along with his tutorials, but they are definitely not just for Beginners too! No matter what your level of Drupal knowledge is, you are most likely going to find interesting videos to learn something new from.


Drupal Up also has a gallery of three premium courses on Drupal Module Development, Introduction to Drupal 8 Theming and Introduction to Drupal 8 Views. These courses serve hundreds of happy students whom.


While every single one of these websites brings unique value to the Drupal community and some incredible learning material, we’re curious to hear your opinion on them and which ones have you found to be the most intriguing?

CTI Digital: CTI will see you at NWDUG Unconference

Main Drupal Feed - Wed, 09/26/2018 - 09:01

The Drupal Unconference is coming up in November and we can’t wait! Following the huge success of last year's event, we are once again proud to be Silver Sponsors of this alternative annual conference.

Kalamuna Blog: BADCamp 2018: Give Your Elected Representative a Piece of Your Mind. Plus, Free Drupal Sessions!

Main Drupal Feed - Tue, 09/25/2018 - 23:52
BADCamp 2018: Give Your Elected Representative a Piece of Your Mind. Plus, Free Drupal Sessions! The Kalamuna Team Tue, 09/25/2018 - 16:52

This October, come to our Bay Area Drupal Camp (BADCamp) booth to give your elected representative a piece of your mind. We won’t be holding members of congress captive at the Kalamuna booth (or will we?) but we’ll have plenty of other excitements there to keep you curious. And of course, BADCamp is a celebration of open-source software, so we’ll be giving plenty of Drupal talks.

Categories Conferences Drupal Git Nonprofits Author The Kalamuna Team

Drupal Association blog: Drupal Business Survey 2018

Main Drupal Feed - Tue, 09/25/2018 - 19:35

This blog has been re-posted and edited with permission from OneShoe's blog. The following are results from the 2018 Drupal Business Survey conducted by One Shoe and Exove, in partnership with the Drupal Association.

Drupal Business Survey 2018: hot topics are recruitment, changing Drupal playing field, and shift to Drupal 8

The last couple of months Exove and One Shoe worked closely with the Drupal Association on the global Drupal business survey to assess current trends, adoption of emerging technologies and shifting perspectives on the Drupal landscape. The survey was open during July and August. In these two months 136 Drupal agency leaders and decision makers worldwide were surveyed to learn where the Drupal industry is heading and how the Drupal community can chart their course for Drupal’s success in the years to come.

According to the survey, the Drupal client landscape has been changing with the continuing adoption of Drupal 8. For many of the respondents, the sales pipeline and average deal size has grown – while a number of companies struggle with client acquisition and moving to Drupal 8. The surveyed companies are using various strategies to adapt to the changed situation. As in the previous surveys, the Drupal talent availability is seen as one of the major challenges.

Survey participants were Drupal business leaders from around the world

Most surveyed companies and offices are based in Europe (63 %) followed by 40 % in North America and 7.4 % in Asia. Out of the total responses, most participants of the survey had the role of founder (65.9 %), CEO (50.4 %) CTO (18.5 %) and COO (1.5 %). A little over 30 % of the respondents stated that their company existed for over 14 years, followed by almost 20 % of the companies who’ve existed between 10 - 11 years. 60 % of the companies who filled in the survey have just one office, with 19.3 % two offices.

A little over a half (54.8 %) of the companies stated that they are a digital agency. 14.8 % define their profile as a software company with 10.4 % as a consulting agency.

Almost all (94.8 %) of the respondents said that their company provides web development. A majority of the companies shared that they provide visual design (65.9 %), user experience (68.1 %), system integration (67.4 %) or support (59.3 %). These answers are very similar to the results of last year’s survey.

The workfield of the Drupal agencies has become more industry specific

Drupal companies have clients in diverse industries. More than half (59.3 %) of the respondents reported to have Drupal clients in Charities & Non-Profit organisations. Other industries are Government & Public Administration (54.8 %), Healthcare & Medicine (47.4 %), Arts & Culture (41.5 %) and IT (40.7 %). Based on the responses, it can be stated that Drupal companies are becoming more industry specific. The Drupal Business Survey responses of the last three years show that each year, fewer companies have clients in every industry. The outcome of the surveys show that the industries of Media and Banking & Insurance have had the biggest drop, while Healthcare & Medicine and Consulting have grown the most from the first survey.

Compared to 2016/2017/2018:

Biggest challenges in recruitment, client acquisition and Drupal 8 adoption

The outcome of the survey shows that in the last 12 months the Drupal agencies faced three main challenges, namely recruitment (24 %), client acquisition/pipeline (17 %) and conversion to Drupal 8 (14 %). These three challenges are analysed in the following parts of this article.

Recruitment – a war on Drupal talent

The Drupal agencies wanting to grow, know the importance of Drupal talent. For years, the demand for Drupal talent has exceeded the supply. According to this year’s survey, agency leaders see recruiting new employees as their biggest challenge. That’s nothing new; the lack of developers is a universally known challenge, that applies to not only Drupal developers. According to research from The App Association, there are 223,000 job openings for software developers in the US alone. And in Finland alone there is a shortage of 10 000 developers (source: Code from Finland).

One of the recipients describes their challenge of the last 12 months as:

A war on talent.

But still: the demand for digital services is great and the stakes are high. Agencies simply need manpower to continue to grow their business (59 %): "We hit a productivity ceiling and need to expand if we were ever to have capacity to provide for further growth." The lack of Drupal talent can be a threat for new projects: "We lose out on opportunities because our capacity is too low."

The answers of the surveyed pointed out that scarcity and financial compensation continue to be the main obstacles for attracting employees with experience and/or (highly) skilled in Drupal. A lot of the respondents mention that senior developers are typically very expensive to hire, while junior developers match the budget.

Every year we hear that Drupal agencies can't find talent. What they often mean is that they can't find talent at the rates they are willing to pay.

Most of the Drupal talent is either completely new to Drupal or already skilled and working, requiring a strong incentive to change positions.

However, despite the difficulties, 80 % of the agency leaders did hire new employees in the last year and managed to meet their Drupal talent needs, mostly by actively prospecting and hunting Drupal specialists (51.5 %). According to the respondents, it also seems to be a good strategy to motivate and educate people for Drupal who are not familiar with Drupal before, but are willing to learn: agencies hire graduates/juniors (47 %) or hire experienced developers (35.8 %) and train them in Drupal themselves.

Opportunities in collaborating with education institutes

Respondents advise to collaborate more with education institutes and other organizations to prepare interested and motivated people to become the Drupal experts of tomorrow. As one suggests:

We need further engagement between tertiary institutes and industry to ensure open-source platforms and industry standard development methodologies are taught to address the medium term skills shortage.

One respondent told us they even started their own Academy in collaboration with tech universities.

Changed Drupal playing field brings new challenges

Over the last couple of years, Drupal has undergone major changes. For one, Drupal 8 was released.
Also, Drupal starts to play more and more a role as the backend for headless or decoupled CMSs, Drupal is evolving towards an API-first platform and is competing head to head with proprietary platforms like Sitecore and Adobe Experience Manager.

These changes inevitably impact the Drupal market. It’s therefore no surprise that the second biggest challenge (17 %) for agencies in the last 12 months had to do with generating leads for Drupal focused projects or the acquisition of new and suitable customers. This raises different reactions. It is clear that the changed playing field of Drupal benefits certain companies, while others struggle with the change:

The landscape is changing seismically. We are seeing smaller competitors shrink whilst those delivering enterprise and business critical services are prospering. With Drupal 8 we are winning in many situations where platform decisions are open.

The (other) challenge we've been facing is the perceived lack of interest in Drupal overall, specifically on the commerce side. We've been working hard to educate the market on the viability of open source for commerce using Drupal, but have a lot more work to do to get a foot in the door in that enterprise market.

One of the companies also seemed to notice a slower growth on the Drupal market:

Drupal is facing competition from several directions: WordPress is no longer a blog platform but equals Drupal. Increased demand for static site in combination with cloud CMS-es and developers losing interest in Drupal in favor of .JS and lightweight PHP frameworks.

JS-based frameworks are more in demand and PHP is losing its appeal.

Decoupled: We see a role for Drupal in the decoupled world, however we are still behind on what Drupal should deliver to be an API backend first choice.

Average deal size of Drupal projects increased

It is striking that although the client acquisition seemed to be a major challenge for the respondents, a little over half of the Drupal agencies (51.5 %) saw their Drupal project average deal size increasing, with 36.6 % whose average deal size stayed roughly the same and 12 percent (11.9 %) experienced a decrease. This seems to indicate that Drupal projects are becoming bigger and bigger.

As someone mentioned:

We see larger and larger deals opening up in the Drupal space. The role played by Acquia is significant in the growth of Drupal in the Enterprise space.

We are still seeing growing demand for Drupal, especially among large/ enterprise organisations.

Drupal agencies seize new opportunities

In response to the changes within the Drupal market, some agencies have found new opportunities with Drupal by developing new business models.

The survey results show that 34.1% of the respondents did not change their business model in the last year. However 28.9 % expanded their services beyond building Drupal sites whilst 15.1% of the agencies chose to become more specialized (focus on specific vertical or industry). Main reason to change their business model was to grow their pipeline better/faster (58.2 %), identification of a better business model (51.6 %) or changing market conditions (50.4 %).

On the one hand, there are the Drupal companies who expand their business by offering new services like consultation or strategic work:

We are helping more agency and merchant teams adopt Drupal Commerce specifically for Drupal 8 than ever before. They have a strong desire to do things "the right way", which means they're thinking more strategically long term.

And on the other hand, you have the Drupal agencies who believe that specialization is the answer to keep the pipeline full instead of offering a full-stack service to attract new clients.

More specialized expertise and strategy are valued more than full stacks development services.

But the decision from companies to make a change in the business model has more reasons. The agencies who expanded their services also mentioned that they saw a shift in demand from their clients. In other words, the (Drupal) market has changed and those who adapt, have a good chance of succeeding:

Clients are no longer looking just for software development services. They want the service provider to be deeply involved in the engagement and take responsibility for the business outcomes. They want the vendors to come higher up in the value chain.

Even mid-market business leaders are realizing that digital is more than a website. They are seeking to use digital for new revenue streams or to reduce expenses. We have completely revamped our services to offer high level strategic consulting services that address the people, process and technology that affects our client organizations.

Open source and recommendations help Drupal win in the CMS battle

The competition in the CMS business has become tough, and clients are more aware of the opportunities of different CMSs. This has led to many companies expanding their set of technologies and portfolios, as one of the respondents mentioned:

There's no CMS we can use as a silver bullet.

The survey shows that Drupal has a lot of qualities that clients need and search for in a digital platform. The respondents shared that the fact that Drupal is open source is the main reason for clients for choosing Drupal (67.4 %), followed by 56.3 % who said that Drupal was chosen because of the agencies’ recommendation. Other reason are because clients are already familiar with Drupal (54.8 %), the CMS’s flexibility (49.6 %) or reputation (42.2 %).

The shift to Drupal 8 has been rocky but brought significant benefits to some companies

The third main challenge (14 %) of the Drupal companies was the conversion to Drupal 8. The upgrade from one major version of Drupal to the next (e.g. from Drupal 7 to Drupal 8) asked much effort, a steep learning curve and a difficult upgrade path. Introducing new technology in general – not just Drupal – will always have the risk of facing some sort of a challenge. Whether it’s a delay in introducing new features, unexpected security risks or maybe a more difficult learning curve. One of the agencies stated:

Adopting Drupal 8 and Drupal Commerce 2 [were the biggest challenges]. There was a significant learning curve for our team and many of the modules (including the ones we were in control of) weren't ready to roll out complete commerce solutions to clients we were committed to.

Another company told us:

We have been working with Drupal 8 since beginning of 2016. Since our clients mostly fit in the small business category, we have struggled to push our project budgets high enough to be profitable on Drupal 8 projects, as we were on Drupal 7 projects. It's not easy to say what all the reasons are, but Composer is finicky, major modules weren't ready for the first year or more, security updates are more hassle because of more changes, and the increased bugs and missing features required work-arounds. Against our desires, economics are pushing many projects to Wordpress for its page builders and many plugins. On the bright side, the current Drupal initiatives are exciting!

2018 has brought strong growth but we diversified due to slow adoption in 2016/2017. Drupal can learn from this to prevent the same from happening with the launch of Drupal 9 (more quickly available information / modules).

Dries Buytaert, founder and project lead of Drupal, states: ‘These kind of growing pains are not unfamiliar and one of the key reasons that Drupal has been successful is because we always made big, forward-looking changes. And as a result Drupal is one of very few CMSs that has stayed relevant for 15+ years. We see a way to keep innovating while providing a smooth upgrade path and learning curve from Drupal 8 to Drupal 9.’ Right now, the DA works with united forces to make future Drupal upgrades smoother and much simpler than previous upgrades with faster releases with easy upgrades and a smoother learning curve.

Conclusion

The competition on the digital market is and remains strong. New Drupal talent is needed to ensure response to the demand for Drupal. The major changes that Drupal has undergone in the last few years had an impact on client acquisition and the amount of new Drupal projects for the Drupal agencies.

The outcome of the survey shows that the Drupal business community is resourceful and capable of adapting to the continuous changing market by using different strategies. On the one hand, there are the Drupal companies who become full-stack agencies while others believe that specialization is the answer.

One thing is certain: clients want the best CMS for their company. ‘There’s no CMS we can use as a silver bullet’ one agency told us. And although that might be the case, we can still continue to aim for Drupal to become that silver bullet.

-----

See the 2017 survey results.

For more information, please contact Janne Kalliola (janne@exove.fi) or Michel van Velde (michel.vanvelde@oneshoe.com)

About Exove

Exove delivers digital growth. We help our clients to grow their digital business by designing and building solutions with agile manner, service design methodologies, and open technologies. Our clients include Sanoma, Fiskars, Neste, Informa, Trimble, and Finnlines. We serve also start-up companies, unions and public sector. Exove has offices in Helsinki, Oulu and Tampere, Finland; Tallinn, Estonia; and London, United Kingdom. For more information, please visit www.exove.com.

About One Shoe

One Shoe is an integrated advertising and digital agency with more than 10 years experience in Drupal. With more than 40 specialists, One Shoe combines strategy, UX, design, advertising, web and mobile development to deliver unique results for international clients like DHL, Shell, Sanofi, LeasePlan, MedaPharma and many more. For more information, please visit www.oneshoe.com.

About the Drupal Association

The Drupal Association is dedicated to fostering and supporting the Drupal project, the community and its growth. The Drupal Association helps the Drupal community with funding, infrastructure, education, promotion, distribution and online collaboration at Drupal.org. For more information, please visit drupal.org/association.

Acro Media: Comments, Reviews and Content Moderation Workflows

Main Drupal Feed - Tue, 09/25/2018 - 18:24

The Urban Hipster Drupal Commerce demo site was built to showcase what Drupal 8 and Commerce related modules can do. While the main focus has been Commerce, recently I started enhancing the content side of the site, mainly the blog. After all, Drupal is a content publishing platform at its core, so why not show how content and commerce can work on the same platform together. In the ecommerce world, that’s actually a pretty big deal!

In this Tech Talk video, I’ll show you how the Drupal core Comments module is used for blog commenting and product reviews. I also go into detail on how you can configure a role based publishing workflow using core’s Workflows and Content Moderation modules.

Comments and reviews

All of the blog posts and products on the demo site use the core Comments module for customer feedback. This allows any level of user (anonymous, authenticated, etc.) to add comments or reviews to these content items. The configuration and permissions for the Comments module controls whether or not the comments need to be approved by an administrator before they appear on the site. When logged in, an administrator who has permissions to manage the comments can use both the frontend interface as well as a backend interface for deleting, approving, editing and finally replying to the comments.

Like any content entity in Drupal, comments are fieldable. This means that you can configure fields to allow for additional functionality for your comments. It’s not covered in this video, but it’s worth mentioning that this is how I was able to get a 5 star review system easily integrated into the product comments.

Content moderation workflows

Drupal core also has a couple modules for letting you define a process for adding specific types of content to your site. The Urban Hipster blog is now setup to be an example for this. 

The first aspect to configure is the workflow. Workflows is where you determine what content will make use of the workflow, the “states” that the content will transition through, and finally the transitions that can happen at any given state. These things all need to be configured first before moving on to permissions.

The second aspect is assigning role based permissions to use the workflow. Permissions for workflows are found in the usual permissions backend page where all other permissions are set. Each workflow transition has a permission attached to it and so you just simply check the role that can perform each transition. You can create new roles if you need to.

View the live example

As mentioned, the Urban Hipster Drupal Commerce is an example of what can be done. Try it out yourself and see what you think. Here are some username/password combinations that will let you check out the workflows in action. The site refreshes every night so you don’t need to worry about breaking anything.

Role based workflow logins:

  • Blog author: blogauthor/blogauthor
  • Blog reviewer: blogreviewer/blogreviewer
  • Blog publisher: blogpublisher/blogpublisher

Administrator login (for viewing the configuration):

  • Administrator: demoadmin/demoadmin

Chocolate Lily: Drupal distributions, blocks, and subthemes

Main Drupal Feed - Tue, 09/25/2018 - 16:31

In Part 4 of a current series on managing shared configuration for Drupal distributions we looked at needs and options for altering configuration provided by extensions (modules, themes, or the site's installation profile). We covered common needs such as altering user roles to add permissions. But when it comes to altering configuration, blocks are a special case--hence this bonus installment!

When you create a site based on a distribution, there may be a requirement to customize the look and feel. The usual solution is to create a custom subtheme for the site; see the drupal.org documentation on subtheming. That way you can get everything the distribution provides but give the site a custom presentation.

Using a custom theme will work fine for most configuration. But it won't work for configuration that includes the theme itself as a dependency--like blocks.

DrupalCon News: All Welcome at DrupalCon

Main Drupal Feed - Tue, 09/25/2018 - 15:47

DrupalCon gathers a range of citizens of the Drupal ecosystem to learn, share, and collaborate together. The value of the conference is in the perspectives, energy and diversity of experiences participants share. No matter who you are or where you’re from, you’re invited to participate in DrupalCon

DrupalCon began setting goals to overtly increase diversity starting with DrupalCon Baltimore 2017. This continued in the planning of DrupalCon Nashville 2018, and is a priority for DrupalCon Seattle 2019. 

Zivtech: Challenges of Front End Development

Main Drupal Feed - Tue, 09/25/2018 - 13:21

With phone in hand, laptop in bag and earbuds in place, the typical user quickly scans multiple sites. If your site takes too long to load, your visitor is gone. If your site isn’t mobile friendly, you’ve lost precious traffic. That’s why it’s essential to build well organized, mobile ready sites.

But how do you get good results?

  • Understand whom you’re building for
  • Employ the right frameworks
  • Organize your codebase
  • Make your life a lot easier with a CSS preprocessor

Let’s look at each of these points.

Design For Mobile

When you look at usage statistics, the trend is clear. This chart shows how mobile device usage has increased each year. 
 

Read more

Pages