How Drupal handles the page request: Bootstrap Process
This is an interesting topic to get to know more about Drupal core activity. We will be looking into ‘how to use drupal echo on request?’ and ‘how many process it has gone through?’ Basically the process flow of Drupal Pipeline to interpret the steps & finally respond to the end users. Which is called as Bootstrap Process.
Having a little bit of knowledge on bootstrap could help us to develop & customized complicated area of drupal development.
Sample:
When we hit URL in browser: https://domain.com/node/234. which is a standard node page created under any of the Bundle.
Membership campaign recap from September-October 2016
Many people contribute to our membership campaigns and the recent campaign is no different. Thanks to Andrey, Ricardo, Martha, Ivo, and Tom, for sharing your stories. To everyone who joined or renewed, thank you for your support. And, to our members and supporters who answered the call to share our message, thank you too.
You not only help the community by growing our membership, you give us motivation too.
Focus on grantsMembers fund our Community Cultivation Grants program. The grants help grow communities and build local relationships for Drupal. This connection made the grants program an appropriate focus for a membership campaign.
This campaign was based on an idea: you feel more connected within the Drupal community when you receive a grant. Participants told their stories because this idea resonated with them. We shared their stories about feeling connected and how the member-funded grant inspired them to make a local impact for Drupal.
ResultsWe didn't meet the specific goals of 265 new members and $10,918 in revenue. New member growth did not happen to the degree we wanted for this campaign. We got to 45% of goal for number of new members who joined. Our revenue from the new members made it to 73% of our goal for funds raised. However, this is accounting for all new membership in the time period, and not specifically attribution to the campaign itself.
The breakdown went like this:
- 120 signups by new members (100 Individual Members/ 20 Organization Members)
- $8,050 revenue raised ($3730 Individual Members/ $4330 Organization Members)
For more details, see the data here.
We had three other concurrent places for sign ups. Our main ADO page, DrupalCon Dublin registration, and a page for DrupalCamp Atlanta were available. Thanks Eric, Dave, Shellie, and the whole Atlanta team for the pilot run.
During the 52-day period, 520 members joined or renewed and we raised $35,348 in total revenue. So if the goals I had set were for new, renewing, and reactivated members, we'd have been successful. Call this a good lesson in goal setting!
The first landing page on drupal.orgWe had a team effort to create a well-designed landing page for this campaign. We used new design tools to create the first landing page for membership on drupal.org. We'll use the tools again to add visual interest to our campaigns and we'll continue testing to find what works and what doesn't.


In our last campaign, the landing page on assoc.drupal.org had 16K pageviews. This campaign had only 25% of that traffic. This disproved the hypothesis that drupal.org would bring more traffic to a membership landing page.
We can see the banner launch and takedown had an impact on page traffic based on the data below. The hill showing on the graph shows the period we ran the banner (September 9-17). However, when we reintroduced the banner on September 28 through October 29, we saw no significant bump in traffic.

Traffic was 25% of the previous campaign landing page.
Traffic spikes occurred around days we emailed to ask members to share the campaign. Not only do we see engagement from members, but there were spikes in membership sign-ups too.


I used a storymapping exercise to think through this campaign concept to ensure we were telling a story that left readers satisfied. A story moves along a bell curve from exposition, to problem, to rising action, crisis, resolution, and falling action before the end. I'll try this again for the next campaign. The story-based approach helps to get our narratives into the bigger world and people are left with something they can remember and share.
Coming nextWe are taking a deep look at how the drupal.org engineering team has made an impact in the community for our next campaign. We begin with the premise that the work the team does has helped increase the velocity of the innovation of Drupal. The team reduces the friction in the contribution journey and by doing so, we all benefit from their work. More on this to come on drupal.org in a few months.
Personal blog tags: MembershipCracking the Shell at BADCamp
On October twenty-third I had the pleasure of speaking at BADCamp X, the tenth Bay Area Drupal Camp in Berkeley California. BADCamp is my favorite Drupal event not only because I can drive to it, but also because of the great people and quality of the camp, I never miss it.
Using Display Suite in Drupal 8: How to Use Display Suite Fields
Migrating my blog from Drupal 6 to 8
Drupal 8 has been out for over a year at this point. I worked extensively on helping to improve portions of core during the Drupal 8 cycle, but maintaining your own site is radically different from trying to develop the platform that site(s) will reside upon. Upgrading my blog is especially exciting for me because I was still on Drupal 6. Getting to jump directly from Drupal 6 to Drupal 8 is a pretty big win and the fact that Drupal 8 supports this out of the box was amazing. Now granted this is just my blog, it's not even 100 nodes, but still...
Meet Paul Johnson, the face behind @drupal, #celebr8d8, and more

