Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 2 min 44 sec ago

Acquia Developer Center Blog: Drupal 8 Module of the Week: Responsive and off-canvas menu

Tue, 26/04/2016 - 19:03

Each day, more Drupal 7 modules are being migrated over to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most most prominent, useful modules, projects, and tools available for Drupal 8. This week an interesting mobile-usability helper: Responsive and off-canvas menu.

Tags: acquia drupal planetMotWdrupal 8D8UXmobilemenu
Categories: Elsewhere

Acquia Developer Center Blog: 3 Media Challenges in Drupal, and How to Use the Media Module to Vanquish Them

Tue, 26/04/2016 - 16:07

Drupal 7 out the box offers a good implementation for uploading media, but it has three significant challenges.

Challenge 1: Files should be entities

In Drupal, files should be entities so you can add additional fields to the file type. As an example, when you upload an image you will want your standard image alt attribute, which specifies alternate text for an image, if the image cannot be displayed, or the user is using a screen reader. But you may want to have additional fields, such as photo credit or image caption.

Tags: acquia drupal planet
Categories: Elsewhere

Drupalize.Me: Custom Drupal-to-Drupal Migrations with Migrate Tools

Tue, 26/04/2016 - 15:15

Drupal 8.1 now provides a user interface (UI) for conducting a Drupal-to-Drupal migration. Since there is no direct upgrade path for Drupal 6 or 7 to 8, you should become familiar with the migrate system in Drupal, as it will allow you to migrate your content from previous versions to Drupal 8.

Categories: Elsewhere

Unimity Solutions Drupal Blog: How Drupal helped in launching an Enterprise Class Application

Tue, 26/04/2016 - 08:46

Here is a case study of how Drupal helped in implementing a customer portal for a major utility service provider in the US.

Categories: Elsewhere

Drupal core announcements: Coding standards proposals for final discussion on 4/29

Tue, 26/04/2016 - 04:33

The TWG coding standards committee is announcing two coding standards changes for final discussion. These appear to have reached a point close enough to consensus for final completion. The new process for proposing and ratifying changes is documented on the coding standards project page.

The four new issues being proposed are:

Issues still open for comment:

These proposals will be re-evaluated during the next coding standards meeting currently scheduled for April 29th. This is a shorter window and a longer list than the committee generally provides and these issues will likely not be finalized until the following meeting (date TBD due to DrupalCon). The normal timeline was shifted by the arrival of committee member's babies, everyone's happy and healthy but timelines went whacky. At that point the discussion will likely be extended, or if clear consensus has been reached the policy may be dismissed or ratified and moved to the ‘update documentation’ step.

Categories: Elsewhere

groups.drupal.org frontpage posts: Google Summer of Code 2016 - Selected Projects

Mon, 25/04/2016 - 22:12

Did you know Drupal was accepted into Google Summer of Code 2016 and that 11 Drupal projects were accepted? In other words, Google is funding 11 people to contribute to Drupal for 10 weeks worth a total of $60,500 USD (thank you Google!). Congratulations to selected students who are collectively credited on more than 100 issues fixed in the past 3 months on drupal.org. Coding starts May 23rd and ends August 23rd.

Majority of projects are focused on work related to Drupal 8 contributed modules. Drupal's students are from 4 different continents and we currently have 26 mentors from 12 countries with over 150 years of experience on drupal.org. As always, we're excited about this summer and we hope community members will provide an extra helping hand if you see students in queues. Learn more about our projects below.

Project: Social API
Student: Getulio Sánchez "gvso" (Paraguay).
Mentors dahacouk (UK), e0ipso (Spain), pcambra (Spain).

Project: Solving content conflicts with merge algorithms in Drupal 8
Student: Rakesh Verma "rakesh_verma" (India).
Mentors: dixon (Sweden), timmillwood (UK), jeqq (Moldova).

