Modules Unraveled: 157 The Drupal 8 Port of Advagg with Nick Wilde - Modules Unraveled Podcast

Planet Drupal - 8 March 2016 - 10:00pm
Published: Wed, 03/09/16Download this episodeAdvagg
  • First, can you give us an overview of what Advagg is?
The Drupal 8 Port
  • Are you the main maintainer of the D8 version?
  • What was the porting process like?
  • What features are in the Drupal 8 version right now?
  • What's the status of the Drupal 8 version?
  • Do you know of any compatibility issues with other modules?
  • What do you have planned for the future?
Episode Links: Nick on drupal.orgNick on TwitterNick’s WebsiteAdvagg ModuleTags: PerformanceDrupal 8planet-drupal
Categories: Drupal

Valuebound: How to Create a Website with Drupal 8

Planet Drupal - 8 March 2016 - 7:55pm

Drupal 8 has amazing features for everyone that can help you to build any Web site you want to. easier to customize components than never before. Drupal 8 uses Semantic HTML5 helps you to create interactions. You can make content structures easier to understand for people with disabilities.

In this tutorial series, we will learn how to use Drupal 8 to create your website. During the process, you will find How to work with various component and their usability.

How to Create a Website with Drupal

1: Setup Drupal 8 in windows with xampp stack package / Installing Drupal with…

Categories: Drupal

Evolving Web: Evolving Web at DrupalCon Asia 2016

Planet Drupal - 8 March 2016 - 6:53pm

We had a blast going to Mumbai for DrupalCon Asia. On day 1 of the conference, we presented our new Drupal 8 Theming training for a group of 50 first-time DrupalCon attendees.

read more
Categories: Drupal

Acquia Developer Center Blog: Drupal 8 Module of the Week: Coder

Planet Drupal - 8 March 2016 - 3:41pm

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 prominent, useful modules, projects, and tools available for Drupal 8. This week: Coder.

Tags: acquia drupal planetPHPCScoderupgrade
Categories: Drupal

NAB Transact Hosted Payment

New Drupal Modules - 8 March 2016 - 3:33pm

This module provides NAB Transact functionality via the Hosted Payment Page.

It uses the Payment API and does not necessarily need Drupal Commerce.

Categories: Drupal

Permissions to CSV

New Drupal Modules - 8 March 2016 - 3:23pm

This module simply exports the permissions configuration of a Drupal 7 site to CSV for auditing.

Categories: Drupal

Acquia Developer Center Blog: Drupal, meet PHP FIG and PHPUnit - with Sebastian Bergmann [video]

Planet Drupal - 8 March 2016 - 2:37pm

Sebastian Bergmann, the maintainer of the PHPUnit testing framework, came to our office in Cologne, Germany to talk with Campbell Vertesi (@CampbellVertesi) and me about PHP, PHP FIG and the PSRs, and of course testing. It is another in the series of interviews we carried out with important and interesting people from the PHP community in preparation for DrupalCon Asia in Mumbai. Now we're releasing those to you!

Our session, "Meet PHP-FIG: Your community just got a whole lot bigger, Drupal" is about Drupal 8’s membership in the world of PHP interoperability. We’re covering the basics of what the PHP Framework Interoperability Group (PHP-FIG) is, what the various PSRs are and do, and talking about testing and dependency management, and what it means to be a part of the new PHP community — including having better architecture, cleaner code, and less risk thanks to more interoperability. All of this adds up to a big move to get projects “off their islands,” saving developers a lot of code and companies a lot of money, among other benefits.

“Hi. I’m Sebastian Bergmann. About 15 years ago I created PHPUnit to help PHP developers build better software. I would like to congratulate the Drupal community on the release of Drupal 8. As far as I know PHPUnit played some role in it.” :-)

Q: You discovered PHP in 1997 or 1998, why did you stick with it for the last 18 years?