I sat down with Drupal Social Media Lead, Paul Johnson at Drupal Camp London 2016, a few weeks after DrupalCon Asia in Mumbai. Paul runs the official community social media accounts on Twitter and elsewhere. I feel Paul is a kindred soul, since he and I both love highlighting and celebrating the Drupal community's stories and achievements.
The @drupal Twitter account alone has more than 65 thousand followers and Paul uses his powers for good. "I get so much satisfaction out of it. There's nothing I like more than to hear that it's made a difference to somebody, or I've heard something and made other people aware of it privately and that's maybe solved a problem. Social media is used for quite a lot of things ... It's not just a marketing channel."
Our conversationFollow Drupal on social media!
Here are the accounts Paul runs:
- Twitter
- Drupal @drupal
- DrupalCon @drupalcon
- DrupalCon Europe @drupalconeur
- DrupalCon North America @drupalconna
- DrupalCon Asia @drupalconasia
- Facebook official Drupal group
- LinkedIn Drupal group
Here is the Drupal Association Social Media Request Form that Paul mentions during our conversation.
And here is the full, official Drupal social media directory.
Mentioned in the conversation- http://celebratedrupal8.com/ and Paul's blog about how the campaign came together: Celebrate Drupal 8 - how it was done
- CTI Digital
- Great Ormond Street Hospital Drupal site
- Drupal 8 release podcasts with Dries Buytaert
Images used in the podcast video
- https://www.flickr.com/photos/amazeelabs/21513068989/ - https://creativecommons.org/licenses/by-nc-sa/2.0/
- https://www.flickr.com/photos/amazeelabs/21632469131/in/photostream/ - https://creativecommons.org/licenses/by-nc-sa/2.0/
- https://www.flickr.com/photos/peterlozano/21760271581/ - https://creativecommons.org/licenses/by/2.0/
- https://www.flickr.com/photos/68158920@N08/21437374299/ - https://creativecommons.org/licenses/by/2.0/
Using Configuration Management and Git in Drupal 8

