Drupal Planet

Subscribe to Drupal Planet feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 21 hours 49 min ago

Chromatic: Decoupled Drupal – What You Need to Consider

March 7, 2018 - 21:00

“Decoupled Drupal” sounds cool and just about everyone else seems to be either doing it or talking about it, so it must be the best solution for you, right? Well, maybe. As with most things, the answer is more nuanced than one might think.

WeKnow: How to install Drupal 8 from an existing configuration

March 7, 2018 - 15:03
How to install Drupal 8 from an existing configuration

The Configuration Management (CM) system, is probably one of the most well known and exciting features of Drupal 8. But wouldn't be even more awesome to be able to install a site, export configuration and then re-install site from scratch importing the previously exported configuration?

For those who are not yet clear what we are talking about, this post is related to fixing the infamous exception error message when importing configuration:

"Site UUID in source storage does not match the target storage."

Why would you want to be able to install your site from an existing configuration?

Automate the creation of reproducible build/artifacts from scratch at any stage (Development, QA, Production) to test, launch or deploy your site.

jmolivas Wed, 03/07/2018 - 08:03

Acro Media: CiviCRM Installation in Drupal 8 & Commerce 2

March 7, 2018 - 07:46

It’s amazing how, just a couple of years ago, Drupal 8 was in its initial stages and was getting ready for its first stable release. But now, in 2018, we have stable releases and contributed module development on D8 has been progressing rapidly (as of this writing, we’re at nearly 5,000 D8 modules). CiviCRM, the best open source customer management tool, is one such community contributed integration that has been making such Drupal 8 strides.

When one of our clients needed their D7 CiviCRM ported over to their new D8 site, the prospects were not good: CiviCRM seemed to be lagging behind and the general online consensus was that things weren’t working, and boy are we glad the internet was wrong. The people behind the open-source content management framework has gotten its D8 version out and interestingly, most of it works beautifully. To our surprise (and relief!), the integration with the D8 site went incredibly well, of course, with a few kinks here and there. Those kinks are primarily due to the fact that Civi ships with its own Symfony version, which is a different version than what Drupal uses and that causes a conflict. For more information on it, read here.

We were able to do our Civi installation by following the steps mentioned in the wonderful blog by David Snopek. So, even though it was a bit complicated, it was definitely a learning experience for us and we thought we would share some of that knowledge here. In this blog we’ll be detailing how to install the richly packed Customer Relationship Management tool called CiviCRM on an existing Drupal 8 Commerce 2 ecommerce store. However, if you’d like to install a new Vanilla Drupal Commerce 8 site with CiviCRM already setup, we’d suggest you follow the easy-to-use instructions in Snopek’s blog.

Steps for Installing CiviCRM (Existing Installation)

In Drupal 8, installing CiviCRM is a bit more complicated than doing just a simple...

$ composer require drupal/civicrm

...like you would for other modules.

If you are waiting for a more standardized policy/process for installing Civi, it might not be in the near future, as the maintainers feel that we already have a process that works and they want to spent their time concentrating on getting the actual module more stable and fixing functional bugs. They also need to come together and agree upon what is the best way to organize the code and do its build. So, the process to get it installed on a D8 installation requires quite a few steps, but if you do it right, it will work.

Below we’ve tried to slim down those steps and made it a bit more concise, so that, essentially, all you would need to do is copy and paste the commands and be on your way to using a fully integrated CiviCRM on top of Drupal 8. It took us a couple of attempts to get it right when we first installed it as some of the steps were in different places and missing a step would mean you had to start over.

Installing CiviCRM on an existing D8 site


  • Composer - not just the tool, but your Drupal 8 site should be using composer to manage dependencies.
  • Bower - another package management tool. Yes, we are rich with package managers in this process.
  • Git - Source control (managing the code that runs your site) is an essential part of every build, but particularly, it’s a requirement of Composer, because it uses that source control to lock down which packages you are building on.

