Elsewhere

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

Planet Drupal - Thu, 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
Categories: Elsewhere

NEWMEDIA: DrupalCon Supports Women in Tech

Planet Drupal - Thu, 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.” 

Categories: Elsewhere

alimac.io: Mentoring at DrupalCon

Planet Drupal - Thu, 05/05/2016 - 07: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 ...
Categories: Elsewhere

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

Planet Drupal - Thu, 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.

Categories: Elsewhere

alimac.io: Mentoring at DrupalCon

Planet Drupal - Thu, 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 ...
Categories: Elsewhere

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

Planet Drupal - Wed, 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
Categories: Elsewhere

Commercial Progression: Drupal + Grunt + Browsersync: Part 2

Planet Drupal - Wed, 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.

Categories: Elsewhere

Appnovation Technologies: Creating Tree Data Structure in Drupal

Planet Drupal - Wed, 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.

Categories: Elsewhere

Pages

Subscribe to jfhovinne aggregator - Elsewhere