Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 35 min 25 sec ago

Chromatic: Chromatic Site Launch Guide

Thu, 04/28/2016 - 16:46
pWhen we prepare to launch a site, we all generally follow a rough checklist of items (if only in our own minds!) to ensure sure that all systems are go. At Chromatic, we wanted to produce a repeatable process that we could share not only amongst ourselves, but also with the community; and so the a href=/chromatic-site-launch-guideChromatic Site Launch Guide/a was born./p pWe are hosting this guide outside of our blog as it is a living document and will change over time. Feel free to bookmark it and refer back to it the next time you are preparing to launch a site. The content is generated from a a href=https://github.com/ChromaticHQ/site-launch-guiderepository on Github/a, which means modifications via pull requests are welcome!/p

Drop Guard: Probo.CI and Drop Guard work together for better QA process

Thu, 04/28/2016 - 12:23
span data-quickedit-field-id=node/71/title/en/rss class=field field--name-title field--type-string field--label-hiddenProbo.CI and Drop Guard work together for better QA process/span span data-quickedit-field-id=node/71/uid/en/rss class=field field--name-uid field--type-entity-reference field--label-hiddenspanIgor Kandyba/span/span span data-quickedit-field-id=node/71/created/en/rss class=field field--name-created field--type-created field--label-hiddenThu, 28.04.2016 - 12:23/span div data-quickedit-field-id=node/71/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-04/super-probo-130d7f4cb8165e77256b9a51c51b29e3.png?itok=_XPb-8IM width=220 height=130 alt=super probo class=image-style-medium / /div div data-quickedit-field-id=node/71/body/en/rss class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempNot long ago we were talking about the a href=http://www.drop-guard.net/blog/recipe-testing-updates-feature-branchesvalue of testing your updates in feature branch instances/a. It's the most efficient way of ensuring the quality of applied updates, but it's very time-consuming./p pTo use this process, you are required to maintain your own infrastructure to spin up QA servers quickly, run automated tests and share the testing instance between team members. And preferably, you do it every time an update is applied for any of the modules across your websites./p /div div data-quickedit-field-id=node/71/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/41 hreflang=enProbo.CI/a/div div class=field__itema href=/blog/taxonomy/term/43 hreflang=enintegration/a/div div class=field__itema href=/blog/taxonomy/term/29 hreflang=enQA/a/div div class=field__itema href=/blog/taxonomy/term/31 hreflang=enDrop Guard recipes/a/div div class=field__itema href=/blog/taxonomy/term/3 hreflang=enDrupal Planet/a/div /div

Jeff Geerling's Blog: Migrate a custom JSON feed in Drupal 8 with Migrate Source JSON

Thu, 04/28/2016 - 04:21
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpRecently I needed to migrate a small set of content into a Drupal 8 site from a JSON feed, and since documentation for this particular scenario is slightly thin, I decided I'd post the entire process here./p pI was given a JSON feed available over the public URL codehttp://www.example.com/api/products.json/code which looked something like:/p/div/div/div

Lullabot: A Framework for Project Kickoffs