Project: Port Mailhandler to Drupal 8
Student: Milos Bovan "mbovan" (Serbia).
Mentors: miro_dietiker (Switzerland), Primsi (Slovenia).

Project: CKEditor plugins for TMGMT
Student: Saša Nikolič "sasanikolic" (Slovenia)
Mentors: miro_dietiker (Switzerland), Berdir (Switzerland).

Project: Port search configuration module to Drupal 8
Student: Joyce George "joyceg" (India)
Mentors: naveenvalech (India), heykarthikwithu (India), neetu (India).

Project: Integrate Google Cloud Vision API to Drupal 8
Student: Arpit Jalan "ajalan065" (India)
Mentors: naveenvalech (India), penyaskito (Spain).

Project: Port Google Login Authenticator To Drupal 8
Student: Mehul Gupta "therealssj" (India)
Mentors: nerdstein (USA), attiks (Belgium).

Project: Media Solution Module
Student: Vijay Nandwani "royal121" (India)
Mentors: slashrsm (Slovenia), paranojik (Slovenia).

Project: Web Component-ize Drupal 8
Student: Tianlei Zheng "ztl8702" (Australia)
Mentors: skyredwang (China), Wimleers (Belgium).

Project: Add Password-based Public-key Encryption to Drupal 8
Student: Talha Paracha "talhaparacha" (Pakistan)
Mentors: nerdstein (USA), colan (Canada), jibran (Pakistan).

Project: Porting Comment alter module to Drupal 8
Student: Anchal Pandey "anchal29" (India)
Mentors: Boobaa (Hungary), czigor (Hungary).

Final call for mentors. Are you interested in helping any of the projects above? Contact Slurpee on drupal.org, find us in #drupal-google on Freenode, and join us at https://groups.drupal.org/google-summer-code.

A special "Thank you" goes out to Drupalize.me for providing all of our students a free account.

Categories: Elsewhere

DrupalCon News: Training Spotlight: Project Management & Team Building

Mon, 25/04/2016 - 21:19

Not a developer? Not a problem! Each year, we see an increased number of project managers and professionals in non-technical roles such as business development, sales, marketing and HR at DrupalCon. We have training opportunities for you, too!

Categories: Elsewhere

Dries Buytaert: Video: Can we save the open web?

Mon, 25/04/2016 - 20:50

In March, I did a presentation at SxSW that asked the audience a question I've been thinking about a lot lately: "Can we save the open web?".

The web is centralizing around a handful of large companies that control what we see, limit creative freedom, and capture a lot of information about us. I worry that we risk losing the serendipity, creativity and decentralization that made the open web great.


While there are no easy answers to this question, the presentation started a good discussion about the future of the open web, the role of algorithms in society, and how we might be able to take back control of our personal information.

I'm going to use my blog to continue the conversation about the open web, since it impacts the future of Drupal. I'm including the video and slides (PDF, 76 MB) of my SxSW presentation below, as well as an overview of what I discussed.

Here are the key ideas I discussed in my presentation, along with a few questions to discuss in the comments.

Idea 1: An FDA-like organization to provide oversight for algorithms. While an "FDA" in and of itself may not be the most ideal solution, algorithms are nearly everywhere in society and are beginning to impact life-or-death decisions. I gave the example of an algorithm for a self-driving car having to decide whether to save the driver or hit a pedestrian crossing the street. There are many other life-or-death examples of how unregulated technology could impact people in the future, and I believe this is an issue we need to begin thinking about now. What do you suggest we do to make the use of algorithms fair and trustworthy?

Idea 2: Open standards that will allow for information-sharing across sites and applications. Closed platforms like Facebook and Google are winning because they're able to deliver a superior user experience driven by massive amounts of data and compute power. For the vast majority of people, ease-of-use will trump most concerns around privacy and control. I believe we need to create a set of open standards that enable drastically better information-sharing and integration between websites and applications so independent websites can offer user experiences that meet or exceeds that of the large platforms. How can the Drupal community help solve this problem?

