Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 41 min 39 sec ago

Agaric Collective: Marking up Drupal's blog posts for the IndieWeb

Wed, 11/11/2015 - 17:49

IndieWebCamp is a movement dedicated to growing the independent web, or IndieWeb: a people-focused alternative to the corporate web. The movement is called IndieWebCamp because it is built in large part over an on-going series of two-day camps. At these camps and online, the community emphasizes principles over particular projects or software— any web site can be a part of the IndieWeb. Here's how to take a first step into the IndieWeb with Drupal.

All the benefits from brewing your own website touted by IndieWebCamp are indeed great. Your content belongs unambiguously and in real and practical ways to you; at the least it won't disappear when yet another company shuts down or is acquired and tells its fans "thanks for supporting us on our incredible journey". Above all, you are in control of what you post, how it is presented, and how others can find it. All this may be familiar to web developers as the concept of "having a web site."

If that was all there was to the movement, IndieWebCamp would be a call to do it like we did it in 1998. Instead, IndieWebCamp goes the next step by recognizing that people use the corporate web of Facebook, Twitter, Tumblr (Yahoo), Blogger (Google), Flickr (Yahoo), LiveJournal (SUP Media), YouTube (Google), and others in large because of the experience they provide for interactions between people. IndieWebCamp takes on the challenge of designing user experiences and formats and protocols which make following, sharing, and responding just as easy on the independent web of personal sites and blogs.

To this end of making social interaction native to independent sites, IndieWeb principles and practice teach a couple of new tricks to old web sites. One of these tricks, which we will not cover today, provides a bridge from independent sites to the monolithic services most people use today by implementing the approach of Publish (on your) Own Site, Syndicate Elsewhere (POSSE). This means that posting on your own site provides an advantage in that your posts and status messages can go to all services rather than get stuck inside only one.

The first steps of getting on the IndieWeb (after joining the #indiewebcamp IRC channel) are very familiar to web developers: Put up a web site. We were all set with a domain name for Agaric and with web hosting, so we could skip right to setting up our home page and signing in.

All you need to do for this step is to add rel=me to a link to an online profile that links back to your home page, identifying yourself in both places as you. In our case, we added the rel="me" attribute to a link to our Twitter profile. Twitter puts rel="me" on the web site link on their profiles. We did have to make sure we linked to Twitter with https not http so that the redirect didn't interfere with verifying our web sign in capability with The link to Agaric's Twitter account on our page looks like this:


Next up is giving the independent web some basic facts of our identity using the h-card microformat. I've never heard anyone claim that microformats have the most intuitive names, but all the properties are documented. We edited our page.tpl.php template to add the h-card class to a h1 tag surrounding our logo, to which we added the class u-logo and our site name with linking to our homepage, to which we added the classes p-name and u-url. Again using we verified that the h-card could be read. The markup looks like this:

Agaric We build online.

Finally, blog posts themselves are each marked up as an h-entry and elements of each blog post with h-entry properties. (The IndieWebCamp wiki has a stub article for h-entry and the markup IndieWeb makes use of, but we found the h-entry listing on to be clearer.) For blog posts' markup we did a lot of work in template preprocess hooks. For example, here we add the h-entry class itself, the p-name class for the blog title, and (with a bit of reconstruction of Drupal's $submitted variable) the dt-published class for the date and time the blog post was published:

/** * Implements hook_preprocess_node(). */ function agaric_bootstrap_preprocess_node(&$variables) { if ($variables['type'] == 'blog') { $variables['classes_array'][] = 'h-entry'; if (!isset($variables['title_attributes']['class'])) { $variables['title_attributes_array']['class'] = array(); } $variables['title_attributes_array']['class'][] = 'p-name'; $datetime = format_date($variables['node']->created, 'custom', 'Y-m-d h:i:s'); $formatted_date = '' . $variables['date'] . ''; $variables['submitted'] = t('Submitted by !username on !datetime', array('!username' => $variables['name'], '!datetime' => $formatted_date)); } }

Here's the validation for this very blog post. The markup looks like this:

Marking up Drupal's blog posts for the IndieWeb Submitted by Benjamin Melançon on Mon, 05/04/2015 - 11:58 …