Note: as CiviCRM Core hasn’t been added to Packagist yet, we’ll be using David Snopek’s fork.

  1. In your D8 installation, ensure that your "Vendor" directory is outside of your document root. So your directory structure would be like this:

    ├─ composer.json
    ├─ composer.lock
    ├─ vendor
    └─ web (your document root)

  2. Create a backup of your database.
  3. Go to our github repository, civicrm_d8_install_script, and copy the .env and civicrm_setup.sh files to your Drupal 8 project root directory.
  4. Run civicrm_setup.sh from your project root directory.
    bash ./civicrm_setup.shThis will download all the necessary modules and dependencies needed to install CiviCRM.
  5. Now, go to the "Extend" page (at /admin/modules) and install the CiviCRM module.
    1. This will create a civicrm.settings.php in your "/sites/default directory" which contains information about where the database is, etc.
    2. This will also create all the necessary tables in your Drupal database.
  6. Logout of Drupal and log back in again.
    1. Say what? Yeah, this is needed to sync your logged-in account with CiviCRM contacts.
  7. Get the Civi theme to apply by going to "/civicrm/admin/setting/url?reset=1" and set the CiviCRM Resource URL to "/vendor/civicrm/civicrm-core" and click “Save”.

  8. If everything worked correctly, you should see a CiviCRM link up at the top.

  9. Click on the CiviCRM link and you should be taken to a page like this:

  10. You can also confirm that the module is actually working by typing in the email of the user that you are logged in as, and it should bring up the contact in CiviCRM. This means that contacts are automatically being synced between Drupal and CiviCRM.

And that is it, you can throw your hands up in the air to celebrate, as you’ve just installed CiviCRM in a matter of minutes.

More from Acro Media Need a hand?

Would you like Quickbooks integrated into your Drupal Commerce website, but need a hand doing it? We've done it many times and would love to help.

Dries Buytaert: Cooking with Alexa and Drupal

March 7, 2018 - 01:51

When I'm home, one of the devices I use most frequently is the Amazon Echo. I use it to play music, check the weather, set timers, check traffic, and more. It's a gadget that is beginning to inform many of my daily habits.

Discovering how organizations can use a device like the Amazon Echo is big part of my professional life too. For the past two years, Acquia Labs has been helping customers take advantage of conversational interfaces, beacons and augmented reality to remove friction from user experiences. One of the most exciting examples of this was the development of Ask GeorgiaGov, an Alexa skill that enables Georgia state residents to use an Amazon Echo to easily interact with government agencies.

The demo video below shows another example. It features a shopper named Alex, who has just returned from Freshland Market (a fictional grocery store). After selecting a salmon recipe from Freshland Market's website, Alex has all the ingredients she needs to get started. Alex begins by asking Alexa how to make her preferred salmon recipe for eight people. The recipe on Freshland Market's Drupal website is for four people, so the Freshland Market Alexa skill automatically adjusts the number of ingredients needed to accommodate eight people. By simply asking Alexa a series of questions, Alex is able to preheat the oven, make ingredient substitutions and complete the recipe without ever looking at her phone or laptop. With Alexa, Alex is able to stay focused on the joy of cooking, instead of following a complex recipe.

This project was easy to implement because the team took advantage of the Alexa integration module, which allows Drupal to respond to Alexa skill requests. Originally created by Jakub Suchy (Acquia) and maintained by Chris Hamper (Acquia). The Alexa integration module enables Drupal to respond to custom voice commands, otherwise known as "skills".

Once an Amazon Echo user provides a verbal query, known as an "utterance", this vocal input is converted into a text-based request (the "intent") that is sent to the Freshland Market website (the "endpoint"). From there, a combination of custom code and the Alexa module for Drupal 8 responds to the Amazon Echo with the requested information.

Over the past year, it's been very exciting to see the Acquia Labs team build a connected customer journey using chatbots, augmented reality and now, voice assistance. It's a great example of how organizations can build cross-channel customer experiences that take place both online and offline, in store and at home, and across multiple touch points. While Freshland Market is a fictional store, any organization could begin creating these user experiences today.

Special thanks to Chris Hamper and Preston So for building the Freshland Market Alexa skill, and thank you to Ash Heath and Drew Robertson for producing the demo videos.

Chromatic: Chromatic at MidCamp 2018

March 6, 2018 - 23:27

We’ll be attending and presenting at this year’s MidCamp in Chicago. If you’re also going to be in there, be sure to check out our sessions on Twig and application monitoring.

Acquia Developer Center Blog: The Channel Explosion: Off Screens and Out the Window

March 6, 2018 - 22:58

