Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Learning Drupal 8
Learning Drupal 8

Learning Drupal 8: Create complex websites quickly and easily using the building blocks of Drupal 8, the most powerful version of Drupal yet

By Nick Abbott
$39.99 $27.98
Book Jan 2016 328 pages 1st Edition
eBook
$39.99 $27.98
Print
$48.99
Subscription
$15.99 Monthly
eBook
$39.99 $27.98
Print
$48.99
Subscription
$15.99 Monthly

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Jan 30, 2016
Length 328 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781782168751
Category :
Concepts :
Table of content icon View table of contents Preview book icon Preview Book

Learning Drupal 8

Chapter 1. Introduction

What is Drupal?


Back in the old days (pre-1995ish), we used to have to download special software to our computers in order to buy things, look up things, and build things.

"Madness", I hear you say.

Of course those days are long gone. Nowadays, we all simply expect to be able do everything we need using a web browser. To put it another way, we all expect everything presented to us in some form of "web technology". But, what does it really mean in simple terms?

You probably already know that all the web pages that are a part of our everyday lives are written in the language of HTMLHyper Text Markup Language.

If you've ever dug a little deeper, you might also know that the styling of web pages—the colors, typography, layout, and so on are controlled by CSSCascading Style Sheets.

Add some JavaScript into the mix, and web pages become a bit more interactive with things popping up and dropping down all over the place to make the experience a bit richer.

So, there it is. As good today, as it's always been…

Traditionally, piecing this all together involved a pretty detailed understanding of each of the three parts—it was all a bit too technical for many; it meant becoming fluent in these new "languages"; it meant you had to be a "coder".

So, what is Drupal? Where does it fit into all this?

It can be difficult to put a label on what Drupal actually is, since it is many different things to different people. We could start talking about terms such as "PHP-based social publishing software" and "web application framework", but let's not get into all that.

All you really need to understand right now is that Drupal is your LEGO-like toolkit for piecing together HTML, CSS, and JavaScript to build great websites.

Drupal is a tool that equips anyone, regardless of their level of experience with web technologies, to build a state-of-the-art website. True to the founder's original vision of providing a website-building framework that can be used to spectacular ends without having to learn to code. You no longer need to know HTML, CSS, and JavaScript to create a real state-of-the-art website. Now, that sounds good.

Having set the scene, let's go back in time and discover how we got to Drupal 8.

Dynamic web pages – a brief history

We used to piece together our web pages using HTML tags and styles all mixed together with JavaScript, images, and other file assets such as PDFs, Flash animations, and finally, the content itself.

The design, functionality, and the actual content were all mixed together to create the pages. These pages were also "static", in the sense that they could never change. The only way to update the actual content of the pages and/or their layout, cosmetic style, and fancy interactive moving parts was to be a "coder" and do some technical editing. Nasty!

Originally proposed in 1994, it wasn't until the early 21st century (2001) that we managed to separate out web pages' style from their content with the introduction of CSS. Likewise, the fashion moved to splitting out the JavaScript code into separate, more manageable files too.

Even with this useful advance, the pages were still only static. What we were really seeking was a mechanism for having the actual content itself come from other dynamic sources and for the web pages to be generated on the fly. We needed to make our pages dynamic.

Enter the database

Then came a whole host of what we shall loosely refer to as code engines in various programming languages designed to achieve the dynamic approach: CGI, Perl, Python, PHP, Cold Fusion, ASP, JSP, Ruby, and numerous others.

Let's not worry about the technical differences between all these. What really matters here is that they all strived to meet the challenge of separating out the page structure, style, and content so that these elements could be organized in a more manageable fashion.

In all of the preceding approaches, instead of the content being embedded in the web page, it was now being stored in and retrieved from a database, and the HTML pages were being assembled on the fly from that data and a collection of site-themed elements. See the following for an illustration.

This means that our pages can rebuild themselves in response to users' input; communication became two-way between the users and the website. This was the birth of "Web 2.0".

Drupal employs one of the aforementioned languages, namely PHP, to build data-driven pages and so provide us with a neat, manageable split between content, configuration, user accounts, and media assets such as images, documents, and video.

