This blog post summarises my fourth week of the coding period of Google Summer of Code with Drupal.Code Review
The week began with iterating over previously committed code based on feedback by Colan. After making the changes and pushing them, I later merged the merge request into the 8.x-1.x-dev branch after Colan’s approval.tameeshb Wed, 06/28/2017 - 09:16 Tags GSoC Google Summer of Code 2017 Drupal Drupal Blog
In true Drupal fashion, we had a huge amount of proposals for DrupalCon Vienna on the last day, bringing us to 567 session submissions.
We have all heard the buzz around personalization — the key to orchestrating a customer experience that will drive engagement, conversions, and loyalty. Unfortunately, implementing personalization continues to be a challenge for marketers due to an inability to collect data across multiple customer touch points and unify that data across tools into one customer profile.Tags: acquia drupal planet
On the latest DrupalConsole release the Launcher aka the global executable is a stand-alone full CLI application. Yes, it was like this before, but at some point on RC releases when the per-site installation was introduced we removed global commands and most of the Launcher features, but after receiving feedback and analyzing the benefits, we decided to bring back the Launcher as a full CLI application.
From https://github.com/hechoendrupal/drupal-console/blob/master/README.md We highly recommend you to install the global executable, but if is not…
Accelerated Mobile Pages (AMP) is a web mobile technology specifically designed to tackle unresponsive web pages on mobile devices like smartphones and tablets. The challenge of poor mobile user experience due to slow loading of web pages is not new. Rich media contents, including ads, often in the form of videos, images, and audios, have made the web unbearable for mobile users. So much so that, as early as 2010, Google designated the load speed of a website as a rank factor in its search algorithm. In 2014, Google added the mobile usability report to its Webmaster Tools. Running this new report identifies specific mobile usability issues on a given website as detected by Google. With the availability of this reporting tool, it was generally speculated that mobile usability would one day become a ranking factor. Speculation turned into reality in 2015 when Google announced that mobile usability is officially a rank factor in its search. Despite earlier signs and warnings from Google, this event still created quite a shock among webmasters, and was nicknamed Mobilegeddon for its magnitude of impact. In a nutshell, if a web page is deemed mobile-unfriendly by Google, (and there is no middle ground), it will be ranked lower even if its content is exceptional.
The case for mobile pages with fast load times makes business sense, and is backed by industry research statistics. About half of Internet shoppers expect a web page to load within 2 seconds. Furthermore, studies showed that 40% of desktop users would abandon a slow loading web page, while mobile users were abandoning at even a higher rate (50%), according to Consumers in the Micro-Moment, May 2015.
As a direct response to the mobile web speed challenge, Google introduced the AMP project in 2015. Gary Illyes, webmaster trends analyst at Google, reported that AMP web pages load 4 times faster than the average. Jon Parise, technical architecture lead at Pinterest, cited test results that show AMP pages use eight times less data than traditional mobile-optimized pages. Better user experience with AMP pages correlates with improved user engagement: 90% of publishers net higher CTR, while 80% of publishers are getting more page views.
In a nutshell, AMP leverages existing web technologies, and can be readily deployed on existing web infrastructure. Specifically, AMP pages can be uploaded to and served from existing web servers without custom server configuration.
Although AMP, as a technology, is only 2 years old, it has been deployed successfully with well-documented case studies from web publishers, advertisers, and e-commerce websites.
It is no surprise that, because of its origin as a Google initiative, AMP pages are featured prominently in Google Search results. AMP-enabled news stories are displayed in the AMP carousel at the top of mobile search results pages. Although AMP is not yet ubiquitous in the mobile web, it is gaining traction by being supported on LinkedIn, Medium, Pinterest, Reddit, Twitter, WordPress, and Drupal.
Drupal is a CMS that many web publishers and e-commerce vendors use to build their websites (learn here why). If you are a Drupal developer, AMP is a technology that you should definitely consider using. To make AMP adoption easier, Drupal has developed an AMP module to automatically convert regular pages into AMP pages. The rest of this article shows how to enable AMP support in the Drupal environment.
Install Drupal AMP support Overview
AMP support on Drupal requires the installation of the following components.
The AMP module manages the conversion of regular Drupal HTML pages to AMP-complaint pages. The URL of AMP pages ends with the string '?amp'.
AMP PHP library
The AMP PHP library is the engine behind HTML conversion. It validates user-entered HTML against the AMP standard, and makes the necessary corrections to ensure compliance.
The AMP theme consists of the AMP base theme and the ExAMPle sub-theme. All Drupal AMP pages must be displayed using a sub-theme of the AMP base theme. You can create a new AMP sub-theme from scratch, or modify the default ExAMPle sub-theme.
Both Drupal 7 and Drupal 8 support AMP. The following illustrates how to setup AMP support for Drupal 8 on the Linux platform.
The prerequisite is that a working Drupal system is already in place. The following install procedure uses the command-line tools Composer and Drush. If these tools were already installed on the Drupal system, they do not need to be re-installed. Unless specified otherwise, the following steps should be performed using a non-root account on a Linux system.
Download and install Composer
Composer is the dependency manager for downloading PHP packages. Download and install Composer using this command:
curl -sS https://getcomposer.org/installer | php
Move the installed program to a system directory that grants you execute permission, e.g., /usr/local/bin.
mv composer.phar /usr/local/bin/composer
Download AMP module
Download the AMP module and its dependencies, including the AMP PHP library, using the composer command below. Note that the composer command must run inside the web server's document root directory. The exact document root directory location depends on the web server and Linux distribution. For this example, the document root is /var/www.
composer require drupal/amptheme
Download AMP theme
Download the AMP theme including the default ExAMPle sub-theme to the document root directory (e.g., /var/www).
composer require drupal/amptheme
Enable AMP sub-theme
An AMP sub-theme must be enabled before enabling the AMP module. For this example, we enable the default ExAMPle sub-theme (ampsubtheme_example). Alternatively, you can enable a custom AMP sub-theme.
If Drush, the command-line shell for managing Drupal, is already installed on your system, you can enable the sub-theme using the following Drush command. Note that the Drush command must be executed inside the document root directory.
drush en ampsubtheme_example
You can also enable the sub-theme through the Drupal web interface using the following procedure:
Log in as a Drupal administrator.
2. Select the Appearance page.
Locate the ExAMPle sub-theme in the Uninstalled themes section, and click Install.
There are 2 Install options available: Install, and Install and set as default. Select Install. The sub-theme should only be used on AMP pages, and therefore must not be set as the default theme.
Enable AMP module
The AMP module can be enabled using Drush or the Drupal web interface.
To enable the AMP module using Drush, execute the Drush command below inside the document root directory:
drush en amp
To enable AMP using the web interface:
Log in as a Drupal administrator.
2. Select the Extend page.
Scroll down to the Other section, and select both the Accelerated Mobile Pages(AMP) and Token modules.
Before AMP pages can be displayed, AMP needs to be configured using the web interface.
Log in as a Drupal administrator.
Select the Configuration page.
Click AMP Configuration in the Content Authoring section.
The AMP configuration page is displayed.
Select ExAMPle Subtheme as the AMP theme, and click Save configuration button.
The top of the AMP configuration page lists the AMP status by content type. Initially, AMP is disabled for all content types, e.g., article and basic page.
Enable AMP for a content type, e.g., article, by clicking the corresponding Enable AMP in Custom Display Settings link.
The Manage Display page is displayed as a result.
Click to open Custom Display Settings.
Select the AMP view mode, and click Save.
Saving the setting returns you to the AMP Configuration page.
Click Configure AMP view mode for the content type you've just AMP-enabled.
All fields available to display for the content type are listed.
Specify AMP format for fields, and click Save.
The fields available depend on the content type. For the Body field, select AMP Text as the format. For Image, select AMP Image.
Select the Structure page.
Click Block layout.
Select the ExAMPle Subtheme tab.
This tab lists the blocks available for the sub-theme, e.g., Search, Breadcrumbs. You can move specific blocks to different regions on the page, or remove them altogether. After you make the modifications, click Save blocks.
Now, you are ready to view the AMP pages. You can view an AMP page using either of the following methods:
Edit the page.
Edit the page under Drupal, and instead of selecting Save and keep published, select Save and view AMP page.
Append AMP suffix to URL.
Browse to the regular non-AMP version of the page. Manually append the suffix '?amp' to the end of the page URL, and hit Enter. For example, http://localhost/node/2 becomes http://localhost/node/2?amp.
Summary & conclusion
Despite tangible results, AMP is but 1 of several mobile web technologies aiming to decrease page loading time. Its competitors include Facebook Instant Articles and Apple News. AMP distinguishes itself by being the only open-source platform among the three.
The decision of which technology to adopt will influence the bottom line of a company. Below, we list the advantages and disadvantages of AMP.
Although AMP per se is not a rank factor in Google searches yet, AMP pages, by virtue of faster loading time, contributes to better SEO results for mobile searches. Better search engine visibility, lower bounce rates, and higher click-through rates are all achievable benefits of AMP. Tips on how to optimize a Drupal website for SEO can be found here.
The cost of adopting AMP is generally lower than competing technologies because it leverages, not disrupt, existing web infrastructure. The return is a much better user experience which translates to improved mobile conversion rates.
Better behaving ads
Advertisers are an integral part of the AMP ecosystem. AMP ensures that ads displayed on AMP pages load quickly and do not detract from overall user experience.
Less stress on web servers
AMP pages take up less data space, and can benefit from caching on AMP Cache servers. As a result, the stress on web servers is proportionally reduced.
Potential solution for smaller sites
Smaller websites may not have the IT budget to tackle speed challenges on mobile web. AMP provides a viable solution, especially for websites hosted on a CMS such as Drupal and WordPress. AMP support on Drupal eases the conversion of regular web pages to AMP pages.
An AMP-enabled website typically has both AMP pages targeting mobile users and regular web pages targeting desktop users. This is an added level of complexity for webmasters and search engines. The 2 versions of a web page must both be visible to search engines, but, at the same time, not viewed as duplicates. Given the newness of AMP, in-house AMP expertise may not be available for most businesses. For professional consulting, feel free to contact Vardot.
AMP HTML restricts the types of HTML tags that can be used on an AMP page. All is well if an AMP page passes AMP validation. Otherwise, considerable web development expertise is required to make the necessary adjustment to pass the validation without sacrificing what you actually want to achieve. Even with the help of a CMS such as Drupal, customizing the look and feel of an AMP page requires in-depth knowledge of the AMP theme and how to craft sub-themes.
Uncertain industry-wide adoption
AMP enjoys support from a growing number of platforms, vendors, and partners. However, given the competition from industry heavyweights such as Facebook and Apple, industry-wide domination is far from certain. With the backing of Google, AMP can potentially become the industry-standard format for mobile search pages, or, like Google Authorship, just another Google experiment that does not reach its full potential.
And did you tru to set up accelerated mobile pages on your Drupal site? Share with us your experience in the comments section below.Tags: Drupal drupal 8 Drupal Planet Title: AMP Up Your Drupal Site Using Google's Accelerated Mobile Pages
For anyone who's ever looked up a definition of a Drupal term and been left wondering what it all means, here are some practical real world explanations you can use to navigate the Drupalverse. Watch this space and use comments to send us your feedback and requests.Basic page
One of two default content types that ships preconfigured in Drupal core since Drupal 7. As a content type, Basic Page is made up of Title and Body fields.
All content types are part of Drupal’s core fields system and can be customized with different fields. The output of a Basic Page is configured to appear either as a teaser or a full version, sometimes referred to as ‘default' or as a node. Unlike the Article content type, content created with the Basic Page content type is not by default configured to appear on the home page. Basic pages are often used on simple websites or for static displays of content such as an About Us page that is linked to from the main menu.
It’s helpful to understand that though its content type name is basic page, it is in point of fact it is neither basic nor a page. As a content type it uses fields and can be extensively customized and is no less suited to advanced configuration than any other content type. Nor is it as configured by default in Drupal a page strictly speaking. Content type forms are used to create content nodes, or entities, that are typically used as the main element in an assembly of other items, such as menus, images, lists, and blurbs that are arranged in blocks around the main content.Core
Drupal’s basic system code and feature set is bundled together in different major versions referred to as Drupal Core that can be downloaded from the Drupal.org website and installed through various methods.
Not all features are active in Drupal core and must be turned on if desired. The key concept behind core is that to take full advantage of code updates no one should ever, ever ‘hack’ core for use in a production web site. While there are some exceptions, a hacked core is usually a sign of inexperience working with Drupal or negligence.
Major versions of Drupal core have been identified as whole numbers since Drupal 5. Released on November 19, 2015, Drupal 8’s core was completely refactored around the Symfony2 PHP framework, representing a major shift in how Drupal websites and applications would be architected and constructed as well as how the Drupal platform could be used. Drupal 7 is still fully supported and used to power thousands of web properties.Multisite
The term ‘multi-site’ is sometimes thrown around casually as a reference to more than one Drupal powered website.
The strict definition of multi-site refers to an installation of Drupal that runs more than one website off a single code base. However there are many different ways to configure a multi-site installation. Sites can share and run off the exact same code, or be extended or customized with other code per site. It’s possible to have several sites run off exactly the same code while other sites each run off a combination of shared code and code that is specific for each site.
Consider any multi-site effort very carefully. The decision to go multi-site should include considerations around hosting, IT capacity, and development workflows.Tagged with Comments
Big congratulations to Tanner Langley, our Senior Drupal Developer turned Acquia Certified Grand Master. He has earned the highest ranking Drupal certification.
Elevated Third is lucky to now have 3 of the world’s 150 Acquia Certified Grand Masters. Our Grand Master Drupal developers, Nick Switzer, Michael Lander, and Tanner Langley are incredibly important to our implementation workflow. They work on every website we launch.
In order to help everyone understand the significance of this certification, we’ll discuss what a Grand Master is, what the certification process looks like, and the value a Grand Master provides.What is an Acquia Certified Grand Master?
Let’s take a step back to understand Acquia’s role in this certification process. Acquia is the leading cloud platform SaaS company for Drupal websites and is led by Dries Buytaert, the creator of Drupal. They serve as the administrator and regulator of the premier professional certification program for Drupal. Having Dries Buytaert, the co-founder of Acquia and the creator of Drupal, develop this program provides an enormous amount of credibility. It demonstrates Acquia’s commitment to not only their platform but also to the whole Drupal community. With more knowledgeable and engaged developers bettering the community, Drupal’s power increases and in turn supports the companies that leverage Drupal for their digital experiences.
To become an Acquia Certified Grand Master a developer has a one-year timeframe to complete three certification exams: Certified Developer, Certified Front End Specialist, and Certified Back End Specialist. Developers interested in taking the exams and becoming Grand Master certified can take the test online at any time, at testing centers across the world, or during DrupalCon, where most developers take the tests.Why Does It Matter?
Passing three of the hardest Drupal certification exams is a daunting task and those who pass the test should be applauded. But how does the time and effort into passing these certification exams translate to project success?
When working with a Grand Master Drupal developer you are getting one of the top developers in the world and the knowledge of Drupal best practices and efficiency in mind. Staying up-to-date on industry trends and best practices gives them a unique perspective on the next Drupal challenge.
Most importantly, our clients gain an incredible competitive advantage having access to Grand Master developers on their projects. Top Drupal talent in the industry gives our clients access to developers that are always looking for new ways to innovate and develop modules that deliver never before seen functionality within Drupal.
Our Grand Master certified developers recently used their knowledge to develop a fully decoupled Drupal project, that has been highly successful for our client and serves as a benchmark in the industry.
Let's take a deeper look into what is required of an Acquia Certified Grand Master.Acquia Certified Developer Exam
The more general of the three exams focus on the areas of fundamental web concepts, site building, front end development (theming), and back end development (coding). Specifically, the exam tests a developer’s level of knowledge and ability to:
- Setup and configure new Drupal sites
- Develop and implement new Drupal modules and themes
- Customize and extend existing modules
This test specifically focuses on a developer’s skills and knowledge of Drupal front end theming, including:
- Theming concepts like custom regions, theme configuration, stylesheets, breakpoints, sub-themes
- Templates and pre-process functions, Twig syntax, templating, Form Alter and Template Suggestions After
- Layout configuration, Blocks, views, and the Responsive Image module
- Performance/security, analyzing and resolving site performance/security issues from site configuration and custom themes
Acquia Certified Back End Specialist Exam
This exam validates the skills and knowledge of building and implementing Drupal solutions through module development. This test focuses on:
- Drupal core API. Registering paths for URL requests using Routing system and Menu API, building and validating forms using Form API, interact with Entity system using Entity API, and ability to use Core APIs for building and extending Drupal functionality
- Debug code and troubleshooting
- Theme integration
- Leveraging community by contributing modules back to the Drupal community and ability to write code using Drupal Coding Standards
To know there is a Grand Master on your project is to know your project will be influenced by someone with a well-rounded background of the entire development Drupal landscape, not just specialization in front end or back end development. This well-rounded background helps the developer have a better understanding of how the different pieces of a project come together to create a powerful, flexible, and scalable digital platform.
Quite simply, having Grand Masters on our team ensures our clients get the top talent in the industry to develop their sites and produce extraordinary digital experiences for their own customers.
If you are looking for top Drupal talent for your project, let's talk.
Highly customizable business logic is the core of any e-commerce solution. For such functionality, Order processor comes in picture which helps us to define flexible pricing with dynamic discounts.
In this article I will walk you through order price manipulation and use of custom adjustment to fulfill complex business logics in Drupal commerce 2.x module.
What is Order Processor?
E-commerce order processing is part of the order refresh process. This is executed on draft orders to ensure that it has up to date adjustments and that its order items are up to date. E-commerce order processing is a part of e-commerce workflow in drupal commerce 2.x.
What are Adjustments in Drupal…