Sebastian: I like the language. I like the very pragmatic approach to solving the web problem, which does not mean that I’m happy with everything that is in PHP. There are some things in PHP that I don’t think should be in PHP. There are some things missing that I think should be in there. Some things have been implemented in a way that I wouldn’t have done it, wouldn’t have done that way if I were the only one to decide but I can see the compromise was necessary for the greater good, but all in all, I’m very happy with PHP.

Q: What is PHPUnit? How can I benefit from it?

Sebastian: PHPUnit is a so-called unit testing framework that’s stands in the tradition of the XUnit family of testing frameworks that began a really, really long time ago. So, it’s a unit testing framework or at least that’s how PHPUnit started. It’s used for so much more than just unit testing these days. The unit test helps you test one unit of code in isolation from all collaborating objects. So, for instance, you have one method of a class and you want to test this known input that you get the expected output. That’s the smallest kind of test that you can do. You can do all kinds of other tests in a much larger scope. One of the biggest, one of the most important things in testing software is finding the smallest scope in which you can test what you want to verify and the smallest thing that you can test and the smallest scope that you can test in is the unit test scope.

If you make it larger then you come to integration tests when you, for instance, test that one piece of code interacts correctly with another system, be it a web service or a database or whathaveyou. The largest thing that you can test in an automated way would be to test the entire application as a whole, which in the case of a web application it usually means, if you take a real HTTP client, send them real HTTP requests to a real HTTP server, get it to real HTTP response back and inspect that. That you can also do with PHPUnit.

Q: What does a PHPUnit bring for Drupal developers? What do they get out of your collaboration with Drupal?

Sebastian: Hopefully, better code, hopefully less bugs and hopefully fun.

Q: Fun?

Sebastian: Yes, it’s hard to believe and when I started working on PHPUnit and got interested in testing, I really couldn’t believe it, but it turns out there are many, many people out there, many developers for whom testing is a lot of fun. It brings, to some ... it has this feeling of being destructive in a constructive way ... like trying to find ways to break their code and writing that down in the form of tests and then they’re really happy when they see, “Okay. I cannot think of any other way to break this code and everything is fine. Everything is green so I’m having a good feeling that this code is correct, is robust and there's this nice synergy between when it’s easy to test a piece of code that means that the code is well-written, well-crafted, so in the future when your requirements change or you get new requirements, then, it will be easy and convenient and not a horrific experience to adapt the code to the new requirements.

"There's this nice synergy: when it’s easy to test a piece of code that means that the code is well-written and well-crafted. So in the future when your requirements change or you get new requirements, then, it will be easy and convenient and not a horrific experience to adapt the code to the new requirements.

Sebastian: What I could describe is very a common experience when you as a developer starts using the tool for testing. PHPUnit is, by no means, the only testing tool in the PHP community, just the one that is used the most. And contrary to what some people believe, I’m not an angry German that does all those bad changes in PHPUnit to hurt them intentionally :-D But it’s common that whatever testing tool you start using, you will not have fun with it at first if your code is not testable. Many people curse at the testing tool and say, “Oh, this is stupid.” That’s okay but it’s not the real issue. It’s just that the testing tool makes it obvious that the code you’re trying to test is not as well-crafted as it could be. You feel this pain and that pain hopefully makes you reconsider the way that you have written your code and you start making changes to make the pain go away.

Q: Do you have any pro tips for people who are trying to learn how to write a good testable code?

Sebastian: Writing tests first helps a lot of people, but over the years I’ve met plenty of people that said that they cannot think like that and that’s also okay. If I were to give a rule for that, then, it would be, “Don’t commit code to your version control without a test.” That’s a very pragmatic way of thinking about it, so by the time you share the code with the rest of the team, the tests are there and the rest of the team doesn’t care about whether or not you have written the test first or the code, but having to have the tests by the time you commit means that the code is testable.

“Don’t commit code to your version control without a test.”

