Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 30 min ago

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

Thu, 05/05/2016 - 11:45
span data-quickedit-field-id=node/348/title/en/rss class=field field--name-title field--type-string field--label-hiddenHow to delete an order if the order is in cart for N days/span div data-quickedit-field-id=node/348/body/en/rss class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempIn 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./p pWe 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./p pThe following code is used to delete an order if it is in the cart for more than 25 days.br /  /p/div span data-quickedit-field-id=node/348/uid/en/rss class=field field--name-uid field--type-entity-reference field--label-hiddena title=View blogs by Vamsi. href=http://knackforge.com/blog/Vamsi lang= about=/vamsi typeof=schema:Person property=schema:name datatype= itemprop=url rel=author class=usernameVamsi/a/span span data-quickedit-field-id=node/348/created/en/rss class=field field--name-created field--type-created field--label-hiddenThu, 05/05/2016 - 15:15/span span class=a2a_kit a2a_kit_size_32 addtoany_list data-a2a-url=http://knackforge.com/blog/vamsi/how-delete-order-if-order-cart-n-days data-a2a-title=How to delete an order if the order is in cart for N daysa class=a2a_dd addtoany_share_save href=https://www.addtoany.com/share#url=http%3A%2F%2Fknackforge.com%2Fblog%2Fvamsi%2Fhow-delete-order-if-order-cart-n-daysamp;title=How%20to%20delete%20an%20order%20if%20the%20order%20is%20in%20cart%20for%20N%20days/aa class=a2a_button_facebook/a a class=a2a_button_twitter /a a class=a2a_button_google_plus/a a class=a2a_button_linkedin /a a class=a2a_button_pinterest /a/span

NEWMEDIA: DrupalCon Supports Women in Tech

Thu, 05/05/2016 - 11:10
span data-quickedit-field-id=node/199/title/en/rss class=field field--name-title field--type-string field--label-hiddenDrupalCon Supports Women in Tech /span div data-quickedit-field-id=node/199/field_intro/en/rss class=field field--name-field-intro field--type-string-long field--label-hidden field__itemThe 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./div span data-quickedit-field-id=node/199/uid/en/rss class=field field--name-uid field--type-entity-reference field--label-hiddena title=View user profile. href=/user/jennifer-forker lang= about=/user/jennifer-forker typeof=schema:Person property=schema:name datatype= class=usernameJennifer Forker/a/span span data-quickedit-field-id=node/199/created/en/rss class=field field--name-created field--type-created field--label-hiddenThu, 05/05/2016 - 09:10/span div data-quickedit-field-id=node/199/body/en/rss class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempimg alt=Image of DrupalCon 2016 New Orleans Logo data-entity-type=file data-entity-uuid=a5b2d191-fe9b-4291-8912-18f2962f2620 src=/sites/default/files/inline-images/drupalcon-new-orleans.png //p pa href=https://events.drupal.org/neworleans2016 target=_blankDrupalCon/a 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.” /p pAt 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. /p pTwo 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 a href=https://www.newmediadenver.com/user/naomi-wellsNaomi Wells/a is looking forward to learning more about Drupal-focused project management. /p p“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.”/p pWells and Senior Project Manager a href=https://www.newmediadenver.com/rachel-rosenblumRachel Rosenblum/a will join a href=https://www.drupal.org/user/298852 target=_blankKaryn Cassio/a, 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. /p p“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.” /p pDrupalCon 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. /p pCassio 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./p p“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./p pThat’s where DrupalCon comes in. Fostering community and building lifelong connections is the DrupalCon mission for all those who attend. /p pAnd newmedia supports that mission. /p pWe’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. /p p“It comes down to the individual,” says newmedia Chief Technology Officer a href=https://www.newmediadenver.com/user/kevin-bridgesKevin Bridges/a. “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.” /p pBridges, 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./p pBridges 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.  /p pThere’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. /p pAlready, 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. /p pWith 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. /p p“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.” /p pAt 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. /p p“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.” /p pLook 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. /p p“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.” /p /div

alimac.io: Mentoring at DrupalCon

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 ...

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

Thu, 05/05/2016 - 03:42
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThe a href=https://www.drupal.org/project/hook_update_deploy_tools target=_blankHook Update Deploy Tools/a module nbsp;can now programatically import a list of redirects in anbsp;hook_update_N(). nbsp;The redirect list comes from a csv text file that lists old-path, new-path on each line. nbsp;Running the import in an update hook is as simple as something like this:/p div class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr /nbsp;br //spanspan style=color: #FF8000/**br /nbsp;* Import Redirects for section A.br /nbsp;*/br //spanspan style=color: #007700function /spanspan style=color: #0000BBabc_migration_update_7004/spanspan style=color: #007700() {br /nbsp; /spanspan style=color: #0000BB$message /spanspan style=color: #007700= /spanspan style=color: #0000BBHookUpdateDeployTools/spanspan style=color: #007700\/spanspan style=color: #0000BBRedirects/spanspan style=color: #007700::/spanspan style=color: #0000BBimport/spanspan style=color: #007700(/spanspan style=color: #DD0000'section-a'/spanspan style=color: #007700);br /nbsp; return /spanspan style=color: #0000BB$message/spanspan style=color: #007700;br /}br //spanspan style=color: #0000BB?gt;/span/span/code/div pnbsp;/p pAs 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. nbsp;It also watchdogs a summary of the imports. nbsp;nbsp;The import file containing the list of redirects can be saved in:/p ul lia Feature that controls redirects/li lia custom deploy module/li lia custom migrate module/li /ul pAs 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./p pimg alt=Hook Update Deploy Tools Redirect import user interface src=http://web-dev.wirt.us/sites/web-dev.wirt.us/files/hudt-redirect-import-ui.png style=border-style:solid; border-width:1px; height:530px; margin-bottom:5px; margin-top:5px; width:875px //p pThe logic of the redirects import correctly accounts for fragments (#) and queries (?) as well as some faulty URLs./p pIf you are using hook_update_N's to deploy your site changes and you aren't using a href=https://www.drupal.org/project/hook_update_deploy_tools target=_blankHook Update Deploy Tools/a, you should be./p /div/div/div

alimac.io: Mentoring at DrupalCon

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 ...

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

Wed, 05/04/2016 - 23:02
a href=https://evolvingweb.ca/%20%20___ img src=https://evolvingweb.ca/sites/default/files/styles/medium/public/2016-05/drupal-8-timer.png?itok=MkXOGzGE width=220 height=73 alt=Hand holding stopwatch that says DRPL8 typeof=Image class=img-responsive / /apWe 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./p a href=https://evolvingweb.ca/blog/speed-up-drupal-8-block-rendering-blackfire-io hreflang=enread more/a

Commercial Progression: Drupal + Grunt + Browsersync: Part 2

Wed, 05/04/2016 - 20:26
div class=field field-name-field-blog-image field-type-image field-label-hidden div class=field-items div class=field-item evena href=https://www.commercialprogression.com/sites/default/files/drupal_grunt_browsersync_blogheader.jpgimg src=https://www.commercialprogression.com/sites/default/files/styles/large/public/drupal_grunt_browsersync_blogheader.jpg?itok=alU5thnR width=480 height=225 alt= //a/div /div /div div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div class=field-item evenp dir=ltrThis is part 2 of this blog series. a href=http://www.commercialprogression.com/post/drupal-grunt-browsersyncPart 1/a covers setting up Grunt and Browsersync, this part will focus on expanding what we created in a href=http://www.commercialprogression.com/post/drupal-grunt-browsersyncpart 1/a. 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./p h2Compressing images/h2 p dir=ltrOne 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./p h2 dir=ltrImagemin/h2 pLet’s add this in:/p pspan class=geshifiltercode class=text geshifilter-textnpm install grunt-contrib-imagemin --save-dev/code/span/p pYou can read more about what imagemin does here:/p p dir=ltra href=https://github.com/gruntjs/grunt-contrib-imageminhttps://github.com/gruntjs/grunt-contrib-imagemin/a/p pbr /We’ll need to add this to our Gruntfile.js to load the plugin:/p pspan class=geshifiltercode class=text geshifilter-textgrunt.loadNpmTasks('grunt-contrib-imagemin');/code/span/p pNext we’ll add an entry to be able to run the image compression:/p p/pdiv class=geshifilterdiv class=text geshifilter-textolli class=li1pre class=de1imagemin: {/pre/lili class=li1pre class=de1 dist: {/pre/lili class=li1pre class=de1 files: [{/pre/lili class=li1pre class=de1 expand: true,/pre/lili class=li1pre class=de1 cwd: 'images/source/',/pre/lili class=li1pre class=de1 src: ['**/*.{png,jpg,gif,svg}'],/pre/lili class=li1pre class=de1 dest: 'images/optimized/'/pre/lili class=li1pre class=de1 }]/pre/lili class=li1pre class=de1 }/pre/lili class=li1pre class=de1 }/pre/li/ol/div/div pThis 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./p pWe need to tell Grunt to run our imagemin entry. In the terminal enter:/p pspan class=geshifiltercode class=text geshifilter-textgrunt imagemin/code/span/p pThis 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./p h2Watcher/h2 pWe’ll add a watcher to do that:/p pspan class=geshifiltercode class=text geshifilter-textnpm install grunt-contrib-watch --save-dev/code/span/p pWe 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./p pLet’s add our watch entry into our Gruntfile.js:/p p/pdiv class=geshifilterdiv class=text geshifilter-textolli class=li1pre class=de1watch: {/pre/lili class=li1pre class=de1 images: {/pre/lili class=li1pre class=de1 files: ['images/source/*.{png,jpg,gif,svg}'],/pre/lili class=li1pre class=de1 tasks: ['imagemin']/pre/lili class=li1pre class=de1 }/pre/lili class=li1pre class=de1},/pre/li/ol/div/div pDon’t forget to load the task by adding this:/p pspan class=geshifiltercode class=text geshifilter-textgrunt.loadNpmTasks('grunt-contrib-watch');/code/span/p pIf 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:/p pspan class=geshifiltercode class=text geshifilter-textwatchTask: true,/code/span/p pYou’ll also need to adjust the grunt.registerTask at the bottom of the file to:/p pspan class=geshifiltercode class=text geshifilter-textgrunt.registerTask('default', ['browserSync', 'watch']);/code/span/p pThis way both our watcher and browsersync can properly do their jobs./p pNow when we simply run:/p pspan class=geshifiltercode class=text geshifilter-textgrunt/code/span/p pOur watcher and a href=https://www.browsersync.io/browsersync/a 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?/p h2Newer/h2 pWe’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./p pLet’s install the newer plugin:/p pspan class=geshifiltercode class=text geshifilter-textnpm install grunt-newer --save-dev/code/span/p pLet’s register the plugin in our Gruntfile.js:/p pspan class=geshifiltercode class=text geshifilter-textgrunt.loadNpmTasks('grunt-newer');/code/span/p pIt’s very simple to use newer with our image watcher, simply adjust this in our watcher:/p pspan class=geshifiltercode class=text geshifilter-texttasks: ['newer:imagemin']/code/span/p pRestart Grunt and try it out, it should only compress new files and leave the existing ones alone saving a lot of time./p pThis 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./p p!--HubSpot Call-to-Action Code -- span class=hs-cta-wrapper id=hs-cta-wrapper-7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2 span class=hs-cta-node hs-cta-7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2 id=hs-cta-7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2 !--[if lte IE 8]div id=hs-cta-ie-element/div![endif]-- a href=http://cta-redirect.hubspot.com/cta/redirect/586660/7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2img class=hs-cta-img id=hs-cta-img-7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2 style=border-width:0px; src=https://no-cache.hubspot.com/cta/default/586660/7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2.png alt=Free Download, 10 Step Drupal Security Audit Guide //a /span script charset=utf-8 src=https://js.hscta.net/cta/current.js/scriptscript type=text/javascript !--//--![CDATA[// !-- hbspt.cta.load(586660, '7bd1b7e0-e5da-4bf2-befc-0700ba62bcf2', {}); //--!]] /script/span !-- end HubSpot Call-to-Action Code --/p /div /div /div

Appnovation Technologies: Creating Tree Data Structure in Drupal

Wed, 05/04/2016 - 20:07
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded p dir=ltrspanSometimes 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./span/p/div/div/divdiv class=field field-name-field-blog-header-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/creating-tree-data-structure-drupalimg typeof=foaf:Image src=https://www.appnovation.com/sites/default/files/2016-04-25_blogheader_2.jpg width=1400 height=400 alt= //a/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url=https://www.appnovation.com/blog/creating-tree-data-structure-drupal st_title=Creating Tree Data Structure in Drupal class=st_facebook/span span st_url=https://www.appnovation.com/blog/creating-tree-data-structure-drupal st_title=Creating Tree Data Structure in Drupal class=st_twitter/span span st_url=https://www.appnovation.com/blog/creating-tree-data-structure-drupal st_title=Creating Tree Data Structure in Drupal class=st_sharethis/span /div/div

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

Wed, 05/04/2016 - 18:56
div class=image div class=field-items class=field-items div class=field-item even rel=og:image rdfs:seeAlso resource=http://www.hook42.com/sites/default/files/styles/indiv_page_doodle__325h_/public/field/image/logo_1.png?itok=rdq5_uzA class=field-item evenimg typeof=foaf:Image src=http://www.hook42.com/sites/default/files/styles/indiv_page_doodle__325h_/public/field/image/logo_1.png?itok=rdq5_uzA width=841 height=325 alt=DrupalCon New Orleans Logo title=DrupalCon New Orleans Logo //div /div /div div class=field field-name-field-display-date field-type-date field-label-hidden field-wrapper div class=field-items class=field-items div class=field-item even class=field-item evenspan class=date-display-single property=dc:date datatype=xsd:dateTime content=2016-05-04T00:00:00-07:00Wednesday, May 4, 2016/span/div /div /div div class=field field-name-body field-type-text-with-summary field-label-hidden field-wrapper body field div class=field-items class=field-items div class=field-item even property=content:encoded class=field-item evenh2nbsp;/h2 h2Look out New Orleans, here we come!/h2 pWe 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 a href=http://www.hook42.com/blog/lots-multilingual-drupal-drupalcon-new-orleansmultilingual happenings, check out the schedule of events/a. We hope to see you at a session, sprint, BoF, or after party!/p h2BoFs/h2 p dir=ltra href=https://events.drupal.org/neworleans2016/bofs/teaching-drupal-kids-and-teens-brainstorming-and-sharing-resourcesstrongTeaching Drupal to Kids amp; Teens/strong/a/p p dir=ltrstrongTuesday May 10th from 1pm to 2pmnbsp;/strong |nbsp; a href=https://events.drupal.org/u/kristen-polKristen Pol/anbsp; |nbsp; Room 292/p p dir=ltrWe'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./p p dir=ltra href=https://events.drupal.org/neworleans2016/bofs/drupal-seostrongDrupal amp; SEO/strong/a/p p dir=ltrstrongTuesday May 10th from 2:15pm to 3:15pm/strongnbsp; |nbsp; a href=https://events.drupal.org/u/aimee-degnanAimee Degnan/anbsp; |nbsp; Room 286/p p dir=ltrWe'll be sharing tips and tricks and best practices on search engine optimization including module usage and content strategy./p h2Sessions/h2 p dir=ltra href=https://events.drupal.org/neworleans2016/sessions/multilingual-makeover-side-side-comparison-drupal-7-and-drupal-8strongThe Multilingual Makeover: A side-by-side comparison of Drupal 7 and Drupal 8/strong/a/p p dir=ltrstrongWednesday May 11th from 5pm to 6pm/strongnbsp; |nbsp; a href=https://events.drupal.org/u/aimee-degnanAimee Degnan/a amp; a href=https://events.drupal.org/u/kristen-polKristen Pol/anbsp; |nbsp; Room 260-261/p p dir=ltrIf 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. :)/p p dir=ltra href=https://events.drupal.org/neworleans2016/sessions/im-scrumberjack-and-im-ok-prioritizing-your-scrum-product-backlog-drupalstrongI'm a Scrumberjack and I'm OK! Prioritizing Your Scrum Product Backlog for Drupal Work/strong/a/p p dir=ltrstrongThursday May 12th from 10:45am to 11:45am/strongnbsp; |nbsp; a href=https://events.drupal.org/u/aimee-degnanAimee Degnan/anbsp; |nbsp; Room 265-266/p p dir=ltrDrupal 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./p p dir=ltra href=https://events.drupal.org/neworleans2016/sessions/wheres-fire-aka-my-site-down-now-whatstrongWhere's the fire? AKA: My site is down... now what?/strong/a/p p dir=ltrstrongThursday May 12th from 2:15pm to 3:15pmnbsp;/strong |nbsp; a href=https://events.drupal.org/u/kristen-polKristen Pol/anbsp; |nbsp; Room 274/p p dir=ltrIf 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./p div class=columns small-12 medium-4 large-3img alt=Women In Drupal Logo title=Women In Drupal Logo height=741 width=630 class=media-element file-full typeof=foaf:Image src=http://www.hook42.com/sites/default/files/styles/project_main_image/public/druplicon-women-in-drupal.png?itok=CQNO-mmv //div h2Events/h2 pWe are very happy to be sponsoring the a href=https://events.drupal.org/neworleans2016/women-drupalWomen in Drupal/a event again this year!/p pstrongTuesday May 10th from 6:30pm to 8:30pm/strong at a href=http://gravierstreetsocial.com/Gravier Street Social/a/p pThis is a fun, casual, and supportive place to hang out with new and old Drupal friends. We hope to see you there!/p div style=clear:both; h2nbsp;/h2 h2Swag/h2 /div pWe'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 a href=http://www.hook42.com/blog/drupalcon-new-orleans-were-excited-how-about-youread what we are excited about for New Orleans/a./p pIf 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./p h2Laissez les bon temps rouler!/h2 /div /div /div div class=field field-name-field-display-author field-type-entityreference field-label-hidden field-wrapper div class=field-items class=field-items div class=field-item even class=field-item evenAimee Degnan/div div class=field-item odd class=field-item even oddKristen Pol/div /div /div div class=field field-name-field-topics-tr field-type-taxonomy-term-reference field-label-inline clearfix field-wrapperh2 class=field-labelTopics: /h2ul class=links inlineli class=taxonomy-term-reference-0 class=field-item evena href=/blog/community typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Community/a/lili class=taxonomy-term-reference-1 class=field-item even odda href=/blog/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a/lili class=taxonomy-term-reference-2 class=field-item even odd evena href=/blog/drupalcon typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon/a/li/ul/divdiv class=field field-name-field-service-tr field-type-taxonomy-term-reference field-label-inline clearfix field-wrapperh2 class=field-labelServices: /h2ul class=links inlineli class=taxonomy-term-reference-0 class=field-item evena href=/service/devops typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DevOps/a/lili class=taxonomy-term-reference-1 class=field-item even odda href=/service/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/lili class=taxonomy-term-reference-2 class=field-item even odd evena href=/service/multilingual typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Multilingual/a/lili class=taxonomy-term-reference-3 class=field-item even odd even odda href=/service/project-management typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Project Management/a/lili class=taxonomy-term-reference-4 class=field-item even odd even odd evena href=/service/seo-search-engine-optimization typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=SEO / Search Engine Optimization/a/li/ul/div

FFW Agency: Simplify local development with Drude

Wed, 05/04/2016 - 17:16
span property=schema:name data-quickedit-field-id=node/2896/title/en/rss class=field field--name-title field--type-string field--label-hiddenSimplify local development with Drude/span span data-quickedit-field-id=node/2896/uid/en/rss class=field field--name-uid field--type-entity-reference field--label-hiddenspan lang= about=/users/david-hernandez typeof=schema:Person property=schema:name datatype=David Hernandez/span/span span data-quickedit-field-id=node/2896/created/en/rss class=field field--name-created field--type-created field--label-hiddenWed, 05/04/2016 - 15:16/span div property=schema:articleBody data-quickedit-field-id=node/2896/body/en/rss class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempAs 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./p pWhen 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./p pTo help solve these problems FFW created Drude./p h3What is Drude?/h3 pa href=http://drude.io/Drude/a (strongDru/strongpal strongD/strongevelopment strongE/strongnvironment) 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./p pWith 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./p pWith all of this you also get a management tool, which is the heart of Drude. emdsh/em 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./p h3Let's see how this works/h3 pDownload the Drude shell command/p pcode​sudo curl -L https://raw.githubusercontent.com/blinkreaction/drude/master/bin/dsh -o /usr/local/bin/dsh sudo chmod +x /usr/local/bin/dsh/code/p pYou can now use the emdsh/em command.  Use it to install prerequisites, which includes Docker, Vagrant, and VirtualBox./p pcodedsh install prerequisitesbr / dsh install boot2docker/code/p pThese 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./p pa href=https://github.com/blinkreaction/drude-d7-testinghttps://github.com/blinkreaction/drude-d7-testing/abr /a href=https://github.com/blinkreaction/drude-d8-testinghttps://github.com/blinkreaction/drude-d8-testing/a/p h3Setting up a project./h3 pClone the Drupal 8 test project./p pcodegit clone https://github.com/blinkreaction/drude-d8-testing.gitbr / cd drude-d8-testing/code/p pUse the eminit/em command to initialize local settings and install the Drupal site via Drush./p pcodedsh init/code/p pcodeStarting containers...br / Creating druded8testing_db_1br / Creating druded8testing_cli_1br / Creating druded8testing_web_1br / ...br / Installing site...br / Installation complete.br / User name: admin User password: 5r58daY2vZ [ok]br / Congratulations, you installed Drupal!br / [status]br / real 1m18.139sbr / user 0m0.300sbr / sys 0m0.174sbr / ...br / Open http://drupal8.drude in your browser to verify the setup. /code/p pThe 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./p pNow, simply point your browser to http://drupal8.drude/p pimg alt=Drupal 8 first install home page data-entity-type=file data-entity-uuid=e6cd9bbd-bd54-4776-ab00-bda7bfb4b0a1 src=/sites/default/files/inline-images/drudescreenshot_0.png //p pThat’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./p h3Why publicize all this?/h3 pClearly, 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 a href=/consoleDrupal Console/a project, and a major supporter of a href=https://www.drupal.org/ffwDrupal/a, 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./p /div div data-quickedit-field-id=node/2896/field_image/en/rss class=field field--name-field-image field--type-image field--label-hidden field__item picture !--[if IE 9]video style=display: none;![endif]-- source srcset=/sites/default/files/styles/blog_single_desktop/public/dock-1277744_1920.jpg?itok=sl0cdZS8 1x, /sites/default/files/styles/blog_single_desktopx/public/dock-1277744_1920.jpg?itok=GKlZ_N-f 2x media=screen and (min-width: 1601px) type=image/jpeg/ source srcset=/sites/default/files/styles/blog_single_desktop/public/dock-1277744_1920.jpg?itok=sl0cdZS8 1x, /sites/default/files/styles/blog_single_desktopx/public/dock-1277744_1920.jpg?itok=GKlZ_N-f 2x media=screen and (min-width: 1201px) type=image/jpeg/ source srcset=/sites/default/files/styles/blog_single_tablet/public/dock-1277744_1920.jpg?itok=Yi66BzI5 1x, /sites/default/files/styles/blog_single_tabletx2/public/dock-1277744_1920.jpg?itok=i_f84TcN 2x media=screen and (min-width: 769px) type=image/jpeg/ source srcset=/sites/default/files/styles/blog_single_mobile/public/dock-1277744_1920.jpg?itok=i6XkprQL 1x, /sites/default/files/styles/blog_single_mobile2x/public/dock-1277744_1920.jpg?itok=iKifyGNd 2x media=(min-width: 0px) type=image/jpeg/ !--[if IE 9]/video![endif]-- img property=schema:image srcset=/sites/default/files/styles/blog_single_desktop/public/dock-1277744_1920.jpg?itok=sl0cdZS8 alt=Shipping vessel at port typeof=foaf:Image / /picture /div h6 class=field-label headingTagged with/h6 ul class=links field-items lia href=/drupal property=schema:keywords hreflang=endrupal/a/li lia href=/taxonomy/term/506 property=schema:keywords hreflang=endrude/a/li lia href=/docker property=schema:keywords hreflang=endocker/a/li /ul section property=schema:comment data-quickedit-field-id=node/2896/field_comment/en/rss h2Comments/h2 drupal-render-placeholder callback=comment.lazy_builders:renderForm arguments=0=nodeamp;1=2896amp;2=field_commentamp;3=ffw_comments token=cb141c80/drupal-render-placeholder /section

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

Wed, 05/04/2016 - 16:51
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/bothsides.jpg?itok=avWcoMbN width=140 height=85 alt=both sides //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpShortly after graduating, I found myself an internship with a href=http://miggle.co.ukmiggle/a, a UK-based Web development specialist that uses Drupal exclusively./p pAs 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./p/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div/div/div

Drop Guard: Amazee.io goes Drop Guard: for developers, for security

Wed, 05/04/2016 - 14:30
span data-quickedit-field-id=node/75/title/en/rss class=field field--name-title field--type-string field--label-hidden Amazee.io goes Drop Guard: for developers, for security/span span data-quickedit-field-id=node/75/uid/en/rss class=field field--name-uid field--type-entity-reference field--label-hiddenspanJohanna Anthes/span/span span data-quickedit-field-id=node/75/created/en/rss class=field field--name-created field--type-created field--label-hiddenWed, 04.05.2016 - 14:30/span div data-quickedit-field-id=node/75/field_teaser_image/en/rss class=field field--name-field-teaser-image field--type-image field--label-hidden field__item img src=/blog/sites/default/files/styles/medium/public/2016-05/Drop%20Guard%20Amazee.PNG?itok=i_rDrx9S width=220 height=119 alt= Amazee.io has a full integration into Drop Guard class=image-style-medium / /div div data-quickedit-field-id=node/75/body/en/rss class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itemp2nd May 2016:stronga href=https://www.amazee.io/ amazee.io/a/strong  just launched their strongDrupal hosting platform/strong built for develeopers, which has a strongfull integration into Drop Guard/strong. And that’s when our common story started./p pThe Amazee team just dedicate themselves to the Drupal world: em“We’re a secure, high-performance, cloud-based hosting solution built for folks who love their Drupal sites as much as we do”/em./p/div div data-quickedit-field-id=node/75/field_blog_post_tags/en/rss class=field field--name-field-blog-post-tags field--type-entity-reference field--label-hidden field__items div class=field__itema href=/blog/taxonomy/term/3 hreflang=enDrupal Planet/a/div div class=field__itema href=/blog/taxonomy/term/2 hreflang=enDrupal/a/div div class=field__itema href=/blog/taxonomy/term/45 hreflang=enSuccess Story/a/div div class=field__itema href=/blog/taxonomy/term/47 hreflang=enAmazee/a/div div class=field__itema href=/blog/taxonomy/term/5 hreflang=enSecurity/a/div div class=field__itema href=/blog/taxonomy/term/49 hreflang=enHosting/a/div /div

OSTraining: Restricting Access to Content in Drupal 8

Wed, 05/04/2016 - 12:03
pOne of our OSTraining members wanted to restrict access to certain content on his Drupal 8 site./p pTo do this in Drupal 8, we are going to use the a href=https://www.drupal.org/project/content_accessContent Access module/a./p pTo follow along with this tutorial, download and install Content Access. I found no errors while using this module, but please note that currently it is a dev release./p

Dries Buytaert: An overview of web service solutions in Drupal 8

Wed, 05/04/2016 - 11:48
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpToday's third-party applications increasingly depend on web services to retrieve and manipulate data, and Drupal offers a range of web services options for API-first content delivery. For example, a robust first-class web services layer is now available out-of-the-box with Drupal 8. But there are also new approaches to expose Drupal data, including Services and newer entrants like RELAXed Web Services and GraphQL./p pThe goal of this blog post is to enable Drupal developers in need of web services to make an educated decision about the right web services solution for their project. This blog post also sets the stage for a future blog post, where I plan to share my thoughts about how I believe we should move Drupal core's web services API forward. Getting aligned on our strengths and weaknesses is an essential first step before we can brainstorm about the future./p pThe Drupal community now has a range of web services modules available in core and as contributed modules sharing overlapping missions but leveraging disparate mechanisms and architectural styles to achieve them. Here is a comparison table of the most notable web services modules in Drupal 8:/p tabletbodytrth style=width: 30%Feature/th th style=width: 20%Core REST/th th style=width: 20%RELAXed/th th style=width: 20%Services/th /trtrtdContent entity CRUD/td tdYes/td tdYes/td tdYes/td /trtrtdConfiguration entity CRUD/td tdCreate resource plugin (a href=https://www.drupal.org/node/2300677issue/a)/td tdCreate resource plugin/td tdYes/td /trtrtdCustom resources/td tdCreate resource plugin/td tdCreate resource plugin/td tdCreate Services plugin/td /trtrtdCustom routes/td tdCreate resource plugin or Views REST export (GET)/td tdCreate resource plugin/td tdConfigurable route prefixes/td /trtrtdRenderable objects/td tdNot applicable/td tdNot applicable/td tdYes (no contextual blocks or views)/td /trtrtdTranslations/td tdNot yet (a href=https://www.drupal.org/node/2135829issue/a)/td tdYes/td tdCreate Services plugin/td /trtrtdRevisions/td tdCreate resource plugin/td tdYes/td tdCreate Services plugin/td /trtrtdFile attachments/td tdCreate resource plugin/td tdYes/td tdCreate Services plugin/td /trtrtdShareable UUIDs (GET)/td tdYes/td tdYes/td tdYes/td /trtrtdAuthenticated user resources (log in/out, password reset)/td tdNot yet (a href=https://www.drupal.org/node/2403307issue/a)/td tdNo/td tdUser login and logout/td /tr/tbody/tableh3Core RESTful Web Services/h3 pThanks to the a href=http://buytaert.net/the-future-is-a-restful-drupalWeb Services and Context Core Initiative/a (WSCCI), Drupal 8 is now an out-of-the-box REST server with operations to create, read, update, and delete (CRUD) content entities such as nodes, users, taxonomy terms, and comments. The four primary REST modules in core are:/p ulliema href=https://www.drupal.org/documentation/modules/serializationSerialization/a/em is able to perform serialization by providing normalizers and encoders. First, it normalizes Drupal data (entities and their fields) into arrays with a particular structure. Any normalization can then be sent to an encoder, which transforms those arrays into data formats such as JSON or XML./li liema href=https://www.drupal.org/documentation/modules/restRESTful Web Services/a/em allows for HTTP methods to be performed on existing resources including but not limited to content entities and views (the latter facilitated through the “REST export display in Views) and custom resources added through REST plugins./li liema href=https://www.drupal.org/documentation/modules/halHAL/a/em builds on top of the Serialization module and adds the Hypertext Application Language normalization, a format that enables you to design an API geared toward clients moving between distinct resources through hyperlinks./li liema href=https://www.drupal.org/documentation/modules/basic_authBasic Auth/a/em allows you to include a username and password with request headers for operations requiring permissions beyond that of an anonymous user. It should only be used with HTTPS./li /ulpCore REST adheres strictly to REST principles in that resources directly match their URIs (accessible via a query parameter, e.g. code?_format=json/code for JSON) and in the ability to serialize non-content into JSON or XML representations. By default, core REST also includes two authentication mechanisms: basic authentication and cookie-based authentication./p pWhile core REST provides a range of features with only a few steps of configuration there are several reasons why other options, available as contributed modules, may be a better choice. Limitations of core REST include the lack of a href=https://www.drupal.org/node/2300677support for configuration entities/a as well as the inability to include file attachments and revisions in response payloads. With your help, we can continue to improve and expand core's REST support./p h3RELAXed Web Services/h3 pAs I highlighted in my recent blog post about a href=http://buytaert.net/improving-drupal-content-workflowimproving Drupal's content workflow/a, a href=https://www.drupal.org/project/relaxedRELAXed Web Services/a, is part of a larger a href=http://www.drupaldeploy.org/suite of modules/a handling content staging and deployment across environments. It is explicitly tied to the a href=https://wiki.apache.org/couchdb/HTTP_Document_APICouchDB API specification/a, and when enabled, will yield a REST API that operates like the CouchDB REST API. This means that CouchDB integration with client-side libraries such as a href=http://pouchdb.com/PouchDB/a and a href=http://hood.ieHood.ie/a makes possible offline-enabled Drupal, which synchronizes content once the client regains connectivity. Moreover, people new to Drupal with exposure to CouchDB will immediately understand the API, since there is robust documentation for the endpoints./p pRELAXed Web Services depends on core's REST modules and extends its functionality by adding support for translations, parent revisions (through the a href=https://www.drupal.org/project/multiversionMultiversion/a module), file attachments, and especially cross-environment UUID references, which make it possible to replicate content to Drupal sites or other CouchDB compatible services. UUID references and revisions are essential to resolving merge conflicts during the content staging process. I believe it would be great to support translations, parent revisions, file attachments, and UUID references in core's RESTful web services — we simply didn't get around to them in time for Drupal 8.0.0./p h3Services/h3 pSince RESTful Web Services are now incorporated into Drupal 8 core, relevant contributed modules have either been superseded or have gained new missions in the interest of extending existing core REST functionality. In the case of a href=https://www.drupal.org/project/servicesServices/a, a popular Drupal 7 module for providing Drupal data to external applications, the module has evolved considerably for its upcoming Drupal 8 release./p pWith Services in Drupal 8 you can assign a custom name to your endpoint to distinguish your resources from those provisioned by core and also provision custom resources similar to core's RESTful Web Services. In addition to content entities, Services supports configuration entities such as blocks and menus — this can be important when you want to build a decoupled application that leverages Drupal's menu and blocks system. Moreover, Services is capable of returning renderable objects encoded in JSON, which allows you to use Drupal's server-side rendering of blocks and menus in an entirely distinct application./p pAt the time of this writing, the Drupal 8 version of Services module is not yet feature-complete: there is no test coverage, no content entity validation (when creating or modifying), no field access checking, and no CSRF protection, so caution is important when using Services in its current state, and contributions are greatly appreciated./p h3GraphQL/h3 pGraphQL, originally created by Facebook to power its data fetching, is a query language that enables fewer queries and limits response bloat. Rather than tightly coupling responses with a predefined schema, a href=https://www.drupal.org/project/graphqlGraphQL/a overturns this common practice by allowing for the client's request to explicitly tailor a response so that the client only receives what it needs: no more and no less. To accomplish this, client requests and server responses have a emshared shape/em. It doesn't fall into the same category as the web services modules that expose a REST API and as such is absent from the table above./p pGraphQL shifts responsibility from the server to the client: the server publishes its possibilities, and the client publishes its requirements instead of receiving a response dictated solely by the server. In addition, information from related entities (e.g. both a node's body and its author's e-mail address) can be retrieved in a single request rather than successive ones./p pTypical REST APIs tend to be static (or versioned, in many cases, e.g. code/api/v1/code) in order to facilitate backwards compatibility for applications. However, in Drupal's case, when the underlying content model is inevitably augmented or otherwise changed, schema compatibility is no longer guaranteed. For instance, when you remove a field from a content type or modify it, Drupal's core REST API is no longer compatible with those applications expecting that field to be present. With GraphQL's native schema introspection and client-specified queries, the API is much less opaque from the client's perspective in that the client is aware of what response will result according to its own requirements./p pI'm very bullish on the potential for GraphQL, which I believe makes a lot of sense in core in the long term. I featured the project in a href=http://buytaert.net/state-of-drupal-presentation-september-2015my Barcelona keynote/a (a href=https://www.youtube.com/watch?v=ZjDYg6NrAysdemo video/a), and a href=http://acquia.comAcquia/a also sponsored development of the a href=https://www.drupal.org/project/graphqlGraphQL module/a (Drupal 8 only) following DrupalCon Barcelona. The GraphQL module, created by a href=https://www.drupal.org/u/fubhySebastian Siemssen/a, now supports read queries, implements the GraphiQL query testing interface, and can be integrated with a href=https://facebook.github.io/relay/Relay/a (with some a href=https://www.drupal.org/node/2714803limitations/a)./p h3Conclusion/h3 pFor most simple REST API use cases, core REST is adequate, but core REST can be insufficient for more complex use cases. Depending on your use case, you may need more off-the-shelf functionality without the need to write a resource plugin or custom code, such as support for configuration entity CRUD (Services); for revisions, file attachments, translations, and cross-environment UUIDs (RELAXed); or for client-driven queries (GraphQL)./p pemSpecial thanks to a href=https://www.drupal.org/u/prestonsoPreston So/a for contributions to this blog post and to a href=https://www.drupal.org/u/moshe-weitzmanMoshe Weitzman/a, a href=https://www.drupal.org/u/kylebrowningKyle Browning/a, a href=https://www.drupal.org/u/eclipsegcKris Vanderwater/a, a href=https://www.drupal.org/u/wim-leersWim Leers/a, a href=https://www.drupal.org/u/fubhySebastian Siemssen/a, a href=https://www.drupal.org/u/timmillwoodTim Millwood/a and a href=https://www.drupal.org/u/tedbowTed Bowman/a for their feedback during its writing./em/p /div/div/div

Drupal Watchdog: Drupal Watchdog Joins the Linux New Media Family

Wed, 05/04/2016 - 08:04
div class=field field--body field-type-text-with-summary field-label-hidden field--rss div class=bg-gray-lighter img src=//drupalwatchdog.com/sites/default/files/DW_6-01_300x300.png alt=Drupal Watchdog 6.01 is the first issue published by Linux New Media. width=300px align=right class=img-responsive img-thumbnail margin-right /h4emDrupal Watchdog/em 6.01 is the first issue published by Linux New Media. Come see the emDrupal Watchdog/em team at a href=https://events.drupal.org/neworleans2016/community?field_profile_first_value=amp;field_profile_last_value=amp;field_profile_location_country=Allamp;field_profile_org_value=drupal+watchdogamp;uid=DrupalCon 2016/a!/h4 /div pemDrupal Watchdog/em was founded in 2011 by a href=http://tag1consulting.com/Tag1 Consulting/a as a resource for the Drupal community to share news and information. Now in its sixth year, emDrupal Watchdog/em is ready to expand to meet the needs of this growing community./p pemDrupal Watchdog/em will now be published by a href=http://linuxnewmedia.com/Linux New Media/a, aptly described as the Pulse of Open Source. /p p“It’s very clear that the folks at Linux New Media know what they’re doing, and that they truly value the open source culture,” said Jeremy Andrews, CEO/Founding Partner, Tag1 Consulting. “I’m ecstatic that the magazine will not just live on, but it will thrive as a quarterly publication … this is a wonderful step forward that benefits everyone who reads and contributes to emDrupal Watchdog/em.”/p pThe magazine will continue to be offered in print and digital formats, and Linux New Media’s international structure provides better service to subscribers worldwide, with local offices in North America and Europe and ordering options in various local currencies./p p“We don’t want to change what has brought emDrupal Watchdog/em this far, but we do want to see it grow and expand to the next level, which mainly means – extending the reach of the magazine,” said Brian Osborn, CEO and Publisher, Linux New Media. “As our first step, emDrupal Watchdog/em will now be published quarterly, helping us stay even more current in our coverage and in more frequent contact with our readership.”/p pemDrupal Watchdog/em is written for the Drupal community and will only thrive through community participation. /p pHere is what you can do to help:/p ulliJoin the a href=https://www.facebook.com/DrupalWatchdogDrupal Watchdog/a community on Facebook /liliFollow a href=https://twitter.com/drupalwatchdogDrupal Watchdog/a on Twitter /liliVisit the emDrupal Watchdog/em team at a href=https://events.drupal.org/neworleans2016/community?field_profile_first_value=amp;field_profile_last_value=amp;field_profile_location_country=Allamp;field_profile_org_value=drupal+watchdogamp;uid=DrupalCon/a /lilia href=//drupalwatchdog.com/subscribe/Subscribe/a to the magazine so you won’t miss an issue /liliProvide your feedback through our reader survey at a href=//drupalwatchdog.com/reader-surveydrupalwatchdog.com/reader-survey/a /li/ulpThe first issue of emDrupal Watchdog/em published by Linux New Media will be available May 9th! All strongDrupalCon/strong attendees will receive a copy at the event. Come meet the new team, and learn more about the future of emDrupal Watchdog/em!/p /div div class=field field--images field-type-image field-label-above field--rss div class=field-labelImages:nbsp;/div img typeof=foaf:Image class=img-responsive src=https://drupalwatchdog.com/sites/default/files/DW_6-01_300x300.png width=300 height=300 alt= / /div

Drupal Commerce: Enabling Fancy Attributes in Commerce 2.x

Wed, 05/04/2016 - 00:20
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpIn Drupal Commerce 1.x, we used the a href=https://www.drupal.org/project/commerce_fancy_attributesCommerce Fancy Attributes/a and a href=https://www.drupal.org/project/field_extractorField Extractor/a modules to render attributes more dynamically than just using simple select lists. This let you do things like show a color swatch instead of just a color name for a customer to select./p p style=text-align:center;img src=https://drupalcommerce.org/sites/default/files/commerce_guys_long_sleeve_henley_commerce_kickstart_demo.png /br /emFancy Attributes on a product display in Commerce Kickstart 2.x./em/p pa href=https://drupalcommerce.org/blog/44305/commerce-20-alpha4-releasedIn Commerce 2.0-alpha4/a, we introduced specific product attribute related entity types. Building on top of them and other contributed modules, we can now provide fancy attributes out of the box! When presenting the attribute dropdown, we show the labels of attribute values. But since attribute values are fieldable, we can just as easily use a different field to represent it, such as an image or a color field. To accomplish this, we provide a new element type that renders the attribute value entities as a radio button option./p pa href=https://drupalcommerce.org/blog/44310/enabling-fancy-attributes-commerce-2xRead more/a to see an example configuration./p /div/div/div

Finalist Drupal Blog: Performance boosting in Drupal 8 just got better

Wed, 05/04/2016 - 00:00
pWith the release of Drupal 8.1 on April 20th the BigPipe module was added to core to increase the speed of Drupal for anonymous and logged in visitors./p h2 id=what-does-bigpipe-do-in-generalWhat does BigPipe do in general?/h2 pBigPipe is a technique to render a webpage in phases. It uses components to create the complete page ordered by the speed of the components themselves. This technique gives the visitors a feeling that the website is faster then it may actually be. Thus giving a boost in user experience./p pThis technique, originally developed by a href=https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919Facebook/a, deploys the theory of multi threading, just like processors do. It disperses multiple calls to a single backend to make full use of the web server and thus rendering a webpage faster then conventional rendering does./p h2 id=what-does-bigpipe-do-in-drupalWhat does BigPipe do in Drupal?/h2 pFor “normal” websites with anonymous visitors, BigPipe doesn’t do much. If you use a caching engine like Varnish, or even Drupal cache itself, pages are generally rendered fast enough. When using dynamic content like lists of related, personalized or localized content BigPipe can kick in and really make a difference. When opening the website BigPipe returns the page skeleton that can be cached. Elements like the menus, footer, header and often even content. And then rendering of the dynamic content will start. This means that the visitor of your website is already reading the most import content, and is able to see the dynamic related list later on after it’s loaded asynchronously./p pFor websites with logged in users BigPipe can be a real boost in performance. Standard Drupal cache doesn’t work out of the box for logged in users. For Drupal 7 you had the a href=https://www.drupal.org/project/authcacheAuthenticated User Page Caching (Authcache)/a module (which had some disadvantages), but for Drupal 8 there was nothing. Until Drupal 8.1!/p pWith BigPipe Drupal is now able to cache certain parts of the page (the skeleton which I mentioned above) and to multithread some other parts. And these parts are cacheable by themselves./p pClick on the imgae below to watch a video on YouTube where you can see for yourself how much effect BigPipe can have. a href=http://www.youtube.com/watch?v=JwzX0Qv6u3A title=BigPipe in Drupal 8quot; target=quot;_blankimg src=/techblog/images/20160504/video.jpg alt=BigPipe in Drupal 8 //a/p pemVideo is made by a href=http://buytaert.net/Dries Buytaert/a/em/p h2 id=bigpipe-in-drupalBigPipe in Drupal/h2 pAs I said, starting from Drupal 8.1. BigPipe is added as a core module. And everybody can use it. Whether you are using a budget hosting platform or you are hosting your own website with state-of-the-art servers, it is basically just one (1) click away. You can just enable the module and get all the benefits BigPipe has to offer!/p

Acquia Developer Center Blog: Drupal 8 Module of the Week: Display Suite

Tue, 05/03/2016 - 20:33
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/drupal_8_logo_isolated_cmyk_72_2_14.png?itok=bZbRAjYB width=140 height=85 alt=Drupal 8 logo title=Drupal 8 logo //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp emEach 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: stronga href=https://www.drupal.org/project/dsDisplay Suite/a/strong./em /p/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/divdiv class=field-item odda href=/tags/ds typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=ds/a/divdiv class=field-item evena href=/tags/display-suite typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=display suite/a/divdiv class=field-item odda href=/tags/drag-and-drop typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drag and drop/a/divdiv class=field-item evena href=/tags/ui typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=ui/a/divdiv class=field-item odda href=/tags/ux typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=UX/a/div/div/div

Nacho Digital: Moving an existing site into Platform.sh

Tue, 05/03/2016 - 20:26
div class=field field-name-field-intro field-type-text-long field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item evenA walk through my first Platform experience with steps on how to avoid problems if you need to upload your local version into it. Lots of hints to get it right the first time!/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item even property=content:encodedpIf you are in a hurry and only need a recipe, please head to a href=/content/moving-existing-site-platformsh#TheHowthe technical part of the article/a, but I would like to start sharing a bit of my experience first because you might be still deciding if Platform is for you./p pI decided to try Platform because a friend of mine needed a site. Do to several reasons I didn't want to host it on my personal server. But I didn't want to run a server for him either. I wanted to forget about maintaining the server, keeping it secure or do upgrades to it./p pSo I started thinking about options for small sites:/p/div/div/div

Bluespark Labs: The Art of Sketching before Wireframing. OK, it’s not really Art!

Tue, 05/03/2016 - 19:41
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg src=https://www.bluespark.com/files/resources/mainsketch.jpg //p pSo you’ve got a great idea. Spent months thinking about it. Sold the idea to internally key stakeholders. Grabbed the attention of the right people, organized a team and managed to get funding. You’ve selected your agency and have gone through a discovery process and are ready to design out the idea. Now what?/p pWell, you start by sketching of course. Yup I said it, we start by drawing pretty pictures (well not so pretty really)./p h2The power of sketching. There’s no need for commitment here./h2 pYou may think you don’t need to sketch because you already know how you want the interface to look. But often times when you actually start sketching, you’ll realize that the path that you were so set on, might not work the best./p pSketching sets the tone for the rest of the design process. It ensures you’re creating a user experience that meets both user and stakeholder goals and objectives. Removing this step from the process puts you at a disadvantage as you’re more likely to get locked into a design because it’s more difficult to make quick iterations using software built for wireframing and design comps. Sketching allows you to visualize what an interface could become without committing to anything./p h2Sketching clutter is a means to an end/h2 pInitial sketches will likely uncover that your trying to cram too much onto the user’s screen, but that’s OK. We’re trying to uncover all possibilities so we can iterate quickly./p pHaving a UX team take an outside-in approach can really help define what you’re trying to achieve without overwhelming the user./p pWe’ve found that sketching the pages/concepts can be beneficial in a number of ways:/p olli pSpeeds up the discovery phase by allowing all members of the team to get their thoughts on paper and get buy-in from key stakeholders/p /li li pAllows the team to iterate quickly on the structure of the site/application without focusing on design elements such as colors, fonts, imagery, etc./p /li li pOffers a quick frame of reference to have early implementation discussions with developers on the project/p /li li pOffers the ability to highlight key areas for measurement to ensure we’re meeting business and project objectives/p /li li pOffers the ability to test real users with paper prototypes without writing a single line of code/p /li /olh2Sketching enables you to work faster amp; iterate quickly/h2 pimg src=https://www.bluespark.com/files/resources/navigation_0.jpg //p pStart with drawing the high level elements on the page such as the main navigation, secondary navigation, footer elements and high level links. But also try to think about the positioning of elements on the page. Most users read left to right and top to bottom. Keeping that in mind we can guide the user’s eyes to elements on the page by highlighting elements with design characteristics such as color, graphics, etc../p pMoving some navigational aids into the secondary nav or the footer doesn’t mean they’re less important, but it does allow us to simplify the interface and add clarity for users to achieve their online goal./p h2Sketching helps you brainstorm ideas/h2 pOne of the biggest advantages of sketching is that everyone can do it. From designers to the director of human resources at your company (you don’t have to be an artist). So strongdon’t be afraid to sketch out your ideas/strong./p pimg src=https://www.bluespark.com/files/resources/sketching-with-client.jpg //p pSketching is an efficient way to get the ideas out of your head and out in the open for discussion. It keeps you from getting caught up in the technology, and instead focuses you on the best possible solution, freeing you to take risks that you might not otherwise take./p pGetting everyone involved in this stage can be incredibly valuable for a couple of reasons. You can quickly get a good grasp of what you’re envisioning while gaining an understanding of the development process and interaction requirements, as you’re guided through the process./p pWhat gets designed on the front end has a back end component that most clients don’t understand. Working with a UX team gives you the opportunity to gain that understanding while contributing with feedback that moves the project forward./p h2Sketching a UI develops multi-dimensional thinking/h2 pDesigning a user interface is a process. Translating an idea to meet user requirements requires multi-dimensional thinking. Sketching a user interface is primarily a 2 dimensional process, but as UX professionals we need to consider a number of factors:/p olli pWhat is the user trying to accomplish?/p /li li pHow is the user interacting with the site/application (desktop, mobile, kiosk, device specific, etc.)?/p /li li pHow does the UI react as the user interacts with it?/p /li li pWhat appears on each of the pages as content and navigational aids?/p /li li pWhat if a user encounters an error? Are there tools to help them recover?/p /li /olpSketching allows you to visualize the screen-to-screen interaction so that your idea is something that’s visible and clear in user interface form. Ultimately helping you move the project to the next level./p h2Take your sketches up a notch with interactivity/h2 pimg alt= src=https://www.bluespark.com/files/resources/invision.jpg style=float: right; margin: 0 0 20px 20px; //p pLastly, using an online prototyping tool offers the ability to upload the sketches and add hotspots over the navigation and linking aids. This allows you to click through on rough sketches as if it were a real functioning website (a really ugly website). I can’t tell you the number of times I’ve worked on a series of sketches and didn’t realize that I was missing a major element or interaction until i added hotspots and tried to use it./p pThe design phase beginning with the initial sketches is a way to envision an interface that meets measurable goals. strongThe ultimate goal is to align key business objectives with user goals/strong. When those two things align you’ve got a website or product that’s bound to succeed./p /div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog/drupal-planetDrupal Planet/a/divdiv class=field-item odda href=/blog/uxUX/a/divdiv class=field-item evena href=/blog/uiUI/a/divdiv class=field-item odda href=/blog/designDesign/a/divdiv class=field-item evena href=/blog/wireframeswireframes/a/divdiv class=field-item odda href=/blog/rapid-iterativerapid iterative/a/div/div/div