What do you thing of the IndieWebCamp movement and its goal of making distributed sharing and following easy, while not prescribing which platforms or technologies to use? How about Agaric's far-from-automated approach to making a Drupal site part of the IndieWeb? And do you think Drupal should try to be more IndieWeb-ready as we expect another burst of growth with the release of Drupal 8?

Categories: Elsewhere

Drupal Commerce: Drupal 7 Commerce Sprint Month Retrospective

Wed, 11/11/2015 - 17:40

One month ago we kicked off the Drupal 7 Commerce Sprint. This sprint is an initiative to work on Drupal Commerce 1.x and contributed projects in the ecosystem. Every week we have held a scrum in the form of office hours in the #drupal-commerce IRC channel, along with a Google Hangout for those who want to sprint virtually together.

What has been accomplished?

We have had over twelve participants since the first office hours and averaged around five attendees each week. Thanks to these community members we’ve accomplished the following!

New / Updated modules

Categories: Elsewhere

Attiks: Clientside validation for Drupal 8

Wed, 11/11/2015 - 17:38

We just released the first release candidate of clientside validation for Drupal 8.

By Peter Droogmans

Categories: Elsewhere

IXIS: End of life imminent for Drupal 6

Wed, 11/11/2015 - 16:01

Launched in 2008 Drupal 6 has served a large base of sites for the past 7 years even with the more recent Drupal 7 launched in 2011.

As a provider of Drupal support and hosting services Ixis still look after a number of clients who are running the latest up to date Drupal 6 codebase. However, with the announcement of Drupal 8 launching on November 19th 2015 this starts the countdown to the end of the extended support policy - which is 3 months after the launch of Drupal 8. The final 3 months will only cover security updates - not functionality or bug fixes.

read more

Categories: Elsewhere

Drupalize.Me: A Simple Drupal 7 to Drupal 8 Migration

Wed, 11/11/2015 - 15:00

With the official release date of Drupal 8 right around the corner, I wanted to take a look at how much effort would be required to migrate our blog to Drupal 8. In this blog post we'll take a look at the current documentation, and status of the migrate module in Drupal core as well as a couple of contributed modules that can help us out.

Categories: Elsewhere

Mike Stiv - Drupal developer and consultant: Speeding up your Drupal website with cloudflare

Wed, 11/11/2015 - 13:44

Cloudflare claims that can boost the speed of a website. But how much benefit can a site get? I am using Cloudflare for some drupal sites, but I never had a clear picture of how much the speed improvement really is. In this post I will present some data that I collected. The site I tested is a drupal site, but similar results can be expected for any other CMS like wordpress or joomla.

Categories: Elsewhere

InternetDevels: Drupal 7 and ApacheSolr: tips and examples for beginners

Wed, 11/11/2015 - 13:14

Hey there! If you are interested in Drupal web development, tips
by our dev could do you a world of good. Welcome to learn
things about Drupal 7 and Apache Solr. 100% profit! ;)