Perhaps the most fascinating single fact of the Cambrian explosion is that life on Earth diversified from largely unicellular organisms that occasionally bunched into colonies to multicellular organisms that came to represent much of the present-day animal kingdom — all at a single discernible moment 541 million years ago in the fossil record. As we approach the end of this decade, we're experiencing a similar Cambrian explosion — not in life forms, but in form factors.

Tags: acquia drupal planet

roomify.us: Drupal 8 gets a native booking framework

March 6, 2018 - 21:02
We are excited to announce the release of BEE, a booking solution for Drupal 8 aimed at site builders. Roomify specializes in booking solutions and our PHP library, BAT, and the accompanying Drupal module allow developers to integrate booking logic in any PHP application. However, isn't very helpful for site builders. BEE is the booking module for Drupal that site builders wish existed.

CTI Digital: How Drupal helps WarChild to save lives

March 6, 2018 - 16:07

During the CXO day at Drupalcamp London, Dave O’Carroll the Head of Digital at War Child delivered a compelling speech on how Drupal has aided their mission in supporting the future and well-being of children living in some of the world’s most dangerous war zones.

Agiledrop.com Blog: AGILEDROP: Index of online excellence put in the context of Drupal CMS

March 6, 2018 - 15:42
Bowen Craggs & Co is a UK based research and consultancy group which is focused solely on online corporate communications - websites, social media and social channels. A very short introduction of what they do is to be found on their website. In short, they review, measure, and advise how to make the websites and social media channels better for businesses and customers.  To measure that they developed a Bowen Craggs Index of Online Excellence which was designed as a guide to the best in internet corporate communications. But it is not so much about communications as it is about… READ MORE

OSTraining: Give a Unique Look to Your Google Maps in Drupal

March 6, 2018 - 13:42

Google Maps don't look appealing or pretty by default when you embed them in your Drupal content. Nor do they always nicely coordinate with your site look and feel.

What if you found a way to give them a custom design? For example - your own color? In this tutorial, you will learn how to give your Drupal Google Maps a custom style with the Styled Google Map contrib module.

Palantir: Drupal Association Retrospective

March 6, 2018 - 07:10
Drupal Association Retrospective brandt Mon, 03/05/2018 - 18:10 Tiffany Farriss Mar 6, 2018

Tiffany Farriss’ reflection on her time on the Drupal Association Board of Directors.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

With its public announcement of the incoming class of directors, the Drupal Association (DA) officially marked the end of my nine years of service to the Board. Considering that I’ve only just celebrated my 11th “Drupalversary”, it was certainly a bittersweet moment for me as that board has been a huge part of my Drupal life for so long.

When I look back at my tenure, I’m gobsmacked at how far we’ve come as an organization. When I joined the board in 2009, our board meetings were either at DrupalCon or in IRC (only), there was no budget, every expenditure required a board vote, and the board served as de-facto staff elected to fulfill a specific function.

Those were scrappy days, when we punched above our weight, buoyed by a communal sense of responsibility and connected by our passion for Drupal. It seemed like everyone you knew, everyone in “The Community” contributed what they could, as much as they could. The barriers to entry were low. It was easy to get involved and find your place and your voice. That bonhomie combined with the mission and reward of building something bigger than yourself, bigger even than your own company, was exhilarating.

As a project and as an organization, those early efforts paid off and we grew pretty fast, far beyond what any group of motivated volunteers could support and sustain long-term. It was clear that for Drupal to reach its potential, we needed to hire staff and forge a path forward that professionalized both the DA and its channels: DrupalCon and Drupal.org.

While there is still much work ahead for the DA, it is leaps and bounds ahead of where it started. The DA has matured into a $5 million non-profit with audited financial reports and forecasts, a staff, and an articulated mission, vision and values. Far from its days as an organization founded to be a bank account so that the servers wouldn’t melt down, the Drupal Association now unites a community to build and promote the Drupal project.

The challenge and magnitude of this mission is inspiring, just as the promise of Drupal continues to inspire many of us who contribute to the project. However, it’s also important to recognize that as the project has grown and matured over the years, the members of our community and their corresponding motivations have also expanded.

“The Community”