PHP is a very widely used open source scripting language that is especially suited to web development because it can be embedded into HTML pages. PHP "pages" are essentially HTML pages with embedded programming code that reshapes the contents of the HTML page dynamically before you get to see it in your browser.

The PHP code is executed on the server, and it generates a complete HTML page, which is then sent to your browser. As far as you are concerned, the end result is a fully formed HTML page, and you have no evidence that it was constructed dynamically by PHP.

Drupal is the clever PHP that brings together the various assets to form the actual visible pages, which are then made available to us across the web using a web server.

Drupal is completely free and always will be. It is open source. It is a software that is not owned by anyone but is instead developed collectively by a community of people interested in continually improving it as a platform.

Let's dwell a moment on the term "open source" so as to be clear about what it really means.

The word "source" here refers to the actual original program code written by the author. Programmers who have access to a computer program's source code can improve the program by adding features to it or fixing parts that don't always work correctly. The open source license actively promotes collaboration and sharing. Anyone can make modifications to source code and incorporate these changes into their own projects. Thus, open source projects benefit from a potentially infinite number of "authors". However good we might think we are at developing software, the community is better!

The open source label itself was created at a strategy meeting held in early 1998 in Palo Alto, California.

A worldwide community

It is important to understand that Drupal really is more than just the actual software. It is also a worldwide community of developers, designers, project managers, business innovators, technology specialists, and user-experience professionals. Community members all pull together to continually make Drupal ever more flexible, extensible, and standard compliant, so as to take advantage of emerging technologies. For a long time, the unofficial strapline of Drupal has been "come for the software, stay for the community," and this is certainly true in our experience.

The success of Drupal

So why does Drupal prosper and why is it steadily gaining momentum as the platform of choice for organizations large and small the world over? This question is answered in the following sections.

Multiple systems integration

We've become used to a diet of multiple software platforms and technologies each with its own cost, interface, storage, and security issues. You may be all too familiar with statements, such as:

"We have multiple systems working here, only some of which seem to talk to each other"

"You want a blog? Use WordPress for that".

Attempting to integrate a range of technologies is usually an expensive and never-ending business, and the management of the middleware (yet more layers of software) required to glue them together is a sizeable debt to be repaid, often over and over.

Note

With Drupal, you will find that you can do it all in one place and in a consistent, coordinated fashion.

Technical debt

"I had to start from scratch"

Anyone in the IT project business knows all too well that the underlying code can quickly become the reserve of the individual developer who actually wrote it. Often it is only when the particular individual leaves the company that the technical debt is realized. The developer may not have documented their approach, let alone the actual code that someone else inevitably has to take on. The legacy may contain all manner of unjustified assumptions, poor coding practices, "hidden features" (that is, bugs), and quick but irreversible fixes that close the doors to integration and further extension. All too often, in trying to deal with their inheritance, the new developer ends up re-inventing it all over again often with a new set of assumptions and with a potential new set of bugs.

With Drupal, you can at least be assured that the code has gone through a clearly defined community peer-review process, and opting to use the Drupal framework as the basis for building your solutions will go a long way to addressing concerns about the code quality and therefore technical debt.

Developer knowledge

"We can't seem to find quality Drupal developers"

However, we should not be naïve and pretend to ourselves that Drupal is the silver bullet we've all been waiting for. It comes with its own significant technical debt not least of which is the absolute necessity for having proper Drupal-savvy developers on your team. Drupal code is very framework specific, so one should not expect a competent PHP developer to be able to be truly effective with Drupal without an investment of time learning to understand how to properly work with the framework.

Drupal 8 initiatives to stay relevant such as its use of the PHP framework known as Symfony 2—essentially a collection of well-respected state-of-the-art PHP components—have gone a long way to make the underlying code more familiar to modern PHP developers who are used to working with modern object-oriented PHP. However, investment in learning the Drupal way is still crucial.

With its growing library of free extension modules, themes (pre-built skins), and sizable developer community, Drupal is still probably the wisest choice and the most future-proof content management framework around.

Tip

If you are considering adopting Drupal as your platform, then we strongly advise you to make certain that your developer team is professionally trained.

Modularity

Think of Drupal as a gigantic LEGO construction kit for would-be site builders. Drupal site builders develop websites by piecing together Drupal modules. Each module is designed to solve a particular problem but in a Drupal-compliant way, so as to keep all the doors open to integrating with the enormous repository of other community-written modules that are out there.