Read more
Categories: Elsewhere How To Install Drupal 8 (Linux) (Drupal 8 Tutorial #2) (Article + Video)

Wed, 11/11/2015 - 09:57

How to install Drupal 8 in Linux server (Ubuntu 14.04.3 LTS), set permissions and setup virtual hosts. In the video I also show how to remotely edit the files from Mac with Atom editor.

Categories: Elsewhere

Gábor Hojtsy: Drupal 8 multilingual tidbits 19: content translation development

Wed, 11/11/2015 - 09:19

Up to date as of November 11th, 2015.

Now that we covered how content translation workflow works in Drupal 8, its time to look a bit at the API side. In Drupal 7 this meant dealing with scary seemingly infinitely nested arrays with language codes, field names, deltas, etc. Drupal 8 makes this a whole lot simpler.

Categories: Elsewhere Altering Entity Field Querys for JOINS ORs and Profit

Wed, 11/11/2015 - 01:00
One of my favorite features from Drupal 7 is the EntityFieldQuery. The power of the EntityFieldQuery is a well known thing, and I a have written about extending EntityFieldQueries with subqueries before. This time I will go into extending the query as a query object, using Drupal's hook and alter architecture. Simple EntityFieldQuery For our example we will start with a simple EntityFieldQuery for getting a list of nodes. $query...
Categories: Elsewhere

OSTraining: Use Cloud Zoom for Thumbnail Galleries in Drupal

Wed, 11/11/2015 - 00:20

Cloud Zoom is a JQuery addon that provides image galleries that are ideal for shopping carts.

Cloud Zoom will show a small, thumbnail sized image. When you hover over the small image, you'll then get a large version of the image. This effect is really popular in e-commerce: you'll see it on and in Drupal Commerce.

Here's how to use Cloud Zoom in Drupal:

Categories: Elsewhere

Entity Pilot: Entity Pilot in public beta - painless content staging for Drupal 8

Tue, 10/11/2015 - 23:23

Today we're proud to announce that Entity Pilot has entered its public beta phase, just in time for the 8.0.0 release of Drupal 8.

This means you can get started sending and receiving content between your Drupal 8 sites and building up a content-repository to power your content network.

Read on to discover painless content-staging for Drupal 8

Categories: Elsewhere

Red Crackle: How to theme Drupal 8 views by overriding default templates

Tue, 10/11/2015 - 21:29
In this post, you will learn how to theme Drupal 8 views by overriding default views templates and use our own markup to build an accordion.
Categories: Elsewhere

Gábor Hojtsy: Drupal 8 multilingual tidbits 18: core content translation workflow

Tue, 10/11/2015 - 17:55

Up to date as of November 10th, 2015.

In the previous tidbit, we covered content translation basics. In short now you can configure translatability on any subtype of any entity type, so for example articles or specific taxonomy vocabularies may be configured to have all their entities support translation. Then each entity structure may be configured on the field and in some cases subfield level to support translation. The question is how does it all work then, what do we do to translate content?

Categories: Elsewhere

Pantheon Blog: Magic Drush Tricks for Your Bash Shell

Tue, 10/11/2015 - 17:00
Drush can do a lot of amazing things that escapes most people’s notice.  For example, did you know that you can change your working directory to a local site by using a site alias?  Just type:     cdd @mysite
Categories: Elsewhere

Drupal Commerce: Commerce 2.x Stories: Stores

Tue, 10/11/2015 - 15:41

Last time we talked about currencies. Now it's time for arguably one of the biggest new concepts in Commerce 2.x: stores.

Stores represent billing locations, and were made to cover two primary use cases.

Click here to find out what they are...

Categories: Elsewhere

Chapter Three: Drupal Development with Docker Compose

Tue, 10/11/2015 - 15:21

Using virtualized environments for development is smart. You can create accurate replicas of arbitrary systems, safely isolated from your host OS and other development environments. The overhead, however, is significant, both in terms of system and development resources. Developers need higher-end hardware with sufficient memory and storage and the necessary skills or help to build systems.

Categories: Elsewhere Language lessons: How can I fix my autocomplete box?

Tue, 10/11/2015 - 14:00

Languages make everything so complicated! I just discovered the autocomplete bit on my reference fields wasn't working - until I tried searching by another language, and then the results gave me a surprise:

Categories: Elsewhere

Jim Birch: Add an Anchor Menu/Table of Contents to Drupal 7

Tue, 10/11/2015 - 13:00

Back in the olden times of the internet, we had really long static HTML pages.  In order to make the page more organized, we would make a table of contents at the top, linked to the content below using anchor tags.  You can still see this today in today's web.  A good example is the W3's HTML5 Specification.

There are plenty of Table of Contents Drupal modules, in addition to what can be done with core's Book module, but I want to show you how it can be acheived with two displays in a single view.  In this tutorial I will create a view with 2 displays that link to each other, and display them on a single page using Panels.  I prefer using Views Panes in my views, provided by the Views content panes module provided by ctools.

You can also achieve the same results using Blocks, or Blocks with Context, and placing both view displays on the same page.

The result of this tutorial can be found on this demo page.

Add a view Display #1: Blog Post List Content Pane

Read more

Categories: Elsewhere

Mike Ryan: migrate_plus splits up

Tue, 10/11/2015 - 01:59

For anyone currently using the migrate_tools (drush and UI tools for managing migrations) or migrate_source_csv (CSV source plugin) submodules of migrate_plus with their Drupal 8 migration projects, a heads-up - they're being split off into separate projects.

What's happening

New projects have been created for migrate_tools and migrate_source_csv. The plan is to create real (beta or RC) releases for these projects by next Monday, November 16. On that day, a release of migrate_plus will be cut that no longer contains those two modules.

What do I do about it?

read more

Categories: Elsewhere