Drupal Planet

Modules Unraveled: 059 The Module Off with Mike Kadin - Modules Unraveled Podcast

Module Off
  • What is the Module Off?
  • Why did you start the Module Off?
    • Are you doing this to get free work?
  • What kind of feedback have you received from previous contenders?
  • Who can participate in the challenges?
  • How does someone go about submitting a module? and What does their submission need to include?
  • How is the winner selected?
  • What does the winner receive?
  • How can someone become a sponsor?
  • What are some of the past challenges?
  • Do you have any idea about what some future challenges might be?

comm-press | Drupal in Hamburg: Display Cache - let the entities cache themselves

Drupal Language English Display Cache - let the entities cache themselvesCarsten Rhein04/17/2013 - 15:04

Does an entity really have to be re-rendered every time a page is loaded? No! Do I have to wait until the panel or view cache expires before I see changes to my content? No! And why is that? Because the entity knows when it has been changed and can react to changes of its own accord. Presenting Display Cache - an alternative caching strategy.

Drupalize.Me: New Series: Working with Entities in Drupal 7

This week we are kicking off a brand new series, Working with Entities in Drupal 7. Entities were introduced in Drupal 7, and are an extremely useful tool, though they have been somewhat confusing for people to work with. In this series we will start out by explaining what entities are, in addition to things like bundles, fields, and entity types. We then spend time understanding how you can use the Entity API to work with existing Drupal entities in you own custom module work.

read more

Károly Négyesi: Drupal 8 progress from my / MongoDB perspective: update #18

Done: thanks to the 18 months long work of swentel and yched (assisted by xjm, larowlan, alexpott and tim.plunkett) field_config and field_config_instance tables are dead and we are using CMI! Not a lot of tables left.

In progress: node_access is being moved to a class, making it pluggable. This was the last table from minimal profile that didn't even have a solid plan until now, so this is very good news. I am refactoring the entity-field storage system to support only storage backend per entity type and in general be a lot simpler and also event driven.

In the near future: I plan to write an event dispatcher version which will compile the subscriber into the container so that a larger number of subscribers do not slow it down. Based on this -- big props to Damien Tournoud for this idea -- we will add a bridge event to the hook system which fires events for every hook. We hope to attract new developers to Drupal 8 and with this, they do not need to write old, procedural code any more. Obviously converting the existing modules to dependency injected services would be even better but there's no time for that -- there's too much code. It's happening -- the router conversions move page callbacks into classes, the form interface conversion moves forms (unchanged otherwise) into classes but it won't finish before we release.

Paul Rowell: Migrating changes without Features

Features is a widely used module and can be very useful, but I am personally not fond of it. I find it somewhat bulky, cumbersome and on a small to medium build it seems overkill. I also dislike the thought of having more modules/code than I need in a build and being unable to disable and remove a features module without removing the functionality bugs me. There are those that swear by it and wouldn’t dream of developing or maintaining a site without it but I am not one of them.

Open Source Training: A Guided Tour of Drupal's Settings.php

The most important file on your Drupal site is the settings.php file. 

The settings.php is unique to every site and contains all of the important information that Drupal needs to run.

Inside settings.php you'll find everything from your database type and login details to your URL and multisite options.

This tutorial is your guided tour of settings.php. If you run a Drupal site, here's what you need to know about this vital file.

Blink Reaction: e-Learning Experience with Drupal

Category:  Drupal Best Practices Drupal How to Drupal Planet Drupal Training Internet Marketing Tips Learning Series Technology Tools Your Drupal Surprise Watch our webinar about building an effective e-Learning experience with Drupal, recorded by Acquia on April 10th.

Friendly Machine: Improving SEO with the Meta tags Module

I guess you could say I was in a bit of a rut. The modules I had been using for SEO had been working well, so I hadn't bothered to look at any alternatives in quite a while. Then I had a customer ask if I'd consider switching to the Meta tags module. I took a look and came away very impressed with what I saw.

In this tutorial we'll review the Meta tags module and explore the settings it provides (including the advanced ones) and how they can help optimize your site for search engines. Let's begin with a bit of set up and general configuration.

