Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 18 hours 1 min ago

KnackForge: How to update Drupal 8 core?

Sat, 2018/03/24 - 6:01am
How to update Drupal 8 core?

Let's see how to update your Drupal site between 8.x.x minor and patch versions. For example, from 8.1.2 to 8.1.3, or from 8.3.5 to 8.4.0. I hope this will help you.

  • If you are upgrading to Drupal version x.y.z

           x -> is known as the major version number

           y -> is known as the minor version number

           z -> is known as the patch version number.

Sat, 03/24/2018 - 10:31
Categories:

jmolivas.com: One million downloads, one million thanks

Tue, 2017/07/18 - 5:20pm
One million downloads, one million thanks

It feels great to build a Drupal tool that has achieved more than 1 million downloads and helps people from different places around the world to create, build and deploy Drupal applications. It's been quite a journey, which took almost four years and required a lot of time and effort. It’s only fitting that I walk you through my Drupal Console journey.

I hope that taking you through my experience working on the Drupal Console will motivate you become part of a project, collaborate or take the first step. So here are the most important milestones.

The Beginning: The commit that started all

After been organizing a few hangouts and trying to decide to start a contributed project related to Drupal 8, David Flores pushed the first commit to the project repo. It was just a README.md file but every journey, even those that impact many people, start with one single step. That file marked the beginning of Drupal Console.

jmolivas Tue, 07/18/2017 - 15:20
Categories:

Drupal Association blog: Take the Survey on the Community Governance Summit

Tue, 2017/07/18 - 3:28pm

I recently shared the community needs and potential strategies for evolving community governance, which resulted from the Community Discussions we held in person and online throughout April and May. You can find the webinar recording and written transcript, as well as the meeting minutes from all Community Discussions, at https://www.drupal.org/community/discussions.

Many community members who participated in these discussions agreed that the next step to take in this process is to hold a Community Governance Summit. However, we are not yet clear on where and when this event should take place, who should participate, and several other important details. I worked with community members to develop this survey so we can answer those questions.

Please take 5 minutes to take this community survey and tell us your thoughts about the Community Governance Summit. This survey will remain open until 11:59pm EDT on July 28, 2017. We will analyze the findings and report back on what we learned in a follow-up blog post by Friday, August 4.

Thank you for your time and participation.

Categories:

Valuebound: How to add a Product Programmatically to Drupal Commerce Cart

Tue, 2017/07/18 - 2:32pm

In last two blog post we discussed the basics of getting started with Drupal Commerce and the steps of e-commerce products creation. As we move forward with our learnings, we will write about how we dealt with those. 

There is Business logic which demands few things out of the box where we create custom modules to aid a process. I came across a situation where we had to use Drupal Commerce module but the product was coming from the content type. Even though we had to import the product as commerce…

Categories:

Amazee Labs: Drupal Business & Community Days Heidelberg 2017

Tue, 2017/07/18 - 7:37am
Drupal Business & Community Days Heidelberg 2017

For the second time, around 100 people gathered in Heidelberg, Germany, for the 2-day Drupal Business & Community Days Heidelberg 2017 conference. Its unique concept combined two session tracks focusing on community and business topics. 

Josef Dabernig Tue, 07/18/2017 - 07:37

Apart from sprints and BoFs, the two session tracks allowed attendees to switch between community and business focused sessions. The community track focused on sessions in English for a more international crowd, while the business track sessions were held in German and attracted more attendees from the DACH (Germany Austria Switzerland) region.

Here are some of my highlights from the conference:

Die Firma sind wir! by Dietmar „dietmarg“ Giegler and Luca Curella was a talk about how Reinblau switched to holocracy. The cooperative of roughly 18 freelancers is using bi-weekly governance meetings moderated by a facilitator to allow for the improvement of the organisational structure by everyone involved.

Dr. Julia Schönborn (karmajob) in "Der ehrbare Kaufmann“ CSR: Verantwortungsvoll handeln und richtig darüber sprechen shared insights about how Corporate Social Responsibility (CSR) can be used as a holistic approach to focus all efforts of a company with regards to social responsibility.