There's a module for that

When we plan to add a new feature to our website, the first step is to look around and see what's already been done by community members to see if "there's a module for that". For example, imagine that you want to create a community site where members can:

  1. Login in and post-up articles and invite other members' comments.

  2. Share posts with a variety of common social networking sites such as Twitter, Facebook, and the like.

  3. Automate actions such as redirecting some users to key pages on log in.

  4. Optionally promote their posts in animated highlighting carousels.

This can be done by simply performing the following steps:

  1. A straight out of the box—a freshly installed—Drupal site will enable posting and commenting using only the core modules.

  2. This is provided by Easy Social module—at the time of writing, v8.x-3.0-alpha3 (drupal.org/project/easy_social).

  3. This is provided by the Rules module—at the time of writing, v8.x-3.x-unstable4 (drupal.org/project/rules).

  4. This is probably best provided by Nivo Slider module—at the time of writing, v 8.x-1.4 (drupal.org/project/nivo_slider).

For pretty much anything you might want to add to your website, there's a very high chance that among the many modules out there, the very thing you are after has already been coded and posted up into the Drupal community site for public consumption at:

www.drupal.org.

While it is still early days with regard to many of the most commonly used community modules being ready as stable Drupal 8 releases, the number is growing every day.

Some Drupal history


It all started in 1999 when the founder, Dries Buytaert, began working on a simple website that incorporated a message board software application while he was an undergraduate at the University of Antwerp. For the next 2 years, he and a small group of friends used and developed the as yet unnamed application. In January 2001, they named their creation Drupal, open sourced it, and started the Drupal.org community site.

The rest, as they say, is history. The community continues to grow at an ever-increasing rate and the attendance figures at the official Drupalcon conferences worldwide are testament to the developer community's interest.

Language choice

Drupal is written in the open source scripting language PHP.

Because of PHP's relative simplicity and its rather forgiving nature, it's the perfect language choice for the newcomer because it can be learned fairly quickly and can be "assimilated" gradually by dissecting existing Drupal modules. This is certainly true at least for the Drupal 7 core. Drupal 8 code being object oriented, on the other hand, is a somewhat different story because object orientation is a concept that can be initially difficult to grasp for those without prior training.

Is Drupal a framework or platform?

Drupal is not, as is commonly quoted, just a content management system (CMS). It's actually much more than that and we use the terms "framework" and "platform" quite deliberately in the opening paragraph to ignite the debate as to quite which of these Drupal is.

Once you've got to grips with the Drupal approach, you'll find that you can quickly and easily configure it as a content-management system. However, given its versatile and highly-bendable nature, you can in fact use it to build anything from a simple brochure-ware site to a fully-fledged web application with a huge community membership and which interfaces with a myriad enterprise services: Facebook, Twitter, Google, YouTube, Flickr, and whatever else is around the next corner.

The question still remains the same; is Drupal a framework—something with which we can build things, or is it a platform—something from which we launch other web products?

Let's say that we use Drupal to build a website that we intend to re-use over and over again as the basis for a collection of other sites. In this respect, what we have built is indeed a platform in its own right; a platform from which we can spawn all those other sites.

Let's say that we use Drupal to build a web application that integrates with a whole range of services in the wider world, again we have built a platform.

In both of the preceding examples, we created platforms, but in both cases, they are built on the Drupal framework.

Embracing other communities' frameworks

Drupal 8 is also a framework that openly embraces other open source frameworks: Symfony 2 (PHP), jQuery, Backbone, Modernizr, and Underscore (JavaScript) to name a few. The Drupal community does not seek to reinvent the wheel, but rather to integrate and build upon others' efforts and achievements.

How an open source community works

Software development based on the sharing and collaborative improvement of source code has a long history. In the late '90s, interest and participation in collaborative working increased markedly with two initiatives: the mainstream recognition of the Linux operating system and the release of the Netscape browser's source code.

Drupal likes to think of itself as a meritocracy, that is, those who are most influential in the community are those providing the best input, be it code, user experience, documentation, or otherwise. Neither individuals nor businesses can buy influence in the community, although they can of course achieve this by paying their staff to work on specific areas of interest.