Drupal is deeply rooted in “The Community.” Over the years, the DA board spent a fair amount of time seeking to understand who the community is and what the organization’s role is within it. While that answer is (and indeed should be) ever-evolving, one important realization I’ve made is that what we call “community” is actually an amalgam of lots of sub-communities.

At Drupal’s core, there is its contributor community: those who write and review code and documentation. As we’ve grown, this group has expanded in role to include leading, managing, and mentoring others who do so as well. Depending on how long someone has been working in Drupal, this community may be the universe they think of when it comes to Drupal, but there are many more:

  • Local communities and communities of interest, who do an invaluable job organizing and hosting meetups and camps, welcoming and onboarding new people into the project.
  • The Drupal business ecosystem, which is often recognized for contributing financial, code, and logistical support, but they are also on the forefront selling and marketing Drupal and expanding its reach into new sectors and organizations and creating an essential feedback loop with users.
  • Customers, who drive the demand for innovative features and talent, creating jobs, thorny technical challenges and momentum.
  • End users, who outnumber the rest of the communities combined and use Drupal day-to-day in their jobs. Their experience influences adoption and retention. Their needs and their ideas spur innovation.
  • Educators, who are training and inspiring the next generation of Drupal talent. A successful Drupal needs to represent the perspectives, contributions, and resources of all of its communities.
The Past, Present, and Future Role of the DA

This is where the Drupal Association comes in. As it has matured, the Drupal Association has begun to operate as a convener, a connector and a platform. The DA is a strategic partner for Drupal and its communities, identifying and matching various needs and opportunities together. It facilitates interactions, relationships and collaborations that help those of us within Drupal grow as a project, as companies, teams and organizations and as people.

Especially since its incorporation as a US-based nonprofit, the DA has worked to expand Drupal’s reach by building relationships with all the people who contribute to Drupal’s success. It has invested in forging new relationships with decision-makers such as CMOs, CIOs and CTOs and influencers while maintaining the support expected by established contributors and organizers. The Association has been listening to feedback and thinking strategically about the trends they are seeing within our own ecosystem and beyond.

There are gaps in governance and opportunities for growth beyond Europe and North America. Drupal has begun to scale project infrastructure and process. There is also some upcoming focus on leadership development and culture that is has been long in development and is very exciting. Drupal is growing and changing and the Drupal Association is growing and adapting to meet new challenges.

Change is not always easy, but here’s what I know: successful change management always comes down to people and that’s what gives me hope. Every single person at the DA, especially Megan Sanicki and her amazing team, operates with a deep care for the people in Drupal and a fierce commitment to the project. The DA is curious about new opportunities and trends, committed to learning and open to evolving however it can best and most uniquely serve Drupal.

Coming from the DA’s humble and very practical beginnings, there is so much to celebrate and yet still so much to learn and do as they tackle opportunities ahead. That work isn’t finished. It never is. The best part is that the DA doesn’t have to do any of this alone (nor could it). Drupal’s history has taught us to trust that we get help when we ask. The people of Drupal are generous with their time, talent and treasure and the DA is in very good hands.

It has been very hard to step away. Being a part of the Drupal Association leadership for so long has been one of the most rewarding experiences of my career and, to be honest, I would have gladly served again were it allowed. I already miss the work and my colleagues.

Thank you to everyone in the Drupal Association, past and present. Thank you especially to Dries for creating something so special and choosing to share it with the world. I will be forever grateful to have been able to contribute my talents in service to such a fantastic community with some truly amazing people. I wish all the best to Adam, Baddy, Ingo, Michel, Audra and George as they start their adventure. I look forward to seeing what amazing things the Drupal Association does next!


image credit: Dries Buytaert, https://dri.es/album/drupalcon-san-francisco-2010/

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

Palantir: See You at MidCamp!

March 6, 2018 - 05:32
See You at MidCamp! brandt Mon, 03/05/2018 - 16:32 Alex Brandt Mar 5, 2018

MidCamp 2018 is this week (March 8 - 11), and we have a few different presentations from Palantiri on the books.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

MidCamp week is upon us! We love supporting this event because it always features well-curated Drupal-related content, and it’s a great way for us to connect with familiar faces in our local Drupal community. It’s also great for those currently involved in Drupal wanting to expand on their skillset, or for newbies just curious to learn more about Drupal.

Game Night Social