First, Get the Module

We're working with our latest theme Foundation in this tutorial (which is available for free). It's a good choice because it comes with Meta tags already installed and configured, but if you'd like to follow along on your own site, here's where you can download the module.

Once you've got Meta tags installed, go to the configuration page located at: 

admin/config/search/metatags.

Expand the tabs and you should see something similar to the image below.

We're not going to dig too deeply into these default settings right now as each field will be covered in detail a bit later, but it's important to note that if you want to change anything on a site-wide basis, here is where you do it. Let's take a quick look at one of these settings to see how they are put together.

Under Global > Page titles, you'll notice that it's set to: 

[current-page:title] | [site:name]

The bits inside the brackets are tokens and the pipe character acts as a separator. We won't change this one because it's a good default that places the page's title in front of the site name, but if you did want to change it you'd just click "Override" and modify as you see fit.

These site-wide configuration options are really useful, but one of the coolest parts of the Meta tags module is that we can override these settings on a page by page basis.

Page Level Settings

Let's find a page to edit so we can check out the page level settings. You'll find the Meta tags tab near the bottom of the edit form. Open it up and you should see something like the screenshot below. We'll step through the fields one by one.

Page Title

Let's say the page I'm working on in this example is about how to make sushi and is titled, "Become a Sushi Ninja". This title currently shows up in both the page's <title> and <h1> tags. The <title> tag is what is going to appear in the search results, but is "Become a Sushi Ninja" really going to be best for optimizing this page for search?  Wouldn't "How to Make Sushi" be a better, although more boring, choice?

With the Page title setting, we can have it both ways. We can keep the catchy title for displaying on the page and simultaneously use "How to Make Sushi" for the search results. To do this we just edit the Page title field so that it reads:

How to Make Sushi | [site:name]

What this does is change the <title> tag to our key phrase signaling to Google and Bing that the topic is making sushi (and not becoming a ninja), while retaining the catchy title for the <h1>, which is what readers will see when they visit the page. Pretty cool, huh?

Description

The page description doesn't affect your ranking in search results, but it can have a big effect on how many people will click through to your page. You can see that by default it's set to display the page summary (this can be found by clicking the "Edit summary" link above the body field).

You can also edit the Description field directly which Meta tags reminds you to keep under 150 characters because search engines won't display more than that on a results page. If you don't have either field filled out, Google will decide what to display without any input from you, so it can be very helpful to write up a snappy description for your content here.

Abstract

You can safely ignore this field with regard to ranking with Google or Bing, but it can be useful for some niches like academic papers. Again, keep it to under 150 characters but instead of something snappy, try to be as plainly descriptive as possible.

Keywords

This is one you should deliberately ignore. It doesn't impact your search rankings at all and instead will serve up your targeted keywords on a silver platter to any competitors who may be researching you. 

At one time Keywords was a very important meta tag, but unfortunately it was widely abused and became useless in helping search engines understand page content.

Advanced Settings

The advanced settings are really what make me love this module. There are some important things in here that I had previously been handling in code. Let's open up the Advanced section and take a look at the fields.

Robots

I won't go through all of these but I do want to talk about a couple of them that are particularly useful.

Prevent search engines from indexing this page
So why would we want to prevent search engines from indexing a page on our site? There are several reasons, but a really good one has to do with not having your pages compete with each other in search results. This is called keyword cannibalization, and it's a bad thing.

To avoid this problem, just check that little box and you won't have to worry about having the new page compete with an existing page you may have already optimized for the keywords.

Prevent search engines from following links on this page
When we link to another site, we're helping it out a little bit because Google looks at links as something of a recommendation.

Now let's say you're writing a blog post in response to something that has you really upset. Maybe another blogger has written a post that is simply insufferable. It cannot go unchallenged! In your response, you want to give your readers some context by providing a link to the offending post, but you also don't want to give it a positive citation.

Just check this little box and you can let 'em have it without worrying that you've given any help with SEO.

Google News Keywords

This is a new meta tag that is exclusively used by Google News. You can read up on it in this post from Google.