Idea 3: A personal information broker that allows people more control over their data. In the past, I've written about the idea for a personal information broker that will give people control over how, where and for how long their data is used, across every single interaction on the web. This is no small feat. An audience member asked an interesting question about who will build this personal information broker -- whether it will be a private company, a government, an NGO, or a non-profit organization? I'm not really sure I have the answer, but I am optimistic that we can figure that out. I wish I had the resources to build this myself as I believe this will be a critical building block for the web. What do you think is the best way forward?

Ultimately, we should be building the web that we want to use, and that we want our children to be using for decades to come. It's time to start to rethink the foundations, before it's too late. If we can move any of these ideas forward in a meaningful way, they will impact billions of people, and billions more in the future.

Categories: Elsewhere

Chapter Three: Cache API in Drupal

Mon, 25/04/2016 - 19:30
Cache API in Drupal

This is a very simple tutorial that could help you with the performance of your custom modules. I will show you how to use Cache API in Drupal 8 and Drupal 7.

Minnur Yunusov April 25, 2016
Categories: Elsewhere

Chapter Three: Cache API in Drupal

Mon, 25/04/2016 - 19:30

This is a very simple tutorial that could help you with the performance of your custom modules. I will show you how to use Cache API in Drupal 8 and Drupal 7.

You don't have to perform heavy caluclations every time you need to pull data either from third-party API or from database. Instead run it once and cache it. I personally use caching when I need to run complex SQL queries and third-party integrations (Example: get a list of available forms from Hubspot, or available campaign lists from Mailchimp etc).

In Drupal 8 use the following code structure:

Categories: Elsewhere

DrupalEasy: Demystifying Drupal 8's breakpoints.yml file

Mon, 25/04/2016 - 18:36

While working through a couple of Drupal 8 projects involving a custom theme, I've been curious about the themename.breakpoints.yml file. I've dutifully updated it with the proper breakpoint values, but I've been a bit mystified with its actual purpose. There's nothing in either of the base themes I've used (Neato and Bootstrap) that actually appears to utilize the data in the breakpoints.yml files. While the breakpoints are defined in this file, they are also defined in the theme's source Sass and LESS files, for use in the processed CSS. 

I decided to dig into the issue a bit more over the past few days in an effort to figure out exactly what the purpose of the breakpoints.yml file is. It turns out that the any module or theme can create a themename.breakpoints.yml or modulename.breakpoints.yml file. The Breakpoint module (included as part of Drupal 8 core) then reads these files and adds them to the site's configuration. At this point, other installed modules and themes can access this configuration and utilize it in their own functionality. This is exactly how the Responsive Image module (also part of Drupal 8 core) works. It accesses the installed theme's breakpoints configuration (via the themename.breakpoints.yml file) and serves up proper responsive images based on that configuration.

But, at this time, there is nothing in Drupal core that automatically allows breakpoints defined in the themename.breakpoints.yml file to be easily used in the theme's CSS. So, when a theme's breakpoints.yml file is modified, nothing will change on the site until the site's CSS is also modified. In effect, most theme's breakpoints will need to be defined in two places - the themename.breakpoints.yml file and the theme's CSS. 

There are methods available (and still being developed) to "link" breakpoints defined in the breakpoints.yml file with the theme's CSS - usually as part of a pre-processing task when working with LESS or Sass. 

Resources
Categories: Elsewhere

DrupalEasy: DrupalEasy Podcast 167 - Ted Spoils Star Wars (2015 Year in Review)

Mon, 25/04/2016 - 18:36

Direct .mp3 file download.

In this very special holiday episode of the DrupalEasy Podcast, (most of) the co-hosts pick our favorite Drupaly things from 2015, including our favorite Drupal moments as well as our favorite things about Drupal 8. Ted teaches us about the spirit of Christmas, Andrew talks about his favorite podcast episode, Ryan makes a surprise appearance, and we meet Kelley Curry (BrightBold), our newest co-host.