The majority of people contributing to Drupal are doing so voluntarily in their own time. Some are sponsored by their employer, while some are just trying to solve a specific problem that interests them personally.

When contributing a new module to Drupal, the module's developer (also referred to as the maintainer) is entering into an informal agreement with the community that they will continue to maintain and update the module.

The mindset of the community is always to give back.

Those new to open source often struggle with this concept. There is a strange conflict that says "I don't want to give away my work"—when in fact your work is itself based on the unpaid efforts of thousands of others.

An appreciation of others' efforts is also key to the Drupal community. The Drupal issue queues are the place where bugs and feature requests are placed for both core and contributed modules. When reporting bugs, other community members are generally grateful for the efforts of the maintainer and offer constructive feedback or fixes.

People seem to understand that when you are not paying for something you don't have the right to be rude or disrespectful—although it's fair to say this should never be an option. That said, there can be heated discussions from time to time on contentious issues.

Summary


In summary, Drupal is what you make of it. You can simply download and build a site with Drupal 8 using just the core functionality, or you can extend the functionality using modules freely available in the community. Going further, you can develop your own modules and themes and make Drupal 8 the base for a complex e-commerce delivery system, if that's what you want to do. Like the LEGO analogy, the limitation is only your imagination and, maybe to some extent, your individual coding skills.

The remaining chapters in this book will take you step by step through the modules and functionality you get with a stock Drupal 8 installation without any community-contributed modules. This will show just how much you can already achieve before you have to think about extending Drupal, let alone coding.

Left arrow icon Right arrow icon

Key benefits

  • Build complete, complex websites with no prior knowledge of web development entirely using the intuitive Drupal user interface
  • Follow a practical case study chapter-by-chapter to construct a complete website as you progress
  • Ensure your sites are modern, responsive and mobile-friendly through utilizing the full features available in Drupal 8

Description

Drupal 8 sets a new standard for ease of use, while offering countless new ways to tailor and deploy your content to the Web. Drupal 8 allows user to easily customize data structures, listings, and pages, and take advantage of new capabilities for displaying data on mobile devices, building APIs, and adapting to multilingual needs. The book takes you step by step through building a Drupal 8 website. Start with the basics, such as setting up a local “stack” development environment and installing your first Drupal 8 site, then move on to image and media handling, and extending Drupal modules. Push your knowledge by getting to grips with the modular nature of Drupal, and learning to extend it by adding new functionalities to create your new modules. By the end of the book, you will be able to develop and manage a modern and responsive website using Drupal.

What you will learn

Set up a local “stack” development environment and install your first Drupal 8 site Find out what is available in Drupal 8 core Define content types and taxonomies—and find out when you should do so Use the powerful Views module Get hands-on with image and media handling Extend Drupal using custom community modules Develop the look and feel of your website using Drupal themes Manage site users and permissions

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Jan 30, 2016
Length 328 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781782168751
Category :
Concepts :

Table of Contents

21 Chapters
Learning Drupal 8 Chevron down icon Chevron up icon
Credits Chevron down icon Chevron up icon
About the Authors Chevron down icon Chevron up icon
About the Reviewers Chevron down icon Chevron up icon
www.PacktPub.com Chevron down icon Chevron up icon
Preface Chevron down icon Chevron up icon
Introduction Chevron down icon Chevron up icon
Installation Chevron down icon Chevron up icon
Basic Concepts Chevron down icon Chevron up icon
Getting Started with the UI Chevron down icon Chevron up icon
Basic Content Chevron down icon Chevron up icon
Structure Chevron down icon Chevron up icon
Advanced Content Chevron down icon Chevron up icon
Configuration Chevron down icon Chevron up icon
Users and Access Control Chevron down icon Chevron up icon
Optional Features Chevron down icon Chevron up icon
Reports Chevron down icon Chevron up icon
Extending Drupal Chevron down icon Chevron up icon
Theming Drupal Chevron down icon Chevron up icon
Getting Support Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Filter icon Filter
Top Reviews
Rating distribution
Empty star icon Empty star icon Empty star icon Empty star icon Empty star icon 0
(0 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 0%

Filter reviews by


No reviews found
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.