I found it interesting that this approach has been mostly associated with big corporations in the past while smaller Drupal agencies, for example, also see their social responsibility extended to the contribution of open source code and providing a good working environment.

A look into a possible Future for all of us: React, GraphQL and Drupal by Michael "schnitzel" Schmid from Amazee.io shared all the findings we gained from creating multiple decoupled websites based on React, GraphQL and Drupal.

If you are keen to find out more about the topic, the Decoupled Developer Days are taking place in New York August 19-20, 2017.

Die TrauMINTfrau – vom Traum zur Umsetzung by Renate Welkenbach allowed the attendees to collectively work on the challenging task of bringing more diversity into tech. 

Along with these highlights, there were also some other inspiring presentations, and during the 2 days, Drupal Business & Community Days Heidelberg 2017 provided a great way to connect with the German and international Drupal community.

Together with regional experts and enthusiasts for digital and open source we were able to connect and have in-depth collaborations and exchanges in a relaxed environment.

I was also glad to be able to attend the Drupal e.V. meeting where Stefan Auditor (sanduhrs) and Marc Dinse (dernetzjaeger) were elected as new chairman of the German Drupal Association.

More pictures can be found in our Flickr album, and be sure to check out the #DrupalBCDays hashtag for further updates. See you again at DrupalCon Vienna or another regional camp in the near future!

Categories:

PreviousNext: Component based design with Paragraphs and Field formatters

Tue, 2017/07/18 - 6:23am

A common problem that I’ve faced, particularly in the last few years, is how to deliver the complex, component driven design that clients want while also giving content authors full flexibility with those components without creating an un-maintainable, or brittle product.

Categories:

Agiledrop.com Blog: AGILEDROP: What are Drupal Mini Camps?

Tue, 2017/07/18 - 6:20am
Remember when we have made a complete tour around the world to look at the Drupal Camps? If you don't, you can refresh your memories and find out which continent has the most Drupal camp activities. Besides that, we also highlighted the importance of attending such events. Drupal camps bring you many positive things. Lately, we came across a new term – Drupal Mini Camps. Let's see what they are. Almost a month ago we saw that Atlanta is organizing a Drupal event. Nothing special at first. Drupal Camp Atlanta has been there for the Drupal Community a long time. But with further reading,… READ MORE
Categories:

Drupal core announcements: July 17th, 2017 Symfony security fix in Security component (CVE-2017-11365) - Drupal not affected

Tue, 2017/07/18 - 1:34am

Symfony contacted the Drupal Security team about today's Symfony security release addressing an issue in UserPasswordValidator. This announcement is to reassure the Drupal community that Drupal 8 is not affected by this fix, as it does not make use of this security component. There is no Drupal 8 release scheduled for this, and there is no action you need to take on your Drupal site(s).

Categories:

Drupal core announcements: Drupal 8.4.0 will be released October 4; alpha begins week of July 31

Mon, 2017/07/17 - 9:14pm

Drupal 8.4.0, the next planned minor release of Drupal 8, is scheduled for Wednesday, October 4, 2017. Minor releases include new features, usability improvements, and backwards-compatible API improvements. Here's what this means now for core patches.

The goal of the alpha phase is to begin the preparation of the minor release and provide a testing target for theme or module developers and site owners. Alpha releases include most of the new features, API additions, and disruptive changes that will be in the upcoming minor version.

Drupal 8.4.0-alpha1 will be released the week of July 31

In preparation for the minor release, Drupal 8.4.x will enter the alpha phase the week of July 31. Core developers should plan to complete changes that are only allowed in minor releases prior to the alpha release. (More information on alpha and beta releases.)

  • Developers and site owners can begin testing the alpha. (Note for Drush users: Drupal 8.4.x requires Drush 8.1.12.)
  • The 8.5.x branch of core will be created, and future feature and API additions will be targeted against that branch instead of 8.4.x. All outstanding issues filed against 8.4.x will be automatically migrated to 8.5.x once it is opened.
  • All issues filed against 8.3.x will then be migrated to 8.4.x, and subsequent bug reports should be targeted against the 8.4.x branch.
  • During the alpha phase, core issues will be committed according to the following policy:
    1. Most issues that are allowed for patch releases will be committed to 8.4.x and 8.5.x.
    2. Drupal 8.3.x will receive primarily critical bugfixes in preparation for its final patch release window. (Drupal 8.2.x and older versions are not supported anymore and changes are not made to those branches.)
    3. Most issues that are only allowed in minor releases will be committed to 8.5.x only. A few strategic issues may be backported to 8.4.x, but only at committer discretion after the issue is fixed in 8.5.x (so leave them set to 8.5.x unless you are a committer), and only up until the beta deadline.