Our Favorite Things Drupal moment of the year
  • Mike - DrupalCon Barcelona community keynotes.
  • Ryan - adding new hosts to DrupalEasy Podcast / recording the April Fool's Day Episode / singing the Drupal Oddity song at DrupalCon Karaoke in Los Angeles and watching Mike H freak out.
  • Andrew - Being at work and having my boss ask what happened to the DrupalEasy Podcast. It was the April Fools Day episode. He was afraid we all lost our minds.
  • Kelley - DrupalCon LA prenote / release of D8 with my first 4 core commits / getting asked to join the podcast.
  • Ted - Acquia U, Drupalcon LA Hallway Track.
Drupal 8
  • Mike - View modes being a first-class “thing”.
  • Ryan - that I got to learn Dependency Injection, Services, OOP.
  • Andrew - Namespacing (more PHP but hey, we can now use it). Or more meta, we now fit into the rest of the PHP world.
  • Kelley - Theming improvements: Classy, Stable, Twig debugging.
  • Ted - OOP - CMI - Death to Features.
DrupalEasy News
  • The next session of the 12-week Drupal Career Online course starts in March, 2016 - visit DrupalEasy.com/dco for all the details.
Drupal Association Sponsors Upcoming Events Follow us on Twitter Five Questions (answers only)
  1. Started a 501(c)(3) to support a bilingual public school. Hurley K-8 and Neighborhood Parents for the Hurley School.
  2. Gathered Table iPhone app.
  3. Speak at DrupalCon.
  4. Cheetah.
  5. DrupalCon San Francisco help from Benjamin Doherty (bangpound).
Intro Music

One Christmas at a Time by Jonathan Coulton and John Roderick.

Subscribe

Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.

Categories: Elsewhere

Mediacurrent: Resource Guide: Version Controlled Drupal Development Using Git, Bitbucket & Pantheon

Mon, 25/04/2016 - 16:24

As a veteran web developer of nearly 20 years, one of the more difficult things I ran into when I started with Mediacurrent, a Drupal agency, was working within the constraints of a version control system.

Categories: Elsewhere

IXIS: Codeception modules for Drupal acceptance testing

Mon, 25/04/2016 - 12:05

Over the last couple of years, we have been using Codeception at Ixis for running automated acceptance tests during development work. Over this time we attempted to distil some of the ideas and abstract custom code into Codeception modules, which are all available on GitHub.

read more

Categories: Elsewhere

Janez Urevc: Goodbye Examiner, hello MD Systems

Mon, 25/04/2016 - 11:45
Goodbye Examiner, hello MD Systems slashrsm Mon, 25.04.2016 - 11:45

Approximately 3 and a half years ago I was finishing my job at Delo. I gave my notice in two months before, but I still had two more months to go. Yes, my notice period was 4 months (please learn from my mistake and never agree on something like that)! I was planning to take a break, travel Asia for few months, spend more time with my family and life to be easy and relaxing for some time. As you will see things didn't really work out that way...

It was early November and I was travelling home from Google Summer of Code mentor's summit. As we touched tarmac in PHL I got message from Rok Žlender. He heard I was leaving Delo and he asked if I would be interested in joining Examiner. Examiner?! Who didn't hear about it? Probably the first Drupal 7 website, biggest Drupal website on the internet at the time and code-base that most of the greatest minds of the community touched at some point. When opportunity like this appears you don't say no. I had an interview, they extended an offer and of course I said yes. And here I was, working in the position I could have just dreamed of just a few months earlier. Of course, my travel plans were postponed indefinitely as a result of that too. :)

In the past three years at Examiner I learned a lot. I was able to work with exciting technologies, fight complex problems that come with ridiculous amounts of traffic and data, intensively contribute to the Drupal community and met amazing people which I'm going to miss a lot. Team at Examiner literally built open-source mentality into it's DNA. I definitely wouldn't be able to be as active in Drupal 8 media initiatve if that wouldn't be a case. I am extremely thankful for that and every other opportunity I was given.