Drupal 8 Configuration Managment (CM) is a "killer feature" for a web Content Management System (CMS). When setting up a Drupal site, we spend a lot of time on site configuration: Roles, Permissions, Content Types, Menus, Vocabularies, etc. In most CMS's, all these changes are stored in their databases, making it hard to deploy, track, reuse and rollback important changes.
read moreDropcast: Episode 25: The Good, The BadCamp and The Ugly
Recorded October 26th
This episode we are all back in the ‘studio’ to talk about the great time most of us had at BADCamp the weekend prior. Ryan didn’t go so he won’t have much to say, but he will of course have his Final Bell, along with some Blog Mentions, Drupal News and a variety of failed humor.
Habitat for Humanity launches new website in Drupal 8
Habitat for Humanity wanted to explore new ways to further highlight volunteer opportunities, broaden international reach, increase donations, and build an engaging desktop and mobile presence through its website, Habitat.org. Habitat undertook a new digital and content strategy to better help users find the information they are looking for to achieve these goals. The new Habitat.org recently was launched using Drupal 8 as its content management system.
Things I Learned from the DrupalTwig Slack: Volume 2
Welcome to Volume 2 of my adventures in learnings from the DrupalTwig Slack, a resource that continues to be the best source of (frontend) knowledge for Drupal. Again, if you haven't joined, do so. (Volume 1 is here.)
And without further ado, here's some things I've learned (or helped others to learn):
Palantir.net's Guide to Digital Governance: Organization
This is the seventh installment of Palantir.net’s Guide to Digital Governance, a comprehensive guide intended to help get you started when developing a governance plan for your institution’s digital communications.
In this post we will cover...- Why organization is important to site visitors
- Questions you should consider regarding your main site and subsites
- Some tools for creating good test-driven information architecture
We want to make your project a success.
Let's Chat.A website’s organization is one of the most important factors in determining how effective and useful the site is for its visitors. Sites that are well-organized, in a manner that visitors intuitively understand, will be more effective and useful than those which aren’t. Therefore, it is important to define for your institution who will have the authority and responsibility to determine your website’s organization, and how they will make those decisions.
Here are some questions to consider with regard to main websites and subsites within the main site.
Main Website
- Who determines the overall organizational hierarchy of the main website?
- Who determines the top-level menu options? How are those decided?
- Who determines the subsequent levels of navigation, order, labeling, etc.? How are those established?
- Who determines other navigational structures, such as utility menus, topic-based menus, etc.?
- Are there site-wide taxonomies to be maintained? Who determines and edits those?
- What role does usage data, analytics, and user-testing play in those decisions?
- Are there limits to the size, quantity, or depth of navigation?
- Are there any site-wide standards for how navigation and sub-navigation are displayed?
- Is there a process for addressing concerns or proposed changes to the site’s organization?
- Who has the ability to make changes to the website’s overall structure?
- Is there a review or approval process that needs to be followed?
Subsites
- Who determines the organizations of sub-sites within the larger website?
- Are there any guidelines or services for website owners who must create their own site organization?
- Are there limits to the size, quantity, or depth of navigation?
- Are there any site-wide standards for how navigation and sub-navigation are displayed?
- Are there any site-wide standards for where navigation and sub-navigation are displayed on sub-site pages?
- Are there rules for the labeling of navigation?
- Are there sub-site specific taxonomies? How are those determined and edited? Must they conform to any site-wide standards or rules?
These questions cover only the definition of responsibility surrounding website organization, which presumes that you have good information architecture in place already. For more information on creating good, test-driven information architecture, Optimal Workshop has both advice and tools for conducting your own card sorts (OptimalSort) and menu “tree” tests (TreeJack). We use these tools regularly in our work.
This post is part of a larger series of posts, which make up a Guide to Digital Governance Planning. The sections follow a specific order intended to help you start at a high-level of thinking and then focus on greater and greater levels of detail. The sections of the guide are as follows:
- Starting at the 10,000ft View – Define the digital ecosystem your governance planning will encompass.
- Properties and Platforms – Define all the sites, applications and tools that live in your digital ecosystem.
- Ownership – Consider who ultimately owns and is responsible for each site, application and tool.
- Intended Use – Establish the fundamental purpose for the use of each site, application and tool.
- Roles and Permissions – Define who should be able to do what in each system.
- Content – Understand how ownership and permissions should apply to content.
- Organization – Establish how the content in your digital properties should be organized and structured.
- URLs – Define how URL patterns should be structured in your websites.
- Design – Determine who owns and is responsible for the many aspects design plays in digital communications and properties.
- Personal Websites – Consider the relationship your organization should have with personal websites of members of your organization.
- Private Websites, Intranets and Portals – Determine the policies that should govern site which are not available to the public.
- Web-Based Applications – Consider use and ownership of web-based tools and applications.
- E-Commerce – Determine the role of e-commerce in your website.
- Broadcast Email – Establish guidelines for the use of broadcast email to constituents and customers.
- Social Media – Set standards for the establishment and use of social media tools within the organization.
- Digital Communications Governance – Keep the guidelines you create updated and relevant.
Stay connected with the latest news on web strategy, design, and development.
Sign up for our newsletter.Building a layout system for Paragraphs
A recent Drupal 8 project of ours had some great requirements around it’s landing pages, aimed at reusing existing components in a range of layouts and combinations. Paragraphs quickly established itself as the site-building tool of choice and Flexbox always wins for me as the CSS grid/layout approach, so we looked at how the two could be combined to give the client the flexibility they needed, without over-complicating the editor experience.
Writing Drupal 8 Code for Drupal 7
A year ago I proposed a session for Drupalcon Mumbai and Drupalcon New Orleans, called “The best of both worlds”. It promised to show attendees how to write Drupal 8 code for Drupal 7 sites. I never ended up giving the session, but this week I got an email asking for more information. So in case it ever comes up again, here’s my own collection of resources on the subject.
The big improvement that’s hard for D7 developers to get used to is injected services. The service container module makes that possible in D7. The brilliant FabianX wrote it to make his life easier in writing render cache, and his is always a good example to follow! This module creates a service container for D7, which you use just like the container in D8. You can write independent, OO code that is unit testable, with service dependencies declared in a YAML file. Note that you will also need the registry autoload module to get PS4 namespaced autoloading!
I just mentioned unit testable code as a benefit of the service container. To be honest this is a little tricksy in Drupal 7. For my own custom work I tend to isolate the test environment from the rest of Drupal, so I don’t have to deal with everything else. Again, I followed Fabian’s example there by looking at how render cache does it’s tests. If you do want better integration, there is a good lullabot post that talks about (more) proper PHPUnit integration. https://www.lullabot.com/articles/write-unit-tests-for-your-drupal-7-code-part-1 .
Next on my list is Composer-managed dependencies. The Acquia developer blog has a great post about using Composer Manager for this in D7. This is a huge win for a lot of custom modules, and very easy.
Last is plugins. The rest of this list is in no particular order, but I left plugins for last because I think this isn’t actually necessary in D7. Personally I use modules’ own hooks and just autoload independent classes. You might consider using plugins instead if you’re going to write several plugins for the same module. In any case, Lee Rowlands has the go-to blog post about this.
All together, you can combine these approaches to write code for D7 with the biggest Dx features of D8: service injection, phpunit testing, composer libraries, and plugins. Note that each of these blog posts assumes different workarounds for all the other functionalities… but they should help you get an understanding of how to use that particular Dx improvement in 7.
When I wrote that session proposal, I thought of this as a good way for D7 developers to learn D8 practices gradually, one at a time. I no longer think that’s true. Mostly, there are so few working examples of D7 code using these practices, that it’s quite hard to get your stuff working. This is particularly hard when you’re just learning about the concept in the first place! Personally, I could mess around with this stuff and make my life harder with it in D7. But I couldn’t really get the best advantage out of them until I had better examples. My best learning aids were the examples in D8 core, and the code scaffolding available through Drush and Drupal console.
But now that I’m comfortable with the concepts… I would absolutely use these approaches in D7 work. You know, if I’m FORCED to work in the old system. :)
One last aside here: it is easy to fall into the mindset that Drupal 8 practices are better just because they’re newer. This is simply not true. These practices are not handed down from heaven, after all! When you have the rest of the D8 architecture in place, certain kinds of code tasks are much easier. That’s why we like developing for it so much more. But other (less common, IMO) tasks are harder. And doing any of this in D7 means you have to put the architecture in place, too. That’s a lot of time, and it’s only worthwhile if you’re going to use the particular strengths of these practices.
So if it looks like one of these D8 practices will make your life easier for a particular task in D7, then by all means use these approaches to get there. Composer manager has a particularly low bar – it’s so easy to use, and makes so many tasks easier, it’s a good approach to many tasks. But if I ever catch you implementing service container to get two lines of code into a form_alter, I will come to where you work and slap your hands off the keyboard.
Happy coding!
¿Cómo agregar tamaño y tipo de fuente a CKEditor?
As already discussed in a previous blog post, CKEditor is a very useful module for creating and editing content. In my work editing content, I found the need to occasionally change the font size and type to avoid using css.
Here I will explain how to extend the CKEditor module using the CKEditor_font module, using composer, bower and gulp.
In our terminal, use the following command to download the most stable version of the module:
Charlotte León Fri, 11/04/2016 - 12:02Writing "good code" is an art!
Migrating Ixis.co.uk from Drupal 6 to Drupal 8
This is a summary of the process we undertook to migrate the Ixis site from Drupal 6 to Drupal 8 including some of the issues we came across.
Our Journey To Drupal 8
Our company site has usually been the testing ground for a new Drupal CMS update, starting as far back as 2004 with Drupal 4.5. As Drupal 7 launched we missed the window of opportunity to migrate our site and became caught up in the inevitable day to day client work throughout the life of Drupal 7.
Third & Grove hosts pinball at BadCamp
Contribution Stories: The Lightning Distribution, Supporting Faster, Better Site-building
Drupal gets better when companies, organizations, and individuals build or fix something they need and then share it with the rest of us. Our community becomes better, stronger, and smarter when others take it upon themselves to make a positive difference contributing their knowledge, time, and energy to Drupal. Acquia is proud to play a part, alongside thousands of others, in some of the stories making tomorrow’s Drupal better than today’s. One of them is about the Lightning Drupal 8 Distribution.
Tags: acquia drupal planetlightningcontributionspeedrun