Drupal 8.4.0-beta1 will be released the week of August 14

Roughly two weeks after the alpha release, the first beta release will be created. All the restrictions of the alpha release apply to beta releases as well. The release of the first beta is a firm deadline for all feature and API additions. Even if an issue is pending in the Reviewed & Tested by the Community (RTBC) queue when the commit freeze for the beta begins, it will be committed to the next minor release only.

The release candidate phase will begin the week of September 4, and we will post further details at that time.

See the summarized key dates in the release cycle, allowed changes during the Drupal 8 release cycle, and Drupal 8 backwards compatibility and internal API policy for more information.

As a reminder, we have until the start of the alpha to add great new features to Drupal 8.4.x. Several experimental modules have 8.4.x alpha deadlines:

  1. Workflows and Content Moderation (must reach beta stability)
  2. Media (must become stable to provide a stable API for contrib media modules)
  3. Settings Tray (must become stable)
  4. Place Blocks (must become stable)
  5. Inline Form Errors (must become stable)
  6. Datetime Range (must become stable)

Help is most welcome with issues on the roadmaps for the linked modules now for a great Drupal 8.4.0!

Categories:

Jeff Geerling's Blog: Dealing with Drupal 8 and a giant cache_render table

Mon, 2017/07/17 - 8:19pm

There are a number of scenarios in Drupal 8 where you might notice your MySQL database size starts growing incredibly fast, even if you're not adding any content. Most often, in my experience, the problem stems from a exponentially-increasing-in-size cache_render table. I've had enough private conversations about this issue that I figure I'd write this blog post to cover common scenarios, as well as short and long-term fixes if you run into this issue.

Consider the following scenarios I've seen where a cache_render table increased to 10, 50, 100 GB or more:

Categories:

DrupalCon News: DrupalCon Takeaways - Rachel Lawson

Mon, 2017/07/17 - 8:19pm

Oh! Hey there, my name is Piyush Jain and as a new staff member at the Drupal Association I wanted to learn what the community likes so much about DrupalCon. 

This week, I spoke with Rachel Lawson (rachel_norfolk), who has been part of the Drupal community for 11 years, and attended 6 DrupalCons.

Categories:

Freelock : Building a Membership site in Drupal 8

Mon, 2017/07/17 - 8:02pm

Memberships are not all the same. Some memberships last a lifetime, others last a year, or a month. Some memberships are for an individual, others for a couple, others for an entire family.

Some memberships are for a particular time period -- the 2017 season, the 2017/18 school year, Summer -- others are for a particular length of time starting when you purchase it.

Drupal 8Drupal PlanetMembershipCustom DevelopmentCRM
Categories:

Comic Relief Technology Blog: Pattern Lab — the beauty of a shared styling library

Mon, 2017/07/17 - 6:11pm
For those who aren’t familiar with the concept of Pattern-Lab (or a Pattern Library), it’s essentially a living style guide; a common tool in… Read More
Categories:

Mediacurrent: Comparing Drupal and Sitecore, Part 2 of 2

Mon, 2017/07/17 - 6:00pm

This is Part 2 of 2 of my Drupal vs Sitecore blog series. In the first part, I've compared the two from the perspectives of content authoring, marketing, and business. In this part, I look at the two platforms from an IT and community perspective. I also need to repeat my disclaimer that I'm a long-time Drupalist, but in this blog post I endeavor to be even-minded and objective.
 

Categories:

CiviCRM Blog: Developing with CiviCRM Entity and the Drupal API

Mon, 2017/07/17 - 5:23pm

If you are a Drupal developer coming new to CiviCRM, it can be a bit of a "culture shock" to realize that CiviCRM is not your typical Drupal module.