As is tradition, Palantir will be sponsoring Friday night’s Game Night Social. Grab a ticket to MidCamp, and join us for some friendly competition and tasty eats provided by Jarabe.

  • Time: Friday from 6pm – 9pm
  • Location: Onsite at DePaul, in the second floor common area
Palantiri Sessions

Trying to decide which sessions to attend? Why not check out one of ours!

You can follow along with MidCamp news on their Twitter (@midwestcamp) or using hashtag #MidCamp. We’ll see you later this week!

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

Dries Buytaert: How Boston.gov is moving government forms online

March 6, 2018 - 00:42

Josh Gee, former product manager for the City of Boston's Department of Innovation and Technology, recently shared how Boston.gov identified 425 PDFs used by citizens and moved 122 of them online. Not only did it improve the accessibility of Boston.gov's government services, it also saved residents roughly 10,000 hours filling out agency forms. While Boston.gov is a Drupal website, it opted to use SeamlessDocs for creating online forms, which could provide inspiration for Drupal's webform module. Josh's blog provides an interesting view into what it takes for a government to go paperless and build constituent-centric experiences.

Dries Buytaert: Drupal hooks vs Drupal events

March 6, 2018 - 00:28

Jonathan Daggerhart wrote a fantastic tutorial on Drupal 8's events system. I especially liked the comparison to Drupal's traditional hook system. When reading Jonathan's tutorial, I couldn't help but think how useful it would be to integrate it into Drupal's official documentation.

Colorfield: Drupal and Docker the easy way with Lando

March 6, 2018 - 00:22
Drupal and Docker the easy way with Lando christophe Mon, 05/03/2018 - 18:22 Ever thought about spinning up a Drupal 7 or 8 dev environment that is close to your production setup in minutes (Apache or Nginx, PHP 5.6 or 7.1, MySQL or Postgres, or ...)? Even better, you will be able to share the configuration with your team straight on your Git repository as a YAML file. Lando provides development environments (LAMP, LEMP, MEAN, ...) and other recipes for Drupal 6 to 8, Laravel, Backdrop, ... .

Deeson: Highlights from DrupalCamp London 2018

March 5, 2018 - 23:43

Over the weekend, several of us in the tech chapter at Deeson attended DrupalCamp London 2018. It’s always a great event, and one our own Tim Deeson helped co-found in 2013.

For me, returning to DrupalCamp was a chance to immerse myself in the community again, to catch up with some old friends, and put faces to people I’d only met on Twitter.

The Deeson developers attending the event had different levels of Drupal knowledge, so we didn’t stick together the entire time. Due to my relatively limited knowledge of Drupal 8 I attended two very informative, low level development talks about the internal workings of D8 and how the approach differs to that I already know well with D7.

The first was Drupal 8 Services and Dependency Injection, an introduction to creating custom services to use within your own modules. I also attended Let’s take the best route - Exploring Drupal 8 Routing System, which showed me that while the change to Symfony makes the code very different, it’s actually straightforward and consistent once you get into it.

A particular highlight was seeing our Lead Developer Mike Davis in action. He spoke about Warden – an open source solution Deeson built to allow in-house development teams and agencies to keep track of the status of multiple Drupal sites hosted on different platforms.

Here are a few of our other favourite sessions and highlights from the event…

“Hello User, I’m Drupal!”

This session from Gabriele Maira introduced Chatbot API – A Drupal module which enables site builders to serve their content via chat.

We’ve been speaking about conversational interfaces and chatbots for a while at Deeson, and it was really interesting to learn about the tools available for Drupal site builders. With Alexa and Dialogflow support out of the box, Chatbot API module is one to keep an eye on.

Katy Ereira, Senior Developer

Drupal in the era of Microservices.

I attended a talk by Wunder's CTO Florian Lorétan, where he discussed the ideas around using Drupal with Microservices. This is an interesting idea particularly where larger projects are concerned as it opens up the potential for large teams to collaborate more effectively. 

We currently use Docker as part of our own build process (which could be considered a microservice) and I wanted to see how this could be extended further and what other benefits could be yielded as a result.

It was very interesting to learn that automated tests, benchmarking, security testing and monitoring could all be done as mircroservices with Drupal and how the speed of deployment could be rapidly increased by using this approach.