Copyright

Pretty straight forward here and not something most will need to mess with.

Image

This one is also relatively new and can be handy for telling social networks which image they should use with a post.

Canonical URL

Canonical URLs are very useful for dealing with duplicate content issues. This is something that is often a problem on e-commerce sites where product listings are duplicated on multiple pages. For the details, I'll let Google explain as they have written up a pretty good post on the subject. Meta tags does a good job of handling this by default so you probably won't need to mess with it much.

Shortlink URL

This element acts as an alternative to link shorteners. In Drupal they usually come out looking something like this:

<link rel="shortlink" href="http://example.com/node/5" />

Publisher URL

This one is actually a pretty big deal and will increase in importance over time. It links your Google+ page to your website. It's becoming very clear that Google+ is a major factor in search going forward, so I would recommend setting this one in the site-wide configuration.

Author URL

Have you seen those little author pictures that pop up in the search results?

 Well, adding this tag is how it's done (read full details). Yet another reason to love this module. And if you'd like to learn more about why authorship is important, this post does a good job of explaining it.

Original Source

This tag is also something Google cooked up, this time to help identify the original source of content. I think this one may be particularly useful for news sites, but can be safely ignored by most.

A Great Marketing Module

I know a lot of folks really dislike the term "SEO" and all the negative stereotypes associated with it, so maybe it would better to put Meta tags in the "technical marketing" category instead. When you boil it right down, all it's doing is helping you describe your content to search engines so that more relevant results are returned. This is a win for both you and the search engines.

If you feel like talking about how awesome the Meta tags module is, you can do so here.

Drupal Association News: What's up with the webinars?

We’ve received some feedback expressing concerns about an email we sent this morning, promoting our mobile webinar for this Thursday. The webinar, Drupal 8 and Spark Simplify Responsive Design, Mobile, is being co-produced and presented with Acquia, which is providing the speakers and infrastructure that allows us to put on the event.

Personal blog tags: webinarseducation

Drupal Association News: Register Now: Mobile webinar with Moshe Weitzman and Jesse Beach

From the big media journalist to the hobbyist blogger, creating content anytime, anywhere, and with any device has become as important as being able to consume it. Wouldn’t it be great if there was a simple way to let editors of all stripes post content from their iOS devices?

Guess what? There’s a module (and an app with an open source codebase!) for that.

Personal blog tags: webinarsmobile

Code Forbidden: Hide a block if the View is empty

You've made a nice block. But it still comes popping up even though it doesn't return any results! Luckily it is just a matter of settings. Here i'll show you how.

  1. In the view of the block you created open up the Advanced options by clicking on 'Advance' on the right.
  2. Add a contextual filter by clicking on 'Add' next to 'Contextual Filters'.
  3. Now set 'For' on 'This block (override) to make sure this contextual filter is only set for this block.
  4. Set 'Filter' on Global to narrow down the results and 'Global: Null' pops up. Select this filter as shown below and click on 'Apply (this display)'.
  5. Now select 'Hide view' where it says 'When the filter value is NOT available'. And click on 'Apply (this display)'.

And you're done! Empty blocks will be no more! Thanks to nicoz.

Drupal 7ViewsContextual filtersBlocks

groups.drupal.org frontpage posts: 13 Reasons to Come to DrupalCamp Dallas Next Weekend!