But, like always, every good thing also comes to an end. Lately I realized that I need to make a new step. I wanted a change in my life, which will allow me to keep growing personally and professionally. March 31st was my last day at the company and I finished it with my last deploy of examiner.com. Can it ever get better than that?

I am happy to announce that I am joining MD Systems in one week. They are a Drupal service provider based in Zurich, Switzerland. As a number one organizational contributor to Drupal they are probably the company with strongest dedication to the open source and community that I've ever seen to this day.

25 employees and 459 commit credits in last 90 days. You do the math!

I will be able to work with some of the brightest minds of the community and work on the meaningful and interesting projects. They are true Drupal 8 experts and authors of the NP8, a great Drupal 8 distribution for the enterprise media clients that was running live sites when most of the community still considered Drupal 8 to be completely unsuitable for production. I think that it is very fair to say that together we will be the strongest media experts for Drupal 8. If you need help with media or Drupal 8 in general do not hesitate to contact us!

I am really excited about this transition. There are already interesting new projects on the horizon that whole community will benefit from. Stay tuned!

Categories: Elsewhere

Red Route: CSS-only slideshows in Drupal with keyframes generated in Sass loops

Mon, 25/04/2016 - 10:41

One of the principles I'm trying to follow as I rebuild The Gallery Guide is to minimise the amount of code. I'm keen to reduce the number of Drupal modules, but also the amount of JavaScript used, mainly for performance reasons, but also as part of a strategy of progressive enhancement around the site.

On the current site, there are quite a few image slideshows, which are built using the views_slideshow module. Given that I don't need to configure timings via the UI, I could just handle the slideshows in theme code, maybe using a plugin like Cycle, or perhaps I might not need jQuery. But then I started thinking maybe I can avoid using JavaScript altogether for this.

I found a nice CSS-only slideshow by Dudley Storey, which uses CSS animations. It's set up for 4 images, with the first image duplicated at the end. Looking at the keyframes code, 25% of the time is allotted to each slide, of which 5% is the transition. On The Gallery Guide, gallery, exhibition, and artist pages can all have an arbitrary number of images attached, so I needed to do a tiny bit of maths to convert that into a more flexible formula. It works nicely in modern browsers without adding much extra code, and falls back to a single image in browsers that don't support CSS animations.

Seems like an ideal use case for Sass loops - here's the Sass partial that generates the keyframes code:

/// Set up image carousels.
///
/// @param {int} $items - the number of items
/// @param {int} $speed [6] - the duration of each item in seconds
///

@mixin carousel($items, $speed: 6) {
  $duration: $items * $speed;
   
  animation: #{$duration}s slidy-#{$items} infinite; 
  width: (100% * $items);
 
  .field__item {
    width: (100% / $items);
    height: auto;
    display: inline-block;
    position: inherit;
  }
}

@for $i from 2 through 5 {
  .carousel-#{$i} {
    @include carousel($i);
  }

  @keyframes slidy-#{$i} {
    /**
     * There are $i images in the carousel.
     * The first image is repeated, so there are $i - 1 distinct images to share the transition time.
     */
    $duration_per_slide: 100 / ($i - 1);
    $moving_time: 5;
    $still_time: $duration_per_slide - $moving_time;

    @for $j from 0 through $i {

      $slide_start: round($j * $duration_per_slide);
      $slide_end: round($slide_start + $still_time);

      // Move everything one image width left for each slide.
      $left_offset: 0 - ($j * 100);

      @if ($slide_start <= 100) {
        #{$slide_start}% {
          left: #{$left_offset}%;
        }
      }

      @if ($slide_end < 100) {
        #{$slide_end}% {
          left: #{$left_offset}%;
        }
      }
    }
  }
}