Thu, 04/28/2016 - 01:05
div class=rich-textpProject kickoffs can be the shortest individual component of a project, but they can also be the most important. Done poorly, a kickoff can feel like a reading of a contract by inhuman actors doing inhuman work. Done well, a kickoff can bring a team together and push them towards success. Kickoffs are one of the project skills we don#x2019;t get many opportunities to iterate and learn. Developers at Lullabot commonly end up attached to a client or project for many months (or years!) at a time, so it#x2019;s entirely possible to go that period of time without having a formal kickoff. Here are#xA0;some thoughts I#x2019;ve had after doing several kickoffs this year./p h2About the Client/h2 pIn a distributed team, a kickoff usually happens with a phone call. While pre-sales communication will have already happened, the kickoff call is usually the first time when everyone working on a team will be together at once. As a team member from the vendor, this is your chance to ask questions of the business stakeholders who might not be available day to day. I like to find out:/p ulliWhy are we all here? Are the business, technology, or creative concerns the primary driver?/li liWhat is the business looking for their team to learn and accomplish?/li liWhat are the external constraints on the project? Are there timelines and due dates, or other projects dependent on our work? What are the upcoming decisions and turning points in the business that could have a big affect on the project?/li /ul h2About Me/h2 pWe all have ideas about how we want to work and be utilized on a project. Making sure they align with the client is very important to work out during a kickoff. Sometimes, a client has specific priorities of work to get done. Other times, they might not have realized you have skills in a specific subject area that they really need. It#x2019;s really important to understand your role on a project, especially if you have multiple skill sets. Perhaps you#x2019;re a great Drupal site builder, but what the client really needs is to use your skills to organize and clean up their content model. Figuring all of that out is a great kickoff topic./p h2About Us/h2 pOnce we understand each other, then we can start to figure out how we work together. It#x2019;s kind of like moving in with someone. You might know each other very well, but how are you going to handle talking with your landlord? How are each person#x2019;s work schedules going to integrate?/p pFor a distributed team, communication tools are at the core of this discussion. We all have email, chat rooms, instant messaging, video, and more. What tools are best used when? Are there specific tools the client prefers, or tools that they can#x2019;t use because of their company#x2019;s network setup? Finding the middle ground between #x201C;all mediums, all the time#x201D; and #x201C;it#x2019;s all in person until you ask#x201D; is key./p pRecurring meetings are another good topic to cover. Some companies will take new team members, add them to every recurring meeting, and use up a 10 hour-per-week consulting engagement with nothing but agile ceremony. Perhaps that#x2019;s what you#x2019;re needed for#x2014;or perhaps they#x2019;ve just operated out of habit. Finding a good balance will go a long way towards building a sustainable relationship./p pSharing each person#x2019;s timezones and availability also helps to keep expectations reasonable. Some companies have recurring meetings (like Lullabot#x2019;s Monday / Friday Team Calls) which will always be booked. Sometimes individuals have days their hours are different due to personal or family commitments. Identify the stakeholders who have the #x201C;worst#x201D; availability and give them extra flexibility in scheduling. Knowing all of this ahead of time will help prevent lots of back-and-forth over meeting times./p pFinally, find out who you should go to if work is blocked. That might be a stakeholder or project manager on the client#x2019;s side, but it could also be one of your coworkers. Having someone identified to the team as the #x201C;unblocker of work#x201D; helps keep the project running smoothly and personal tensions low./p h2About Tech/h2 pFor development projects, the first question I ask is #x201C;will we need any sort of VPN access?#x201D;. VPN access is almost always a pain to get set up#x2014;many companies aren#x2019;t able to smoothly setup contractors who are entirely remote. It#x2019;s not unheard of for VPN access to take days or weeks to set up. If critical resources are behind a VPN, it#x2019;s a good idea to start setting that up before an official kickoff./p pBarring the VPN-monster, figuring out where code repositories are, where tickets are managed, and how development and QA servers work are all good kickoff topics. Get your accounts created and make sure they all work. If a client is missing anything (like a good QA environment or ticket system), this is when you can make some recommendations./p h2About Onsites/h2 pSome projects will have a kickoff colocated somewhere, either at a client#x2019;s office or at a location central to everyone. In distributed teams, an in-person meeting can be incredibly useful in understanding each person. The subtle, dry humour of your video expert becomes apparent in-person, but could have been misunderstood online. Most of the above can be handled in the first hour of an onsite visit, leaving much more time to fill given the travel time!/p pWe like to focus onsites on the topics that are significant unknowns, require a significant number of people across many teams, and are likely to require whiteboards, diagrams, and group brainstorming. Project discoveries are a classic fit; it#x2019;s common to meet with many different people from different departments, and doing first meetings in person can be a significant time saver. The goal of an onsite shouldn#x2019;t be to #x201C;kick off#x201D; the project#x2014;it should be to build the shared understanding a team needs so they can be effective./p h2But what about sales engineering?/h2 pI#x2019;m sure some readers are now thinking #x201C;Wait a minute! Aren#x2019;t these all things you should know before a contract is signed?#x201D;. It#x2019;s true! Going into a kickoff without any of this information would be a serious risk./p pIt#x2019;s important to remember that the team on a kickoff isn#x2019;t going to be identical to the team who did the sales engineering work. Both the client and the vendor will have new people just getting started. As well, it#x2019;s useful to hear the project parameters one more time. Discrepancies in the discussions can alert the team to any misunderstandings, or more likely changes in the business environment running up to the signing of the contract. Especially on projects where a team is already working, hearing about progress or changes made in the week between signing an SOW and kickoff can be invaluable./p pWhat did you learn the last time you helped to kick off a project? Let us know in the comments!/p /div

DrupalEasy: Just in case - Drupal 8's /core/rebuild.php

