Blogs

EMAIL: info@example.com

Category: guide

  • OpenSense Labs: Travel industry embracing digital transformation with Drupal

    OpenSense Labs: Travel industry embracing digital transformation with Drupal

    Travel industry embracing digital transformation with Drupal Maitreayee Bora Mon, 08/16/2021 – 17:27

    We are living in a digital era. Our lives have dramatically changed over the years. Such a digital transformation is also witnessed by the various business industries which are constantly striving to level up their work standards and ethics. Today, let’s look into one of the industries that is flourishing towards digital innovation and transformation: travel and tourism. This article will also give you an insight about how Drupal proves to be the best choice when it comes to technology in the travel industry. 

    Emerging digital transformation trends in the travel and tourism industry

    A diagram describing the emerging technology trends in the travel and tourism industry


    The growing need of digital transformation has given rise to the following trends impacting the travel industry. Here are the following technology trends that are enabling the reshaping of the tourism industry. 

    Rise of mobile Integration

    Cloud technologies and international mobile plans have made mobile devices highly prevalent and an important part of the travel journey since it provides facilities like online booking, easy mobile payment, and acquiring destination information in real time. It is observed that the mobile’s share of total digital ad spending in the travel industry is gradually increasing over desktop ads and will cover the majority of the travel industry’s ad spending in the future. Due to the facility of mobile responsiveness, the consumption of digital travel content can be seen growing rapidly around the world via smartphones, the most feasible medium to plan the exotic vacations and choose the best travel destination. People are today seen spending hours over their phones scrolling the various social media platforms. Such social media platforms prove to be a good medium to inspire travel and also improve the travel business for the travel and tourism industry. 

    Availability of AI and Chatbots

    Artificial intelligence and chatbots help customers in digital check-in, voice assistants, easy access to digital concierge services and smart rooms. You can experience a seamless travel by this technology since it provides customised and personalized service according to your preferences. 

    Integration of IoT

    IoT helps in building a data rich tourism sector that leads to enhancing customer experience. The facilities like interoperability of data, sensors and automation that further helps in producing real time understanding and information for properly managing tourism can be obtained. It also brings improvement in the visitor experiences and increases the operational efficiencies that enable to successfully provide the best travel services to the enthusiastic travelers. One of the unique innovations of this technology is an IoT device called wearable. So, wearables or  wearable technology is adopted by travel agents across the globe to fulfill the growing need of personalized services from travelers. It enhances the communication with the travelers since all they look for is solutions in their fingertips and which is attainable with this technology. Therefore, wearable technology is rapidly growing among the people as it proves to be one of the significant travel innovations of the present world. The main motive of this technology is to  simplify the experience of a traveler and make it frictionless. 

    Virtual Reality

    Virtual reality helps in capturing the tourism destinations in an immersive and unique way. The users can feel the experience of “being there” with this special technology which the usual images and videos of various destinations cannot offer. A user can witness the most realistic virtual reality travel experience with the VR headsets. The travel agents use this technology to help their clients get a better experience than just viewing regular brochures and computer screens. Here is an example where VR is adopted. In the Marriott Hotels, the guests are offered VR experiences which can be enjoyed from the comfort of their rooms. 

    Cloud-based solutions

    The cloud-based infrastructure has various benefits. One of the most significant benefits is the cost reduction. For example, TUI, a European travel company, was able to reduce its technology costs at the time of COVID 19 by scaling down the cloud usage.  Another benefit of cloud computing is agility. It helps in reducing the time to deploy new products and services to customers and employees. Due to the pandemic, cloud-based technology proves to be a good option. Since majorly, employees are seen working remotely, this technology provides an easy access to critical information that helps employees to smoothly carry out their work responsibilities. 

    Focusing on Data

    Digitalization helps in the acquisition, collection and interpretation of the consumer data. This further helps in understanding the customer preferences and behavioural patterns that allows companies to offer best services and experiences to their customers. Here is an example of an Australian airline, Qantas who in partnership with unified customer data platform Umbel, has built a data hub focused on customer behaviours and preferences which will further enhance the customer experience. In-flight services, check-in process and real time ticket booking facilities are personalized for the customers. 

    Building reputation

    Brand reputation can be built with technology by providing the feedback facility to its customers. On receiving the best services, the customers can share their opinions through various mediums like Facebook, TripAdvisor, Yelp and travel review websites. This also works as an encouragement for the various brands to provide quality services to maintain a good relationship with their trustworthy customers. It is also found that ninety five percent of people majorly depend on the brand’s reviews before opting for it.

    Providing safety and security

    Safety and security have always been one of the top-most priorities for the travel and tourism industry. Technology should aim at creating innovation and enhancing security. A traveler’s journey can be made trouble free by providing seamless safety processes. For example, Aruba Happy Flow can be considered as an innovative scheme which requires passengers to show their passport only once on every journey. The primary means of recognizing passengers and helping them throughout the entire airport journey is via facial recognition. The governments of Aruba and the Netherlands, Aruba Airport Security, KLM, Schiphol Group and stakeholders consider it to be an important innovation in security clearance. 

    How digitalization can help the tourism industry to recover from the pandemic, COVID 19?

    Many companies have felt the need of adapting digitalization post the pandemic, COVID 19. The pandemic is encouraging companies to modify their approaches regarding various functionalities. They look forward to being more resilient. It is important to be able to withstand all the uncertainties that the business encounters because of COVID 19. The companies can find ways with the help of technology like increasing their remote workforce that will stabilize their current hard situations. And being agile is the key to sustenance for the present tough times. The agility in business helps in quickly adapting and scaling the business against the prevailing competition. The companies which have already integrated digital processes into their company culture even before the pandemic, weren’t seen struggling much like the companies which restricted themselves from adopting such essential digital procedures. Therefore, companies are seen embracing digitalization in today’s time. For example, Hyatt hotels are putting an effort to introduce their improved digital facilities via hyatt.com and the World of Hyatt app which will allow its customers to communicate better while revealing their preferences and choices over the different services offered by them. To know more, read about pandemic-driven digital transformation, how businesses are reimagining their business operations, and how to be digitally ready no matter what.

    Why choose Drupal?

    Illustration diagram describing the Drupal features


    Drupal is a safe and highly reliable platform that provides a wide range of features that helps in creating rich digital experiences for the travel and tourism industry. So, let me take you through the exclusive Drupal features explained below.  

    Open source

    The Drupal project is fully open-source software. Anyone is free to download, use, work on and also share it with others.  It is based on principles like innovation, collaboration and globalism. It can be further distributed under the terms of the GNU General Public License (GPL). There are no licensing fees for Drupal.

    The Drupal community is always ready to support its users by answering their questions and concerns. So, if you have any question, somebody will certainly answer it, since it’s a worldwide platform.

    Learn more about open source here:

    Content workflow

    Drupal’s in-built tools enable content creation, workflow and publishing, also allowing the content creators or content managers to smoothly work on it. In this platform, editorial workflows can be managed effectively by permission and authentication that is easily available. The preview provision allows visibility of how the content will be displayed on a device even before approving and publishing the content. It helps in creating content with a WYSIWYG editor. You also get the facility to quickly track all revisions and changes, if you feel the need of maintaining the history of content changes. So, every stage of content, from creating, reviewing, and publishing can be viewed that further helps in managing your roles and responsibilities. Drupal has a special feature where you get the opportunity to create a structured content like describing content elements, tagging content based on any attributes, forming appropriate taxonomy for content so that it can be searched, used, reused if needed to improve the customer satisfaction. 

    You get a chance to create a relevant content architecture utilizing the Admin Interface or also do it programmatically. It facilitates you with special mode tools and views, customized menus that provide a comfortable user experience, and also form pathways to content over several devices. 

    Read about how layout builder and paragraphs module enhance content workflow in Drupal.

    Security

    Drupal CMS provides security from all types of web vulnerabilities and threats. It keeps robust security as a priority. You will find a team of security experts that look after all the security concerns with their well structured coding standards and strict review coding procedure. Since, security is given much emphasis by Drupal, it has a broad professional service provider security that makes it one of the most stable and secure open-source platforms. So, Drupal websites are built by maintaining all the required security and privacy for the users. One more important security aspect to be discussed is, ‘Drupal Commerce’ that supports the core payment API, for an easy payment collection process through the check out form while travelling via airways. 

    According to the 2020 edition of the Acunetix, Web Application Vulnerability Report, Drupal was found to be the most secure CMS in the open source CMS market.

    Illustration with a circle describing the minimal security issues of Drupal CMS
    Source: Acunetix

    Scalability and performance

    The in-built performance features of Drupal when combined with a modern CDN provider performs extremely well under the pressure of supercharged databases, load balancing and advanced caching. Even on the busiest days, Drupal’s scalability allows your website to perform exceptionally well. To know more, read about Drupal’s performance optimisation offerings and how it scales with your needs to govern high web traffic.

    Multilingual

    Drupal’s automated language translation makes it possible to reach out to different audiences with the facility of localized content. Drupal is an expert in building complex multilingual web applications and customized sites in numerous languages. Drupal’s core modules help in complete translation of each part of a site, content types and their specific fields, users, menus, blocks, taxonomy, comments and contact forms. It further helps in specifying the preferred language in accordance with the user’s IP address, URL, session, browser settings and much more. Read more about Drupal’s multilingual capabilities here.

    Accessibility

    Drupal facilitates an exclusive feature of building websites that can be accessible by people with disabilities. It ensures that all its features conform with the World Wide Web Consortium guidelines (W3C) guidelines: WCAG 2.0 and ATAG 2.0. This a very significant feature as it helps in providing equal accessibility to everyone regardless of any discrimination. 

    Learn more about accessibility here:

    Personalisation

    Drupal’s users get a special, personalized profile for each visitor like using geolocation, behavior taxonomies, browser history and device type. Drupal also provides a customized experience which helps in tracking and reporting with A/B and multivariate testing, improving ROI by target marketing and also segment users over devices with an aim on the significant user identity for your business goals.

    Learn more about personalisation here:

    SEO 

    The users of Drupal get access to exclusive SEO tools that help in improving the site’s visibility. The tools and modules are discussed below.

    To know more, read this definitive guide to Drupal SEO in 2021.

    Multisite support 

    You can handle various websites over your organization, geographies, brands and campaigns on a single platform, allowing easy, fast website creation and deployment with Drupal. Read this ultimate guide on Drupal multisite to know more.

    Marketing automation

    By using modules and tools in latest versions, Drupal enables smooth integration with the automation platforms which can collect customer demographics, and convert potential leads within the suitable time. Learn more about how marketing automation can be leveraged with Drupal here.

    Mobile first approach and mobile apps

    Drupal facilitates in creating web applications and responsive websites that further enhances the user experience. It provides the best practices of responsive design and also makes sure that your users attain excellent content experience each time, on every device. And, there are two ways of building mobile web applications which work with Drupal – integrated with Drupal at the theme layer, or a standalone mobile web app that communicates with Drupal using web services. Even though, both the approaches will work for building mobile web applications, it will be much easier to begin with integrating the mobile web app into Drupal as a theme. To know more, read about mobile-first design approach and mobile apps like that of Flutter-powered delivered by Drupal.

    Integrated Digital Tools and Applications

    Drupal smoothly integrates with a broad ecosystem of digital marketing technology and other business applications that enable you to select the right set of tools today and tomorrow according to your convenience.

    Strong Stack Foundation

    Drupal lives upon Linux, Apache, MySQL and PHP, the latest LAMP technology stack that meet the necessities of flexible, fast-moving agile companies and brands  which further creates the next generation digital platforms.

    Facilitates Decoupled Architecture

    One of the significant features of Drupal is the content flexibility that helps in easy flow of content over sites, native apps, which can be presented on third party sites and social networks. Since, many CMSes look for managing content in a back-end repository and move it to “front-end” which can provide an experience i.e mostly static. You get an option to to decouple the back and front ends, wherever it’s required. Therefore, Drupal content remains as reusable chunks, which is free from presentation and is also ready for smooth delivery to sites and applications. With the help of Drupal’s presentation i.e. RESTful API and neutral content, the front end developers can build interactive sites and applications without facing any restrictions. There is availability of tools like Node, Angular, Backbone, Ember etc. The third-party content(eg. syndicators and aggregators) can be attained and made available to any site, application, or channel under this free and open source platform. With the help of Drupal’s content-as-a-service capability, the content of Drupal can be consumed easily by any other sites and applications. Additionally, Drupal’s front end developers also get the opportunity of designing content smoothly such as separating back-end content from front-end presentation according to their preferences. 

    Learn more about decoupled Drupal here:

    Web Hosting

    You can select the convenient hosting vendor that suits your needs with Drupal. Also, you get the opportunity to change hosting vendors whenever you want and select to host the website internally. 

    Migrations

    Drupal upgrades can be considered easy and convenient. Upgrading Drupal 8 to Drupal 9 was very easy, confirmed by the makers. With these four simple steps, you can develop your present site’s functionality, and maintain proper safety standards of Drupal 9 by using the Upgrade Status. With Upgrade Status and Drupal Module Upgrader, the developers can easily make the upgrade themselves. Additionally, you also specify whether your themes and modules are competent for Drupal 8/9, and also convert your custom code suitably.

    Learn more about Drupal 9 upgrade here:

    Extensibility

    Drupal facilitates its users with various essential modules, themes and distributions. Let us first discuss some of the modules offered by Drupal. The first module is IP Geolocation Views & Maps. IP Geolocation Views & Maps (IPGV&M) is basically a mapping engine. This module very easily helps you in creating views-based mapping solutions utilizing the map renderer of your preferred choice (Google, OpenLayers2 or Leaflet) with any location storage module of your wish, e.g., Get Locations, Geofield, Geolocation Field or Location. It enables you in bringing together both modules and feature sets which you wouldn’t be able to combine without this module. Then the second module is Baidu Map. In China, the Baidu Map is considered more accurate than the Google Maps and more complete than the Ali Maps. The Baidu Map module enables geographic and location information to be displayed via the Baidu Map API. It helps to attain geographic coordinates from textual addresses in China (Geocode) and display any type of geographic information via Baidu Maps. As Baidu Map presently provides support only for Mainland China, so the capacities of this module would be restricted to China. But it is still able to cover a vast market of more than 500 million internauts, bringing an availability of great applications starting from Logistics, to Tourism/Hospitality, going through E-Commerce or Real Estates.

    There are some well-designed themes and templates which Drupal offers. Let us look into some of the Drupal free themes for travel websites. So, the first theme is Travel Zymphonies Theme. The travel agency or tour operating website are benefited by the Travel Zymphonies theme as it helps to focus on offering various adventure tour packages. This theme is compatible with Drupal 8 and it provides multiple layouts that help in creating multiple pages based on your contents. Also, it is responsive and can be used completely for free. Then next we have Guesthouse Lite. The Guesthouse Lite can be considered as a free mobile-first, Bootstrap 4 based theme for Drupal 8 which is based on the Drupal’s premium, Premium Guesthouse theme distribution that comes along with 200+ theme settings and enables you to build sites for small hotels, guesthouses and businesses in the tourism sector.

    Finally, taking you through one of the Drupal distributions for travel i.e. Travel profile. Travel profile is a very modern-looking profile which is a great option for the travel agencies or hotels’ landing pages. The travel theme that is used in this profile is very responsive and looks great on any device.

    Support and maintenance, hiring of developers, and partnering with digital agencies

    There are numerous Drupal agencies you can opt for. According to your requirements, they tend to provide you with the quality services that will meet your expectations. Below are some of the top 4 Drupal agencies in the global Drupal marketplace.

    Illustration diagram describing the top 4 Drupal agencies in the global Drupal marketplace
    Source: Drupal.org

                                       
    Supporting emerging technologies

    Drupal proactively, uses the latest technologies such as artificial intelligence in the   form of chatbots, virtual reality, IoT and Blockchain, cognitive search and digital voice assistants like Alexa on Drupal sites to provide a better experience for it’s users. 

    Inspiring stories

    In this section, I will take you through some of the case studies that will help you in understanding why you should pick Drupal when it comes to building your dream website. 

    Top Deck Travel

    Top Deck Travel can’t only be considered as a tour operator but rather they can be addressed as travel enthusiasts who plan exciting trips to exotic destinations for people between the age of 18 to 39. They provide 330 different tours around 65 countries to the travellers and help them make beautiful travel experiences and memories. They wanted Drupal to create their new website that would increase the online presence, help in direct to consumer sales, reduce the reliability of third-party travel agents, availability of Single Sign On process over historical sites, applications, form a digital platform which could be utilized for sister brands, Back Roads Touring, Blue Roads Touring and align their applications architecture with the parent Group i.e. Flightcentre. Drupal successfully enhanced their site performance, reduced page load speed, increased consumer conversion rate, launched Back Roads and Blue Roads and generated incremental sales. 

    Content Migration at Scale for Lonely Planet

    Lonely Planet is a well known name in the travel industry. They facilitate travellers with extensive resources that include guide books, reliable web content, popular mobile applications and a flourishing online community. Lonely Planet wanted to upgrade their legacy website that was created over a decade and had been custom made on Ruby on Rails. They faced various challenges with caching and site scalability. It was a time-consuming and complex project since the volume of content had been accumulated over a decade. They wanted to streamline and migrate to Drupal 8. They had to take their next step, which was to migrate their custom platform onto Drupal. Some of the reasons why they wanted to migrate to Drupal were because of Drupal’s versatile migration API which helped them to conveniently migrate data from its source to the Drupal system. And, Drupal’s flexibility with numerous types of content modeling approaches makes it the best choice for their project. Eventually, part of the new system was successfully launched. They successfully migrated their WordPress-based portal to Drupal.

    Final thoughts

    From this article, it is clear that over the past two decades, the travel and tourism industry has experienced a fundamental transformation. Driven by new digital technologies, this industry is able to revolutionize the entire work culture and look forward to efficiently providing personalized customer services. This journey is made a lot easier by Drupal as it is the right technology helping the travel industry to not only retain customers but also win over new travelers by providing the necessary technical assistance with its incredible features and functionality.

    blog banner
    Airplane in the sky
    blog image
    Hot air balloons in the sky
    Blog Type
    Is it a good read ?
    Off

    Continue reading

  • Evolving Web: 3 Ways to Avoid Common Information Architecture Mistakes

    We all recognize bad information architecture when we see it on a website. There are some signs that the creators didn’t do a great job in terms of content structure and organization:

    • Confusing menu labels
    • Haphazard topic organization
    • Critical information and actions jumbled in with general news and marketing copy
    • Site searches that return useless, obsolete information

    While it’s frustrating to come across these issues on someone else’s website, it feels much worse when we realize we’ve made those mistakes ourselves.

    In this article, we’ll look at three common foundational mistakes that lead us into trouble when organizing website content. Let’s see how we can do better:

    • Working from a vague audience definition
    • Keeping obsolete content
    • Designing for hypothetical content

    First Step: Develop and Rest Your Personas

    Before you start thinking about your information architecture, whether for a new site or improving an existing site, take a step back and revisit your personas. Well-developed personas allow you to empathize with your audience and better understand how to help them get what they need.

    Try to get beyond demographic profiles and assumptions, and talk to real, live people so you can create an ideal experience for them. (The UX and Content Strategy component of our upcoming Drupal Content Creator Track takes you from audience definition to using that information as a foundation for your entire Drupal site experience.)

    Mistake #1: Haphazard Taxonomy

    Solution: Understand, Plan, and Maintain Your Taxonomy

    Intuitively, we use Taxonomy to create menus and topical landing pages, but the power of Drupal’s Taxonomy system goes well beyond that. These simple lists of terms provide the backbone for Drupal sites. When used well, they allow for smart, context-aware information architecture that presents users with just what they need when they need it.

    Clean, well-structured Taxonomy will enable you to automate everything from menu creation and recommendations to landing pages and customize your analytics reporting. You can even use it to assign CSS and templates or access rules.

    Taxonomy is that powerful. The catch, though, is that it must be good. Like, really good.

    If we don’t plan our Taxonomy well, it loses power. When terms overlap in meaning or don’t cover everything, Drupal can’t make smart decisions by itself, and we’ll miss valuable opportunities. Taxonomy can also decay and get messy if it isn’t maintained, especially when there’s a large amount of diverse content and many people add terms and tags over time.

    Fortunately, you don’t need to get too technical to understand how Drupal’s Taxonomy does its magic. By focusing on a few key principles, you (yes, you!) can harness the power of Taxonomy. Check out “How to Organize Your Drupal Content with Taxonomies” by Leigh Ryan for a more detailed guide.

    Mutual Exclusivity: Avoid Overlapping Terms

    One key to optimal Taxonomy is ensuring that each term is distinct, with no ambiguity as to when to use it. Drupal enables this through hierarchical taxonomy structure, where terms can have sub-terms and Taxonomy takes on an “is a” tree structure. Here are two examples of good and bad Taxonomy:

    Flat, ambiguous, not distinctClear hierarchy with “is a” relationships
    1. Purebred
    2. Mixed Breed
    3. Poodle
    4. Shih Tzu
    5. Siberian Husky
    6. Labradoodle
    7. Yorkshire Terrier
    8. Puggle
    9. Cavapoo
    10. French Bulldog
    11. Labrador Retriever

     

    1. Purebred
      1. Poodle
      2. Shih Tzu
      3. Siberian Husky
      4. Yorkshire Terrier
      5. Labrador Retriever
      6. French Bulldog
    2. Mixed Breed
      1. Labradoodle
      2. Puggle
      3. Cavapoo

     

    In the first example, each content creator decides for themselves which terms to assign. For an article about Labradoodles, it is apparent that “Mixed Breed” and “Labradoodle” should apply… but should they also assign terms for “Poodle” and “Labrador Retriever”?

    Creating a hierarchy of mutually exclusive terms makes it easier to consistently choose the correct terms across a team. In the second example, “Labradoodle” is clearly a concept distinct from “Poodle” or “Labrador Retriever” in our information architecture. Labradoodle “is a” Mixed Breed and not a Purebred, so it should not be assigned as Poodle or Labrador Retriever.

    Such clarity and consistency in assigning terms are vital to Drupal’s use of Taxonomy.

    Collective Exhaustivity: Cover Everything

    Ambiguity in “where to put things” can also occur when the available Taxonomy doesn’t cover all of your content.

    Let’s take our dog example: the Purebred sub-terms include Yorkshire Terrier, which is great… until you have an article about Scottish Terriers. There’s no term for Scottish Terrier, and the closest thing is Yorkshire Terrier. So, do we assign it to that? Or add a term for Scottish Terrier?

    If we add the Yorkshire Terrier term, our Scottish Terrier article will come up in lists, landing pages, and recommendations for content about Yorkshire Terriers. It might not be that bad, but what if, over time, there are also articles on Jack Russell Terriers and Airedale Terriers? Or maybe your audience ends up liking Scottish Terriers, so you do more articles about them, but then your Yorkshire Terrier content list will be mostly not about Yorkshire Terriers.

    By adding a term for Scottish Terrier, we’ll no longer miscategorize our article. But now, our automated menus and landing pages are serving up a single piece of content. And if we later add terms for Jack Russell and Airedale content, that won’t work well either.

    This shows us why we need to be careful about not only what we’ve got but how we’re likely to grow. With so many breeds in the Terrier group, we might include Terrier as a sub-term of Purebred and then add the various specific Terrier breeds under that term as needed.

    Ad hoc TerriersClear hierarchy with “is a” relationships
    1. Purebred
      1. Poodle
      2. Shih Tzu
      3. Siberian Husky
      4. Yorkshire Terrier
      5. Scottish Terrier
      6. Labrador Retriever
      7. French Bulldog
      8. Airedale Terrier
    2. Mixed Breed
      1. Labradoodle
      2. Puggle
      3. Cavapoo
    1. Purebred
      1. Poodle
      2. Shih Tzu
      3. Siberian Husky
      4. Terriers
        1. Yorkshire Terrier
        2. Scottish Terrier
        3. Airedale Terrier
      5. Labrador Retriever
      6. French Bulldog
    2. Mixed Breed
      1. Labradoodle
      2. Puggle
      3. Cavapoo

     

    Prevent Decay: Minimize and Fix Typos

    Back when your website was shiny and new, everything felt tidy and perfect, and you couldn’t wait to fill it with exciting, well-organized content. Over time, though, you fed it with lots of content, and multiple people adding terms and tags made your Taxonomy lose its power. As a result, you risk presenting typos, confusing synonyms, and other content mistakes to users.

    Fortunately, there are tools and processes to help avoid that:

    • Use more restrictive field types. You can configure the fields for Taxonomy terms in your content types to allow content authors to add new terms. Ask your developer or administrator to disallow term creation from the content type for the tightest control.
    • Limit user permissions. If you want specific content creators and editors to manage Taxonomy terms, a Taxonomy Manager role could enable relevant permissions. Team members who should have that access can be assigned the Taxonomy Manager role. This role can be more granular if needed, with a set of permissions for each vocabulary.
    • Clean up the junk. If you opt to allow authors to add new terms when creating content, make it part of your routine to look for errors and redundancies and clean them up. Modules like Taxonomy Manager provide tools for restructuring and merging terms to keep Taxonomy clean without making corrections node by node.

    Mistake #2: Keeping Obsolete Content

    Solution: Audit Content Constantly

    I don’t know about you, but something is satisfying about a decluttered, organized closet. It’s tidy. You know exactly what you’ve got, why you’ve got it, how you will use it, and where it goes. And you like or need everything.

    You’d benefit from doing the same with your content. Try periodically sifting through your web pages and removing whatever is no longer helpful, just like in your real-world storage spaces.

    The Content Clutter Conundrum

    For the last couple of decades, we’ve all been shouting from the rooftops: “Content is KING!!!” (Trivia: the phrase originated with none other than Bill Gates in this essay from 1996.)

    It’s still true, but there’s a catch. When we discover a shirt with a hole in it, we either mend it or get rid of it, so we stop inadvertently wearing it. The same goes for content: when we have redundant or obsolete content, fix it or kill it.

    If we don’t make a conscious effort to clear out the things that are no longer worth showing people, they will see those things.

    Avoiding this is especially important in the context of government, financial, educational, medical, or non-profit sectors. In these areas, inaccurate and outdated information can have serious consequences for both the organization and its audiences.

    Content clutter muddies your message, confuses your audiences, introduces personal and regulatory risk, and makes creating an effective information architecture more challenging.

    The Content Audit Solution

    You don’t want to wait to stumble on bad content passively. You should proactively look for it.

    If you’re embarking on a whole new website project, congratulations! You have a fresh empty closet you can curate to match your minimalism dreams… erm, you have the opportunity to restructure your entire content pool and information architecture to meet everyone’s needs.

    If you’re just trying to make the website you already have more effective, this will still help you. In fact, content auditing and tracking should be an ongoing part of managing your site’s content.

    Identify the areas of greatest importance or risk and start there. Then, go through all your content, catalogue it, and question its existence on behalf of your organization and audience. This process is referred to as a ROT analysis (Redundant, Out-of-Date, and Trivial):

    • Do we like this?
    • Do we need this?
    • Does this actually do what it should do?
    • If not, can we fix it?
    • Can we just get rid of (or archive) this?

    Keep the best, toss the rest, and regularly check for pieces that no longer serve you well. Then, when it’s time to remove them, Drupal’s Redirect module lets you, well, redirect visitors to more appropriate content if they stumble upon an old link or search result.

    Don’t let old, inaccurate, or lacklustre content gunk up your information architecture and detract from your message and services. Check out this post by Suzanne Dergacheva for more decluttering talk and an intro to the card sorting technique.

    Mistake #3: Designing for Hypothetical Content

    Solution: Design With Real Content

    Back in the day, most websites were either visual playgrounds where designers showed off the latest special effects or fairly simple pages of articles or general information. A design-first workflow became commonplace, where the first step in creating a new website was to create a mockup, using abstract lorem ipsum text as a stand-in for content that had not yet been written.

    It worked for a while. Back then, good information architecture mostly meant organizing pages into tidy sections with user-friendly menus. Things have changed, though. We have loads of content to sift through, in many different formats, on a range of devices. And a CMS like Drupal allows for granular definitions of content types and their relationships. This granularity allows us to create an information architecture for adaptive, context-aware user experiences.

    The Trouble With Lorem Ipsum

    When designing a project with placeholder text, creating an ecosystem that lets content shine is hard. As a result, the design loses power, even becoming an obstacle to highlight our content effectively. Most of us have had to deal with the results of this practice:

    • Bland intros trimmed too short, so they fit neatly into a box
    • Images omitted because the aspect ratio doesn’t work
    • Awkward title wrapping because the homepage blocks are too narrow
    • Misalignments because layouts only work for specific character counts
    • Inconsistencies because editors had to guess how to format content

    On the more technical side, hypothetical content can result in poorly configured or vague content types.

    Only well-designed content types and granular fields allow us to fully leverage the slice-and-dice remixing capabilities of a CMS like Drupal.

    Otherwise, we’ll miss opportunities to present relevant messages where they would have the biggest impact.

    Content-first Design

    Whether you’re creating a whole new site, giving an old site a refresh, or just adding a new landing page template to an existing site, start with real content, and do it realistically.

    • Does your voice tend toward titles that border on paragraphs? Design for that.
    • Does your team tend to rely on free images that come in different aspect ratios? Design for that.
    • Do you have collections of related content or information that could lead your audience into a deep dive if you could present the right bits at the right time? Design for that.
    • Did your content audit reveal that users regularly copy and paste structured content into rich-text fields, where they can’t be accessed, repurposed, or themed programmatically? Design your content types for that.

    The power of your message and your platform rests within your content. Start with that.

    Focus on the Foundation and Avoid Mistakes

    A building supported by a haphazard foundation is doomed to fall. The same holds for our websites. So if you’re embarking on a new site rebuild, resist the urge to dive into talking about new designs and features. That’s exciting, I know, but you’ve got important work to do first.

    If you’re improving an existing website, do the same. Fix what you can, apply it moving forward, and keep notes, so you know what needs to be done differently for your site’s next iteration.

    Keen audience insights, content-centric design, and regular content audits can get you further than you might think.


    PS – Are you a content creator, editor, or manager trying to get the most out of your Drupal site? We cover Drupal-specific information architecture, SEO, and content management in our upcoming Drupal Content Creator Track.


    + more awesome articles by Evolving Web

    Continue reading

  • OpenSense Labs: Drupal Multisite Guide: Less Work, More Output

    OpenSense Labs: Drupal Multisite Guide: Less Work, More Output

    Drupal Multisite Guide: Less Work, More Output Gurpreet Kaur Wed, 08/04/2021 – 20:54

    Have you ever heard that a single business has a lot of different branches or mini-businesses? It’s pretty common in the day and age we live in. The business world has grown immensely and so have its needs. And a single website isn’t enough to fulfil those needs.

    So, what do businesses do? They build multiple websites, which should have been a great solution, but is really more of a stressful trigger waiting to go off. This is because managing those multiple websites is a pain, for lack of a better word. It results in slower building process, increased overheads, lack of control and scarce visibility, so yeah, a pain describes it pretty well.

    What is the solution then?

    A multisite structure that allows you to create multiple websites using a commonality. It would require less work to build, yet provide the much needed autonomy for the individual sites on the setup. And that is what we are going to be discussing today, but in regards to Drupal.

    Drupal, being a popular CMS, has a lot to offer, when web development is considered. The sites developed using Drupal are versatile, scalable and provide amazingly powerful digital experiences. And one such feature that contributes to that power is the Drupal multisite setup. So, for whoever asked, ‘Does Drupal support multisite?’, the answer is yes and it does so exceptionally well. Let’s find out how. 

    Drupal Multisite: What is the setup about?

    Have you ever baked a cake? The core ingredients being flour, eggs and sugar are all the same for every cake. It’s just the flavour and the toppings that are different. Drupal multisite can be understood with the same analogy.

    As the name suggests, you can have multiple websites, tens and hundreds of them, working for you with ease using the multisite feature. You can have Drupal multisite with different domains as many as you want.

    What is going to be the same for every website in this setup? 

    The codebase would remain constant throughout. You can have hundreds of sites without having to rewrite it. The Drupal core and the available modules and themes are also shared by the multiple websites. These form the flour, eggs and sugar batter in the Drupal cake.

    And what is going to be different in the multiple sites?

    Everything other than the codebase is different. You would have independently running websites that would serve the needs of its target demographic.

    The sites would have their own database;
    The sites would have their own configuration, in terms of enabled modules and themes, content and more; 
    The sites would have their own files, inclusive of images, uploads, user profiles and more; 
    And the sites would even have their own base domain or URL. 

    So, in essence Drupal multisite would provide you the opportunity to create multiple websites using the same codebase, however, all the sites would be different from one another, serving different audiences. 

    How is that possible?

    Because of server requests. Let me clarify it a bit. All of the multi sites created using this setup are stored in separate folders. Drupal multi folder structure can be separated from multisite repositories, making deployments easy for site maintainers and front-end developers alike. On top of this, each of these folders would have its own personal php file with connectivity to its own personal database.

    Now, add to this equation, Drupal’s fine ability to map a request based on the domain it came from, this ability is further enhanced by loading the right database and configuration based on the said domain. The result is the website that the requester wanted being served on a platter. Pretty cool, isn’t it?

    What do you gain out of it?

    After understanding the basic concept and working of Drupal multisite module, the next thing that pops up in our minds is its benefits. Why should you take it up? What’s to gain out of it? And that is where I come to tell you all about the amazingness that is Drupal multisite.

    Benefit from faster launches 

    The best part of Drupal’s multisite feature is its ability to create newer websites in a matter of minutes and without much support from IT and developers. 

    The built-in installation profiles are the reason for the faster launches. It essentially holds the functionality and configuration into installable packages, which can be launched as many times as you want them to. And you would have a new website that’s fully ready for the content entries. 

    Benefit from saying no to compromises 

    The second multisite benefit comes in the footsteps of the first. Because multisite helps in creating faster launches, it allows you to not compromise when deadlines are looming.

    For every project, there is a deadline that needs to be met and as this deadline starts to come closer, potentially lucrative features start to move farther and out the door. Developers start making compromises and technical debt starts to build up.
     
    Now, you could let a feature or two go out the window in a single build, however, when there are close to a hundred websites in development, that thought won’t even cross your mind. It is suffice to say that multisite architecture boasts a higher quality standard and minimal technical debt. The primary reason for that is time, creating multiple systems at once gives you ample time to think about potential and the time to make them part of the project in reality.

    You create long term solutions with a multisite setup that come with a higher refactoring potential from the management because there are multiple sites involved. 

    Benefit from lower maintenance and reduced costs 

    Another advantage of a single code for multiple websites is that you have to spend less time on maintaining it as compared to multiple codebases for multiple websites. Wouldn’t you agree? 

    If you encounter a bug on any one of these sites, you would fix it for all of them. This considerably reduces the time spent on maintenance and consequently the costs that accompany it. With Drupal multisite, you can keep track of updating and reviewing at one place, thereby, keeping a convenient grip on maintenance.

    Benefit from saving your efforts 

    I saved the best for last; with Drupal multisite, you actually save yourself a lot of time and effort because you can reuse your code or components of it. You would only have to build a feature once and thereon, you’d only have re-use, no wasted effort for building the same thing over again.

    A reusable code with a shared library entails; 

    Reusable integrations; 
    Reusable functionality; 
    Reusable UI components; 
    Reusable workflows; 

    And you can also reuse a theme with Drupal’s theme inheritance mechanism, allowing you to create a base theme for other themes to inherit the basics from. 

    All of this saves a ton of effort in the development process. You should know that you can also try to reuse components for sites not on the same platform, it would be extremely difficult, but possible.

    What options does Drupal multisite offer?

    While setting up for Drupal 9 multisite, there are a few choices available. The essence in all of these choices is the same, which is a strong commonality through a single codebase. Moreover, you will get all the benefits we just talked about in the previous section in all of them.

    So, let’s understand the kind of range Drupal multisite comes with.

    Conventional approach: Classic Drupal multisite architecture

    The conventional approach essentially sums up the meaning of Drupal multisite, as we talked about while understanding the concept. There would be multiple sites in this option, with multiple configurations and multiple databases, however, there would only be one codebase shared amongst all. The diagram below describes the architecture pretty aptly.

    The image explains Drupal Multisite architecture.


    I would be wrong, if I said that it’s only the codebase that is shared. Technically, out-of-the-box that is the case. However, if you want your multisites to share more than that, you have an option. The Features module, a unique trait of the conventional architecture in Drupal, can help you in that. It allows sites to have shared features by importing the configuration from it. Config Split further eases the workload by segregating which configuration needs to be shared and which needs to be quashed.

    Contrastingly, I have mentioned that you can create independent and somewhat unique websites using Drupal multisite, if that is what you wish for. This is possible because it allows you to customise because of isolated configurations. As such you can create your own custom themes and modules for each of your websites.

    Multi-domain architecture

    The multi-domain architecture isn’t all that different from the multisite. There is a single codebase, however, along with that there is also a single and shared database, which isn’t the case in multisite. Here is a diagram for better understanding.

    The image explains the multi-domain architecture.


    Through the multi-domain architecture, you’ll be maintaining a single Drupal installation, which is quite easy; on top of this, you will also be able to maintain the configuration and functionality with ease. 

    The Domain Access modules are at the heart of this architecture, as it makes it possible to serve multiple sites. It also allows you to categorise your content as shared and unique, you can decide a specific piece of content for one particular domain, then you can also share it across all sites, if that is what you want.

    With more sharing in this architectural design of Drupal in terms of features, functionality, content and even users, updating a single site is a walk in the park. 

    In terms of the drawbacks, the one that outshines the rest is that you can’t have any exceptions. In multisite, you could add additional functionality to individual websites, but you can’t do it here. Well, you can, if you wanted to, but you see, the intention behind multi-domain architecture is simplicity. And adding exceptions to each site would contradict that big time. Even while using contrib modules you would have to be extra careful in checking their compatibility with Domain Access.

    Other notable architectures

    There are three other multiple site architectures in Drupal, let’s shed some light on these as well.

    Based on Drupal distribution

    Have you ever bought a cake mix? It’s a ready-made mixture of everything that goes into the cake and all you have to do is make it into a batter and put it in the oven and you’ll have your very own baked cake. Easy, isn’t it? This is basically what a Drupal distribution is. 

    You get a mix of everything you would need to start your web projects, from the required modules and libraries to custom themes and modules and from the configuration to possibly the default content. It’s a website starter pack. There are popular Drupal distributions to choose from, like Commerce Kickstart and Lightning, but you can also make your own custom distributions. Take a look at this complete list of major Drupal distributions that you must try out.

    The way these are different from multisite and multi-domain is through the codebase, each site would have its own and each site would also have its own hosting account.

    The major drawback here is that it requires extra work. It’s kind of ironic for a cake mix, I know. You would have to maintain the distribution codebase as well as each of the sites. Security updates and bug fixes need all the more attention, if your distribution is published on Drupal.org.

    Based on data silos

    A multisite architecture on data silos is similar to Drupal distributions, in the sense that the codebase is different for each site, providing greater autonomy and better security. For businesses with multiple branches and departments that seek decentralization, yet a kind of uniformity, this is a great choice. 

    Based on multilingual needs

    This one has a similarity to the multi-domain architecture, as there is a shared codebase and database. It allows sites to capitalise on language-based regional targeting. With less development efforts and less building costs, each site would have its own language and its own regional audience. Learn more about why Drupal is great for multilingual sites here.

    When can you optimise the setup the most?

    Now comes the part of knowing exactly when to optimise Drupal’s multisite architecture. There are particular use cases and considerations that make the setup an ideal choice, let’s understand them.

    Do you have multiple sites?

    As the name suggests, for Drupal multisite to work its charm, you have to have multiple sites as in two or more. The prime reason for this setup’s mere existence is to help you in saving time and effort in the management of multiple Drupal sites by making them run on the same Drupal core.

    Think about it, if you have two or more sites not running on this setup, you’d be responsible for each code individually and it would differ drastically for each site. This difference can become a mammoth task for managing, so doesn’t choosing multisite and eliminating this worry sound like the better choice?

    Are they similar to each other?

    Now, you could have multiple websites, but they have to have a degree of similarity in order for the multisite setup to work. Dramatically different sites in terms of features and aesthetics are not ideal for this architecture. That’s not to say that each site has to be a clone of the next. No, every site would obviously have its own content, moreover, it could also have different functionality, but that difference cannot be dramatic, just a feature here and there.

    Take a university for instance, it could need multiple sites for its varying departments. Now in this case, the university could opt for the multisite feature because despite different websites, it would most definitely maintain a sense of uniformity in them. 

    In essence, Drupal multisite creates replica sites with different themes for each site, if that aligns with your requirements, you should definitely opt for it.

    Do you have the technical infrastructure?

    Drupal multisite is meant to make your job easy, but it can only do so if you have the right technological infrastructure and expertise to handle that. 

    • The right hosting environment to manage multiple domains and deployment mechanisms. Your hosting provider should be proficient in knowing the exact requirements of your setup.
    • The right DevOps processes that are compatible with your multisite setup. When it’s said that multisite setup makes you work less, automated deployment is one reason for that, so, your DevOps need to be efficient at that. 
    • Finally, the right testing environment because you deploy multiple sites at once, the chances of errors are on the higher side. A break in functionality can become colossal and checking for it manually is hard work. So, an automated testing environment that is equipped with tools to ensure higher quality standards is crucial.

    Can going multisite pose challenges?

    There is always a darker side of things, and Drupal multisite is no exception to that. There are certain drawbacks that accompany the setup that can leave a sour taste in our mouth. For many, these challenges have become the reason for not opting for the multisite architecture. 

    The challenge of failure 

    The frontrunner in the list of multisite challenges has to be its chances of failure, which to be honest are fairly high. There are two reasons for this.

    One is the fact that there is a single codebase for all the sites. This means if there is a problem with one, there is a problem with all of them. Take traffic spikes for instance, they might be great for one website, but for multisites, that one site can pose significant risks to the others.

    Second is the failure due to human error, which cannot be foreseen or avoided. There is plenty of risk associated with updating a single site, imagine the level of risk when there are tens of sites. A single syntax error can become the reason for the demise of your multisite setup quite quickly.

    The challenge of individuality and innovation 

    Yes, we do say that the multisite feature has room for individuality for each site. And then we also say that each site has to be the same or at least similar to a great extent in order for the architecture to work. Do you see where I am going with this challenge? 

    The innovative flair often seen in development is somewhat lost in the multisite setup. Why? Simply because there is a standard to be adhered to. And when you deviate from that standard, you set yourself on the path of losing all the benefits of this architecture.

    Reusing components, without extra efforts, is one of the fortes of the multisite setup, and adding innovation into this mix would make it tedious and exhausting. That is why it is advisable to avoid the multisite, if your sites differ from each other in terms of features and functionality or even if you would want them to differ in the near future.

    The challenge of technical insufficiencies 

    I mentioned in the previous section that optimising Drupal multisite is going to serve you best, if you have the technical infrastructure for it. And this can become somewhat of a challenge, I’ll tell you why.

    Compare building one site or multiple sites separately to building and maintaining a multisite installation. Now tell me, which do you think would require more technical expertise? The latter, I’m sure. The reason is the complexity of the comprehensive web of multiple sites, the amount of settings alone could give a newbie developer a headache. 

    So, along with the technical infrastructure, including a suitable host, DevOps and testing system, the need for a skilled multi-site development team can become quite a challenge.

    The challenge of losing open source 

    Finally, the last challenge relates to the loss of Drupal functionality. With a multisite architecture, you become an SaaS provider and consequently part with a number of open source solutions. You become responsible for every feature that needs improvement or innovation, unlike the usual way of open source software, wherein the community plays a part in innovation.

    Learn more about open source here:

    Conclusion

    I would say that the challenges that the multisite architecture comes with do make you rethink choosing this path. However, when you consider the benefits along with its use cases, there isn’t a more perfect solution. 

    A university site would not need to add extra innovative features to one of its department’s sites and therefore, the multisite is best suited for it and for other enterprises that have similar needs. Provided that you check all the right boxes in terms of multisite’s optimisation, you’ll not regret choosing it.
     

    blog banner
    Several open books can be seen together.
    blog image
    A bunch of paint brushes are seen with colour on them.
    Blog Type
    Is it a good read ?
    Off

    Continue reading

  • Droptica: Connecting Drupal and Bootstrap

    Droptica: Connecting Drupal and Bootstrap

    .

    It isn’t enough for the architecture of our web page to be well-designed – the appearance is also important! Drupal comes to our aid when it comes to building websites quickly. Can we count on similar help when creating a modern look? We’ll tell you a bit about the extensive library called Bootstrap, which offers a wide range of ready-made components.

    Bootstrap

    The year was 2011, when a group of Twitter programmers, headed by Mark Otto and Jacob Thornton, introduced the world to an extraordinary tool that was to revolutionize in the future the process of creating a graphical interface – not only for websites but also for applications. They named it Bootstrap and decided to release it under one of the most liberal open source licenses – MIT. Currently, the latest version of Bootstrap is 4.6, but it looks like we can soon expect a stable 5.0 version (as of today it’s version 5 Beta 2).

    Bootstrap is an open-source tool that provides developers with a wide range of ready-made components

    Source: Bootstrap

    Bootstrap is a library of cascading style sheets (CSS), which uses ready-made HTML and JavaScript solutions. It provides predefined styles for the commonly used elements on web pages, such as text, headings, buttons, navigations, tables, links, and more. It also ensures that the elements look good in the mobile version. Everything is based on a grid structure made of up to 12 columns. The thing that makes Bootstrap so popular – in addition to the obvious benefit of having hundreds of predefined classes, so we don’t have to worry about spacing and struggle with the composition of our divs – is its documentation. It’s impossible to get lost in it. In terms of topics, it covers styling support and its variants for all elements.

    Drupal and Bootstrap – best friends

    The Drupal community didn’t pass by indifferently such a widely used tool and created two themes that allow integrating the Bootstrap library with Drupal.

    Bootstrap theme

    The basic theme that allows you to use the power of Bootstrap in Drupal can be downloaded from the Drupal.org page. It’s worth mentioning, however, that it currently supports the library version 3, but is compatible with all Drupal versions from 7 and up.

    Installing the theme can be done using the command line in composer:

    require 'drupal/bootstrap:^3.23'

    or the admin panel under the path /admin/theme/install.

    Installation of the Bootstrap theme in the admin panel in Drupal

     

    The next step is enabling the theme in the Appearance section of the admin panel or using the drush command.

    theme:enable bootstrap

     (if we just want to enable the theme)

    config-set system.theme default bootstrap

    (if we want to enable the theme and set it as default)

    Enabling Bootstrap skin in the Appearance section

     

    This ready-made theme has many options for global configuration of individual components that make up our page – both static (forms, tables, containers) and dynamic (modal windows and pop-ups). You just need to go deeper into the settings under /admin/appearance/settings/bootstrap. We can already notice a significant difference in the appearance of our page.

    Below you’ll find the comparison of my test homepage. If you use the Bartik theme, you’ll get the impression that suddenly the page components are mixed up and the whole thing looks “broken”, but don’t worry. In most cases you just need to slightly adjust the styling of the existing elements. Go to Structure -> Block layout and assign the correct regions to the blocks. Here I present the look of the Bartik theme after it’s been adjusted accordingly.

    The default Bartik skin in Drupal before and after enabling the Bootstrap skin

    Barrio theme

    The process of installing and enabling the Barrio theme is the same as before. The main difference between Barrio and Bootstrap is the version of the library they use. For Barrio it’s Bootstrap 4 or even 5 (for those who’d like to test version 5.0.2 of Bootstrap). The command to download Barrio via Composer looks like this:

    require drupal/bootstrap_barrio

    What we get in both cases are more ready-made templates that require further configuration and styling according to our needs, rather than a full, styled solution. They should be treated as the base themes which we’ll inherit from in our sub-theme. This is also important in terms of future updates.

    Creating own theme

    Creating our own theme, which’ll be based on the Bootstrap library version 3, 4 or 5, can be carried out in two ways:

    1. by using the starter kit available for both themes – under themes/Bootstrap/starterkits and themes/bootstrap_barrio/subtheme (the fastest and easiest option) respectively.
    2. using the starter kit available with both themes, but without using CDN (Content Delivery Network) (advanced option, requires a CSS preprocessor, e.g. SASS, to compile styles, and the Bootstrap library must be downloaded locally).

    The first option only requires us to copy a ready set of files to a new folder in the themes path and rename the files from THEMENAME or bootstrap_barrio_subtheme to the machine name of our theme. You should also check the .theme, info.yml, schema.yml, color/color.inc and js/global.js files and make similar changes within them as well. Thanks to CDN, the Bootstrap library doesn’t have to be downloaded locally.

    From now on, we can start working on the appearance of our page, define the typography or colour scheme. In the theme settings, you’ll find many options to modify the original configuration without having to modify the css or sass files. However, in most cases it turns out to be not enough and it’s necessary to overwrite files and create templates in the .twig format.

    Droopler – a high-end Bootstrap template

    As a free Drupal distribution, Droopler was created with the idea of fast and comprehensive website creation in mind. Therefore, it contains a set of ready-made components and functionalities that most pages use and – thanks to its modular structure – has a highly configurable SCSS preprocessor. To perform the rest of our activities, you can install Droopler in the way described on the linked page.

    Ready style files for all components and page structure elements in the SCSS folder

    Bootstrap is an integral part of Droopler. The Droopler theme uses Barrio – but unlike Barrio it provides a ready-made theme with styles, not just a template. In the scss folder, we can find ready-made style files for all components (mainly the available paragraph types, forms, etc.) and page structure elements (headers, footer, etc.).

    Droopler subtheme – how to use it?

    The Droopler theme also has a starter kit for creating your own sub-theme named STARTERKIT_CSS and STARTERKIT_SCSS, where we can easily modify the predefined variables. Let’s check what it looks like when you want to use SCSS:

    Droopler's sub-theme file structure with _base_theme_overrides.scss and _bootstrap_overrides.scss files

     

    The style.css file combines the entire SCSS code from the main droopler_theme and our theme (files located in scss/config). Print.scss also combines the entire SCSS code for printing both themes. In the libraries subfolder, we can put our additional SCSS files, which we then have to add via @import in the style.scss file. When adding them, it’s worth keeping the division into components and layout – as in the base theme.

    You can make any changes to the settings of the Bootstrap library itself or the droopler_bootstrap base theme in the configuration files:

    • _base_theme_overrides.scss
    • _bootstrap_overrides.scss.

    In the case of both files, we have at our disposal a quick guide covering the available variable modification options in the form of an extensive comment. All we need to do is uncomment the selected variable and substitute it with our value. The complete list of variables used in Bootstrap that we can overwrite can be found in the library’s _variables.scss file. As it’s downloaded automatically by defining the repository in the droopler_theme theme’s package.json file, it can be found in the node_modules/bootstrap folder.

    Suppose we want to change the colour of the submenu border that appears under the $dropdown-border-color variable in Bootstrap. In the base_theme_overrides file, we define a new colour, for example $color-example-1. Then, in the bootstrap_overrides file, we uncomment line 34, where the value for the border colour is defined. We substitute it with our newly created variable there.

    Changing the color of the sub-menu border

     

    You must run the compiler for the changes to become visible. In the case of Droopler, the developers also took care of it. There is a ready-made gulpfile.js file in the theme package. We just need to run the gulp watch command in the theme’s directory (both droopler_theme and droopler_subtheme), so that any changes we make to scss, js or other source files are included and compiled automatically. The effect? Let’s find out!

    New color of the sub-menu border in Droopler

     

    Our border is now pink. We can do the same for all variables.

    Summary

    Bootstrap is a powerful tool connecting graphic designers and developers. On the one hand, it allows designers to familiarize themselves with the website’s architecture and the specialized terminology (e.g. a 2 column-wide sidebar instead of a narrow window that is glued to the edge of the page), on the other – it saves time of the developers who only need to use the correct class to transform a regular link into a button.

    Integrating Drupal with Bootstrap may seem relatively complicated, but remember that the available Bootstrap and Barrio themes are only templates, and in the end we’ll still have to assign appropriate classes for all types of links we use. In Droopler, this part is already taken care of – we only need to change the block layout or modify the existing Twig templates. We can create and implement a new colour scheme in a few moments by editing a single file – the effect is guaranteed.

    Continue reading

  • Ben’s SEO Blog: The Sitemap Module

    The Sitemap Module

    Drupal’s Sitemap Module offers a human-readable HTML sitemap that serves as a helpful guide to visitors and search engines can crawl, which increases positive exposure for your content.

    Continue reading

  • Specbee: All You Wanted to Know about Drupal’s Strategic Initiatives

    Specbee: All You Wanted to Know about Drupal’s Strategic Initiatives

    All You Wanted to Know about Drupal’s Strategic Initiatives Shefali Shetty 27 Jul, 2021

    Every strategic initiative begins with a vision. Drupal’s success as an opensource project substantially thrives on its vision for strategic initiatives. The adoption of continuous innovation and strategic initiatives since Drupal 7 is what distinguishes it from the rest. With successful past initiatives like the Configuration Management initiative (CMI), the Web services initiative, Layout initiative, Media initiative and more, the Drupal community is all charged up to be working on many more initiatives as you are reading this. 

    But what exactly are strategic initiatives? What initiatives are Drupal working on? Who makes them? Why should you care? Read on to find answers to these burning questions.

    Drupal Strategic Initiatives

    What are Strategic Initiatives?

    Thomas Edison – the man who garnered over 1000 patents – had once said in an interview – “I have not failed 10,000 times but have successfully found 10,000 ways that will not work”. Success comes when you embrace changes that can lead you to your end goal. The day you stop evolving is the day you stop growing. Strategic initiatives are typically sparked from a need for a change that guides an organization towards its future goals. It fuels growth and development of a product or organization.

    How are Drupal’s Core Strategic Initiatives formulated?

    As a continuously evolving opensource project, its strategic initiatives must always result in a breakthrough for Drupal. But how does Drupal’s project lead – Dries Buytaert – come up with these initiatives? 

    • They are backed by solid data. Regular surveys and usability studies are conducted to help build this data. This is usually done after every major Drupal release.
    • Fueled by a vision to build superlative digital experiences focusing mainly on non-technical content authors and site builders.
    • Market relevancy and competitor research is performed to ensure improvements on editorial, developer and customer experiences are delivered.
    • The initiative ideas are validated via community collaboration and discussions.

    Initiative Stages

    Proposed Stage: This is the beginning stage of the initiative where the initiative is recommended by Dries or the Drupal community members.

    Planned Stage: This is when the initiative is nurtured with detailed plans. A strong team of initiative contributors is created who set goals and plans for the initiative.

    Active Stage: This stage is where the real work happens, and the initiative comes alive.

    What are the current initiatives Drupal is working on?

    At DrupalCon North America 2021, the audience witnessed a first-of-its-kind “Initiative days” program where each day was dedicated to one initiative. Here the initiatives were introduced, discussed, and contribution sprints were also held at the end the program. 

    • Decoupled Menus Initiative

    This initiative was proposed by Dries during his DrupalCon Global 2020 keynote speech. The goal of this initiative is to build APIs and documentation that can enable JavaScript frontend developers to integrate Drupal menus to the frontend in the best way possible. It also aims at offering content editors and site builders with an easy and intuitive way to build menus on Drupal with very less to no code. However, the broader goal of this initiative is to create a pattern that can be replicated to build various decoupled components, thus making Drupal the best decoupled CMS in the market.

    • Easy Out of The Box Initiative

    During a user survey at a DrupalCon in 2019, it was gathered that many users preferred Drupal over other CMSs’ but only after a while of using it. Simply put, Drupal wasn’t as much of a CMS choice of a beginner user as much it was of an expert Drupal user. Which meant that Drupal needed to be more acceptable even at the beginner level. The goal of the Easy Out Of The Box (EOOTB) initiative is to make Drupal easy right out of the box for non-technical users as well. It bundles the three initiatives together – Layout, Media and Claro – to offer unmatched and simplified user experiences.

    • Automated Updates Initiative

    Automated updates was one of the highest requested Drupal features in a survey conducted in 2020. The vision of this initiative is to address the challenges faced by small to midsized businesses in updating their Drupal sites manually. It aims at ensuring the website is safe to update and verify updates with package signing. Updates applied should also be able to be rolled back in case of any errors. 

    • Drupal 10 Readiness Initiative

    Similar to the success of the Drupal 9 readiness initiative that ensured a smooth and on-time release of Drupal 9 by June 2020, the Drupal 10 readiness initiative aims at guaranteeing a timely release of Drupal 10 by June 2022. Along with an on-time release, the goals are also to get Drupal 10 compatible with the latest versions of the dependencies like PHP, Symfony, jQuery, Guzzle and more. Older modules, themes and other dependencies will also need to be deprecated.

    • New Front-end Theme (Olivero) Initiative

    The goal of this initiative is to build a fresh new front-end theme with many improvements than what we had previously in Bartik. Olivero is going to be a modern theme with a positive and powerful look and feel. It aims at offering functionality that can support new features like the layout builder, embedded media and more. It will also be WCAG AA conformant ensuring the theme passes Drupal’s accessibility standards.

    • Project Browser Initiative

    The Project browser initiative is at its very early stages – the planning stage. The initiative was proposed by Dries during DrupalCon North America 2021. The vision is to build a project browser that makes it easy for users to find and install modules without using command line. It aims at making module discovery and installation easy and fast.

    Shefali ShettyApr 05, 2017

     

    Continue reading

  • Talking Drupal: Talking Drupal #304 – Voice Content and Usability in Drupal

    Today we are talking with Preston So about Voice Content and Usability in Drupal, as well as his book from A Book Apart Voice Content and Usability.

    www.talkingdrupal.com/304

    Topics
    • AmyJune Word Camp Santa Clarita
    • John Elisha Otis 1853 Elevator pitch
    • Nic Trumpet Vine (again)
    • Preston Decoupled Days and just finished Gatsby: The Definitive Guide
    • Voice Content and it’s impact on usability
    • First interest in the topic
    • Learn about accessibility beyond content layout
    • Designing a voice interface
    • Voice system learning
    • WCAG 3.0 Web Content Accessibility Guidelines success criteria
    • Lessons from Voice content
    • Bad voice content and it’s impact
    • How it applies to Drupal
    • Preston’s new book
    Resources

    https://abookapart.com/products/voice-content-and-usability

    https://georgia.gov/

    Ask Georgia Gov

    https://georgia.gov/chat

    Guests

    Preston So – https://preston.so/ @prestonso

    Hosts

    Nic Laflin – www.nLighteneddevelopment.com @nicxvan

    John Picozzi – www.epam.com @johnpicozzi

    AmyJune Hineline – @volkswagenchick

    Continue reading

  • Droptica: How to Perform a Drupal Security Audit? Overview of the Modules and Libraries

    Droptica: How to Perform a Drupal Security Audit? Overview of the Modules and Libraries

    .

    A security audit is the process of identifying security threats that can lead to unauthorised access to content, data leaks, bypassing the security, and other dangers. In the first part of the series on conducting a security audit, we’ll focus on the overview of the Drupal module versions that we use at Droptica for this purpose, as well as on PHP and JavaScript libraries.

    Drupal security audit

    At Droptica, we make every effort to ensure that the solutions we provide are as safe as possible. We use the tools provided by the Drupal community, such as the Security Review module, to optimize the process of detecting the most popular security errors. We also use the Security Kit to make the project we’re working on more resistant to attacks. You can learn more about the functionality of these modules in the linked posts, and the information on their operation will be useful in the following parts, in which we’ll talk about the Drupal configuration review and code analysis.

    Checking the versions of the installed Drupal modules

    Updating modules and libraries is the simplest activity that we can perform to improve the security of our application. Drupal provides a view listing all the modules, which additionally indicates whether a given module is up-to-date, and if it isn’t – whether the update contains security fixes.

    To check if the modules are up-to-date, go to /admin/modules/update

    Checking the versions of Drupal modules as part of security audit

    In the screenshot above, you can see that some of the modules need updating. Of course, in such cases we always recommend that you update all possible modules. If any of the modules contain a security fix, the update is required to ensure a high level of security for the application.

    In the case of Drupal, the information about whether a given module has a security flaw is made available to the public when the author of the module releases its patched version. Module authors usually try to hide which code has been changed to patch a security flaw, but this always means that the attacker just needs more time to find a way to cause the bug and exploit it. Time is important, so you should keep track of security updates regularly, not only during a Drupal security audit. As we mentioned earlier, this is one of the simplest steps we can take to ensure a higher level of security for our application.

    Patches review

    When updating the Drupal modules, you should also check if a patch has been applied to a given module. If so, we proceed as follows:

    1. We check whether the patch was created by the community and if it concerns a specific issue on drupal.org. If so, we look for the issue that the patch is from. It’s possible that the patch has been applied to one of the newer versions of the module. In such a case, we recommend updating the module and removing the patch with the information that the code that fixes the bug or adds a given functionality has been applied to the official, newer version of the module. If the patch hasn’t yet been applied to the newer version of the module, we still recommend updating and testing if the latest version of the patch serves its purpose.
    2. If the patch wasn’t created by the Drupal community, but is the result of working on the project, we still recommend updating the module. In this case, however, ensuring the correct operation of the patch lies with the people responsible for the custom code of the project. After updating, you should check whether the patch works as intended. If not, we recommend introducing appropriate fixes to the patch which will ensure its correct operation on the latest version of the module.

    PHP libraries review

    The next step will be reviewing the used PHP libraries. To list them, we can use the composer show command or the local-php-security-checker package. We recommend the latter solution because it significantly speeds up the process.

    Result of the composer show command during the review of the used PHP libraries

    Result of the composer show command.

    If you choose to install the local-php-security-checker package, follow the guidelines in the README.md file.

    Result of the scan using local-php-security-checker during a Drupal security audit

    Result of the scan using local-php-security-checker.

    There’s also the little-known Drupal Composer Security Checker module that uses the security-checker package. Currently, this module doesn’t fulfill its task and the security-checker package itself isn’t actively developed (since January 2021), therefore we’ll focus on the local-php-security-checker package itself. If you find a security risk, our recommendation will be to update the library, of course – as in any case. An audit of the PHP libraries should be carried out regularly, the same as in the case of the Drupal modules.

    JavaScript libraries review

    The next step will be to check if the used JavaScript libraries are up-to-date and if they contain security fixes. To do this, you should review the library directory and the used package.json files.

    In the case of the library directory, you need to check the version manually. In the case of package.json, we use the npm-audit command.

    Result of the npm-audit command checking the package.json during the JavaScript libraries review

    Result of the npm-audit command

    The npm-audit command will list all known vulnerabilities, determine the threat level, package, dependencies, package path, and show a link with information about the vulnerability.

    The npm-audit command shows all vulnerabilities in the JavaScript libraries

    If you find a vulnerability, as always we recommend the update. JS library scans should be performed routinely, more often than a comprehensive security audit.

    Improving the Drupal security – further steps

    In this part of the Drupal security audit cycle, we’ve learned how to check whether the used versions of the modules and libraries are up-to-date and don’t contain known security bugs. We also understand how to proceed if there is a patch available for a module – both when the patch comes from the Drupal community and when it was prepared by the developer working on the application.

    Acquiring the knowledge provided in this post is the easiest way to improve the security of your application. Checking the versions of the used solutions is the first step that we perform during a security audit – our Drupal support team recommends periodic checking for updates. In the event that an update containing security fixes is released, we recommend that you perform an update as soon as possible.

    In the next part of this series of articles, we’ll get to learn more about the Drupal configuration aimed at increasing the security of our application. We’ll also learn how to reduce the number of attack vectors and we’ll find out more about the modules that’ll help us with this.

    Continue reading

  • Envato Tuts+: Intro to Drupal: Build a Simple CMS

    Envato Tuts+: Intro to Drupal: Build a Simple CMS

    Drupal’s popularity has lately been rising. It’s a great platform for setting up content management systems and community driven sites. Here, I’ll give a general overview of Drupal and build a simple site for a fake client. We’ll begin with outlining the client’s needs, installing and configuring a few modules, creating user roles and assigning permissions, and finally we’ll add in some content. We won’t go into theming, as it’s a bit out of the scope of this article.


    1. A fake client

    Let’s start off with a fake client.

    SmartMarks is a small marketing consulting firm, with 4 employees. Each employee would like their own blog. The site will need a few pages in addition to the blogs:

    • Home
    • About
    • Contact
    • Links
    • Blogs

    Shannon, the business owner, wants full control over the site. The rest of the employees (Bill, Jean, and Terry) should only be able to write blog entries, but Bill may publish links.

    The contact us form will accept the user’s name, phone, email, and a short message. Submissions of the contact form should be sent only to Shannon.

    Sounds pretty simple, huh? Well with Drupal, a lot of this core functionality is already built in. We’ll use as much of the core functionality as we can, and we’ll add in a few other modules to make building this site a breeze!


    2. Install some stuff

    First, start out by installing Drupal. I’ll be developing this one on my local machine, but you can install it anywhere you wish. For this tutorial, I’ll be working with Drupal 6.x.

    To install Drupal, simply download (https://drupal.org) and unpack it, create your database, and visit http://localhost/ (or your own dev URL). Installation should be relatively simple for ya.

    You’ll need to create a config file. You can copy /webroot/sites/default/default.settings.php to /webroot/sites/default/settings.php. Be sure to make it writable to the server. Also, leave a copy of sites/default/default.settings.php where it is; Drupal will use it during installation.

    After your config file is created, you can go ahead and install Drupal.

    On the next screen, you’ll setup the first account for the site. This is the main administrator, or super user. This user will have permission to do anything and everything on the site.

    And you can go ahead and specify a few server settings. If your server is configured for mod_rewrite URL rewriting, then you can go ahead and enable Clean URLs now. This will change your URLs from something like /?q=node/3 to just /node/3.

    After successful installation, you can visit the site and login as the superuser.


    3. Get some modules

    For this site, we’ll be using a few contributed modules. We’ll have to download those and activate them before we can use them.

    All modules that you’ll install will be placed in the directory /webroot/sites/all/modules. If the modules directory doesn’t exist there, just make a new one and name it modules.

    Make sure to download the modules compatible with the version of Drupal that you’re using. I’m using Drupal 6.x.


    4. Admin Menu

    This module is a must have for working with Drupal. It’s not totally necessary, but it will save you loads of time.

    Download it over at http://drupal.org/project/admin_menu and place it in /webroot/sites/all/modules

    PathAuto & Token

    Next, go grab a copy of PathAuto and Token. PathAuto is a module that will have Drupal automatically generate nice URLs. PathAuto requires Token to work.

    Meta Tags (Nodewords)

    Originally titled NodeWords, the Meta Tags module allows users to specify common meta tags, like meta keywords and meta description.

    Get a copy of this module over at http://drupal.org/project/nodewords

    CCK (Content Construction Kit)

    CCK allows you to easily create new content types, without ever having to write any code! We’ll use this for the company’s external links section.

    Get CCK at http://drupal.org/project/cck

    Views

    The views module allows you to configure custom views for displaying content. They’re very useful when you have complex content types and categories. Here we’ll use Views to display Links.

    Get the Views module at http://drupal.org/project/views

    Install some modules

    After you’ve downloaded and unpacked the above modules into /webroot/sites/all/modules, you can go ahead and install them.

    Visit http://localhost/admin/build/modules to turn some of them on.

    For this site, we’ll need to install the following. Simply check the boxes and click “Save configuration”.

    • Administration – Administration Menu
    • Core – Blog
    • Core – Contact
    • Core – Path
    • Content – Content
    • Content – Text
    • Other – Meta tags
    • Other – Pathauto
    • Other – Token
    • Views – Views
    • Views – Views UI

    5. Content Types

    Before we work with users and roles, we’ll create our Links content type. Each Link will need a title, URL, and short description.

    What’s a node?

    Almost every piece of content in Drupal is stored as a single node. All nodes have a title and an optional description. By creating content types, you can add fields to the content type to extend the node.

    In our case, each Link will need one additional field that’s not provided by default, the URL.

    Create a Link content type

    We’ll create a content type called Link. We’ll then add a field to the content type called URL.

    Visit http://localhost/admin/content/types/add

    In the name field, enter the human-readable name. In the type field, enter a unique name for the type. The system will use this name internally. You can make it up, but generally it’ll look like a variable name, lowercase and underscored. Also enter a short description of the content type.

    Next we’ll modify slightly this content type from the general node. In the “Submission form settings” group, instead of “Body”, we’ll title the body field “Short Description”.

    Next, we’ll edit the “Workflow settings.” Allow the link to be published by default, and disable automatic promotion to the front page.

    And finally, disable comments on the Links.

    Save the content type. If you visit the “Create Content” page, you’ll now see the new content type, Link.

    Additional fields with CCK

    So we’ve got our base Link content type set up. But we need to add an additional field to each Link: URL. Visit http://localhost/content/types and “Manage fields” for content type Link.

    Add a field titled “url”, and name it “field_url”. Choose text data and text field.

    Save it. Another page will come up, with some more options. The defaults are ok for this, so just contine by clicking “Save field settings”. After this, the Link content type should appear like this:


    6. Views

    Now let’s set up a view for our new content type, Links.

    Views can become quite complex, but for our example, we’ll keep it very simple. We’ll make a page view that displays Links. Plain and simple

    Visit http://localhost/admin/build/views to get started. Click the tab “Add” to create a new view.

    Name the view “Links” and choose type node.

    The next few pages can grow quite complex, but be paitent. A bit of practice will get you more comfortable with views.

    Firstly, we’ll want our Links view to be a full page. So add a page display.

    We’ll have to make some settings next. Change the name and title of the view to Links. Set the “Row Style” to node, and choose to display teaser and links.

    Make sure you’re clicking “Update Default Display” every time.

    Set the Path to “links”. This will be the URL path and our page view will show up at http://localhost/links.

    Then set a menu for the view. Choose “Normal menu entry”, title it Links, and put it into Primary Links. (More on menus a bit later).

    The Basic Settings area should be similar to this by now:

    And finally for the view, we’ll need to setup a filter. The filter will allow us to restrict the view to only display nodes of type “link”.

    Add a filter by using the “+” button at the top of the Filters box.

    Scroll down until you find the filter titled “Node: Type”. Check it’s box, then add it as a filter.

    Choose a node type of “Link”.

    At this point, our whole view should look very simliar to the following.

    Save the view. We’ll come back to it later.


    7. Users, Roles, & Permissions

    Next we’ll set up some user roles and permissions, and then we’ll create some real users. Refer to the site requirements above to refresh on what our users need to be able to do.

    User settings

    Only SmartMarks staff will be able to have accounts. Public registration will not be necessary for this site. So we need to restrict regsitration at http://localhost/admin/user/settings and disallow public registration.

    Roles

    We’ll need a couple of roles. Since Shannon wants full control, we’ll need an Admin role. Since Bill can modify certain things that others can’t we’ll setup a Manager role. And finally, the rest of SmartMarks’ employees will need to belong to an Employee role.

    Visit http://localhost/admin/user/roles to get started.

    Create a role titled Admin.

    Repeat the process to create two more roles, Manager and Employee. We should have something like this now.

    Perimssions

    Next, we’ll define permissions for each of the roles. Visit http://localhost/admin/user/permissions to set up permissions. Set them up like so.

    You may be wondering why we didn’t give Manager too many permissions. This is because we’ll set Bill to also be part of the Employee role, so Manager simply needs to be able to add and edit links. All of the permissions associated with Employee will be granted to Bill.

    Now that we’ve got roles and permissions going, we can create our sites’ users.

    UserRole
    ShannonAdmin
    BillEmployee, Manager
    JeanEmployee
    TerryEmployee

    Go ahead and create these users at http://localhost/user/user/create, assigning roles to each of them. We should end up with something like this on http://localhost/admin/user/user:


    8. Creating Content… Finally!

    And finally we can start creating content. We’re well over halfway done at this point.

    Create pages

    First off, let’s begin with the home page. Visit http://localhost/content/add to create a new Page.

    Enter the page title and some sample content for the home page. Set up a menu item for this page. You may also enter some meta tag info if you’d like.

    Leave the URL alias setting alone. We’ll let Pathauto handle it, and we’ll set that up shortly.

    Save the page and create another for the About page.

    If you now visit the main page, you’ll notice that we’ve got a menu already going. These items come from the pages we just made and from the view we made for Links earlier.

    Create some Links

    Next, we’ll create a few links. Visit the create content page again, but this time choose Link. Create a few links.

    After we’ve created a few links, we can visit the view for Links. Visit http://localhost/links to see our links. Here’s what I’ve got. Remember this is coming from the view we made earlier.

    Contact form

    Drupal’s built-in Contact module is totally sufficient for SmartMarks. We’ll just need to set it up. Visit http://localhost/admin/build/contact and click “Add Category” to begin.

    Add a category for “General Enquiries”, enter Shannon’s email as the only recipient, and set “Selected” to yes. This will cause this category to be the default for the contact form. (You could setup multiple categories to handle contact submissions for areas such as Sales, Support, etc.)

    You may now view your contact form at http://localhost/contact

    Create some blog entries

    Last of the content, we’ll make a few sample blog entries. We could log out, and then log back in as each user individually, creating a blog entry under each. Or, since you’re already logged in as superuser, you can create a few entries and change the author to each user.

    Visit http://localhost/node/add/blog and create a sample entry.

    Under the authoring info, enter shannon. This entry will become Shannon’s first blog entry.

    Repeat that to create a blog entry for the other users (bill, terry, jean). Then visit http://localhost/blog to see the user blogs.


    9. Finishing touches

    We still have a few things to tidy up before we’re done. We need to setup pathauto to handle automatic URL aliases, finish our menu, check out each user account, and then we’ll add a few blocks to demonstrate a little about blocks.

    Menus

    Let’s start with menus. We’ve already created a few menu items beneath the Primary Links menu. We did this when we created the view for Links and when we created each static page.

    Visit http://localhost/admin/build/menu. Here you’ll see several menus available. Choose Primary Links.

    Choose “Add item”. We’ll create an item for the Contact form.

    Note that the path is relative to the site root. So don’t enter “/contact”; just enter “contact”.

    Repeat the above to create another menu item for user blogs, using a path of “blog”. Then visit the tab “List items” to view all the menu items within the Primary Links menu. Now we can reorder the items using the drag and drop handles on the left.

    Make sure to save!!!

    Now our primary links in the header should be complete and sorted.

    Pathauto

    Next up, we’ll setup pathauto to handle our nice URLs. Visit http://localhost/admin/build/path.

    Before we configure paths, let’s remove any existing URL aliases. You can do this by visiting the tab “Delete Aliases”, then just go ahead and choose all aliases and delete them.

    Now we’ll setup the automatic aliases under the tab “Automated alias settings”.

    Open up “Blog path settings” and check the box to have the system “Bulk generate aliases”.

    Now open up the “Node path settings.” Here we’ll set up a few rules to handle paths for different node types. Use the replacement patterns (this is where the Token module comes into play) to set up appropriate paths. Make sure your URL alias scheme will produce only unique URLs! And be sure to have it “Bulk generate aliases.”

    Then save. Then view “List” again. You should see new aliases made for all of our existing content.

    A note about URL aliases: Don’t forget to delete aliases if you change your URL scheme and regenerate aliases. Deleting and recreating aliases may seem a bit scary, but the more you do it, the more confident you’ll become in your URL scheme.

    Blocks

    Shannon just informed us that she wants the site to highlight the company’s recent office move. This is a good opportunity to go over blocks.

    A block in Drupal is simply a ‘chunk’ of content, be it a list of nodes, some static HTML, a few images, or whatever. We’ll set up a simple block to hold the notice about the office move.

    Visit http://localhost/admin/build/block. Add a new block by using the tab “Add block”.

    After adding a block, you’ll have to assign it to a region for display. Assign it to the left sidebar on http://localhost/admin/build/block, and don’t forget to save!!!

    You may also sort them with the drag handles, like menu items.

    You should now see the new block displayed in the left sidebar after save.

    Check user accounts

    Now we’re almost there. Just want to login as the users to make sure they’ve got the right permissions and that they can access the links to allow them to get stuff done.

    Log out of the system and log back in as Shannon. Shannon is our administrator, so let’s make sure she’s able to create/edit all content. After logging in as Shannon, we should see a link to create content.

    Go through and login as each user. Just take a look to make sure each one has the permissions and links available to get stuff done. If they don’t, try going back to administer user permissions, and verify that they’ve been granted the correct permissions. Or also make sure you’ve correctly assigned roles.

    Set the home page

    We also need to tell Drupal to use our home page as the default home page. You can do this under http://localhost/admin/settings/site-information.

    Before you change this data, though, we need to grab the node id of our home page. Visit our welcome page at http://localhost/welcome-smartmarks. Click or mouse-over the “Edit” tab; we just need the node’s ID.

    Our home page has a node id of 1, so we’ll use that for the default home page. Visit http://localhost/admin/settings/site-information and enter some data. At the bottom, you’ll see a field for the default home page. Enter “node/1”. Note that we’re using the node id becuase of pathauto. If we were to change the URL alias of the home page, then we won’t have to change its node id, since it will remain the same. Drupal will automatically print out the correct URL alias.


    10. Summary

    This overview only scratches the surface of what Drupal can do. Hopefully I’ve given you a good overview of how to get started with the system in building this very simple CMS.

    Themes

    Drupal supports multiple themes, and each user can even chose their own theme.

    Building a custom theme is out of the scope of this tutorial. But you can download and install some contributed themes. A good starting place is over at Theme Garden. Download and unpack themes into /webroot/sites/all/themes, then enable and configure them at http://localhost/admin/build/themes. Note that whenever you activate a new theme, you’ll have to visit the blocks page to assign blocks to the theme’s regions.

    If you’re ready to start building a theme, you might want to check out the Theme Guide.

    Good luck!

    Good luck in your Drupal ventures, and feel free to ask questions! Also check out http://drupal.org for more information and helpful articles.

    Continue reading

  • Envato Tuts+: What Is Drupal?

    Drupal is a popular open-source content management system written in PHP. Having been created in the early 2000s by a Belgian student, it now powers some of the most prominent websites on the web (WhiteHouse.gov, Weather.com, etc.). It is often regarded as a competitor of CMSs such as WordPress and Joomla.

    One of the most important components of the Drupal project is its community of supporters (contributors, developers, evangelists, business owners, etc.). Prominent within this community stands the Drupal Association, responsible for “fostering and supporting the Drupal software project, the community and its growth”.

    A giant leap from its predecessor, the 8th major release of the Drupal project has just hit the shelves. It brought about a serious modernisation of its code, practices and mentality. Many regard this shift as a real move away from the traditional notion of a CMS to more of a Content Management Framework (CMF) that provides a great platform for building complex applications.

    In this article, I’m going to answer some of the more frequent questions people have about Drupal when starting up for the first time or considering doing so:

    • Is it right for me? Who is it aimed at?
    • How can it be installed, and where can I host it?
    • How can I start working with it as a developer?
    • What options do I have for extending functionality or styling it?

    Who Is Drupal Aimed At?

    Since the beginning of the project, Drupal has evolved from being mainly a tool for building smaller sites to one that can now power enterprise-level platforms. Especially with Drupal 8, site builders and developers can easily scale up from small websites to large platforms with many integrations. For example, the adoption of Composer allows you not only to bring external libraries into a Drupal project, but also to use Drupal as part of a bigger project of applications and libraries. It’s safe to say that Drupal is flexible enough to meet the needs of a wide range of projects.

    When it comes to development, Drupal has always had a relatively closed community—not because people are unfriendly, quite the contrary, but mainly because of the code typically being written in a Drupal way (resulting in what sometimes is referred to as Drupalisms). This has meant a learning curve for any developer starting up, but also less interest from developers of other PHP projects to jump in and contribute.

    This is no longer the case. Especially with the release of Drupal 8, the community now promotes a new mentality of code reusability and best practice across different open-source projects. Active participation in the PHP Framework Interoperability Group is part of this effort, and using a number of popular Symfony components in Drupal 8 core is a testament to this commitment. 

    With this move, the Drupal community has gotten richer by welcoming many developers from other communities and projects, and it is sure to grow even further. So if you are a Laravel developer, looking at Drupal code will no longer be so daunting.

    How Can I Install Drupal, and Where Can I Host It?

    Traditionally, Drupal has had a relatively easy installation process, particularly for people who at least knew their way around a Linux environment. The project simply needs to be dropped into a folder your web server can run (which needs to be using PHP and have a MySQL or MariaDB database). Then pointing your browser to the /install.php file and following the steps takes care of the rest. The most important screen you’ll see is the one in which you select a specific database to use.

    In terms of requirements, the LAMP stack (Linux, Apache, MySQL and PHP) environment has always been a favourite for Drupal to run in. However, it is in no way restricted to it. Solutions exist for installing it straight on Windows or Mac (e.g. using the Acquia Dev Desktop) but also on a Linux system that runs other web servers.

    The easiest approach, if you go with your own setup, is to use a LAMP server for hosting. For a bit more performance you can replace Apache with Nginx, but you’ll then have to take care of some specific configuration that otherwise is handled in the .htaccess file Drupal ships with.

    However, if you don’t want the hassle of maintaining your own hosting server, there are three main providers of specialised Drupal managed hosting: Acquia, Pantheon, and Platform.sh. These also provide a workflow for easy updates and development flow. Past that, you are looking at fully managed hosting with a Drupal development company.

    How Can I Get Started Developing for It?

    Developing Drupal websites has typically been the kind of thing you either liked a lot or didn’t like at all. This is because when you were first introduced to Drupal, you encountered very many specificities that you didn’t see in other projects. So if those tickled your fancy, you loved it forever.

    With getting off this island in Drupal 8, this is no longer the case as much. You still have plenty of Drupalisms left that you can love or hate, but you now also have external components like Symfony or Guzzle and, most importantly, a more modern way of writing code in general (OOP, design patterns, reusable components, etc.). So your PHP skills from building websites with Zend will come in handy.

    A good way of getting into Drupal development is to follow some online video courses. There are a couple of resources that are excellent for this purpose, most notably Drupalize.me. If, however, video is not your favourite medium, there are also many written tutorials and guides available to get you started. Check out the following links for some of the first steps you can take:

    Since Drupal 8 is brand new, you’ll find significantly more learning content for Drupal 7. Nevertheless, the focus in the community has been shifting recently towards Drupal 8, so you can expect more and more of these resources to crop up. And if you have no experience with any version of Drupal, it’s best to focus exclusively on Drupal 8 as the changes between the two are big and perhaps you’d be facing unnecessary challenges.

    How Can I Extend Drupal?

    The main extension point of a core Drupal installation is its module system. 

    Modules are used to encapsulate bigger chunks of reusable functionality that can/should work on different sites. Aside from the core modules, there are a large number of contributed ones, available for installation. 

    Granted, most are still only for Drupal 6 and 7, but the community is catching up also for the newest version. This problem is also mitigated by the incorporation in Drupal 8 of a few popular contributed modules as well as extending the scope of what core can do out of the box (compared to Drupal 7). 

    Lastly, custom modules (the ones that you write yourself) are the primary way you can add any functionality that you want and that is not available via a contributed module.

    Installing modules can allow you to plug in various pieces of functionality, but you should not treat this as a green light for adding too many. It’s always better to stick to the ones you actually need, and don’t be afraid to be critical in this respect. You can also work on finding a good balance between contributed code and the custom one you write yourself. 

    Additionally, since we are talking about open-source software, you should always evaluate the modules you install. The following indicators are good examples to pay attention to: number of downloads and usage, commit frequency, maintainer engagement, state of the issue queue.

    And do keep security in mind as well. It’s highly recommended you keep both Drupal core and any contributed modules up to date as this will significantly help you keep your site and server secure (though it doesn’t ensure it).

    What About Styling?

    The styling layer of a Drupal site is handled (in large part) by its theme. Themes are similar to modules in that they are an extension point, but they have different responsibilities. They contain the styles, front-end libraries and in most cases template files that are used to output data.

    There has been great progress in Drupal 8 compared to the previous version: the popular Twig engine has been adopted for templating, theming has been limited to Twig template files, debugging and overriding templates has been made much easier, etc. Similar to the advances in back-end development experience (DX), the theming layer has been made more appealing to the non-Drupal crowd. Front-end developers can now easily work with Drupal themes without having to understand the ins and outs of the back end.

    Drupal core comes with a number of themes that can provide you with examples but also which you can extend from. There are also contributed themes similar to how there are modules. Popular front-end frameworks such as Bootstrap or Zurb Foundation have mature Drupal theme implementations for Drupal 7, which are also readying for Drupal 8. These work very well as base themes but also for quickly scaffolding a website and making it look decent.

    Paid themes are also available to try out. Usually they are very cheap and quick to set up. The problem with them is that they are worth exactly as much as you pay for them and usually have gaping holes in their flexibility. As a beginner, these themes can seem like a great way to set up a site, and they very well may be. However, as you progress, you’ll learn to avoid them and build your own, based on external designs or even plain HTML/CSS/JS templates.

    Conclusion

    Drupal is a powerful tool for building websites and platforms of any kind. With each new major release, Drupal has shown a commitment to better itself, become more robust and flexible, and embrace outside communities as well.

    Continue reading