Guest dossier
  • Name: Sebastian Bergmann
  • Work affiliation: "I’m a co-founder and principal consultant with the PHP Consulting Company, thePHP.cc. We help companies from small web agencies to Fortune 500 companies make better use of the PHP platform."
  • Twitter: @s_bergmann
  • GitHub: sebastianbergmann
  • LinkedIn: Sebastian Bergmann
  • Blog/Website: sebastian-bergmann.de
  • FOSS role: Maintainer of PHPUnit
  • Current projects: PHPUnit [Wikipedia article on PHPUnit]
  • 1st version of PHP: PHP 3
  • About: "Hi, I’m Sebastian and it’s 2016 now, so about 15 years ago, I started to work on a tool that is called PHPUnit, which I, at least, back then, never believed and sometimes even today, don’t really believe that it has happened, has become the de-facto standard in the PHP world for doing unit testing, integration testing and all other kinds of testing."
Podcast series: Drupal 8Skill Level: BeginnerIntermediate
Categories: Drupal

OSTraining: The Easiest Way to Embed Videos in Drupal 8

Planet Drupal - 8 March 2016 - 2:25pm

Video Embed is a very useful module for Drupal 8 users.

Video Embed creates a field type that allows you to embed videos from YouTube, Facebook, Vimeo, Vine and many other sources. All you have to do is enter the video URL and this module will do the rest.

Video Embed will create a thumbnail preview, control the autoplay settings and also ensure that the video is responsive.

Categories: Drupal

Red Route: Getting down to the nitty-gritty of migration

Planet Drupal - 8 March 2016 - 10:32am

Having eventually got my new VM up and running, I ended up down another rabbit hole for a little while. It took me longer than it should have done to figure out that configuration can be included in an installation profile. Having seen an issue on drupal.org, I got the idea into my head that I needed to mess about with the config directory, or use the Configuration installer profile. Thankfully the reality was much simpler.

As is so often the case, the way I figured it out was by looking at the source code of something that did work - in this instance the standard installation profile in core revealed that all the config files should be in the config/install directory. If I find any other confusing or unintuitive things like this, I'll try to update the documentation on drupal.org, as well as making some notes here.

It feels like a common problem with a lot of code that the documentation isn't in sync with the code. It's not just an issue with open source, but given that a lot of developers are reluctant to write documentation when they're getting paid for it, it's hardly surprising that there's a real need for more people to contribute to documentation.

Once that was out of the way I was able to start poking about with the actual migration. I've had a little bit of experience with migration in Drupal 6 and 7, although not as much as some of my old colleagues, and the migrate_example module was again helpful for figuring out how it all fits together.

It's tricky because a lot of the migrations depend on other migrations, and I want to manipulate the data on the way in so that it works with slightly different field names. The tutorial by Cheppers is the most helpful article I've found. Here's the basic workflow that I've been using so far:

  1. Edit settings.php to include the old database connection
  2. Run migrate-upgrade to get the migrations
  3. Export the site configuration
  4. Put the exported migration definitions in to the config/install directory of your custom module
  5. Tweak the migration definitions:
    1. Define a migration group: migration_group: gall that defines the database source
    2. remove database_state_key: migrate_upgrade_6 from the migrations
  6. Re-install the site using the installation profile
  7. Check the migration status drush ms
  8. Run the migrations: drush mi --all - for The Gallery Guide this takes a long time
  9. Try changing the prepareRow function in the migration class
  10. Re-run individual migrations to test : drush mi d6_node__gallery --update

At the moment one of the migrations is choking on a problem in core/lib/Drupal/Core/Utility/LinkGenerator.php:

Error: Unsupported operand types in /var/www/drupalvm/drupal/core/lib/Drupal/Core/Utility/LinkGenerator.php, line 152 <div data-quickedit-field-id="node/511/field_exhib_website/und/search_index" class="field field--name-field-exhib-website field--type-link field--label-hidden field__item">

It's a puzzling one, but at least I've got some idea of where to start digging.