Just one week from tomorrow is the 5th annual DrupalCamp Dallas, and it's going to be 5 MILLION times better than any Drupal event ever.  Especially my session on the Hyperbole module.  But just in case you are still on the fence, here are 13 reasons why you need to gently climb down off that fence without getting any splinters and get your ticket right now:

  1. Jeff Walpole from the Drupal (and Wordpress :) powerhouse Phase2 is giving our Keynote Address on Can Drupal be a Disruptive Force in Social Business Software?  You wouldn't want to work at an unsocial business, now would you?  So come learn how to make it social. With Drupal.
  2. Three full tracks of great sessions, all day long.  Beginner?  Then come learn about Drupal SEO, Design, Tricks & Tips, and Scaling Drupal.  Expert?  Then how about sessions on Zombie.js, Mobile Video, and Drupal 8 Deep Dive?  Auto mechanic?  For you there's Chris Ruppel's session on Advanced Frontend Performance!  Heh .. get it?  Front-end?  Also a car term?  Uh, yeah, ok nevermind..
  3. Case Studies: Higher education, CiviCRM and Texas Instruments and possibly more.
  4. Pantheon is hosting a two hour training session Saturday afternoon on Development Best Practices and Building Sites on Pantheon.  Everything you need to be a great Drupal developer- version control, continuous development, workflow, and working in the dark until 4am while jacked on Jolt cola.  Do they still make Jolt cola?
  5. Acquia experts will be on hand Saturday morning for Acquia On Tap - come ask any questions you have on security, performance, architecture, how well Dries can ski, and whatever else you might think of.
  6. Sign up for our companion Results Oriented Web Summit (ROW) on Friday and also get into the all-day Friday Drupal in a Day training event at the same venue.  Or go to some of the Drupal training, and attend any ROW sessions you want.  You should see the lineup of speakers they have at ROW.
  7. Once again we'll have the entire back room at the nearby Fox & Hound Pub on Friday night with free drinks and food.  Come show off your pool, darts, and sitting skills.  The ROW crowd will be joining us, and I think I can say without stereotyping that all marketing people are much more attractive than us Drupal developers.  So you'll want to make that party.
  8. Spud and Sandwich Bar!  Keeping the DrupalCamp Dallas tradition going of having the best food of any other Drupal event, we are planning a make your own sandwich and spud bar. Make your own lunch- 'cause we are not your mother.
  9. Giveaways!  We'll have some very nice sponsor gifts, including full Drupal development and sitebuilding video courses from Buildamodule.
  10. Robert Ristroph submitted so many session ideas that we are just going to go ahead and give him his own track.  All Robert Ristroph, all day.  Sessions will be held in the Robert Ristroph room.
  11. Last year we tried to kill Josh Koenig from Pantheon at our post-Camp mountain bike ride. He survived somehow, with a cunning mix of biking skill and total lack of fear.  So we'll be trying again this year, Sunday morning at nearby Rowlett Creek Preserve.  Join us!
  12. Remember when we did the Camp in summer, and it was 107 degrees?  Ahh, good times. Current forecast this year is sunny and in the 70's.  That walk from the parking lot to the air conditioned Culwell Center is going to feel great!
  13. and finally ... one really, really big surprise.  Really.  No hyperbole this time.

Ok- if all that doesn't convince you to spend next Saturday (and Friday!) with us, then all hope is lost.  Just go ahead and enjoy a beautiful weekend playing golf or spending time with your family instead of a bunch of sweaty Druplers.  We'll understand.

Lullabot: Drupalize.me Podcast 15: Git Craziness

In this episode, Kyle Hofmeyer is joined by Joe Shindelar, Blake Hall, Jerad Bitner, and Brock Boland to discuss git, different workflows, and working in teams.

Git is often touted as among other things being extremely flexible. It's a big selling point for the software. You're not throwing all your eggs in one basket and assuming that there is one singular workflow to rule them all. This flexibility can also be a challenge though. In this podcast we'll talk about the various ways that we at Lullabot use Git when working with teams of people. Both small and large. And the organizational tricks we've learned along the way to help make sure our projects continue moving forward and don't get to messy.

Some of the things discussed include designating someone as a branch manager, working in feature/task branches to keep your code organized and easy to review, and using pull requests. Spoiler alert! We end up boiling it all down to this. There is no one perfect way, but whatever way you decided to organize your team make sure you document it and that everyone on the team knows what you decided.

Podcast notes

Introduction to Git series

Release Date: April 5, 2013 - 10:00am Album: Lullabot Podcast Length: 42:35 minutes (24.85 MB) Format: mono 44kHz 81Kbps (vbr)

PreviousNext: So, your want Drupal website to be accessible?

There are a lot of methods available for testing a Drupal site's accessibility. I will go through the methods I use from a high level to give a basic introduction into testing for a Drupal web site's accessibility.

Pages