Whilst this is relatively new, it's great to see people within the Drupal community exploring how microservices could be used with Drupal to speed up the development process, and I'm really looking forward to seeing what the future holds in this area. 

Rowan Blackwood, Developer

Building a contribution culture in a Drupal agency.

I've joined Deeson within the past year, and one of the key qualities that drew me to Deeson in the first place was its commitment to open source and support for contributing back to the community. So I was keen to hear a little more about how other companies foster their own contributions culture and have the opportunity to compare our own culture with another.

In his session @hussainweb reiterated the added value that you can create for yourself by making contributions to open source projects, and how his company has found ways to actively encourage individuals to make contributions.

What really stuck with me is the following three items:

  1. Open source contributions create Social Capital, and that's an investment you can recoup in other ways.
  2. Contributions are not just about actual code contributed - it's also about bug reporting, documentation, testing, speaking and writing, which are just as valuable efforts, and they should also be tracked, encouraged and rewarded.
  3. Don't be intimidated from extending open source projects. If you use it, treat it as your own upstream code and not a project that cannot be touched. Lose the fear of the project and contribute! 

James Ford, Senior Developer

Droptica: Droptica: How to add new button (plugin) to CKEditor pt. II

March 5, 2018 - 19:15
In one of our previous articles, we showed you how to configure CKEditor in Drupal 8. This time, we are going to demonstrate how you can expand the editor’s functionality on your own.   In the case of many websites, the basic functions of CKEditor are more than enough.  However, there are projects where clients demand expanding the functionality of the content editor. With CKEditor, you can do that using plug-ins – all of them are available on the official website.http://ckeditor.com/addons/plugins/all  Adding a new plug-in to the website based on Drupal 8 is very simple compared to the way it was done in the previous version of Drupal. All you need is to create a simple module.  

DrupalEasy: All the favicons on your Drupal 8 site

March 4, 2018 - 21:18

Every Drupal 8 site should have a custom favicon that helps to reinforce the site's brand - of this there is really no argument. But, over the past (more than a few) years, the role of the lowly favicon has grown from just the little icon on a browser tab. These days, favicons are also used on mobile devices as the gateway to your site. Keeping your brand strong in all contexts is more important than ever.

Luckily, the Responsive Favicons module, combined with Favicon Generator makes it pretty easy to keep your site's branding consistent across multiple platforms. 

Assuming you have a relatively square-ish version of the site's logo, making this all happen is pretty easy.

First - head to Favicon Generator, upload the site's logo, then review/tweak the settings for the various contexts. You'll be asked for the "App name" (usually the site's name), suitable background colors (I selected a nice pear-color for the DrupalEasy logo - you can see it in the iOS mockup above), as well as image overrides (optional) for each context. For the "Favicon Generator options", select the "I will place favicon files at the root of my web site" option (at the recommendation of the Responsive Favicons module maintainers). At the end of the process, you'll get a zipped file full of all the necessary icons and meta data. 

Next, download and install the Responsive Favicons module. Head to its configuration area (/admin/config/user-interface/responsive_favicons) and complete the form. For the "Path to responsive favicon files", I just used "favicons". The "Favicons tags" section is provided at the end of the Favicon Generator's process. Finally, point the zip file generated by the Favicon Generator to the final form field. Click to "Save configuration" and you should be all set!

Lessons like this (and much, much more) are taught during our 12-week, 3x/week Drupal Career Online course. Learn more and register for our free Taste of Drupal webinar to dive into the details of the course.

agoradesign: Using add to cart links instead of forms in Drupal Commerce 2

March 4, 2018 - 02:13
Today I'm introducing you to a new contrib module, I've created for allowing "add to cart" (or wishlist) buttons as links instead of forms. This helps to circumvent some unfortunate Drupal core limitations, when you want to build overview pages or blocks.

Ashday's Digital Ecosystem and Development Tips: Drupal Search: Solr vs Search Module

March 3, 2018 - 05:09

Drupal isn’t known as a particularly lightweight content management system and that is one of the reasons we love it, right? It is meant to handle large amounts of complex content. A problem occurs when you have a site that is just flush with content of different types, how do you get users to it? Navigation can only get you so far sometimes. We have personally seen this on everything from large-scale publishing sites to medical practice sites.