This process has reminded me once again of how useful Drush is, and more generally, the value of using the command line, especially for complex or repetitive tasks. I remember when I first started as a developer, being slightly intimidated by the terminal. A bit like the old text adventure games, it can be difficult to know where to start. None of the functionality is made obvious to the beginner.

But once you have a vague idea what you're doing, you can save so much time. Because the interface doesn't need to bother making things look pretty, it's much quicker. You can chain commands and set up shortcuts. All kinds of power is available if you know where to look.

Tags: DrupalDrupal 8The Gallery Guide
Categories: Drupal

Palantir: The Secret Sauce podcast, Ep. 08: Explaining Panels

Planet Drupal - 8 March 2016 - 9:19am

Welcome to this week’s Secret Sauce, a short podcast by Palantir.net that offers a quick tip on some small thing you can do to help your business run a little bit better. Today’s advice comes from one of our colleagues at Pantheon. Steve Persch is an Agency and Community Engineer at Pantheon and former Palantir team member, and he’s sharing his thoughts on using the Panels module in Drupal.

iTunes | RSS Feed | Download | Transcript Want to learn more about the Panels module and other ways to do more with your web project? Let's schedule a time to talk.


SP: Hi, I’m Steve Persch. Today I’m going to be talking about Panels Module in Drupal.

So I use Panels Module because I think of it as a really direct way of doing style guide driven development, which is a topic that’s getting discussed a lot in the Drupal community these days. Style guide driven development is the idea that development is directed by a style guide understanding of how a site is put together. What I mean by that is components like global headers, global footers, the styling of teasers, the styling of common article header elements is a really accessible way for clients, for stakeholders to conceptualize the visual understanding of a site.

So if you’re starting at that point with a style guide and you’re working in Drupal, it can be difficult to make Drupal match the markup that’s present in the style guide. A lot of Drupal developers like to complain about the CSS classes, the excessive wrapping divs that come from Drupal, and there’s this pain point of “how do we get Drupal to print the markup that we want.”

At DrupalCon Los Angeles I did a presentation called Rendering HTML with Drupal: Past, Present and Future. Anyway, in that I described how in earlier versions of Drupal it was really common to just take whatever markup you get from Drupal and write CSS against that. It may have too many divs, too many classes . . . it doesn’t matter, just write CSS against it. As we move towards this world where where we’re doing more style guide driven development, we generally don’t want the markup that comes out of Drupal by default.

Here’s where Panels Module comes in. Panels Module, I think, is a great mapping layer between Drupal’s internal understanding of elements like nodes, like headers and blocks, and that style guide understanding. So Panels has this concept called the Layout PlugIn. The Layout PlugIn is that mapping layer between a Drupal template file and the style guide design component. So you may have a Layout PlugIn called Global Header, and that’s your global header design component. You can then use that Global Header layout plugin at all these different layers of Panels.

There are four main layers of Panels that I like to use. There’s the Mini-Panels Layer, which is analogous to core’s block system. A mini-panel is basically an individual block, so you make an individual block, and that’s your site header. You can look at that mini panel and you can see this uses the global header design component and that becomes a mapping layer between . . . all right, we had this understanding of a design component called a global header, and we had to plug in all this Drupal data like search forms, like menus . . . Panels is a user interface that lets you insert all of that Drupal data into a template that you can still think of as an independent design component.

Doing that in traditional Drupal is really hard conceptually because in a more traditional Drupal build, the header might just be a conglomeration of things in the global template file, your page.tpl file. And it’s hard to keep track of where does this design component start and stop? Is there even a single representation of the header, or is it just a mix of menus that are thrown into the global template?

So with Mini-Panels you can encapsulate blocks. With the Panelizer level, you can encapsulate view modes. Panelier is essentially an alternative user interface on top of Core’s view modes. So in Drupal Core you have the ability to say, “this article teaser is going to display these fields in this order, drag and drop . . . cool. I’d still like to have that mapping layer too. Well, our style guide says article teasers are really illustrated list items, our style guide calls them illustrated list items. So we can map in Panelizer from the Drupal concept article teaser to the style guide concept illustrated list item.

The next layer up is the Page Manager level. This is basically: what is this page? If you have a page that’s your taxonomy term listing page . . . you’ve got a vocabulary of musical genres . . . you’re going to have a page that is genres/jazz. What happens on that page? If you just have Drupal Core, that page is going to be nothing but a list of all nodes tagged in jazz. But your style guide says jazz needs to show this design component, it’s a complex design component. It shows the most popular albums in jazz, it shows these songs, it shows artists, it shows all these different things and we have a name for that component. At the Page Manager level you can map the Drupal concept of jazz page to the style guide concept of whatever is the name of that design component . . . maybe you call it genre landing page. So that’s our third layer, the “what is this page” layer.

Finally there’s the global layer [Panels Everywhere], where you do things that in Core that you would otherwise do with the Core blocks system. We’ve got a global header, we’ve got a globar footer, maybe we have a global sidebar . . . panels everywhere lets you control that global template and use all the Panels UI niceness to line up your variables to say, “actually on this page we have no global header and footer whatsoever, we have just this one element. On this other page we have a variation that says we use a mini-header.” Panels Everywhere is a way of more deterministically saying how those variants shake out, whereas in Drupal Core all of your core blocks are responsible in and of themselves for figuring out, “do I show up on this page?” With Panels Everywhere you can say on a given URL, on a given pattern this is our global template, this is our global design component.

That’s why I like Panels. If you want to know more, check out the Palantir blog. I’ve basically given a summary here. There’s one blog post explaining Panels that runs down these four concepts, these four main modules, and then there’s another follow-up blog post called “Why I Use Panels” that digs a little deeper into the concept of mapping between Drupal data and a style guide or independent representation of design.

AM: Thank you Steve. That’s the end of this week’s Secret Sauce! For more great tips, follow us on twitter at @palantir, or visit our website at palantir.net. Enjoy your day.

Categories: Drupal

Amazee Labs: Vote twice for Schnitzel

Planet Drupal - 8 March 2016 - 6:50am
Vote twice for Schnitzel

This week you have a chance to vote twice for Schnitzel!

Michael Schmid Tue, 03/08/2016 - 15:50

People who know Amazee and the Amazee spirit, know that we are all about the Drupal community and contributing back to it; not only in the form of code, but in many other ways.

These other types of contribution need help from you to actually become a reality.

#1: Drupal Association At-Large Board position

The Drupal Association Board has two members that are elected to their seat by the community, called "At-Large" Board members. This role is designed to represent the community within the board. 

Community representation is very important and therefore these board members should bring two qualities: Broad knowledge of the community and and governance experience. Both qualities I bring to the board: 

  • I am a volunteer in the issue queue pushing Drupal forward, an event attendee, trainer, speaker, sponsor and organizer.
  • I also have experience serving as a board member of Amazee Holding and Amazee Labs.

Additionally with traveling and managing a team on three different continents, I understand the pain points and opportunities of Drupal diverse cultures, languages, nationalities, genders, time-zones, and unique personalities.

If you would like to know more about my campaign for the Drupal Association At-Large Board position, see my Candidate Profile, then, please vote!: 

Vote for Michael/Schnitzel

How to vote: You need a Drupal.org account that is at least one month old in order to be eligible to vote. Don't wait - voting ends March 18.

#2: Community Keynote at DrupalCon New Orleans

Another big other part of my community contributions is sharing Drupal knowledge in the form of sessions at Drupal Camps, DrupalCons and other events.

In the past I mostly focused on technical topics and case studies, but most recently at DrupalCamp London and DrupalCon Barcelona, I gave a presentation about the topic of stress and stress prevention. Afterwards I received a lot of great feedback and people told me that my tricks helped them. I now realize that we are not sharing enough about this topic.

I would like the opportunity to talk about this very important topic at a community keynote where my message will reach the necessary audience this topic requires: all of us.

So I submitted a session called "Your brain health is more important than your standing desk", where I would present about this topic in front of the whole DrupalCon audience.

Vote for Michael's Community Keynote

How to vote: To vote you need to be logged in to see and click on "vote for this session".

Thank you very much for your support!


Categories: Drupal

Drupalize.Me: Drupal 6 End-of-Life and Migration Planning

Planet Drupal - 8 March 2016 - 6:30am

Drupal 6 was released in February of 2008 and on February 26th, 2016, after 7 years, Drupal 6 was retired, in accordance with the Drupal community’s policy of only providing active support for two major versions of Drupal at any given time. While it is possible to migrate a Drupal 6 (or 7) site to Drupal 8, the tools are still in flux. While simple sites make for simple migrations—since most sites are not simple and require considerable research, planning, and effort to migrate—migration remains a complex process. Continue reading to find out more about how Drupal 6's end-of-life impacts Drupal site owners and what options you have if you still run a Drupal 6 site.

Categories: Drupal


New Drupal Modules - 8 March 2016 - 4:27am

This module allows a site to be compliant with EU directive on privacy and electronic communications. By displaying the banner on your site you will demonstrate that you are complying with the aforementioned directive, and information about your cookie policy will be readily available to users thanks to the sticky popup window at the bottom.

Categories: Drupal

KnackForge: How to get Microsoft office files downloaded properly through Drupal

Planet Drupal - 8 March 2016 - 4:15am
How to get Microsoft office files downloaded properly through Drupal

I recently came across situation where the .ppsx files were displayed as some weird characters instead of getting downloaded. For those who aren't aware of the .ppsx file extension, it is nothing but the extension for files created through Microsoft PowerPoint. You can find more information about the Powerpoint file formats here.

suresh Tue, 03/08/2016 - 17:45
Categories: Drupal

OpenLucius: Update OpenLucius | March 2016

Planet Drupal - 8 March 2016 - 2:26am

We updated social intranet OpenLucius (a Drupal distribution) with 6 new functions. Without further ado, let's dive into it:

1. Document management revamped

We completely renewed the document management system (Files). It’s now much more usable and recognizable (Apple Finder / MS Exploder -like); intuitive file management out of the box. Check out this demo video (from ~ 1:24):

Categories: Drupal

DrupalCon News: Vote for Your Community Keynote

Planet Drupal - 7 March 2016 - 4:41pm

Come for the code, stay for the community. That’s more than a tagline for Drupal, it’s a manifesto. Having our community members bring topics to the mainstage to share with all Con attendees is an incredible way for them to contribute back and really make an impact on the Drupal community.

Thursday at DrupalCon New Orleans, we will highlight the community by showcasing a Community Keynote on the main stage. This means that someone from within the community will share their experience on stage with you about issues that you're interested in.

Categories: Drupal

Drupal @ Penn State: #ELMSLN is #git &#039;in fun with Git Book

Planet Drupal - 7 March 2016 - 3:26pm

It’s been a few months since I first mentioned the Git Book module here on DPE. I haven’t done much with it since but was able to scrape together a rather epic sprint today. Coupled with improvements to ELMSLN in general, this thing is getting close to a pretty killer workflow for book creation. The scenario we’re striving for:

Categories: Drupal

Acquia Developer Center Blog: Chris Pliakas on the Scrum Process, Working with Drupal, and What’s Next for Content Hub. Part 2 in a Series.

Planet Drupal - 7 March 2016 - 11:48am

In Part 1 of this 2-part series, Chris Pliakas, the director of Content Services Engineering at Acquia, described how he managed the Acquia Content Hub project, which was released in November, 2015. In this, the second part of the interview, he discusses the Scrum process, the benefits of working with an open source framework like Drupal, and what’s next for the Content Hub project.

Tags: acquia drupal planet
Categories: Drupal


Subscribe to As If Productions aggregator - Drupal