This is a nice example of using variables in selectors, using the interpolation syntax - for instance, this Sass selector inside the loop .carousel-#{$i} generates the selectors .carousel-2, .carousel-3 and so on. You need to be careful not to end up with bloated output CSS, but I appreciate the ability to avoid repetition and keep the Sass code elegant.

As Sass code becomes more like "real programming" with mixins and functions, there's more need for formal documentation of code - this is my first time using SassDoc, and I like it so far.

Drupal makes it easy to set up classes with the number of elements, and with Twig in Drupal 8, it isn't even necessary to write any PHP code to achieve that - it's simple to create a template for a node type or field, and use the Twig filters to get at any relevant data. In this case, my field is called field_images, so the template is field--field-images.html.twig - there's more info about template naming conventions on drupal.org, and here's an extract from the field template:

{% if items|length > 1 %}
<div class="image-carousel carousel-{{ items|length + 1 }}">
  {% for item in items %}
    <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
  {% endfor %}

  {# duplicate the first item #}
  <div{{ items[0].attributes.addClass('field__item') }}>{{ items[0].content }}</div>
</div>
{% else %}
  {% for item in items %}
    <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
  {% endfor %}
{% endif %}

Having been bogged down for a while with my attempts to migrate the site to Drupal 8, it's a refreshing change to be using new tools and have nothing but good things to say about them - in my experience so far I think that theming Drupal 8 will generally feel less hacky and more enjoyable than 6 and 7 did - I'm looking forward to working on bigger Drupal 8 projects.

Tags:  Drupal CSS Sass The Gallery Guide Drupal 8 All tags
Categories: Elsewhere

Cheppers blog: Breakthrough Media Management in Drupal with Scald - Part I

Mon, 25/04/2016 - 10:30

When creating websites, it can be tricky to find the ideal solution for media management. If you have ever worked on a website where there were countless image styles and videos to manage, you probably already know that choosing the best solution to handle media content is very challenging. The following blogpost will be useful to you if you want to know more about media management in Drupal, whether you’re an expert or just experimenting with the platform.

Categories: Elsewhere

jmolivas.com: The Drupal Console cheat sheet, a quick reference guide.

Sun, 24/04/2016 - 23:00
The Drupal Console cheat sheet, a quick reference guide.

I published a quick reference guide (cheat sheet) for listing Drupal Console commands. The idea is to build an easy to use reference document, you can view it with modern desktop computer browser and mobile devices.

You can find this project at http://drupalconsole.com/cheatsheet/

The command information you can find on this cheat sheet is the same available commands at http://docs.drupalconsole.com/en/commands/available-commands.html documentation. In both projects, the information is exported from the main Drupal Console project and as you can expect the information within this cheat sheet is multilanguage.

You can fork this project to contribute from https://github.com/hechoendrupal/drupal-console-cheatsheet

jmolivas Sun, 04/24/2016 - 21:00
Categories: Elsewhere

Freelock : Quality-oriented Drupal DevOps - Session recording

Sun, 24/04/2016 - 16:32
LinuxFest Northwest 2016: Quality-oriented Drupal DevOps Video of LinuxFest Northwest 2016: Quality-oriented Drupal DevOps

The audio quality isn't the best, but the talk I gave yesterday at LinuxFest Northwest is already up on YouTube! You can watch it here...

DrupalDrupal PlanetDevOpsQualityQuality AssuranceMatrixPrometheusSaltJenkinsConcourseIcingaWraith
Categories: Elsewhere

Damien McKenna: Rough plan for planning to port a site to Drupal 8

Sat, 23/04/2016 - 17:26

I have a small freelance client whose site I've offered to port to D8 pro-bono as a learning exercise for myself and a friend who's learning Drupal. It'll take a number of months to do, even though architecturally it's a small site, but that's fine. My very first step was to create an initial plan on what steps we'd need to do to to plan the site build. Seeing as this list ended up being completely generic, I figured I'd share it.

Tags: 
Categories: Elsewhere

Pages