CiviCRM has a separate and independent evolution and ecosystem, and its standard practices and APIs reflect that. From installation of the module itself, to creating customizations and modifications of its standard behavior, you are entering into a different "world" when you implement and develop client solutions with CiviCRM.

CiviCRM Entity can help a Drupal developer make the transistion by enabling them to use some of the standard Drupal API features they have grown accustommed to, while still providing insight into the data structures and interconnections of CiviCRM.

For people who spend the majority of their time developing in CiviCRM, it can feel the same way, in reverse. For all-day CiviCRM developers, CiviCRM Entity can be an opportunity to better leverage your Drupal CMS for customizations and new features.  So this introduction to Developing with CiviCRM Entity and the Drupal API is for you too.

How's it work?

The premise behind CiviCRM Entity is really quite simple, though its ramications are profound. What CiviCRM Entity does is automate the process of exposing CiviCRM API entities and actions as Drupal entity types. Basically a Drupal entity type is the standard Drupal data model for a database table.  You map metadata to columns, and this provides one consistent way to store, retrieve, and manipulate database table data for Drupal Core and the entire ecosystem of contributed modules that can go with it. Because CiviCRM does not by itself engage its data with Drupal's Entity API, the majority of Drupal modules are not aware of CiviCRM's data and cannot act on it.

CiviCRM Entity implements all the necessay hooks to define the CiviCRM data as Drupal entity types.  It registers the entity types with hook_entity_info(), sets up the metadata with a hook_entity_property_info_alter() implementation, and extends the default Entity API objects and controllers.  Inside the controller responsible for load, save, and delete, instead of using Drupal's standard PDO SQL query operations, CiviCRM API calls are used.  This makes CiviCRM Entity a "remote entity" module, but specifically designed to work with CiviCRM only. 

This bit alone does the most important thing. It makes Drupal think CiviCRM data is Drupal data.  You can attach Drupal fields, to CiviCRM data.  You can use Drupal's entity_metadata_wrapper. All the rest of the code in the module and its submodules dealing with specific integration enhancements is just gravy.

Using the metadata wrapper, we built up one bit of Drupal Form API code, that woks with all the entities, and provides Drupal standard CRUD forms. Now you got Manage Fields and Manage Display pages for each entity type. Now the Rules module will play nice. Now Drupal developers can build cool custom stuff, using their familar tools.

Entity Field Query

EntityFieldQuery is Drupal 7's standard programmatic way to query the database tables exposed as entities. So let's say we want to find all the Home location type addresses for a particular contact. If there are results there will be an array with key of the entity type name containing objects keyed by id.