Wed, 04/27/2016 - 20:59
pDrupal 8 has lots of things that Drupal 7 doesn't have - a modern object-oriented foundation, the Twig templating system, and WYSIWYG out-of-the-box - just to name a few. There's also a good number of less flashy additions that are designed to improve the developer experience. One of these additions is the /core/rebuild.php file. /p pWhile it is common knowledge that clearing rebuilding Drupal's caches is good practice during development, Drupal 8 brings a new tool to the table to get it done. Previous to Drupal 8, most developers utilized Drush to clear caches, some less-efficient folks cleared caches from the user interface (usually from the a href=https://www.drupal.org/project/admin_menuAdmin Menu/a, but sometimes - gasp! - from the admin/config/development/performance page). /p pDrupal 8 comes with a new /core/rebuild.php file that doesn't require the Drupal 8 site to be functioning (fatal errors, anyone?) nor does it require Drush or Drupal Console. Instead, as long as your site's configuration allows it, all you have to do is navigate to /core/rebuild.php in your browser. As a href=https://api.drupal.org/api/drupal/core%21rebuild.php/8.1.xDrupal's documentation/a states, this Rebuilds all Drupal caches even when Drupal itself does not work./p pHow do you know if your site's configuration supports this functionality? Well, if you're working locally (and if you're developing, you emshould/em be working locally), then just make sure that code$settings['rebuild_access'] = TRUE;/code in your settings.php (or, better yet, settings.local.php). The other method involves running the /core/scripts/rebuild_token_calculator.sh script from the commandline, and using the results as query parameters for /core/rebuild.php (see Method II on https://www.drupal.org/node/2153725)./p pGranted, most developers have Drush and/or Drupal Console installed everywhere they're working, but it's always good to have a backup method for rebuilding Drupal's caches - just in case./pdiv class=feedflare a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=fXpG6RQe3zg:R1umo3Bi46A:yIl2AUoC8zAimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=yIl2AUoC8zA border=0/img/a a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=fXpG6RQe3zg:R1umo3Bi46A:qj6IDK7rITsimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=qj6IDK7rITs border=0/img/a /divimg src=http://feeds.feedburner.com/~r/DrupalEasy/~4/fXpG6RQe3zg height=1 width=1 alt=/

Chromatic: Chromatic at DrupalCon New Orleans

Wed, 04/27/2016 - 18:36
pDrupalCon New Orleans is nearly here and Chromatic will be attending in full force! Here's the rundown of what you need to know:/p h2Learn About Render Arrays from Gus Childs/h2 pa href=https://chromatichq.com/users/gusGus/a will be presenting his session on Drupal 8 render arrays on Tuesday at 1pm in the Blackmesh Room (267-268): a href=https://events.drupal.org/neworleans2016/sessions/aha-understanding-and-using-render-arrays-drupal-8Aha! Understanding and Using Render Arrays in Drupal 8/a. If you're ever been confused by render arrays or just want to learn the best practices for how you're strongsupposed/strong to use them, be sure not to miss this session. Gus happens to be an awesome presenter to boot!/p h2Schedule or Attend a BoF in the Chromatic Room/h2 pWe're once again sponsoring a Birds of a Feather room. BoFs are a great way for folks to get together and discuss interesting topics in a more informal setting. There's already some great BoFs scheduled for the Chromatic room, including a href=https://events.drupal.org/neworleans2016/bofs/drupal-vm-and-local-drupal-development-teamsone on Drupal VM and Local Development/a from the well-known a href=https://www.drupal.org/u/geerlingguygeerlingguy/a. We have a couple BoFs of our own too:/p ul lia href=https://events.drupal.org/neworleans2016/bofs/worklife-balance-how-do-you-manage-itWork/life balance - How Do You Manage It?/a/li lia href=https://events.drupal.org/neworleans2016/bofs/elements-great-user-storyticket-0Elements of a Great User Story/Ticket/a/li /ul pIf you have a great idea for a BoF, a href=https://events.drupal.org/neworleans2016/birds-featherschedule one/a for the Chromatic room!/p h2Connect with Us at one of the Summits/h2 pIn addition to attending the conference proper, we're once again sending our leadership to the a href=https://events.drupal.org/neworleans2016/business-summitBusiness Summit/a, as well as sending a couple of folks to the a href=https://events.drupal.org/neworleans2016/media-and-publishing-summitMedia amp; Publishing Summit/a./p h2Grab Some Swag/h2 pEvery year, DrupalCon attendees rave about how awesome and comfortable our t-shirts are. That's because we don't believe in making swag that we ourselves wouldn't love to wear. This year is no different. For NOLA, we've made a limited run of some special vintage baseball tees, printed on 3/4 sleeve American Apparel 50/50 cotton. These shirts are our best yet and a href=https://chromatichq.com/blog/vintage-tee-giveaway-drupalcon-new-orleanswe want to give you one for FREE/a!/p pSee you in New Orleans!/p

ImageX Media: Inbound Marketing in 2016 - Why it's Essential to Your Web Success

Wed, 04/27/2016 - 16:44
!-- field.tpl -- div class=field field-name-body field-type-text-with-summary field-label-hidden !-- theme hook suggestions: -- !-- hook:field -- !-- tpl file: * field--text-with-summary.tpl.php -- !-- tpl file: * field--body.tpl.php -- !-- tpl file: * field--blog.tpl.php -- !-- tpl file: * field--body--blog.tpl.php -- pDevising an effective inbound marketing strategy is vital for countless reasons, and is critical for the growth of business in terms of gaining exposure, building your brand, and truly 'connecting' with prospective leads and customers, members of your industry's target audience.  /p pThere are countless reasons this type of marketing is so essential to your success on the Internet, including:/p /div !--/field.tpl --

OSTraining: The Coffee Module Makes Life Easier for Drupal Admins

Wed, 04/27/2016 - 11:44
div class=ost-intro-imageimg src=https://www.ostraining.com/images/drupal8/drupal-coffee-module.jpg alt=The Coffee Module Makes Life Easier for Drupal Admins width=200 height=134 //div pNavigating through Drupal's admina area can be complex for users./p pDrupal's Coffee Module can help Drupal newcomers. Coffee adds an additional search function which allows admins to search and go directly to the areas they need./p pCoffee is available for both Drupal 7 and Drupal 8./p

DrupalOnWindows: Uploading big files to Drupal 8: PLUpload integration

Wed, 04/27/2016 - 07:00
div class=form-item form-type-item labelLanguage /label English /div div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpAs of this writing the only site building readily available module is the a href=https://www.drupal.org/project/plupload_widgetPLUpload file widget/a./p pThis module depends on the PLUpload form element provided by the a href=https://www.drupal.org/project/pluploadPlupload integration module/a, that is a more developer oriented module./p pWith the Plupload widget/integration you can:/p/div/div/divdiv class=view view-read-more view-id-read_more view-display-id-entity_view_1 view-dom-id-ded37de0543425913125a141e5ebd390 div class=view-header hr/ h2More articles.../h2 /div div class=view-content div class=item-list ul li class=views-row views-row-1 views-row-odd views-row-first div class=views-field views-field-title span class=field-contenta href=/en/blog/exposing-reverse-entity-reference-fields-drupalExposing reverse entity reference fields in Drupal/a/span /div/li li class=views-row views-row-2 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-8-couchbase-integrationDrupal 8 Couchbase Integration/a/span /div/li li class=views-row views-row-3 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/pdf-generation-phpPDF Generation in PHP/a/span /div/li li class=views-row views-row-4 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-iis-or-apacheDrupal on IIS or Apache/a/span /div/li li class=views-row views-row-5 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/benchmarking-drupal-7-php-7-devBenchmarking Drupal 7 on PHP 7-dev/a/span /div/li li class=views-row views-row-6 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/how-use-netphpHow to use NetPhp/a/span /div/li li class=views-row views-row-7 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-8-wincache-integrationDrupal 8 Wincache Integration/a/span /div/li li class=views-row views-row-8 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/benchmarking-drupal-8-php-7-devBenchmarking Drupal 8 on PHP 7-dev/a/span /div/li li class=views-row views-row-9 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/fixing-slow-queries-and-database-deadlocks-drupal-without-php-profiling-toolsFixing slow queries and database deadlocks in Drupal without PHP profiling tools/a/span /div/li li class=views-row views-row-10 views-row-even views-row-last div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-8-performance-moving-service-container-cache-away-databaseDrupal 8 Performance: Moving the service container cache away from the database/a/span /div/li /ul/div /div /div

btmash.com: Saving and retrieving taxonomy terms programmatically for Drupal 8

Wed, 04/27/2016 - 06:52
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpOver the past month, I've been attempting to learn more about Drupal 8 by attempting to port the @font-your-face module which has a lot of different pieces; it touches on Content Entities, Config Entities, regular entities, views, classes, hooks, and more! I'll try and blog on my experiences with that in the near future but an interesting problem that I ran into is that I am using taxonomy terms to categorize Font Classifications, supported languages/subsets, and generic tags./p/div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item even rel=dc:subjecta href=/tags/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet drupal/a/div/div/div

PreviousNext: Using typey: a framework for working with typography on the web

Wed, 04/27/2016 - 04:00
pa href=https://github.com/jptaranto/typeytypey/a has just turned 1.0, so I thought it would be a great time to show off some of its features./p span property=dc:title content=Using typey: a framework for working with typography on the web class=rdf-meta element-hidden/span

xjm: Join the Drupal 8 major triage at DrupalCon New Orleans

Wed, 04/27/2016 - 00:57
span property=schema:name data-quickedit-field-id=node/36/title/en/rss class=field field--name-title field--type-string field--label-hiddenJoin the Drupal 8 major triage at DrupalCon New Orleans/span div data-quickedit-field-id=node/36/body/en/rss class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above div class=field__labelBody/div div property=schema:text class=field__itempOn April 20, five months after the launch of Drupal 8.0.0, we released a href=https://www.drupal.org/blog/drupal-8-1-0Drupal 8.1.0/a, the first scheduled minor update. Drupal 8.1.0 comes with both new features and bug fixes that were not eligible for monthly patch releases. Now is a great time to try Drupal 8 if you haven't yet!/p pDrupal 8.1.0 is production-ready, but (like most software) still has known bugs that can cause issues for some modules or sites. Although we fixed hundreds of critical bugs during Drupal 8's development, and although only a handful of critical issues have been discovered since Drupal 8.0.0, there are still hundreds of less severe a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;categories%5B%5D=1amp;version%5B%5D=8.xamp;version%5B%5D=8.2.x-devamp;version%5B%5D=8.1.x-devamp;issue_tags_op=%3Dbug reports marked with major priority/a. /p pimg alt=DrupalCon Asia sprinters discuss an issue data-entity-type=file data-entity-uuid=83ac4ed6-3ac8-4876-9b04-4efab18b66b4 src=http://xjmdrupal.org/sites/default/files/inline-images/major_triage.jpg /br /smallemMajor issue triage sprint at DrupalCon Asia 2016. Photo credit: a href=https://www.flickr.com/photos/amazeelabs/24795282049/in/pool-drupalconmumbai2016/Amazee Labs/a./em/small/p h2strong500 major bugs/strong/h2 p500 major bugs sounds like a lot, right? Many of these bug reports are still relevant and important to fix for Drupal 8 to be more robust. However, many other reports are outdated; they might already have been resolved, they might no longer be relevant, or they might be misfiled. As many Drupal contributors know, it can be hard to find the right issues./p h2strongFind the issues that matter/strong/h2 pFinding (and fixing) the bugs that are most important is a group effort. We use a two-phase process:/p olliContributors verify the current status of the major issues, make sure they are up to date, and close issues that are no longer relevant./li lia href=https://www.drupal.org/contribute/core/maintainers#maintainer-typesCore committers and subsystem maintainers/a collaborate to assess the verified issues./li /olpWe call this process issue triage. And phase 1 is where you come in! Help us sort through these major bug reports at a href=https://events.drupal.org/neworleans2016DrupalCon New Orleans/a. This flowchart illustrates the workflow we will use at the major issue triage sprint:/p pimg alt=Flowchart of the triage process data-entity-type=file data-entity-uuid=128c30d6-4e07-4c23-a800-c3cfc860f3d9 src=http://xjmdrupal.org/sites/default/files/inline-images/Drupal%20Major%20Issue%20Triage%20Flowchart%20%282%29.png //p p(You can also read the detailed instructions in the a href=https://www.drupal.org/node/2474049major triage meta issue/a.)/p pOnce the current state of these bug reports is verified, Drupal 8 core committers and subsystem maintainers will prioritize them, deciding which are indeed major, which are just normal bugs, and even which ones are critical issues in disguise./p h2strongReasons to come to the major triage sprint/strong/h2 olliHelp squash bugs faster, so that Drupal 8 is even better for your next Drupal site./li liBecome more familiar with Drupal 8 (and the kinds of bugs that still need fixing)./li liImprove your git skills and learn git techniques that will help you in your own projects./li liLearn about how issues get solved in Drupal core and how to contribute effectively./li liGet to know a particular subsystem of Drupal 8 in more depth./li liGet a href=https://www.drupal.org/drupalorg/blog/a-guide-to-issue-credits-and-the-drupal.org-marketplacecredit on your Drupal.org profile/a when the issues you verify are eventually fixed./li liCollaborate with the a href=http://buytaert.net/applaud-the-drupal-maintainersamazing maintainers/a who've brought you Drupal 8.0.0, Drupal 8.1.0, and each bugfix release./li /olh2strongSign me up!/strong/h2 pSounds awesome, right? You can a href=http://bit.ly/nola-sprintssign up on the DrupalCon New Orleans sprint sheet/a under strongBugs-- // Drupal 8 criticals and majors/strong. Longtime core mentors a href=https://www.drupal.org/u/cilefencilefen/a and a href=https://www.drupal.org/u/valthebaldvalthebald/a will be helping lead the major triage. (New to Drupal contribution? a href=https://events.drupal.org/neworleans2016/FIRST-TIME-sprinter-workshopJoin the First-Time Sprinter Workshop/a.)/p p /p /div /div span data-quickedit-field-id=node/36/uid/en/rss rel=schema:author class=field field--name-uid field--type-entity-reference field--label-hiddenspan lang= about=/user/6 typeof=schema:Person property=schema:name datatype=xjm/span/span span property=schema:dateCreated content=2016-04-26T22:57:33+00:00 data-quickedit-field-id=node/36/created/en/rss class=field field--name-created field--type-created field--label-hiddenTue, 04/26/2016 - 22:57/span

Evolving Web: Improving Drupal Speed with blackfire.io (Part 1)

Tue, 04/26/2016 - 23:21
a href=https://evolvingweb.ca/%20%20___ img src=https://evolvingweb.ca/sites/default/files/styles/medium/public/2016-04/8093997590_1dac5ec72f_o.jpg?itok=vpx-6xWp width=220 height=157 alt=Oversize Load Truck typeof=Image class=img-responsive / /apDrupal core is pretty well optimized. But after you've finished building your Drupal 7 or 8 site, you might find some pages are loading slower than you'd like. That's not surprising—you've probably enabled scores of contrib modules, written custom code, and are running over 100 SQL queries per uncached request./pa href=https://evolvingweb.ca/blog/improving-drupal-speed-blackfire-io-part-1 hreflang=enread more/a

Aten Design Group: 404 Not Found: The Monster Under Your Bed

Tue, 04/26/2016 - 22:51
img src=http://atendesigngroup.com/sites/default/files/404-not-found_0.png width=1000 height=600 alt= /pIf you are working on a website redesign, 404s are the very real monsters under your bed. Ignore them, and they will wreak havoc on your website’s traffic. Worst of all, by the time you realize what’s happening it may already be too late./p h2What are 404s?/h2 pVery simply, 404s are broken links. More specifically, 404 is the HTTP a href=https://en.wikipedia.org/wiki/List_of_HTTP_status_codesresponse code/a for “Not Found,” signifying that a web page is not available at the provided URL. Reorganizing old content, changing old URLs and selectively discarding content that is no longer relevant are all common activities during website redesign projects that can result in 404s./p h2Why 404s Are so Bad/h2 pYour legacy content – the stuff that’s been around for 15 years, from the most up-to-date research articles, to blog posts written by employees long-gone, to PDF files in random folders off your webroot – has been quietly growing your website traffic, catching inbound links and increasing effectiveness of organic search. And the longer it has been around, the more valuable it has likely become, even if the content itself is no longer of much relevance to your organization. A quick scan of your Google Analytics will likely confirm this. Your organic search traffic probably has a very long tail: thousands or tens of thousands of pages with a few hits each, funneling users to your website./p pIf those URLs change, or that content is abandoned entirely, the potentially massive net you have been casting – and growing – for years will be damaged. Despite the very best user experience, the most on-target messaging and the most compelling design, years of search engine optimization (SEO) progress can be lost – all because of 404s. Your organic search rank will drop as search engines remove the now-broken URLs from their indexes. As a result, traffic will plummet. All of this can very quickly bring the success of your entire redesign project into question./p pIn website redesigns, 404s may very well be your worst enemy./p h2Combatting 404s Starts with Content Strategy/h2 pDealing with 404s is an important, often overlooked component of effective content strategy. Communications teams frequently devote significant time to performing content audits, flagging content to be be reorganized, rewritten or abandoned altogether. Far less time – if any – is given to thinking through exactly what to do with content that is left behind. It is simply abandoned. Soon after launch, someone in marketing notices a drop in traffic and suddenly 404s are on everyone’s radar./p h2By Default, Keep Everything/h2 pWhen redesigning a website, we recommend keeping just about everything. That might be opposite of what you’ve heard before. It doesn’t lend itself to the “cleaning out the garage” or “moving to a new house” metaphors. In reality, though, your legacy content is one of your greatest assets. That junk in the garage is gold. Deal with it, but don’t abandon it./p pstrongFor outdated content,/strong channel users to more relevant offerings with good user experience design and carefully crafted messaging. Old content – even if outdated – represents an opportunity to connect with users you otherwise might miss entirely, communicating key changes in your organization or pointing to relevant, up-to-date resources. Again, dealing with legacy content is an important element of content strategy. It deserves design attention and good user experience. Craft a simple message that says “This resource is out of date. To see our more recent work in this area, see X, Y or Z.”/p pstrongFor content that is rewritten or moved to a new URL,/strong use a href=https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection301 redirects/a to redirect users automatically from old pages to their new equivalents. 301 redirects, or 301s, signal to search engines that a resource has not been eliminated; rather, it has been “Moved Permanently” and should be reindexed at its new location. 301s are hands-down the most important technical device for dealing with 404s./p pem(Note that 301s do not guarantee that your content will maintain its rank within search results. Rather, 301s indicate to search engines that the resource for a particular URL has been moved. Search engines will queue the new URL for reindexing, and search rank will once again be determined by a broad spectrum of factors like keyword density, page title, inbound links, etc.)/em/p h2Add 301 Redirects for All Migrated Content/h2 pWhen migrating legacy content into your redesigned website, add a 301 redirect for every single resource, article or page being migrated. As of right now in Drupal 7, a href=https://www.drupal.org/node/1839380a patch for the redirect module/a makes this process easy: simply map the old URL to the special destination field “migrate_redirects” and the redirect module will take care of the rest./p pIn Drupal 8, the redirect module provides built-in support for migrating redirects from older versions of the Content Management System. A little bit of custom code in your scripted migration can take care of adding redirects for migrated nodes. (Need more info? Let us know in the comments or a href=/contactget in touch/a.)/p h2Find and Prioritize All Legacy URLs/h2 pWhile adding 301 redirects for every migrated page is critical, it is not enough. Google has likely indexed large numbers of URLs for content that will not be included in your scripted migration process. Landing pages, listing pages, PDFs and anything you have specifically decided not to migrate will be omitted if your focus is solely on individual articles. To better understand the full scope of URLs that need to be dealt with, download a report of all pages from Google Analytics or whatever analytics platform you are using. This not only provides a thorough catalog of web pages, PDFs and other resources being viewed, but also shows a count of monthly page views and is incredibly helpful for establishing priority for specific pages to be redirected. Remember, your traffic has a long tail; the potentially thousands of pages that receive one or two views per month are still important./p h2Test All Legacy URLs In Your Redesigned Website/h2 pOnce you have a list of all legacy URLs you need to test your new, redesigned website to see which URLs are resulting in “404 Not Found” errors. We have a few custom scripts that do exactly that, written in environments ranging from Drupal modules to standalone NodeJS apps. Regardless of the specific implementation, the script needs to do the following:/p ol liImport a list of legacy URLs downloaded from your analytics service./li liLoop through the list of URLs and test each on the new website to see what HTTP status code is returned./li liIf a 301, 302 or other redirect is returned, follow it to ensure it eventually results in a URL with an acceptable status (a href=https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success200 OK/a). /li liGenerate a report of returned status codes. We typically include page views from the originally downloaded analytics report in this CSV so we can see the status code directly beside the number of monthly views for each URL. Seeing the HTTP status code, URL and number of pageviews all side-by-side in spreadsheet format is incredibly helpful for gauging priority./li /ol pThe first time you run your script, you will likely see a very high volume of 404s. That’s fantastic: you’re seeing them now, during the redesign, before they are anywhere close to impacting SEO or traffic./p h2Fix the 404s/h2 pYour report of returned status codes provides a prioritized list of 404s that need to be dealt with. You will likely see a mix of landing pages, listing pages, articles, PDF files and other resources. Each URL needs to be dealt with./p pOften, large numbers of similar URLs can be redirected programmatically – that is, by matching patterns rather than specific addresses. For example, a collection of folders containing PDFs may have been moved to new locations. Or URLs for pages that show content by category may need to be mapped to new category ids. Depending on the complexity of the specific redirect pattern and the environment in which your website is hosted, programmatic redirects can be added to Drupal in a variety of ways, as follows:/p ul liUsing a href=http://httpd.apache.org/docs/current/mod/mod_rewrite.htmlmod_rewrite/a in your .htaccess file/li liThe a href=https://www.drupal.org/project/match_redirectmatch redirect/a module for Drupal 7/li liA custom module using a href=https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_init/7hook_init()/a/li lia href=https://pantheon.io/docs/redirects/Custom code in settings.php/a/li /ul pRemaining URLs will simply need a single, manual redirect added. The a href=https://www.drupal.org/project/redirectredirect/a and a href=https://www.drupal.org/project/path_redirect_importpath redirect import/a modules are excellent resources for manually adding 301s./p h2Watch Out for Index.html/h2 pIf your legacy URLs are a href=https://en.wikipedia.org/wiki/Webserver_directory_indexdirectory indexes/a (i.e. ending with “index.html” or “index.htm”) you will need to add an additional redirect for the version that does not include the file name./p pExample: if your legacy URL is “http://example.com/path/to/file/index.html” and the new equivalent is “http://example.com/new/path/to/file”, you will need two redirects:/p ul liOne from “http://example.com/path/to/file/index.html” to the new URL/li liAnother form “http://example.com/path/to/file” (without index.html) to the new URL/li /ul pWe typically add additional redirects for directory indexes once all other redirect work is finished, using a simple custom script that scans the redirects table for index pages and generates the appropriate equivalent./p h2Test Again, Rinse and Repeat/h2 pOnce all 404s have been dealt with in the ways outlined above, test your redesigned website again. You will likely find a few URLs that still need to be addressed. Rinse and repeat until the entire list of prioritized pages returns the acceptable status code of 200./p h2Not Quite Done/h2 pAnd that’s it. Almost. The final piece to combatting 404s is to monitor them closely after launch. The redirect module provides a simple admin page for doing exactly that. We strongly recommend monitoring 404s for several days after launch and adding 301s wherever appropriate./p h2Sit Back and Relax/h2 pWebsite redesign projects usually impact organizations at all levels, and we know you probably won’t be able to truly sit back and relax after launch. There will be final communications details, stakeholder reviews, content updates, ongoing bug fixes and likely a growing list of next-phase wishlist items. That said, dealing with 404s will help protect your investment in organic search and mitigate deleterious effects on web site traffic. There will still be a dip in the numbers as Google and other search engines update their indexes and re-crawl new content. This post doesn’t address SEO strategy in-depth, nor setting specific traffic goals and benchmarks as a part of planning and discovery for your website redesign. It does express the very clear need to accommodate modified URLs and abandoned pages. Without an effective redirect strategy, 404s will almost certainly wreak havoc on your organic search traffic. Good content strategy and 301 redirects are critical allies for fighting 404s and protecting your years-long investment in SEO./p

DrupalCon News: Come celebrate community in the exhibit hall

Tue, 04/26/2016 - 21:15
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpspan style=font-size:14.666666666666666px;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;img alt=Megan Sanicki sits at Drupal Association table in DrupalCon Portland src=https://events.drupal.org/sites/default/files/assoc_table_portland.jpg style=width: 400px; height: 267px; float: right; margin: 5px; border-width: 0px; border-style: solid; //spanThis DrupalCon we're cranking up the community exposure in the exhibit hall./p/div/div/div

OSTraining: How to Change the jQuery Version in Drupal 7

Tue, 04/26/2016 - 19:24
div class=ost-intro-imageimg src=https://www.ostraining.com/images/drupal/change-jquery-version-drupal-7.jpg alt=How to Change the jQuery Version in Drupal 7 width=200 height=134 //div pOne of our OSTraining members asked about changing JQuery, so we created this tutorial for him./p pBelow is quick guide to installing Drupal's Jquery plugin module./p

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

Tue, 04/26/2016 - 19:03
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_13.png?itok=PzMBjrhE width=140 height=85 alt=Drupal 8 logo title=Drupal 8 logo //divdiv class=field-item oddimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/balliol-example.gif?itok=NkndTYJl width=140 height=85 alt=Balliol College website demo title=Balliol College website demo //divdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/iainstitute-responsive-menu.gif?itok=Rge7X_3a width=140 height=85 alt=Information Architecture Institute demo title=Information Architecture Institute demo //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 an interesting mobile-usability helper: stronga href=https://www.drupal.org/project/responsive_menuResponsive and off-canvas menu/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/motw typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=MotW/a/divdiv class=field-item evena href=/tags/drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 8/a/divdiv class=field-item odda href=/tags/d8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=D8/a/divdiv class=field-item evena href=/tags/ux typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=UX/a/divdiv class=field-item odda href=/tags/mobile typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=mobile/a/divdiv class=field-item evena href=/tags/menu typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=menu/a/div/div/div

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

Tue, 04/26/2016 - 16:07
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/media-image.jpg?itok=6W7CMWnM width=140 height=85 alt=old fashioned media //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:encodedpDrupal 7 out the box offers a good implementation for uploading media, but it has three significant challenges./p h3Challenge 1: Files should be entities/h3 pIn Drupal, files should be entities so you can add additional fields to the file type. As an example, when you upload an image you will want your standard image emalt/em attribute, which specifies alternate text for an image, if the image cannot be displayed, or the user is using a screen reader. But you may want to have additional fields, such as emphoto credit/em or emimage caption/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/div/div/div

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

Tue, 04/26/2016 - 15:15
div class=field field-name-body field-type-text-with-summary field-label-hidden text-content text-secondarydiv class=field-itemsdiv class=field-item evenpDrupal 8.1 now provides a user interface (UI) for conducting a Drupal-to-Drupal migration. Since there is no direct upgrade path for Drupal 6 or 7 to 8, you should become familiar with the migrate system in Drupal, as it will allow you to migrate your content from previous versions to Drupal 8./p /div/div/divdiv id=comment-wrapper-nid-2580/div

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

Tue, 04/26/2016 - 08:46
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpHere is a case study of how Drupal helped in implementing a customer portal for a major utility service provider in the US./p/div/div/div