CINXE.COM
San Francisco Airport | Drupal.org
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#"> <head profile="http://www.w3.org/1999/xhtml/vocab"> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width" /> <meta name="MobileOptimized" content="width" /> <!--[if IE]><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="https://www.recaptcha.net/recaptcha/api.js?hl=en" async="async" defer="defer"></script> <meta name="description" content="A one-of-a-kind international airport serving the greater San Francisco area" /> <meta name="generator" content="Drupal 7 (https://www.drupal.org)" /> <link rel="image_src" href="https://www.drupal.org/sites/all/themes/bluecheese/images/og.jpg" /> <link rel="canonical" href="https://www.drupal.org/case-study/san-francisco-airport-0" /> <link rel="shortlink" href="https://www.drupal.org/node/3363993" /> <meta property="og:site_name" content="Drupal.org" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://www.drupal.org/case-study/san-francisco-airport-0" /> <meta property="og:title" content="San Francisco Airport" /> <meta property="og:description" content="A one-of-a-kind international airport serving the greater San Francisco area" /> <meta property="og:updated_time" content="2024-01-24T21:55:13+00:00" /> <meta property="article:published_time" content="2023-06-01T00:28:56+00:00" /> <meta property="article:modified_time" content="2024-01-24T21:55:13+00:00" /> <title>San Francisco Airport | Drupal.org</title> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__vwdslBVX8xVWQ4hx4mWxIC59-lKGPldWkMIm435ispk__msT4O19F5udTbXsVQpyNk2EFYlbaoLwufqq_ZcdDcB0__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__Xi-PZpvKTY78w7l1WNsqwUA52MIupHJebCMiX34Ugt0__D_EUHDAfEQdxcLiSDY7hREUWkG1Ge56_h2z3Er8V188__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__WF0PRotZAhCcl0aJjY5W2LYj8UwiYuB2dZEFluOh3Tc__FviX13FUB-Ppa2XB29BUIJQZ1Wg-F5XiDE7XD5y7mjQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__NIw_DPU8Mg3GtGpnuqMYJS_XlUsM5CO1It4gwoiU5b8__b3B8u7yzxUpe4SEH5X6eNTawzmAgeuHdw5UbV9NuhlI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__pWCOPcaPe71p3QyGrAeqEd6dwL_n27prYOjnWQj4jVI__fR6RV6fh70jWL18FMzdVQpGUyYT8iL9Vw8wnms1DdQA__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__mlCLWKqAJJ-E-mMVCEmFp-7SE_XsgAxpf7HS-FcVqB0__7Tgy6u_PBeTp3b4s5UumhQPx9mJ_jhs1Z-WvSrqxAHk__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__QPp1snPjYt_xYr0c_V0IORcEElkIUBBBrvOB4ZE0Gnw__8jkPtXCYcQv4spuNwtiMBMbZXgCS-2GouDqwnCBDPRE__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> </head> <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-3363993 node-type-casestudy drupalorg-site-main with-cover-photo" > <div id="skip-link" tabindex="-1"> <a class="element-invisible element-focusable" href="#content">Skip to main content</a> <a class="element-invisible element-focusable skip-link-search" href="#search-block-form">Skip to search</a> </div> <div class="region region-page-top"> <noscript aria-hidden="true"><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W36H8DW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div id="drupalorg-crosssite-gdpr">Can we use first and third party cookies and web beacons to <a href="https://www.drupal.org/terms">understand our audience, and to tailor promotions you see</a>?<br><button class="yes">Yes, please</button><button class="no">No, do not track me</button></div> </div> <div id="nav-header"> <div class="menu-nav"> <a class="nav-btn" id="nav-open-btn" href="#block-system-main-menu"><img src="/sites/all/themes/bluecheese/images/icon-w-menu.svg" alt="Main menu"></a> </div> <nav id="navigation-inner" class="container-12" role="navigation"> <div class="region region-navigation"> <div id="block-system-main-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/home" title="Drupal.org home page">Drupal.org home</a></li> <li class="expanded"><a href="/about" title="">Why Drupal?</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/about" title="Learn about Drupal">About Drupal</a></li> <li class="leaf"><a href="/docs/getting-started/understanding-drupal/overview-of-drupal" title="">Platform overview</a></li> <li class="leaf"><a href="/about/11" title="">Drupal 11</a></li> <li class="leaf"><a href="/features/content-authoring" title="">Content Authoring</a></li> <li class="leaf"><a href="/features/content-as-a-service" title="">Content as a Service</a></li> <li class="leaf"><a href="/features/decoupled" title="">Decoupled</a></li> <li class="leaf"><a href="/features/accessibility" title="">Accessibility</a></li> <li class="leaf"><a href="/features/marketing-automation" title="">Marketing Automation</a></li> <li class="leaf"><a href="/features/multilingual" title="">Multilingual</a></li> <li class="leaf"><a href="/features/security" title="">Security</a></li> <li class="leaf"><a href="/features/personalization" title="">Personalization</a></li> <li class="leaf"><a href="/case-studies" title="View case studies to see how your peers have built success on Drupal">Case studies</a></li> <li class="leaf"><a href="https://www.drupal.org/association/beyond-the-build" title="">Video series</a></li> <li class="last leaf"><a href="/about/in-the-news" title="">News</a></li> </ul></div></li> <li class="expanded"><a href="/industries" title="Examples of solutions built on Drupal">Use cases</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/developers" title="">For Developers</a></li> <li class="leaf"><a href="/marketers" title="Why marketers should choose Drupal for their ambitious digital experiences">For Marketers</a></li> <li class="leaf"><a href="/industries/ecommerce" title="">E-commerce</a></li> <li class="leaf"><a href="/industries/education" title="">Education</a></li> <li class="leaf"><a href="/industries/fintech" title="">FinTech</a></li> <li class="leaf"><a href="/industries/government" title="">Government</a></li> <li class="leaf"><a href="/industries/healthcare" title="">Healthcare</a></li> <li class="leaf"><a href="/industries/hightech" title="">High Tech</a></li> <li class="leaf"><a href="/industries/nonprofit" title="">Nonprofit</a></li> <li class="leaf"><a href="/industries/retail" title="">Retail</a></li> <li class="last leaf"><a href="/industries/travel" title="">Travel</a></li> </ul></div></li> <li class="expanded"><a href="/documentation" title="Resources to help you on your Drupal journey">Resources</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/docs/getting-started/installing-drupal" title="">Installing Drupal</a></li> <li class="leaf"><a href="/documentation" title="Drupal Documentation">Documentation</a></li> <li class="leaf"><a href="/docs/user_guide/en/index.html" title="The Drupal 8 user guide will get you up to speed in no time">User guide</a></li> <li class="leaf"><a href="/docs/official_docs/local-development-guide" title="">Local Development Guide</a></li> <li class="leaf"><a href="/security" title="Find information about security releases for Drupal">Security</a></li> <li class="leaf"><a href="/news" title="News about the Drupal ecosystem">News</a></li> <li class="leaf"><a href="/planet" title="">Blog</a></li> <li class="last leaf"><a href="/about/drupal-7/d7eol/partners" title="Find help for your Drupal 7 migration">Migrate from D7</a></li> </ul></div></li> <li class="expanded"><a href="/drupal-services" title="Buy Drupal Products and Services">Services</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/drupal-services" title="View the Drupal service provider marketplace">Find an Agency Partner</a></li> <li class="leaf"><a href="/hosting" title="Find trusted Drupal hosting providers">Find Integrations & Hosting</a></li> <li class="leaf"><a href="/training" title="Find expert Drupal training">Find Drupal Training</a></li> <li class="leaf"><a href="/association/become-a-drupal-certified-partner" title="">Become a Certified Partner</a></li> <li class="last leaf"><a href="/about/drupal-7/d7eol/migration-resource-center/enterprise" title="">Find a D7 migration partner</a></li> </ul></div></li> <li class="expanded"><a href="/community" title="Drupal Community">Community</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/community/contributor-guide" title="">How to Contribute</a></li> <li class="leaf"><a href="/community" title="View the community portal and find all the ways you can contribute to Drupal">About the Community</a></li> <li class="leaf"><a href="/support" title="">Support</a></li> <li class="leaf"><a href="/project/governance" title="">Community Governance</a></li> <li class="last leaf"><a href="https://jobs.drupal.org" title="">Jobs/Careers</a></li> </ul></div></li> <li class="expanded"><a href="/community/events" title="Find Drupal Events around the world, from the official DrupalCons, to community Camps and Meet-Ups">Events</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="https://events.drupal.org/barcelona2024" title="">DrupalCon Barcelona 2024</a></li> <li class="leaf"><a href="https://events.drupal.org/singapore2024" title="">DrupalCon Singapore 2024</a></li> <li class="leaf"><a href="https://events.drupal.org/atlanta2025" title="">DrupalCon Atlanta 2025</a></li> <li class="last leaf"><a href="/community/events" title="">Community Events</a></li> </ul></div></li> <li class="expanded"><a href="/download" title="Download and Extend Drupal">Download</a><div class="menu-block"><ul class="menu button"><li class="first collapsed"><a href="/download" title="Build your solution on Drupal">Download</a></li> <li class="leaf"><a href="/project/modules" title="Find modules to extend Drupal to meet any need">Modules</a></li> <li class="leaf"><a href="/project/themes" title="Browse themes as a starting point for making your Drupal site your own">Themes</a></li> <li class="leaf"><a href="/project/distributions" title="Use a distribution to start with a version of Drupal customized to purpose">Distributions</a></li> <li class="leaf"><a href="/project/issues" title="Dive into the issues queues and contribute back to Drupal">Issue queues</a></li> <li class="last leaf"><a href="https://git.drupalcode.org/project/drupal" title="">Browse Repository</a></li> </ul></div></li> <li class="expanded"><a href="/association" title="About the Drupal Association - the non-profit that supports the Drupal project">Give</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/association" title="Learn about the Drupal Association - the nonprofit that supports the Drupal project">Drupal Association</a></li> <li class="leaf"><a href="/association/organization-membership" title="Learn more about the organizations that support the Drupal Association and our mission">Become an Organization Member</a></li> <li class="leaf"><a href="/association/become-a-drupal-certified-partner" title="">Become a Certified Partner</a></li> <li class="leaf"><a href="/association/RippleMakers" title="">Become a Ripple Maker</a></li> <li class="leaf"><a href="/association/donate" title="">Make a Donation</a></li> <li class="leaf"><a href="/association/discover-drupal" title="">Discover Drupal</a></li> <li class="last leaf"><a href="https://www.drupal.org/swag?utm_source=drupalorg&utm_medium=banner&utm_campaign=drupal_swag_shop_2020_09_17" title="Purchase Drupal merchandise and be the coolest kid on the block">Drupal Swag Shop</a></li> </ul></div></li> <li class="last expanded"><a href="/try-drupal" title="Try Drupal">Demo</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/try-drupal" title="Demo Drupal online with a Drupal platform partner">Demo online</a></li> <li class="last leaf"><a href="/download" title="">Download</a></li> </ul></div></li> </ul></div><a class="close-btn" href="#top">Return to content</a> </div> </div> </div> <div id="block-search-form" class="block block-search"> <div class="block-inner"> <div class="content"> <form action="/case-study/san-francisco-airport-0" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline"> <h2 class="element-invisible">Search form</h2> <div class="form-item form-type-textfield form-item-search-block-form"> <label class="element-invisible" for="edit-search-block-form--2">Search </label> <input placeholder="Search…" type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" /> </div> <div class="form-actions form-wrapper" id="edit-actions"><input alt="Search" type="image" id="edit-submit" name="submit" value="Search" src="/sites/all/themes/bluecheese/images/icon-w-search.svg" class="form-submit" /></div><input type="hidden" name="form_build_id" value="form-Hvv49iwCcI8f_jTLCw8_D-RNBARgbLrbc20naZ_KGf4" /> <input type="hidden" name="form_id" value="search_block_form" /> </div> </div></form> </div> </div> </div> <div id="block-system-user-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu"><li class="button default"><a href="#block-system-user-menu"><img src="https://www.drupal.org/sites/all/themes/bluecheese/images/icon-w-user.svg" alt="Log in, view profile, and more"></a><ul><li class="first leaf"><a href="/user/login?destination=node/3363993" title="">Log in</a></li> <li class="last leaf"><a href="/user/register?destination=node/3363993" title="">Create account</a></li> </ul></li></ul></div> </div> </div> </div> </div> </nav> </div> <div id="header" class="clearfix"> <div id="header-inner" class="container-12 clearfix"> <div id="header-left"> <div id="site-name"><a href="/" title="Drupal.org"><img src="https://www.drupal.org/files/drupal-wordmark.svg" alt="Drupal.org" /></a></div> </div> <div id="header-right"> </div> </div> </div> <div id="banner" data-nosnippet> <div class="region region-banner"> <div id="block-drupalorg-announcements" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> <div class="announcement"><img class="photo" src="https://www.drupal.org/files/styles/grid-2-2x-square/public/announcements/drupalcon-hexagon-icon-280X280px_2_0.png?itok=uzoGg7T8" width="280" height="280" alt="Announcement icon" title="Announcement icon" />Join us at DrupalCon Singapore from 9-11 December 2024, for three exciting days of Drupal content, training, contributions, networking, and the inaugural DrupalCon Splash Awards! Be part of this landmark event as we celebrate and expand Drupal's impact across Asia.</div> <div class="cta"><a href="https://events.humanitix.com/drupalcon-singapore-2024" class="global-announce-banner dc-singapore-registration">Get your tickets now</a></div> </div> </div> </div> </div> </div> <div id="page" class="clearfix"> <div id="page-heading"> <div class="breadbox"><nav class="breadcrumb container-12"><span><a href="/case-studies">Case studies</a></span></nav></div> <div id="cover-photo" style="background-image: url(https://www.drupal.org/files/casestudy/cover/Home-Page%20banner-2-not%20webp.jpg)"> <h1 id="page-title" class="container-12">San Francisco Airport</h1> </div> </div> <!-- /#page-heading --> <div class="container-12 page-inner"> <div id="main" role="main"> <div id="content" class="clearfix"> <div id="content-inner" class="clearfix"> <div class="region region-content"> <div id="block-system-main" class="block block-system"> <div class="block-inner"> <div class="content"> <div id="node-3363993" class="node node-casestudy node-content-3363993 clearfix"> <div class="submitted"> By <a href="/kanopi-studios">Kanopi Studios</a> on <time pubdate datetime="1685579336">1 June 2023</time> </div> <div class="content"> <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><h2>A one-of-a-kind, international airport serving the greater San Francisco area.</h2> <p>Founded in 1927, the San Francisco International Airport (SFO) is a dedicated organization serving the community of San Francisco, as well as the millions of travelers who pass through its doors each year. SFO strives to be safe and secure in all of its practices, including delivering a quality guest experience while being on the cutting edge of airport environmental and social sustainability initiatives. This is all accomplished while operating a successful and efficient business.</p> <h2>The Challenge</h2> <p>SFO’s previous site was outdated, cumbersome to navigate, and was built on an older version of Drupal that did not allow for more modern functionality. It was hard to update and created issues for the SFO team when new information needed to be presented. They wanted to modernize the site, making it more engaging, flexible, and easier to update. The new site also had to support their business goals, and bring more awareness to their vendors and activities at the airport.</p></div></div></div><div class="field field-name-field-link field-type-link-field field-label-hidden"><div class="field-items"><div class="field-item even"><a href="https://www.flysfo.com/">Visit flysfo.com →</a></div></div></div><div class="field field-name-field-mainimage field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img src="https://www.drupal.org/files/styles/grid-10/public/SFO.jpeg?itok=176cqu4s" width="700" height="467" alt="SFO website on multiple devices" /></div></div></div><div class="field field-name-field-overview field-type-text-long field-label-above"><div class="field-label">Why Drupal was chosen: </div><div class="field-items"><div class="field-item even"><p>Aside from the fact that their previous site was built on Drupal 7; Drupal offers the flexibility, scalability and sustainability that the SFO team required. At its core, Drupal checked many of the requirements presented by the Fly SFO project.</p></div></div></div><div class="field field-name-field-goals field-type-text-long field-label-above"><div class="field-label">Describe the project (goals, requirements and outcome): </div><div class="field-items"><div class="field-item even"><h2>The Solution</h2> <p>Kanopi met with seven different stakeholder groups and parsed through guest complaints to define the goals and pain points. Those final goals were: </p> <ul> <li>To design an intuitive navigation</li> <li>To provide a flexible design that allows admins the ability to create unique layouts based on the content.</li> <li>Integrate revenue-generating content within the natural flow of a guest’s experience.</li> <li>Better concession/amenity browsing. </li> <li>Weaving in the Bay Area’s feel.</li> <li>To redesign alerts to not be intrusive yet available on any page, even after that page was closed.</li> <li>To show more color and diversity across the food, art, and even the employees.</li> <li>To put a human face on SFO.</li> </ul> <p>In order to prioritize these goals while leveraging the latest Drupal has to offer, Kanopi created flexible layouts that allow content admins to promote important initiatives throughout the site with little-to-no developer support needed. This was done through a simplified Drupal admin interface that eliminated much of the overhead encountered on the previous site.</p> <p>We also created opportunities for users to become more engaged with the site via personalized dashboards that allow them to find content that is relevant to their travel plans. Kanopi utilized location data provided by Pantheon’s Advanced Global CDN (AGCDN) to personalize content based on a site visitor’s country. By parsing header information provided by the AGCDN, and then configuring Drupal to display either individual components or whole pages based on that country, the SFO marketing department could run specific content campaigns on their site to visitors around the globe.</p> <p><img alt="Screenshots of the user dashboard, the overall improved user experience, and the client dashboard" class="left" height="585" src="/files/Screenshot%202023-05-24%20at%203.01.38%20PM.png" width="1315" /></p> <h2>Key Features</h2> <h3>User Dashboard</h3> <p>A customized user dashboard was created that personalizes both flight information and the pre-flight experience for each traveler.</p> <h3>Overall User Experience</h3> <p>Site navigation is easier to use and site design is more modern. Airport and flight information is easier to find and tailored to SFO users.</p> <h3>Client Dashboard</h3> <p>With an eye on usability, Kanopi ensured the admin experience was as easy to use as possible. Fields were organized to optimize a content editor’s workflow as they make updates to the site.</p> <h2>The Result</h2> <p>SFO now has an easier-to-use website that allows for quicker, more efficient updating. Visitors can enjoy a more responsive layout, modern navigation and an increased overall user experience. Vendors are more prominent with new “profiles” offering more detailed information on their offerings and locations within the airport. “Things to do” are more visible as well, lending to travelers having a more robust site experience.</p></div></div></div><div class="accordion"><h3 id="technical-specifications"><span>Technical specifications</span></h3 id="technical-specifications"><div class="accordion-content"><div class="field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Drupal version: </div><div class="field-items"><div class="field-item even">Drupal 9.x</div></div></div><div class="field field-name-field-projects field-type-entityreference field-label-above"><div class="field-label">Key modules/theme/distribution used: </div><div class="field-items"><div class="field-item even"><a href="/project/merge_translations">Merge translations</a></div><div class="field-item odd"><a href="/project/openweather">OpenWeather</a></div><div class="field-item even"><a href="/project/views_random_seed">Views random seed</a></div><div class="field-item odd"><a href="/project/search_api">Search API</a></div></div></div><div class="field field-name-field-module-selection field-type-text-long field-label-above"><div class="field-label">Why these modules/theme/distribution were chosen: </div><div class="field-items"><div class="field-item even"><ul> <li> <p><strong>Merge Translations:</strong> This module allowed content administrators to merge nodes with different languages to one translated node in Drupal 8+.</p> </li> <li> <p><strong>OpenWeather:</strong> This module aided us in connecting with the OpenWeater API to show visitors of the site the current weather at SFO.</p> </li> <li> <p><strong>Views random seed:</strong> This module allowed us to build lists of concessions and amenities at SFO in a true random order.</p> </li> <li> <p><strong>Search API:</strong> this suite of modules allowed us to connect Drupal with Solr search to provide a rich search experience for users of the site.</p> </li> </ul></div></div></div></div></div><div class="field field-name-field-community field-type-text-long field-label-above"><div class="field-label">Community contributions: </div><div class="field-items"><div class="field-item even"><p>Various patches.</p></div></div></div><div class="field field-name-field-case-organizations field-type-entityreference field-label-above"><div class="field-label">Organizations involved: </div><div class="field-items"><div class="field-item even"><a href="/kanopi-studios">Kanopi Studios</a></div></div></div><div class="field field-name-field-team-members field-type-entityreference field-label-above"><div class="field-label">Team members: </div><div class="field-items"><div class="field-item even"><a href="/u/cndexter">cndexter</a></div><div class="field-item odd"><a href="/u/thejimbirch">thejimbirch</a></div><div class="field-item even"><a href="/u/banoodle">banoodle</a></div><div class="field-item odd"><a href="/u/blancaesqueda">blanca.esqueda</a></div><div class="field-item even"><a href="/u/andysipple">andysipple</a></div><div class="field-item odd"><a href="/u/stockfoot">stockfoot</a></div><div class="field-item even"><a href="/u/jasonsavino">jasonsavino</a></div><div class="field-item odd"><a href="/u/kerrymick">kerrymick</a></div><div class="field-item even"><a href="/u/the_turk">the_turk</a></div><div class="field-item odd"><a href="/u/markie">markie</a></div></div></div><div class="field field-name-field-developed field-type-text-long field-label-above"><div class="field-label">Project team: </div><div class="field-items"><div class="field-item even"><p>Kanopi Studios<br /> San Francisco Airport</p></div></div></div><div class="field field-name-taxonomy-vocabulary-50 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Sectors: </div><div class="field-items"><div class="field-item even">Travel and Hospitality</div></div></div> </div> </div> </div> </div> </div> </div> </div> </div> <!-- /#content --> </div> <!-- /#column-left --> <div id="content-bottom-region" role="complementary" > <div class="region region-content-bottom"> <div id="block-block-182" class="block block-block"> <div class="block-inner"> <div class="content"> <p><a href="https://kanopi.com/" target="_blank"><img style="height:5em;display:inline;margin:.2em 2em 1em 0em;vertical-align:middle;" src="/files/KanopiStudios_Logo_Horiz_PMS_0.png" alt="Kanopi" /></a> </p> <h2>Let’s chat about your project.</h2> </div> </div> </div> <div id="block-drupalorg-lead-capture" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> <form action="/case-study/san-francisco-airport-0" method="post" id="drupalorg-lead-capture-form" accept-charset="UTF-8"><div><input type="hidden" name="retURL" value="https://www.drupal.org/industries/thank-you?utm_source=case-study/san-francisco-airport-0" /> <input type="hidden" name="00NA00000067D9R" value="https://www.drupal.org/case-study/san-francisco-airport-0" /> <div class="form-item form-type-textfield form-item-first-name"> <label class="element-invisible" for="edit-first-name">First name <span class="form-required" title="This field is required.">*</span></label> <input placeholder="* Required: First name" type="text" id="edit-first-name" name="first_name" value="" size="20" maxlength="40" class="form-text required" /> </div> <div class="form-item form-type-textfield form-item-last-name"> <label class="element-invisible" for="edit-last-name">Last name <span class="form-required" title="This field is required.">*</span></label> <input placeholder="* Required: Last name" type="text" id="edit-last-name" name="last_name" value="" size="20" maxlength="80" class="form-text required" /> </div> <div class="form-item form-type-textfield form-item-email"> <label class="element-invisible" for="edit-email">Email <span class="form-required" title="This field is required.">*</span></label> <input placeholder="* Required: Email" type="text" id="edit-email" name="email" value="" size="20" maxlength="80" class="form-text required" /> </div> <div class="form-item form-type-textfield form-item-phone"> <label class="element-invisible" for="edit-phone">Phone </label> <input placeholder="Phone" type="text" id="edit-phone" name="phone" value="" size="20" maxlength="40" class="form-text" /> </div> <div class="form-item form-type-textfield form-item-company"> <label class="element-invisible" for="edit-company">Company <span class="form-required" title="This field is required.">*</span></label> <input placeholder="* Required: Company" type="text" id="edit-company" name="company" value="" size="20" maxlength="40" class="form-text required" /> </div> <div class="form-item form-type-textfield form-item-00NA00000067Mm6"> <label class="element-invisible" for="edit-00na00000067mm6">Country </label> <input placeholder="Country" type="text" id="edit-00na00000067mm6" name="00NA00000067Mm6" value="" size="20" maxlength="60" class="form-text" /> </div> <div class="form-item form-type-select form-item-00NA00000067Ahk"> <label class="element-invisible" for="edit-00na00000067ahk">Region </label> <select id="edit-00na00000067ahk" name="00NA00000067Ahk" class="form-select"><option value="AMER">Americas</option><option value="EMEA">Europe, Middle East, Africa</option><option value="APAC" selected="selected">Asia Pacific, Australia, New Zealand</option></select> </div> <div class="form-item form-type-textarea form-item-00NA00000067AhfMAE"> <label class="element-invisible" for="edit-00na00000067ahfmae">Project description <span class="form-required" title="This field is required.">*</span></label> <div class="form-textarea-wrapper"><textarea placeholder="* Required: Project description" id="edit-00na00000067ahfmae" name="00NA00000067AhfMAE" cols="60" rows="5" class="form-textarea required"></textarea></div> </div> <div class="captcha"><input type="hidden" name="captcha_sid" value="9326843" /> <input type="hidden" name="captcha_token" value="5d5c037f5c7cdc51307209329137d626" /> <input type="hidden" name="captcha_response" value="Google no captcha" /> <div class="g-recaptcha" data-sitekey="6Ld0uCoUAAAAAKyrLmkrfFj1hgzlTgicamh5KW5Y" data-theme="light" data-type="image"></div><noscript> <div style="width: 302px; height: 352px;"> <div style="width: 302px; height: 352px; position: relative;"> <div style="width: 302px; height: 352px; position: absolute;"> <iframe src="https://www.recaptcha.net/recaptcha/api/fallback?k=6Ld0uCoUAAAAAKyrLmkrfFj1hgzlTgicamh5KW5Y&hl=en" frameborder="0" scrolling="no" style="width: 302px; height:352px; border-style: none;"></iframe> </div> <div style="width: 250px; height: 80px; position: absolute; border-style: none; bottom: 21px; left: 25px; margin: 0px; padding: 0px; right: 25px;"> <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 80px; border: 1px solid #c1c1c1; margin: 0px; padding: 0px; resize: none;" value=""></textarea> </div> </div> </div> </noscript> </div><input type="submit" id="edit-submit--2" name="op" value="Get Connected" class="form-submit" /><input type="hidden" name="honeypot_time" value="1732701591|CRo1lX9yTiNOkjWN_Gbhl7KmR3STAtJ2rt4XtrRyhoY" /> <input type="hidden" name="form_build_id" value="form-mMt3_AeXydZCch0vqsc8rHQ8p1P6lNseRbEHN9-i6b8" /> <input type="hidden" name="form_id" value="drupalorg_lead_capture_form" /> <div class="drupalhomepage-textfield"><div class="form-item form-type-textfield form-item-drupalhomepage"> <label for="edit-drupalhomepage">Leave this field blank </label> <input autocomplete="off" type="text" id="edit-drupalhomepage" name="drupalhomepage" value="" size="20" maxlength="128" class="form-text" /> </div> </div></div></form> </div> </div> </div> </div> </div> <!-- /#content-bottom --> </div> </div> <!-- /#page --> <div id="footer" role="contentinfo"> <div class="region region-footer"> <div id="block-drupalorg-crosssite-drupalorg-footer" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <h4 class="element-invisible">News items</h4><ul class="drupal-news"><li class="0 first"><a href="https://www.drupal.org/news">News</a></li> <li class="1"><a href="https://www.drupal.org/planet" title="News from Drupal community members">Planet Drupal</a></li> <li class="2"><a href="https://www.drupal.org/about/media-kit/social-media" title="Drupal on social media">Social media</a></li> <li class="3"><a href="https://www.drupal.org/subscribe">Sign up for Drupal news</a></li> <li class="4"><a href="https://www.drupal.org/security" title="Announcements from the Drupal Security Team">Security advisories</a></li> <li class="5 last"><a href="https://jobs.drupal.org/" title="Drupal Jobs">Jobs</a></li> </ul><h4 class="element-invisible">Our community</h4><ul class="community"><li class="0 first"><a href="https://www.drupal.org/community">Community</a></li> <li class="1"><span><a href="https://www.drupal.org/drupal-services" title="People and organizations offering Drupal services">Services</a>, <a href="https://www.drupal.org/training" title="People and organizations offering Drupal training">Training</a> & <a href="https://www.drupal.org/hosting" title="Organizations offering Drupal hosting">Hosting</a></span></li> <li class="2"><a href="https://www.drupal.org/community/contributor-guide">Contributor guide</a></li> <li class="3"><a href="https://groups.drupal.org/groups" title="groups.drupal.org">Groups & meetups</a></li> <li class="4"><a href="https://events.drupal.org" title="Upcoming and past DrupalCons">DrupalCon</a></li> <li class="5 last"><a href="https://www.drupal.org/dcoc" title="Drupal code of conduct">Code of conduct</a></li> </ul><h4 class="element-invisible">Documentation</h4><ul class="get-started"><li class="0 first"><a href="https://www.drupal.org/documentation" title="Documentation for working with Drupal">Documentation</a></li> <li class="1"><a href="https://www.drupal.org/docs">Drupal Guide</a></li> <li class="2"><a href="https://www.drupal.org/docs/user_guide/en/index.html">Drupal User Guide</a></li> <li class="3"><a href="https://www.drupal.org/documentation/develop">Developer docs</a></li> <li class="4 last"><a href="https://api.drupal.org/" title="Drupal API reference">API.Drupal.org</a></li> </ul><h4 class="element-invisible">Drupal code base</h4><ul class="download-extend"><li class="0 first"><a href="https://www.drupal.org/download">Download & Extend</a></li> <li class="1"><a href="https://www.drupal.org/project/drupal" title="Download the latest version of the Drupal software">Drupal core</a></li> <li class="2"><a href="https://www.drupal.org/project/project_module" title="Download add-on features and functionality">Modules</a></li> <li class="3"><a href="https://www.drupal.org/project/project_theme" title="Download pre-designed styles for Drupal">Themes</a></li> <li class="4 last"><a href="https://www.drupal.org/project/project_distribution" title="Download a pre-packaged Drupal site">Distributions</a></li> </ul><h4 class="element-invisible">Governance of community</h4><ul class="about"><li class="0 first"><a href="https://www.drupal.org/about">About</a></li> <li class="1"><a href="https://www.drupal.org/about/features/accessibility" title="Our committment to accessibility">Web accessibility</a></li> <li class="2"><a href="https://www.drupal.org/association" title="About the Drupal Association">Drupal Association</a></li> <li class="3"><a href="https://www.drupal.org/drupalorg" title="About Drupal.org">About Drupal.org</a></li> <li class="4"><a href="https://www.drupal.org/terms" title="Drupal.org terms of service">Terms of service</a></li> <li class="5 last"><a href="https://www.drupal.org/privacy" title="Drupal.org privacy policy">Privacy policy</a></li> </ul> </div> </div> </div> <div id="block-block-77" class="block block-block"> <div class="block-inner"> <div class="content"> <p>Drupal is a <a href="/about/trademark">registered trademark</a> of <a href="https://dri.es">Dries Buytaert</a>.</p> </div> </div> </div> </div> </div> <div class="region region-page-bottom"> <script type="text/javascript"> (function(){ window._pxAppId = 'PXVnPBBfwe'; window._pxParam2 = ''; window._pxParam3 = '0'; var p = document.getElementsByTagName('script')[0], s = document.createElement('script'); s.async = 1; s.src = '/VnPBBfwe/init.js'; p.parentNode.insertBefore(s,p); }()); </script> <noscript> <div style="position:fixed; top:0; left:0; display:none" width="1" height="1"> <img src="/VnPBBfwe/xhr/api/v1/collector/noScript.gif?appId=PXVnPBBfwe"> </div> </noscript> </div> <script type="text/javascript" src="/files/advagg_js/js__B0FBwiP97ZnD38IFraZus4upS4KVkMXI3ou0fJ2ZXGA__pPDESRJz9GHsxqQIwQ_V8xnFYEH5jipG2eicsfrdWCs__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <!--[if lte IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie9-" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if gt IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie10+" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if !IE]><!--> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <!--<![endif]--> <script type="text/javascript" src="/files/advagg_js/js__pqoYaVR8NVhof-vNXe50j2TKhFv__IihVag_h4G6kus__B4mbn4wICLQjWm1m3-z1kw8F1FtP0cDAHKp00Xy_-88__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__H5AFmq1RrXKsrazzPq_xPQPy4K0wUKqecPjczzRiTgQ__wor4r9P8YTtQ7p6fbywTetZ47Z_orumIfrrhgxrpLus__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload=" function advagg_mod_1() { // Count how many times this function is called. advagg_mod_1.count = ++advagg_mod_1.count || 1; try { if (advagg_mod_1.count <= 40) { init_drupal_core_settings(); // Set this to 100 so that this function only runs once. advagg_mod_1.count = 100; } } catch(e) { if (advagg_mod_1.count >= 40) { // Throw the exception if this still fails after running 40 times. throw e; } else { // Try again in 1 ms. window.setTimeout(advagg_mod_1, 1); } } } function advagg_mod_1_check() { if (window.init_drupal_core_settings && window.jQuery && window.Drupal) { advagg_mod_1(); } else { window.setTimeout(advagg_mod_1_check, 1); } } advagg_mod_1_check();"></script> <script type="text/javascript" src="/files/advagg_js/js__Oc0wwB7MVRfxtYw6EQM7d9sXj9PAQePoWSzQJ0uTk6c__iXqOGoaPhZHCPEspUr5BC8BwOx5P8B11xv7VOhoUii8__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__FabcJ6qluktliDejymsuV-FqaN_HyMKGe93c2rO9Ky0__el1ZLGkKneOoCS6OWa01WHuIEsTsXZ46MRLCF390Fbw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__YT6D1B_BKxvm6JCH_t9sZNI5L6yITa_DlU5QcSlOkAU__OXobH7d1IP1o3WABlniIrU_-pcJacVSIPUv9bpD-6pQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__xNXZEl6CREO_N4cX50nXAG3o3PPW1f2SzBBHY8rEKV8__vTuPvw9kFyhvW1mq6Cl_PG3exxZo1gi4hMxmKe9QZUI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__Bg-Oyw0EdZHoFiDPJGaRblSi6o8N85W9n2yZXjXiWMA__NXjFZXHvidDrkoewGg5Fy4sKC4nBXn02iVvdeQL9EYI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__mj2TlWhks9oJxPMS-NZeTpU46WwFVlMGEIo6S9H_Qx8__C389Vc_zjTfBmrTqoRNGUK0zY_nSOyzn-bjDheR_WiY__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__pLKQd4r7OrHglE7Qkqw53K2UXCqQdhqQ9v0cz7hMCQY__OErfYuQdGbFHcCoLoUW_ESSvaumApNojzjJit8-2xcw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__hHUWFbMAa11eJtx5V0ym9o0YBsB1udk34qUT5wr1ihI__ntICfIdx3SsBpfvYB8AF0VuFk7gZjQgBaS1C9CyMj6o__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- function init_drupal_core_settings() {jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"bluecheese","theme_token":"YRA-xy6vlvLaVL-CXGYe5tNHvzBtgS3Q2GK1iKSvl7c"},"drupalorgGitlab":{"gitlab_base_url":"https:\/\/git.drupalcode.org","base_url":"https:\/\/www.drupal.org"},"urlIsAjaxTrusted":{"\/case-study\/san-francisco-airport-0":true},"field_group":{"div":"full"},"drupalorgCrosssiteConsentNeeded":true}); if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(false);}} if(window.jQuery && window.Drupal){init_drupal_core_settings();} //--><!]]> </script> <script type="text/javascript" src="/files/advagg_js/js__2k0CJ3KAQNFTFab3y6ZvNtxs3HLons0Brq7VwvPSkKo__RYlZCliQTuN7U7I5I1Xhn1dAop17g2hAft1wVGgKHGA__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__vj0LjvNwl-3K1P9LGT4BGuXCZcAovYsVlVmoJN3TMRg__KW8SiGceRY3sjIKVrffDjf2MK4A5Vp3EDDxVO-4pegI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> </body> </html>