$contact_id = 3099; $query = new EntityFieldQuery(); $address_ids = $query->entityCondition('entity_type', 'civicrm_address') ->propertyCondition('contact_id', $contact_id) ->propertyCondition('location_type_id', 1) ->execute(); if (!empty($address_ids['civicrm_address'])) { // do something } Load Drupal Entity objects

Following the example above, we have a query result, and now want to load the entity objects.

if (!empty($address_ids['civicrm_address'])) { // entity_load returns an array of entity objects keyed by id $address_entities = entity_load('civicrm_address', array_keys($address_ids['civicrm_address'])); // maybe you just want the individual entity objects... foreach ($address_ids['civicrm_address'] as $id => $result) { $address_entity = entity_load_single('civicrm_address', $id); // get the city of the address $city = $address_entity->city; } } Saving entities

Now lets make sure our city in our address has every word capitolized, and save the address. The data as you see it in the CiviCRM admin backend will immediately reflect the changes.

$address_entity->city = ucwords($address_entity->city); entity_save('civicrm_address', $address_entity); Deleting Entities

If you want to delete an entity, you can use entity_delete().  Remember that these functions eventually get to the controller, which is a wrapper around CiviCRM API calls.  This matters especially for contacts, because by default deleting contacts sends them to the CiviCRM "trash", instead of completely deleting them.

entity_delete('civicrm_address', $address_entity->id); The Entity Metadata Wrapper 

If you start getting serious about programmatically manipulating entities, you want to start using the Entity Metadata Wrapper. This object encapsulates all these operations in an object oriented way.  It becomes especially useful when you are manipulating multi-lingual fields. It also can use entity level validation based on the entity metadata for each property of the entity type.  I would encourage its use in favor of manipulating the entity object directly, or using the entity_X functions. The code is much more readable and easier to write, and with validation it is much safer. There is a great article about the benefits of the wrapper which goes into detail.

You can pass the entity_metadata_wrapper function the entity object, or simply the id of the entity, and it will lazy load the object. If all you have is the id to start, no need to load the entity object first.

$address_wrapper = entity_metadata_wrapper('civicrm_address', $address_id); $city = $address_wrapper->city->value(); if($address_wrapper->city->validate(ucwords($city))) { $address_wrapper->city = ucwords($city); $address_wrapper->save(); } // get the updated entity object $updated_address_entity = $address_wrapper->value(); // nevermind, lets just delete the entity $address_wrapper->delete(); Custom Rules Action Example

A very practical use case of using the Drupal API for CiviCRM is creating custom Rules conditions or actions. Lets say we want to encapsulate this logic of automatically making the city of an address have uppercase words.  We may want to encapuslate functionality like this and pass it on to our site builders or clients who can use it when they need it. Once you find out how easy it is to create custom Rules actions, you'll have a powerful tool in your toolbox. There's lots of documentation on the web for doing this. 

Lets put this in a little module, I'm calling it civicrm_custom. Create a directory in your sites/all/modules directory named civicrm_custom

To read the rest of the article, and to get the code to build the Rules action, visit the Skvare.com blog.

ToolsDrupal
Categories:

Mediacurrent: Mediacurrent's Drupal Theme Generator

Mon, 2017/07/17 - 4:55pm

In a fast moving industry like ours, it is imperative that we have tools that allow us to build environments (front and back-end), quickly, while providing consistency all across. The same way we have DevOps processes for quickly spinning off a complete Drupal built with composer, drush, Drupal console and more, we need a system that automates the process of creating Drupal themes which include all the essential tools needed for a modern, best practices and standards compliant environment.
 

Categories:

Acquia Developer Center Blog: Building an Open Source Photo Gallery with Face and Object Recognition (Part 1)

Mon, 2017/07/17 - 4:28pm

In this two-part series of blog posts, I'm going to show you how we built a Drupal 8 photo gallery site, integrated with Amazon S3, Rekognition, and Lambda to automatically detect faces (allowing us to automatically identify names!) and objects found in our photos.

Tags: acquia drupal planet
Categories:

Mark Shropshire: Drupal Camp Asheville 2017 Presentation

Mon, 2017/07/17 - 5:39am

What an honor it was to be selected to present at Drupal Camp Asheville again! This event just gets better and better each year. I want to thank the organizers, volunteers, attendees, and sponsors for making it so awesome!

Below you will find the video for my talk, slide deck, and related git repo for:

"Live Demo: How to Create a Winning Website with Drupal Best Practice".

Git repo: https://github.com/shrop/dcavl2017-livedemo

Blog Category: 
Categories:

Jeff Geerling's Blog: DrupalCamp St. Louis 2017 Keynote announcement: Adam Bergstein

Mon, 2017/07/17 - 4:07am

(It's not too late to submit a session—and register for DrupalCamp soon, since early bird pricing ends on August 1!)

The organizers behind DrupalCamp St. Louis 2017 are happy to announce we have a speaker scheduled to present the Keynote, Adam Bergstein—Associate Director of Engineering at CivicActions!

Adam's Keynote is titled "Restoring Our Lost Information", and here's a short summary:

Categories:

fluffy.pro. Drupal Developer's blog: Drupal Camp Kyiv 2017

Sat, 2017/07/15 - 8:44pm

On 10-11 of June in Kyiv there was an annual all-Ukrainian event - Drupal Camp Kyiv 2017. This is a place where experienced back-end, front-end developers, DevOps and managers share their knowledge. Traditionally Drupal Camp took place in two days: a conference day which includes 5 streams of presentations and code sprint where passionate developers can work together for improving Drupal and developing community. A few interesting statistics about this year’s event: 403 attendees, 5 streams of lectures, 42 speaker, 10+ international speakers, 70+ code sprint participants and 100+ patches made during code sprint.
Read more »
Categories: