Planet Drupal

Subscribe to flux Planet Drupal
Drupal.org - aggregated feeds in category Planet Drupal
Mis à jour : il y a 5 min 45 sec

KnackForge: How to update Drupal 8 core?

sam, 24/03/2018 - 06:01
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
Catégories: Elsewhere

Valuebound: Drupal 8: How to create a custom block programatically

lun, 19/12/2016 - 08:33
Drupal 8: How to create a custom block programatically Jaywant.Topno Mon, 12/19/2016 - 02:33
Catégories: Elsewhere

Valuebound: Drupal 8: Custom Block Creation programmatically

lun, 19/12/2016 - 08:33
Drupal 8: Custom Block Creation programmatically Jaywant.Topno Mon, 12/19/2016 - 02:33
Catégories: Elsewhere

Drupal.org blog: What’s new on Drupal.org? - April 2016

jeu, 05/05/2016 - 23:44

Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

We'll see you at DrupalCon!

DrupalCon New Orleans is about to get underway next week, and the Drupal Association will be there to talk about some of our recent work, to collaborate with the community, and to present some exciting things that are coming soon. We'll be giving a variety of presentations as part of the Drupal.org track, so if you'll be attending DrupalCon in New Orleans, please join us!

Laissez les bon temps roulez!

Drupal 8.1.0 released

On April 20th, the Drupal core maintainers released Drupal 8.1.0. This is the first release of the new Drupal release cycle in which new features of Drupal will be released much more rapidly than during the Drupal 7 cycle. The Drupal 8.1 release includes: an experimental UI for the Migration module for migrating from Drupal 6 or 7, BigPipe for improving the perceived rendering time of Drupal 8 sites, support for JavaScript automated testing, improved support for Composer, and much more.

The Drupal Association supported the release in several ways. We updated Drupal.org to use Composer to package Drupal Core's dependencies. We updated api.drupal.org to reflect the new point release, and the development branch for 8.2.x. We also bulk updated issues opened against Drupal Core 8.1.x to be open against 8.2.x moving forward. Finally, we updated DrupalCI to support JavaScript testing with PhantomJS. As this new, faster Drupal release cycle continues, we'll continue to refine the process and tools that the core developers use to make this process more efficient.

Drupal.org updates Composer repository alpha

We're very happy to announce the alpha release of Drupal.org's Composer repositories. One of our Community Initiatives for 2016, adding Composer repositories to Drupal.org, has been a concerted effort here at the Association for the past several months. Composer is the tool for dependency management in PHP, and by using Drupal.org's Composer endpoints you can use Composer to manage Drupal modules and themes.

The Drupal.org Composer façade also handles the translation of Drupal.org versioning into the semver format that Composer needs, which should also allow the community to move forward choosing a semver format for contrib. For example, we could now fairly easily support a Platform.Major.Minor.Patch versioning scheme until the semver standard itself supports the same.

As the current release is an alpha, we don’t recommend relying on the Drupal.org Composer repositories in a production environment quite yet. If you would like to help us test the system, you can start with our documentation for the Drupal.org Composer repositories, and then leave us feedback in the Project Composer issue queue.

Our work on Composer specifically, like many of the initiatives we undertake, was made possible through the support of our generous sponsors. If you would like to sponsor our work on Drupal.org, please consider our Supporting Partner Program.

PhantomJS testing in DrupalCI

A key milestone for core developers in Drupal 8.1 was adding the ability to test the front end, by using PhantomJS for JavaScript testing. After some concerted work by dawehner, pfrenssen, alexpott, and several others on the Drupal core side, isntall here at the Drupal Association was able to get PhantomJS properly running on the DrupalCI testbots.

More work will continue to improve our ability to test the front-end, and Drupal 8 continues to be among the most thoroughly tested open source projects in the ecosystem today.

Visual design system for Drupal.org

In April, our lead designer, DyanneNova, outlined the new design system and principles we’re using in all of our work to improve Drupal.org. Our most significant undertaking is the long term restructuring of Drupal.org, which will be implemented in an iterative way as we work through the many different content areas of Drupal.org. The next area of Drupal.org to receive updates, as previewed in the post above, will be Documentation.

Documentation

In our March update, we teased some of the upcoming Documentation features, and talked about the usability testing we performed at DrupalCamp London, and in the Drupal Association office here in Portland. In April, we took our observations from the usability testing, and began implementing these new features. We'll be previewing these upcoming changes in more detail at DrupalCon New Orleans next week, so stay tuned!

Sustaining support and maintenance Infrastructure

In April, we began the build-out of a new staging infrastructure for Drupal.org, part of the continual process of upgrading and refining the tools we use to develop Drupal.org. At the same time, we've updated several of our management and automation tools to keep our stack running smoothly. Work refining our pre-production environments will continue into May.

Maintenance and Bug Fixes

No month is complete without a bit of time spent on maintenance and bug fixes. In April, we spent some time cleaning up spam on archived sites of past DrupalCons, removed unneeded comment render cache code, fixed some bugs with featured job credits on Drupal Jobs, and worked on our payment processor implementation for our European DrupalCons.

———

As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who made it possible for us to work on these projects.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

Catégories: Elsewhere

Lullabot: DrupalCon New Orleans Session Extravaganza!

jeu, 05/05/2016 - 22:00
Matt and Mike talk with a plethora of Lullabots about their sessions at DrupalCon New Orleans, what their favorite all-time DrupalCon experience was, and what sessions they’re looking forward to seeing this year.
Catégories: Elsewhere

Greg Boggs: Drupal 8 Theming Best Practices

jeu, 05/05/2016 - 21:43

The theming guide for Drupal 8 will get you started in the basics for theming a Drupal site. But, once you’ve learned the basics, what best practices should you be applying to Drupal 8 themes? There are lots of popular methods for writing and organizing CSS. The basics of CSS, of course, apply to Drupal.

  • Don’t get too specific
  • Place your CSS in the header and JavaScript in the footer
  • Organize your CSS well
  • Theme by patterns, don’t go top down
  • Preprocess your styles
Use configuration first

When it comes to Drupal, there are some common mistakes that happen when a front end developer doesn’t know Drupal. In general, apply your classes in configuration. Do not fill your Drupal theme with custom templates like you would for WordPress. Template files, especially with Twig, have their place. But, configuration should be your primary tool. My favoriate tool for applying classes is Display Suite and Block class. Panels is also good. And, fences isn’t terrible.

By applying your classes in configuration allows you to easily edit, reuse, and apply classes across every type of thing in Drupal. If you apply your classes with templates, it’s difficult to apply them across different types of content without cutting and pasting your code. However, don’t be afraid to use some presentational logic in your Twig templates.

Be careful what you target

In Drupal, there are many times where the only selector you have that will work is an ID. If you have this problem, Don’t use it! Never, ever, ever, apply your CSS with ids in Drupal. This is true for every framework, but in Drupal it’s a bigger problem because IDs are not reusable, they are hard to set, and they often change. A backend developer will not be able to apply your styles to other items without fixing your CSS for you. Don’t write CSS that you know a PHP programmer will have to rewrite because you don’t want your PHP programmer writing CSS.

Use view modes

Make sure to target your styles to reusable elements. So, avoid node types because those aren’t reusable on other nodes. Instead, use view modes and configuration to apply selectors as you need them.

Avoid machine names

This relates back to avoiding IDs. Machine names in Drupal sometimes need to change, and they are not reusable. So, don’t target them. Instead use view css, block class and configuration to apply classes to your content.

Don’t get too specific

Drupal 8 markup is better, but Drupal is still very verbose. Don’t get sucked in by Drupal’s divs. Only get as specific as you need to be. Don’t replicate Drupal’s HTML in your CSS.

Apply a grid to Drupal

Choose a grid system that allows you to apply the grid to any markup like Singularity or Neat. While you certainly can Bootstrap Drupal. Using Bootstrap on Drupal requires a heavy rewrite of the HTML which will break contributed modules like Drupal Commerce in obscure, hard to fix ways.

Use a breadcrumb module

Do not write advanced business logic into your theme templates. If your theme is programming complex features, move that code to a module. Or, install modules like Current Page Crumb, or Advanced Agg to handle more complex functions. This isn’t WordPress, your theme shouldn’t ship with a custom version of Panels.

Don’t hard code layouts

Use {{ content }} in your templates and let the View Modes, Display Suite, or Panels handle your layouts.

Don’t use template.php

If you need some ‘glue’, write or find a module meant for it. Drupal is built by many, many tiny modules. Learn to love it because well-written modules are reusable, maintained for free and always improving. Custom code dropped into your theme makes for hard to maintain code.

Catégories: Elsewhere

Four Kitchens: DrupalCon New Orleans 2016

jeu, 05/05/2016 - 21:00

We’re packing up our green gear and heading to the Big Easy for DrupalCon 2016! …

Catégories: Elsewhere

Palantir: It's here: Workbench for Drupal 8

jeu, 05/05/2016 - 18:00

In Dries’ latest blog post about the state of Drupal 8 adoption, he mentions the results of a survey of 1,800 people. The number one reason that people haven’t upgraded to Drupal 8 yet is availability of modules.

Feature readiness is a critical topic for agencies and clients alike. At Palantir, it particularly affects the Workbench series of modules. We developed Workbench for Drupal 7 to address a set of common editorial problems:

  • An editorial workspace customized for each editor, which shows what work needs to be done next.
  • A draft-revision-published workflow.
  • Review states that require permission to publish content.
  • The ability to create a new “forward revision” waiting for approval while retaining the published version.
  • An extensible, consistent workflow system.
  • Access controls that grant access to specific sections of a website using a hierarchy that maps to an organization chart.

The modules are a cornerstone of every site we build in Drupal 7 – and many that we don’t.

We're happy to report that Workbench is available for Drupal 8.

We receive emails and calls often inquiring about the state of Workbench in Drupal 8; folks in government, higher education, nonprofits, and media all use Workbench. It's a testament to the module suite, and how vital it has been to countless organizations over the years, regardless of industry. In fact, our own Director of Production Scott DiPerna used to run digital at our client Barnard College, and used Workbench extensively:

"Another difficult, though probably common, requirement dealt with access and permissions. With 40-plus academic departments and roughly 200 regular editors of the overall website, Barnard's permissions needs don't fall neatly along the lines of traditional Drupal publishing rights.

For this reason, we needed a system that could handle granular levels of access to particular pieces of content, such that an editor could have access to edit one sibling and its children, but not all siblings of the first.

The Workbench module developed by Palantir handles these needs well by using a hierarchical vocabulary to set levels of access for each piece of content."

Scott is right: the module addresses a common need. So common, in fact, that our partner Acquia has included Workbench as part of its new author-focused Lightning distribution for Drupal 8.

Want to learn more about Workbench for Drupal 8? We're hosting a free webinar on May 24th at 1:00pm CDT, and would love for you to join us. What is Workbench?

Workbench is made up of three essential modules, which provide the functionality listed above. Here’s is an update on the current status of each.

Workbench Moderation
Thanks to a grant from the Module Acceleration Program at Acquia, and the work of the content staging group, Workbench Moderation has a stable release. We’ll be talking about that process at DrupalCON, too. The work we’ve been doing in this space also factors in to Dries’ call for better content authoring tools, so expect to see more from us in this space.

Workbench Access
We’ve been working on access controls for a very long time. (Over 10 years.) Our priority for Drupal 8 has been on moderation, so access is a bit of a side project. You can download pre-alpha code from https://github.com/agentrickard/workbench_access and see the list of required features at https://github.com/agentrickard/workbench_access/issues. The good news, however, is that we’re actively testing the module on a client project, so we expect a stable release by midsummer.

Workbench
The core Workbench module is largely a collection of custom Views that create dashboards for content editors. With Views in core, this module is less critical now, and we’ve made sure that both Workbench Moderation and Workbench Access provide Views support. So you can roll your own dashboards for now while we decide on the architecture for how to provide these as a default module.

Ken Rickard is the product owner and one of the original architects of the Workbench module suite. He’ll be at DrupalCON next week, so drop us a line or come by booth 222 if you’d like to chat.

We're closer than ever on the remaining modules, so if you'd like to play an integral part in the development of these important modules as a funding partner, let's talk.
Catégories: Elsewhere

ThinkShout: See You in the Big Easy

jeu, 05/05/2016 - 17:00

Next week, nine of us will ship out to New Orleans for DrupalCon. As excited as we are to finally enjoy an authentic beignet and explore the French Quarter, the real draw here is the opportunity to once again catch up with our friends and collaborators in the Drupal community.

We’ve been hard at work preparing our presentations and lining up BoF schedules, and putting those finishing touches on our booth. All that’s missing is you! We have five short days to see what all DrupalCon has to offer, and meet everyone we want to meet. Can we do it? Two words: Challenge accepted.

As always, if you’re reading this and you plan on attending DrupalCon, too, we want to meet you! Here’s what we’ve got lined up.

Exhibit Hall

This year, booth 216 is the ThinkShout headquarters! Rest assured, we brought the swag. Shirts, socks, and MailChimp hats await you, so be sure to stop by and grab one before they’re all gone! We’ll also be raffling off another BB-8. All you have to do is sign up for our newsletter by dropping off a business card. Painless, right?

We’ll also be on the lookout for folks interested in pursuing the senior engineer position we recently listed, so if you think you might be a good fit for the position and you’ll be at DrupalCon, then let’s chat! Drop us a line and we’ll set up a time to get to know each other a little better. Or just show up - that’s fine too.

ThinkShout Sessions

Content Strategy in Pop Culture” - Wednesday (5/11), 1:00pm - 2:00pm

Join Brett Meyer for an unconventional look at content strategy through a pop culture lens. Draw parallels between the information you consume every day and the sites you build, and have a little fun while doing it!

The Story of Successful Drupal Integrations in 3 Acts” - Thursday (5/12), 10:45am - 11:45am

Lev Tsypin will share the stories of the MailChimp, iATS Payments, and Salesforce Drupal integrations, and share some insight into how to be successful when setting out to integrate Drupal with other third party systems.

Birds of a Feather (BoF) Discussions

Our team has three birds of a feather discussions planned on the Tuesday of DrupalCon, so mark your calendars and join the conversation!

Fundraising in Drupal” - Tuesday (5/10), 11:00am - 12:00pm

Static Fanatic: Tips on Developing Static Sites” - Tuesday (5/10), 11:00am - 12:00pm

Event Registration in Drupal” - Tuesday (5/10), 3:45pm - 4:45pm

Of course, we also plan on checking out the many wonderful social events that DrupalCon has in store in the evenings, so there’s a good chance you’ll see us there as well! It’s going to be a jam-packed week, and we can’t wait. As always, we’re looking forward to catching lots of sessions, brushing up on trends, and learning new things. We hope to see you there!

Catégories: Elsewhere

Acquia Developer Center Blog: Free Advanced Acquia Academy Courses on Lift: Personalization, User Interface, and Best Practices

jeu, 05/05/2016 - 15:23

Acquia Academy is filled with courses to help our community, customers, and partners build amazing digital experiences. Our goal is to advance learners for the next challenge, no matter if they are leading front-end developers, or want-to-be leading developers.

For instance, Acquia Lift enables developers to create dynamic and targeted site personalization campaigns. We have the tools to bring any audience up to speed.

Tags: acquia drupal planet
Catégories: Elsewhere

KnackForge: How to delete an order if the order is in cart for N days

jeu, 05/05/2016 - 11:45
How to delete an order if the order is in cart for N days

In drupal commerce, the order will be created when a product is added to cart and the order will exist until the order is deleted or order status is changed to completed.

We have an e-commerce site in which most of the orders are idle in the shopping cart. So we decided to delete the order if the order is in the shopping cart for more than 'N' days or weeks. I have written a custom drush command for deleting the order.

The following code is used to delete an order if it is in the cart for more than 25 days.
 

Thu, 05/05/2016 - 15:15
Catégories: Elsewhere

NEWMEDIA: DrupalCon Supports Women in Tech

jeu, 05/05/2016 - 11:10
DrupalCon Supports Women in Tech The Drupal Community allows developers and users to join forces to share and grow their Drupal skills during a three-times-a-year, weeklong conference. Fortunately, DrupalCon also is growing the presence of women at these meetups—not only as attendees but as leaders. Jennifer Forker Thu, 05/05/2016 - 09:10

DrupalCon New Orleans will do what every DrupalCon does: showcase improvements to the Drupal platform in a collaborative, social atmosphere. Drupal is made stronger this way, as those who develop, use and support the Drupal platform converge in one location to do what the Drupal community does best: share openly and creatively. As the Drupal Association, which organizes each DrupalCon, says, attendees “come for the software, stay for the community.” 

At least 21 percent of the more than 3,000 attendees expected to attend DrupalCon in May identify as women and 19 percent of speakers are female—a slight uptick from past conferences, according to Drupal Association Events Manager Rachel Friesen. 

Two of the women who’ll be at DrupalCon are from newmedia—thanks to the creation of the Project Managers track, a first for a North American DrupalCon. Associate Project Manager Naomi Wells is looking forward to learning more about Drupal-focused project management. 

“You can learn project management from so many angles,” says Wells, “but this is Drupal specific, and that’s what’s exciting to me. This is the industry I’m in.”

Wells and Senior Project Manager Rachel Rosenblum will join Karyn Cassio, a Drupal software and DevOps engineer for the University of Colorado, Boulder, who regularly attends DrupalCon and is co-leading a session about diversity and inclusion at the upcoming conference. 

“Of course, I think there needs to be more women at these, but most tech conferences have female attendance numbers at around 7 percent,” says Cassio, “so our DrupalCon numbers are looking pretty good.” 

DrupalCon welcomes its female participants with a Women in Drupal event early in the conference that’s open to women, trans individuals, anyone who identifies outside of the “gender binary,” and allies. The social hour provides connections so attendees need not wander the conference halls lonely. “Our goal is to foster inclusivity and embrace the involvement of individuals across the gender spectrum,” says the DrupalCon website. 

Cassio looks forward to connecting with other women at DrupalCon—in part because there are so few female Drupal engineers in Colorado—but she’d like to see more women working in Drupal and in tech industries across the board.

“Women are good at this. We often think about a problem differently. And because it’s so male-dominated, women and our work are sometimes misunderstood,” says Cassio.

That’s where DrupalCon comes in. Fostering community and building lifelong connections is the DrupalCon mission for all those who attend. 

And newmedia supports that mission. 

We’ve been designing and developing websites for more than 20 years, growing to include a 47-person workforce that’s nearly equally male and female. 

“It comes down to the individual,” says newmedia Chief Technology Officer Kevin Bridges. “We hire people who want to work hard, are motivated and want to learn, then we help them grow to do that. A lot of our members grow beyond the jobs they were hired to do.” 

Bridges, a Drupal contributor since 2004, has been involved in the greater development community for more than 20 years—at Acquia and Bonnier Corp.—before joining newmedia three years ago. He helped craft DrupalCon content for years as a DevOps or coder track chair (these are the folks who make sure DrupalCon sessions are bleeding edge and engaging); he helped bring DrupalCon to Denver in 2012.

Bridges and newmedia know the industry is booming: At newmedia, we have more than a dozen jobs open, including for website developers, designers, site builders and engineers.  

There’s no end in sight to the tech boom in Denver or elsewhere in the United States. The U.S. Bureau of Labor Statistics predicts that computer and information technology jobs will grow by an additional 1.4 million positions from 2014 to 2024—due in part to cloud computing, big data storage and demand for mobile computing. Demand will be greatest for software developers, support technicians and systems analysts—jobs accompanied by decent wages. 

Already, filling our tech positions—from the big companies to small shops—is big news around the country. I know from my own perch at newmedia that C-level executives talk about how to attract the highly talented and skilled employees needed to get our burgeoning work done. I’ve received a handful of queries from newspaper reporters in the past month—all seeking input for a “tech hiring practices” story. 

With the tech industry booming and more jobs coming down the pipeline, we need to beseech more women to enter the computing and software development ranks. That means encouraging middle and high school girls to take computer classes. Get that Drupal drive started young. 

“We need to teach our kids, and especially our girls, that in computing, you’re learning something new every day,” says Cassio. “It’s figuring out the best way, the most efficient way, to do something ... I love that I’ll never stop growing; that to me is super exciting.” 

At newmedia, colleagues have equal participation in professional and personal growth opportunities. Individuals have initiated well-attended, after-work JavaScript tutorials, and we attend tech-oriented meetups such as those hosted by SheSays Denver. Several of us non-developer types are learning how to use Drupal. It harkens back to that newmedia drive to learn, innovate and grow: Staff are encouraged to stretch beyond our abilities into new terrain. 

“For some people, the non-stop learning is the hook,” Bridges says. “You’re never a total expert in your field. If anyone says ‘I know it all,’ they’re kidding themselves.” 

Look for continued talk about how the Drupal Community may become more inclusive—encouraging more minorities and women to enter the Drupal-sphere—during Cassio’s session and throughout DrupalCon when it convenes May 9. 

“Being an ally will make all of us better developers,” says Cassio. “Because we learn code from one another, but we also learn more about ourselves—we stretch ourselves—when we work side by side with those we think are different.” 

Catégories: Elsewhere

Drupal Bits at Web-Dev: Deploy or Import Drupal Redirects with Hook Update Deploy Tools

jeu, 05/05/2016 - 03:42

The Hook Update Deploy Tools module  can now programatically import a list of redirects in a hook_update_N().  The redirect list comes from a csv text file that lists old-path, new-path on each line.  Running the import in an update hook is as simple as something like this:

<?php
 
/**
 * Import Redirects for section A.
 */
function abc_migration_update_7004() {
  $message = HookUpdateDeployTools\Redirects::import('section-a');
  return $message;
}
?>

 

As with all the other things that Hook Update Deploy Tools can import, there is a focus on feedback, so you get a report of each line of the import as to which redirects were created, which were skipped due to being an infinite loop, a redirect of the home page, or already existing.  It also watchdogs a summary of the imports.   The import file containing the list of redirects can be saved in:

  • a Feature that controls redirects
  • a custom deploy module
  • a custom migrate module

As a bonus, the same redirect import logic that can be run in a hook_update_N can also be run through an import UI that Hook Update Deploy Tools makes available.

The logic of the redirects import correctly accounts for fragments (#) and queries (?) as well as some faulty URLs.

If you are using hook_update_N's to deploy your site changes and you aren't using Hook Update Deploy Tools, you should be.

Catégories: Elsewhere

alimac.io: Mentoring at DrupalCon

jeu, 05/05/2016 - 02:00
Mentoring at DrupalCon New Orleans DrupalCon New Orleans is next week. There will be sessions, trainings, social events, hallway tracks and more. The work on Drupal never stops. Bookending DrupalCon, there will be extended sprints and each day of the week there will be a sprint space at the venue open to all contributors, culminating with the big Friday Sprint (Friday the 13th, what could go wrong?). But wait... what is a sprint anyway? A sprint is a get-together for focused work on a project. Sprints ...
Catégories: Elsewhere

Evolving Web: Speed up Drupal 8 block rendering with Blackfire.io

mer, 04/05/2016 - 23:02

We noticed Evolving Web's shiny new Drupal 8-powered blog was loading slower than in D7, and using the blackfire.io PHP profiler we were able to narrow down the bottleneck to Drupal 8's block visibility approach.

read more
Catégories: Elsewhere

Commercial Progression: Drupal + Grunt + Browsersync: Part 2

mer, 04/05/2016 - 20:26

This is part 2 of this blog series. Part 1 covers setting up Grunt and Browsersync, this part will focus on expanding what we created in part 1. It will focus on adding image compression to our Grunt setup. The methods used for image compression aren’t super important but setting up a watcher and using the newer Grunt plugin can be useful for many other things.

Compressing images

One of the things I often forget to do or don’t have the time to do manually, is compress images. By adding this to Grunt we don’t have to remember, it will do the work for us.

Imagemin

Let’s add this in:

npm install grunt-contrib-imagemin --save-dev

You can read more about what imagemin does here:

https://github.com/gruntjs/grunt-contrib-imagemin


We’ll need to add this to our Gruntfile.js to load the plugin:

grunt.loadNpmTasks('grunt-contrib-imagemin');

Next we’ll add an entry to be able to run the image compression:

  1. imagemin: {
  2. dist: {
  3. files: [{
  4. expand: true,
  5. cwd: 'images/source/',
  6. src: ['**/*.{png,jpg,gif,svg}'],
  7. dest: 'images/optimized/'
  8. }]
  9. }
  10. }

This will find any images found in the images/source directory and output a compressed version to the images/optimized. Make sure these directories are created and have appropriate file permissions so Grunt can read and write to them.

We need to tell Grunt to run our imagemin entry. In the terminal enter:

grunt imagemin

This should do what we wanted and compress all the images in images/source. This is nice, but it isn’t that automatic. It would be great if Grunt could just watch that directory and compress any image we place there without us telling it to.

Watcher

We’ll add a watcher to do that:

npm install grunt-contrib-watch --save-dev

We can set the watcher to watch anything we want. In this case we’ll have it watch the images/source directory for any new files and run our imagemin entry when it detects a change.

Let’s add our watch entry into our Gruntfile.js:

  1. watch: {
  2. images: {
  3. files: ['images/source/*.{png,jpg,gif,svg}'],
  4. tasks: ['imagemin']
  5. }
  6. },

Don’t forget to load the task by adding this:

grunt.loadNpmTasks('grunt-contrib-watch');

If you are following along from part 1 you will need to adjust your Browsersync entry a bit, the following line just above the injectChanges: false line in your Browsersync entry:

watchTask: true,

You’ll also need to adjust the grunt.registerTask at the bottom of the file to:

grunt.registerTask('default', ['browserSync', 'watch']);

This way both our watcher and browsersync can properly do their jobs.

Now when we simply run:

grunt

Our watcher and browsersync both fire up ready to work! Adding an image into images/source will trigger our imagemin job and compress all the images. This is much better, but there is still a problem. It is compressing every image in the folder! It would be preferred if it only compressed newly detected images to save time. Why compress every image every time we add a new one?

Newer

We’ll use a plugin called newer to solve this issue. The image compression is a good way to showcase this, but it can be used in all type of situations.

Let’s install the newer plugin:

npm install grunt-newer --save-dev

Let’s register the plugin in our Gruntfile.js:

grunt.loadNpmTasks('grunt-newer');

It’s very simple to use newer with our image watcher, simply adjust this in our watcher:

tasks: ['newer:imagemin']

Restart Grunt and try it out, it should only compress new files and leave the existing ones alone saving a lot of time.

This will conclude part 2 of the series. I plan on making more, we’ll cover SASS, a cool Drush plugin that can auto clear the caches for you when you change a template file, and testing mobile devices with Browsersync.

Catégories: Elsewhere

Appnovation Technologies: Creating Tree Data Structure in Drupal

mer, 04/05/2016 - 20:07

Sometimes you don’t want to use taxonomy for a building node structures of a tree, as it creates huge problems when you're trying to export them as features and involves things like UUID which is not perfect yet.

Catégories: Elsewhere

Hook 42: Hook 42's Sessions, BoFs, and Events at DrupalCon New Orleans

mer, 04/05/2016 - 18:56
Wednesday, May 4, 2016   Look out New Orleans, here we come!

We will be focused on a lot of topics in New Orleans including multilingual, SEO, project management, and teaching. If you are interested in all the multilingual happenings, check out the schedule of events. We hope to see you at a session, sprint, BoF, or after party!

BoFs

Teaching Drupal to Kids & Teens

Tuesday May 10th from 1pm to 2pm Kristen Pol  |  Room 292

We'll be sharing resources and ideas on how to approach teaching the next generation Drupal. This BoF will be on Google Hangouts for remote participation.

Drupal & SEO

Tuesday May 10th from 2:15pm to 3:15pm  |  Aimee Degnan  |  Room 286

We'll be sharing tips and tricks and best practices on search engine optimization including module usage and content strategy.

Sessions

The Multilingual Makeover: A side-by-side comparison of Drupal 7 and Drupal 8

Wednesday May 11th from 5pm to 6pm  |  Aimee Degnan & Kristen Pol  |  Room 260-261

If you create multilingual websites or are interested in what's all the hub-bub on how Drupal 8 is so much better than Drupal 7 for language support and translation, come check out this beginner-friendly session. If you find us after the talk, we'll give you some multilingual Drupal stickers. :)

I'm a Scrumberjack and I'm OK! Prioritizing Your Scrum Product Backlog for Drupal Work

Thursday May 12th from 10:45am to 11:45am  |  Aimee Degnan  |  Room 265-266

Drupal projects need to be managed sanely like all other software development projects. This session with give you some well-seasoned advice on using Scrum and business prioritization techniques to chop your backlog into manageable pieces.

Where's the fire? AKA: My site is down... now what?

Thursday May 12th from 2:15pm to 3:15pm Kristen Pol  |  Room 274

If you are on the hook when your site goes down or has an "emergency", you'll want to come to this session for tools, tips, and firefighting techniques that will make you sleep better at night.

Events

We are very happy to be sponsoring the Women in Drupal event again this year!

Tuesday May 10th from 6:30pm to 8:30pm at Gravier Street Social

This is a fun, casual, and supportive place to hang out with new and old Drupal friends. We hope to see you there!

  Swag

We'll have a number of our fun Drupal doodles stickers on hand: some tried and true like the multilingual "hello" Druplicon, as well as some fun new ones created especially for DrupalCon like the Drupal party-gator and spooooooooooky Drupal cemetery. Get a sneak peek at the new designs and read what we are excited about for New Orleans.

If you see one of us in the halls, let us know if you'd like some sticker swag. We'll also give them out at the Women in Drupal event and leave some at Booth 501 in the exhibit hall.

Laissez les bon temps rouler! Aimee Degnan Kristen Pol Topics: Services:
Catégories: Elsewhere

FFW Agency: Simplify local development with Drude

mer, 04/05/2016 - 17:16
Simplify local development with Drude David Hernandez Wed, 05/04/2016 - 15:16

As one of the largest Drupal agencies in the world FFW is no stranger to problems of scale. With large numbers of technical staff, clients, and concurrent projects, workflow management is vitally important to our work. And to deliver projects on time, while managing resources with agility, consistency and simplicity in the tools we choose plays a huge part.

When there are no standards for the tools a team uses (OS, editor, server, php version, etc.) dealing with the toolset adds unnecessary overhead that can eat away development time. You'll quickly find that setting up projects, on-boarding developers, troubleshooting, and even training all become more difficult as you deal with larger projects, larger teams, and more complex requirements.

To help solve these problems FFW created Drude.

What is Drude?

Drude (Drupal Development Environment) is a management tool for defining and managing development environments. It brings together common development tools, minimizes configuration, and ensures environment consistancy everywhere in your continuous integration worlflow. It automatically configures each project's environment to ensure team members are using the same tools, and versions, regardless of the individual requirements for each project. Most importantly, it makes the entire process easy.

With Drude you get fully containerized environments with Docker, cross-platform support (MacOS, Windows, and Linux,) built-in tools like drush, Drupal Console, composer, and PHP Code Sniffer, plug and play services like Apache Solr, Varnish, and Memcache, and even built-in testing support using Behat and Selenium. Drude will even automatically configure virtual hosts for you, so no more editing host files and server configurations.

With all of this you also get a management tool, which is the heart of Drude. dsh is a command line tool for controlling all aspects of your project's environment. You can use it to stop and start containers, interact with the host virtual machine, use drush and console to execute commands directly against your Drupal sites, and manage the installation and updating of projects.

Let's see how this works

Download the Drude shell command

​sudo curl -L https://raw.githubusercontent.com/blinkreaction/drude/master/bin/dsh -o /usr/local/bin/dsh sudo chmod +x /usr/local/bin/dsh

You can now use the dsh command.  Use it to install prerequisites, which includes Docker, Vagrant, and VirtualBox.

dsh install prerequisites
dsh install boot2docker

These are all one-time steps for setting up Drude. Now that's done, you only need to set up individual projects. To demonstrate how this works we have Drupal 7 and 8 test projects available. Check their GitHub pages for additional setup instructions, in case the below instructions don’t work for you.

https://github.com/blinkreaction/drude-d7-testing
https://github.com/blinkreaction/drude-d8-testing

Setting up a project.

Clone the Drupal 8 test project.

git clone https://github.com/blinkreaction/drude-d8-testing.git
cd drude-d8-testing

Use the init command to initialize local settings and install the Drupal site via Drush.

dsh init

Starting containers...
Creating druded8testing_db_1
Creating druded8testing_cli_1
Creating druded8testing_web_1
...
Installing site...
Installation complete.
User name: admin User password: 5r58daY2vZ [ok]
Congratulations, you installed Drupal!
[status]
real 1m18.139s
user 0m0.300s
sys 0m0.174s
...
Open http://drupal8.drude in your browser to verify the setup.

The init script automates provisioning, which can be modified per project. It can initialize settings for provisioned services, import databases, install sites, compile Sass, revert features, enable or disable modules, run Behat tests, and many other things.

Now, simply point your browser to http://drupal8.drude

That’s it! Any time a team member wants to participate in a project all they have to do is download the project repo and run the init command. And with the environments containerized, they can be deployed anywhere.

Why publicize all this?

Clearly, we've put in a lot of work building a great tool. One that we could easily keep to ourselves. Well, at FFW we are huge supporters of open-source. As one of the main supporters of the Drupal Console project, and a major supporter of Drupal, we believe that benefiting the community as a whole benefits us exponentially in return. We encourage anyone to use this tool, provide feedback, and even contribute to the project.

Tagged with Comments
Catégories: Elsewhere

Acquia Developer Center Blog: Both Sides Now: What I Learned When I Jumped from the Supplier Side to the Client Side on the Same Project

mer, 04/05/2016 - 16:51

Shortly after graduating, I found myself an internship with miggle, a UK-based Web development specialist that uses Drupal exclusively.

As a web production assistant, my primary role required me to look after the latter stages of a new website rebuild for an organization in the education sector.

Tags: acquia drupal planet
Catégories: Elsewhere

Pages