Feed aggregator

Larry Garfield: Beyond Abstract classes

Planet Drupal - Tue, 2014/01/07 - 8:18am

Recently, Anthony Ferrara has been posting a periodic "Beyond" series about software design philosophy. Some in particular have hinted at concepts I've been pondering as well. With his blessing, therefore, consider this a continuation of that series.

PHP 5.4 is not exactly new, but it's finally starting to see actual usage by a decent number of people. Its most notable new feature is Traits, which in PHP are implemented as, essentially, compile-time copy-paste. Conceptually, though, they're a way to mix functionality into a class without using inheritance, and without requiring a separate distinct object for composition. (At least in PHP; the term "trait" appears in other languages for similar but subtly different tools.) That's not to say that they're a surrogate for composition; they most certainly are not. They serve a different purpose, that is, providing code for a class to reuse without using inheritance.

Recently, I was reading an article (the link to which, of course, I cannot now locate) discussing the implementation of inheritance, such as it is, in Go, Rust, and other new-wave concurrent languages. It made an interesting point that crystallized for me why it is I am so excited about traits. Specifically, it noted that there are not one but two kinds of code reuse: interface reuse and code reuse.

read more


groups.drupal.org frontpage posts: GLADCamp (Greater Los Angeles Drupal Camp) on March 7, 8 & 9, 2014, in Pasadena, California!

Planet Drupal - Tue, 2014/01/07 - 8:02am
Start:  2014-03-07 (All day) - 2014-03-09 (All day) America/Los_Angeles User group meeting Organizers:  christefano GavinBurnett impboy_ie jmosmith joe_pixelrow nodiac oseldman pcoleman Stew-bee Techivist WonderWoman Event url: 


Greater Los Angeles Drupal Camp (GLADCamp) is a free, 3-day event coming up on March 7th, 8th & 9th, and is at Hilton Pasadena & Convention Center in Pasadena, California.

We're planning a conference that's packed with 3 full days of pre- and post-camp activities, including trainings, topic-based summits, a job fair, a barn raising to benefit a local non-profit, parties, and more!

Stay tuned to this event announcement, the GLADCamp.org website and @GLADCamp on Twitter for upcoming news and announcements.

Important Dates

Here's our tentative schedule for the next couple of months:

Session submissions start on January 13, 2014
GLADCamp is 3 days dedicated to all things Drupal, and we're looking for session proposals on everything including site building, coding, development, e-commerce, theming, design, performance, security, site showcases and case studies.

Training submissions start on February 3, 2014
Training companies and individual trainers are welcome to propose a training to be scheduled on Friday, March 7, 2014. We currently have two training spaces, but we might have more depending on demand.

Barn raising applications start on February 10, 2014
Continuing our tradition of holding "barn raisings" for non-profit organizations, we'll be reviewing applications from non-profits who would like to participate in a code sprint dedicated to building their website or adding much-needed features.

1st round of selected sessions will be announced on February 17, 2014
We're combining some elements of barcamp-style organizing with traditional conference planning, and will announce a preliminary schedule on February 17th. This is also when folks coming from out of town should start getting their travel arrangements together.

Final schedule will be posted on February 24, 2014
2 weeks before the conference, we'll have a finalized schedule so everyone will know which sessions to look forward to!


Blink Reaction: Thank you for a great 2013.

Planet Drupal - Tue, 2014/01/07 - 1:08am

We'd like to say thank you to Drupal and all our clients and supporters for a great year. 2013 was a year of accomplishments for Drupal and a great year for our clients and all of us at Blink Reaction. I’m particularly proud of our work to bring Drupal learning to the forefront of our mission with new and existing clients on the journey we call open source. Here are some highlights we thought you’d like to celebrate with us:


Drupal core announcements: Learn more about Drupal 8 and help the wider Drupal community by writing up a Change Notice

Planet Drupal - Mon, 2014/01/06 - 10:09pm

A happy 2014! What a great year for a Drupal major release!

Have you started learning the new Drupal 8 APIs? Are you porting your modules forward to an 8.x branch? Are you a curious site builder ready to adopt the new hotness that will be Drupal 8?

Well now is the time to jump in and start learning. And one of the best ways to learn is to teach. Speaking from experience, authoring a change notice is an excellent way to explore a sub-system of Drupal 8. You are, in a sense, documenting your personal learning as you work to understand the change, why the change was necessary and how users will write code against the new system. And everyone benefits from your efforts.

What is a change notice? Well, when a significant change is made to Drupal, the developers and committers will require that a change notice node be published that describes the updated code and if applicable, how the change alters a previously existing API. We have a detailed explanation of how to write a change notice. Generally, you will spend 20 to 40 minutes on this task. Here is the current list of issues that require a Change Notice. Right now there are about 40 issues that require a notification to be written.

Very often the developers involved with an issue patch will author the change notice. When this does not happen, the issue is marked with a Needs change notification tag. Any open change notices will block the creation of a Drupal release candidate, so they must all eventually get written. Change notices are a vital means to help Drupal developers understand how to alter their coding practice from Drupal 7 to 8.

If we got 40 people to each pick an issue and write up a change notice, we could clear out the queue today! That's quite an achievable goal.


Urban Insight: A New Form of Online Publication by LACMA

Planet Drupal - Mon, 2014/01/06 - 6:00pm

We recently had the privilege to work with the Los Angeles County Museum of Art (LACMA) to launch their first online scholarly catalogue. Featuring objects from Southeast Asian art, the catalogue makes information about works in LACMA’s collection available in a new, media-rich format.


Microserve: MixItUp and Drupal Views

Planet Drupal - Mon, 2014/01/06 - 5:45pm

Recently I had to create a View with exposed filters that refine the results by certain taxonomy terms. In the meantime, the design team came across the MixItUp JQuery library and recommended it for the View in order to improve the user experience. It turns out that combining Views with this library was relatively easy and the result was quite impressive. In this post I will briefly describe how this library works and one way you can combine it with Views.

About the MixItUp plugin

MixItUp is a JQuery plugin that provides animated sorting and filtering for ordered and categorised elements, such as unordered list elements (



    • Cats


    • Sort by age


    • ...


    [Taxonomy term value]

    In order to make these elements behave as filter controls, some classes and attributes had to be added, which was done with JavaScript as described in the next paragraph.

    JavaScript code

    So far some of the required classes were added in the View, but the attributes and the classes in each filter and each filtered element still needed to be added. These requirements were handled with the JQuery code below:

     // Selecting from every list item in the View // the values that match the filters (the practice // areas and surname each list item is showing) and // adding to this list item these values as classes $('ul.mixitup li').each(function() { $(this).find('div.practice-areas div').each(function() { var str = $(this).text(); str = str.trim().replace(/\s+/g, '-').toLowerCase().replace('&','a'); $(this).closest('li').addClass(str); }); $(this).find('.field-surname').each(function() { var str = $(this).text(); str = str.trim().replace(/\s+/g, '-').toLowerCase().replace('&','a'); $(this).closest('li').addClass(str); }); }); // Adding to every option in the exposed filters, // the class "filter" and the attribute "data-filter" // with the value defined in the option's value //Practice Areas dropdown $('#edit-tid option').each(function() { $(this).addClass('filter'); var str = $(this).text(); str = str.trim().replace(/\s+/g, '-').toLowerCase().replace('&','a'); $(this).attr('data-filter', str); }); // Triggerring the "click" event when an option is // selected, for the MixItUp to handle the filtering $('#edit-tid').change(function(){ $(this).find('option:selected').trigger('click'); }); //Surnames dropdown $('#edit-tid-1 option').each(function() { $(this).addClass('filter'); var str = $(this).text(); str = str.trim().replace(/\s+/g, '-').toLowerCase().replace('&','a'); $(this).attr('data-filter', str); }); // Triggerring the "click" event when an option is // selected, for the MixItUp to handle the filtering $('#edit-tid-1').change(function(){ $(this).find('option:selected').trigger('click'); }); // Calling the MixItUp plugin for this View $('.mixitup').mixitup();


    Lullabot: Module Monday: Role Delay

    Planet Drupal - Mon, 2014/01/06 - 5:00pm

    It is not uncommon to want to assign a role to a user after they have been a member-in-good-standing of a site for a period of time. Perhaps this role will grant them access to do some content moderation, or gain access to new features like voting on posts. The Role Delay module was created for just this purpose, and it fulfills its 'role' admirably.


    Web Omelette: How to create a Promo block using Nodequeue and Views

    Planet Drupal - Mon, 2014/01/06 - 2:10pm

    Happy New Year everyone!

    In this tutorial I am going to show you how you can use Nodequeue to create yourself an awesome Promo content block. If you follow along, by the end of this tutorial you will have a block on the front page listing content that you easily select and sort based on the requirements of the moment. So lets go ahead and see how.

    For this tutorial, my content will consist of 4 images from Article nodes that I want to promote to my Promo block whenever and in whichever position I want. So lets begin.

    First, we'll need a simple View that displays our content. Here you can use whatever type of content you need and style its output however it best fits your design. I'm going with a View listing 4 nodes using fields instead of content and showing only the image field. I remove everything that is in the sorting section and for filtering I make sure only published nodes of the type Article show up. Save the View and you can already position it wherever you want on the homepage to see the 4 images. No biggie.

    But currently, the sorting and filtering is quite unfriendly for something such as a Promo block where you need to be able to quickly change which nodes go there and in what order. And yes you could add a field to the content type and promote it to the Promo block if you need. But for sorting? You'll probably end up editing the authoring date all the time to make sure the sorting is in the way you want at any given moment. So lets use Nodequeue instead.

    After installing it (drush dl nodequeue && drush en nodequeue -y), go to Structure->Nodequeues->Add a simple queue. Give it a title and the number of nodes you'd like this queue to max out with. In my case it will be 4. Then select the content type you are allowed to add to it and save. Now let's go back to edit our View to make sure it displays only content that is in this particular nodequeue we just created.

    First up, add a relationship of the type Nodequeue: Queue and go ahead and limit it to the queue you just created. Now we have access to the nodequeue information in our View. So add a new filter of the type Nodequeue: In queue using this relationship. Set that to true to make sure only nodes present in this queue are listed by the View.

    Now add a sorting criterion of the type Nodequeue: Position and don't mind whether it is ascending or descending. The position will be given by the drag'n'drop functionality of Nodequeue with which you will control manually the position of the nodes.

    OK, now that you have your View you can go check it out on the home page and you'll notice there is nothing in it anymore. Well you have to add some nodes to the queue you created earlier. And this is the part where your life becomes easier. Now whenever you need stuff in the promo block, you'll just go to the queue and add the node in it. And you can easily adjust the position in which they appear with the drag'n'drop. Cool no?

    Hope this helps

    In Drupal var switchTo5x = true;stLight.options({"publisher":"dr-8de6c3c4-3462-9715-caaf-ce2c161a50c"});

    Worchestra: Role Notify - A Drupal Module

    Planet Drupal - Mon, 2014/01/06 - 8:56am

    I needed a functionality in Drupal that handles the notifications for users based on role on new content in the website, so I looked around and considered Notifications Module which is great, but adds much more than I really need for a simply notify module.

    Role Notify is a light-weight module to work as an alternative module for simple notifications. It basically helps you notify all registered users of a selected role when a new content is published in the site.

    Notifications can be selective with different settings on each content type. Users can choose whether to notify on the node level.



    Software Inn: How we have improved Drupal site performance with Cloudflare

    Planet Drupal - Mon, 2014/01/06 - 8:36am

    Do you wonder how to easily improve performance of your Drupal - and even non-Drupal - website without even touching the site itself, only by using modern infrastructure solutions? In this article I'll show you how we did that for one of our clients.

    Tags: drupalperformancecase studyinfrastructureCDN


    Wim Leers: Performance Calendar 2013: "The real challenge: making the entire web fast"

    Planet Drupal - Sun, 2014/01/05 - 3:25pm

    This year, Performance Planet did an advent calendar again, just like the last few years. I also contributed an article — what follows is a verbatim copy of my “The real challenge: making the entire web fast” article for the 2013 Performance Calendar.

    Probably many — if not most — of us speed freaks work for big companies that are optimizing top 1,000 websites.
    Some companies have the budgets to hire people who work on WPO full time. Those companies are able to do that thanks to huge revenues — otherwise it would not be financially justifiable. In other words: they’re probably a top 1,000 website. The percentages of page speed improvements those people bring must translate into sufficient additional revenue to cover their wages.
    Other companies have people who get to spend part of their time on WPO, and maybe pay for the services of one of the several WPO companies out there. But even in this case, a sizeable revenue is a requirement to justify it.

    So what about the millions of other websites?

    Think tiny budgets. Shared hosting. No mod_pagespeed to be seen. The ‘S’ in ‘SME’s. The small non-profits. How can they make their websites faster?

    Well, a few companies are so big that they can even hire people to focus on the big leaps forward in web technology that will make the entire web faster (think better browsers and HTTP 2.0/SPDY). Usually that’s the case because the long-term success of those companies depends on the web, so they have a vested interest in an even more omnipresent web.
    It’s great. But it’s not enough: there’s only so much that better technology can do. A poorly implemented website with lots of large resources per page will still be slow.

    So how can we make the majority of the web faster?

    I believe we can do that by making the most popular CMSes faster by default.

    The fat head is trampling the long tail

    Increasingly, the big few own the attention of us internet users. The long tail receives fewer visitors.

    Centralization. Silos. The big few are extremely successful because they have a better UX (amongst other reasons). Perceived simplicity & perceived speed are essential elements of that better UX.

    If we want to protect the web’s diversity, the long tail must receive more attention again. Browsing the wider web feeling fast & fun rather than slow & annoying, to avoid a future where people spend (almost) all their time in the few silos they know.

    Not just for the ideological idea of a free web with diverse opinions, but also to avoid monopolies from owning the web. Monopolies are bad for all of us for many reasons; two reasons are reduced innovation and higher risk of police state-like measures (such as censorship1 and eavesdropping).

    Fast CMSes suited for various use cases — from simple blogging to complex data modeling — are essential for the success of the long tail.

    Making WordPress, Drupal and Joomla fast out of the box

    According to various sites that track the usage statistics of CMSes, the WordPress—Drupal—Joomla triumvirate powers 2/3rd to 3/4th of the top 1 million and 1/4th of the entire web.

    They all have two things in common:

    1. they’re free and open-source software
    2. they “enable non-developers to do developer-like things” (let’s call them “site builders”2)

    If we can make these three open source systems faster, then we make the entire web faster!3

    All three of them run fine on shared hosting. They can all be much faster when running on an optimized stack (think Varnish, memcached and so on). But the point is to make them as fast as possible on shared hosting.

    In my own job, I spend a significant part of my time on making Drupal 8 (the next version of Drupal) being more performant out of the box. A few of those improvements are:

    • Zero JavaScript is served to anonymous users by default.
    • Support for responsive images.
    • Partial page caching, which results in much faster serving of HTML of personalized pages for authenticated users.

    Hopefully, Drupal 8 can add more improvements still. And Drupal already had many performance-related features. I’m sure WordPress and Joomla do, too.

    But what matters most is whether these performance features are enabled out of the box: many site builders will not be knowledgeable enough to be aware of these features nor their impact. So we should go the extra mile — and maybe add additional code complexity — to ensure we can enable performance features out of the box.
    For example: Drupal has had CSS & JavaScript aggregation for a long time … but it’s not yet enabled out of the box! And that’s why it’s not as fast as it could be, for many sites out there.


    Overall, CMS developers should stop blaming the site builder for setting things up suboptimally and instead blame themselves!

    CMSes should be fast by default. And whenever a site builder is about to configure something that would negatively impact perceived performance, then the user should be made aware — or better yet: remove that choice from the UI altogether and make it only overridable through code (or using a CMS extension).

    Content strategy affects performance, too

    All of the above is about performance-related features. But not every performance problem can be solved with better algorithms or smarter caching.

    Content strategy is crucial for a fast site. A highly optimized responsive website that loads blazingly fast can load excruciatingly slow if the content it needs to show includes several multi-hundred-KiB images. Sadly, in the current state of the web, that is the rule, not the exception. CMSes should protect its users against that (for example by automatically losslessly optimizing images on output while retaining the originals), or, if unable to protect, educate its users.

    If the site builder decides to add all sorts of social media widgets (think Twitter, Facebook, and Google+), and perhaps several tracking analytics scripts… then inevitably a page takes longer to load.

    So another part of the puzzle is education. To my knowledge, no CMS even attempts to educate its users.


    It’s great that many important websites with millions and billions of visitors are being sped up so much. But let’s not forget about the millions of other websites. As Stoyan Stefanov so elegantly & empirically demonstrated: users are frustrated by the entire web being slow, not just the web giants.

    Do it to further increase the success of open source. Or to reduce the influence of monopolies. Or to make more money. Or to stand up against cultural imperialism. Or just because you selfishly want the web to be faster because you’re impatient.

    Let’s make the entire web faster.

    1. One must think in a global context, because the web is global. Hence silos are typically global, but they’re usually also regulated in a single country. For example: Facebook is an American company. In the U.S.A.’s popular culture (e.g. movies), extreme violence is acceptable, but deity forbid a nipple is seen for a fraction of a second. This particular cultural view is then also applied by American companies: see “Facebook’s nudity and violence guidelines are laid bare”: Nipples are rude but crushed limbs are OK.
      This is considered “cultural censorship” or “cultural imperialism”. In other countries, the values may be different. For example, in the case of violence vs. nipples, Sweden has the opposite stance on what’s acceptable

    2. Sitebuilders are people who are not necessarily programmers, but can still build a rich, complex website. Zach Chandler from Stanford University has aptly described their importance: The reason why the site builder is so important is that often they are experts in something else, subject matter experts that can use Drupal to model things that exist in their discipline. They can do that thanks to:

      • data modeling and query builder UIs
      • an ecosystem of extensions for the basic CMS

    3. Making perceived performance part of the features they compete on would be interesting, but they each have different focuses so in reality there’s little competition: they serve different use cases & markets. 


    Google Code-In student blog: How to setting up LoLogin Drupal 8 module

    Planet Drupal - Sun, 2014/01/05 - 3:23am

    LoLogin module was released! It is simple and helpful module for auth users by LinkedIn. LoLogin use OAuth for authentication.
    So, go to installation!

    Create LinkedIn app

    Go to: https://www.linkedin.com/secure/developer . Click "Add New Application" button.

    Fill company name, application name(Your site name), application description(your site description), website URL, application use(your site thematic), write you contacts in contact info, mark "r_basicprofile". In OAuth 1.0 Accept Redirect URL write: yoursiteurl.com/llogin and OAuth 1.0 Cancel Redirect URL: yoursiteurl.com/llogin too. Agree with rules and click "Add application".

    Application will provide you 4 keys:

    Them will be used later.

    Install and setting up module

    1. Download latest version of "LoLogin" and extract it to modules folder on your site.
    2. Go to your website admin panel. Go to "Extend" and select "LoLogin" module to install. Save changes.
    3. Go to "Configuration". Find "LinkedIn Authentication" in "Web services" block. Paste Linked in 4 keys here in appropriate fields. Like a in my site:

    Click "Save configuration".
    4. Go to "Structure". Find in right block "LoLogin"

    Click on it. You will see settings form:

    You can control: "title", "region"(where module showing) and another like in another modules. We need to make module only for anonymous:

    Click "Save". Module setting up finished!

    In site pages module will locked south as:


    Google Code-In student blog: How to setting up ToLogin Drupal 8 module

    Planet Drupal - Sun, 2014/01/05 - 12:50am

    ToLogin module was released! It is simple and helpful module for auth users by twitter. ToLogin use OAuth for authentication.
    So, go to installation!

    Create twitter app

    At start go to https://dev.twitter.com/apps. Click "create new application".

    You will be redirected to form:

    Invent name for application and enter them at "Name" field. At description write about your site. In website field paste your site url. And "Callback url" need be: YOUR_SITE_ULR/tlogin. Agree rules, fill captha and click "Create your Twitter application".
    And your site application will be created:

    Click "Create my access token":

    Twitter will generate 2 keys for access token. At all you will have 4 keys: "Consumer key", "Consumer secret", "Access token", "Access token secret" . This keys you will paste in ToLogin module on your site later.

    Installation module on your site

    ToLogin installation is simple:

    1. Download latest version of this module. Unarchive it and move folder "ToLogin" to YOUR_WEBSITE_ROOT/modules.

    2. Go to administration panel. Go to "Extend". Find ToLogin module in modules list in package "CUSTOM". Mark by tick it.

    And click "Save configuration" in page bottom.

    3.Go to "Configuration". Find "WEB SERVICES" and click "Twitter Authentication"

    You will be goes to ToLogin Settings.

    Fill fields from values from twitter app.
    "Consumer key"=>"Twitter client ID"
    "Consumer secret"=>"Twitter client secret"
    "Access token"=>"Twitter client token"
    "Access token secret"=>"Twitter client token secret"
    I fill them thus:

    Click "Save configuration"

    4.Go to "Structure". Find "ToLogin" block in right menu. Click "Twitter authentication"

    You will see form:

    You can change or hide title, select region, where module will be displayed.
    Select "Roles" and select only anonymous users.

    Its module only for non logined(anonymous) users.
    Click "Save block" and module ready to work!

    Module looks like thus:

    User need to click on link, wait 2 seconds and he will be logined!


    Bert Boerland: DropCamp NL, Bring Your Own Tent

    Planet Drupal - Sat, 2014/01/04 - 4:31pm

    With 179 days to go, it is time to give some airtime to Dropcamp.nl. According to the website DropCamp (good name, the funny domainname dropcamp.us even better :-) ) is:

    Organised by veterans of the Drupal community, DropCamp welcomes you to the city of Enschede for a weekend filled with Drupal like you have never experienced before. We will come together in the first weekend of July to teach, learn, and do business about Drupal in a relaxing and social setting. The DropCamp village will be a place where you will breakfast with hardcore Drupalistas, find business opportunities, and share ideas and drinks with newcomers.

    A camp hosted at the University of Enschede, close to Germany and 100 days before DrupalCon Amsterdam an ideal place to nerd around and have some fun. Be sure to checkout Dropcamp on facebook and twitter, signup for the newsletter and maybe some people will come to the event by bike. Like the "come to DrupalCon Amsterdam by bike Tour de Drupal movement. So bring your own drush and tent and have fun.


    Frederic Marand: PSR-4, really ?

    Planet Drupal - Sat, 2014/01/04 - 12:24pm

    Yesterday, Seldaek committed PSR-4 support to Composer, as his New Year's Day gift to the PHP community.

    So, since I always supported PSR-4 in FIG discussions, and after the tl;dr discussion about it regarding autoloading in Drupal 8, I jumped on the occasion and converted the code base for PlusVite to PSR-4 to get an idea of how PSR-4 "felt" in practice.

    read more


    Ben's SEO Blog: How to Market with Video in Drupal

    Planet Drupal - Fri, 2014/01/03 - 11:55pm

    You’ve created a great video to market your business’ products or services, and you know it’s really something special. How can you get Google to take note of your video and start displaying it in the SERPs?

    SEO optimizing videos actually isn’t all that difficult— in fact, you do it the same way you optimize text or any other page on your website. Here are a few easy steps for optimizing your video to catch Google’s (and your audience’s) attention.

    1. Upload it to YouTube.

    While Vimeo is a great platform for videos, YouTube belongs to Google, and we’ve seen that Google tends to promote content hosted through its own services before it promotes content posted elsewhere. Putting your content on YouTube will make it much more likely it’s indexed by Google, and displayed in the search results.

    2. Build a landing page on your site for the video.

    With Drupal, this is incredibly easy— simply go to Content > Add Content > Basic Page, and build out a landing page for your video. Include keyword-optimized links to blog posts, your contact page, and information about your company’s products and services to maximize the chance that you get conversions off of the video. Then, in your WYSIWIG editor, embed the video itself using the “Share” feature that YouTube has. It’s easy!


    • If you're embedding the video into the body of a node directly, be sure to use "Full HTML" filter (or ask your admin to set up the proper filter for you to use).
    • If your site uses https, you can select the “Use HTTPS” option under the embed code or Protip: delete the "http:" from the embed url and Youtube will serve the proper and secure format. In other words, href="//www.youtube.com/embed/yI-i0x8S39c"
    3. Optimize that page.

    Including title tags, meta tags, and keywords, and making sure that those tags match up the video titles is an easy way to boost your rankings. Write descriptions that incorporate keywords in the order they are listed. NOTE: Video SEO will consume much less of your time if you have a video-friendly content manager— and Drupal has some really great video-friendly modules that we recommend you check out.

    4.  Submit a video sitemap through Google Webmaster Tools.

    Google knows you’ve got a video, but not what it’s about. Generating or building a site map for each video will tell search engines where the video is (your site), its original location (YouTube) and what it’s about (how awesome you are).

    5. Make sure your website has a robots.txt file that includes your XML and video site maps.

    We’ve written a bit about this before— having a proper robots.txt file is crucial to even the most basic SEO success. The robots.txt file lets the search engines know what they can and can't index and must be uploaded to the top-level directory of your site (directly after the .com, .net, .org, etc.). For more information on putting together a robots.txt file for Drupal, check out this great post by Ben Finklea.

    6. Write out the transcript from the video. 

    Search crawlers can’t read the contents of video, so include the transcript of the video so the text can tell the crawlers what the video is about.

    And that’s it! Video SEO is easy— especially with the right tools and modules. For help getting your Drupal site set up for SEO, contact us at Volacci, or read our blog for more Drupal marketing tips and trips.

    Video can be a great tool in your Drupal Marketing toolkit. Here's how.video seo, Planet Drupal

    Blink Reaction: What's on Drupal.org?

    Planet Drupal - Fri, 2014/01/03 - 6:38pm

    Drupal.org is a critical resource for anyone working with Drupal. However, for the new--and sometimes even for the not-so-new--Drupalist, the sheer scale of Drupal.org can make it intimidating and difficult to use. This post is the first in a collection of posts that will explore Drupal.org, its resources, and how to use them.


    Isovera Ideas & Insights: Drupal Thoughts on a Snowy Day

    Planet Drupal - Fri, 2014/01/03 - 4:41pm

    For those of us in New England, today is a day we are hunkered down in blizzard-like conditions pondering thoughts of the new year and what it has in store.  At Isovera, we continually take cues from our clients to get a feel for how folks are approaching their web strategy for 2014 and beyond. As a Drupal-focused technology firm, we are very excited about what is on the horizon. Here are just some random thoughts about Drupal, etc. (with some possible helpful links from others) that you may or may not find interesting:


    Drupal Commerce: Using permissions to allow users to create products

    Planet Drupal - Fri, 2014/01/03 - 4:24pm

    Today we have another quick screencast answering a question in the Q&A section of drupalcommerce.org. This user, golubovicm, has asked "Edit own products permission" is not working! First off, that's not the best way to phrase a question, but it does happen that a number of people are wondering how to set up a user to create, edit, and delete their own products. So, we've created a quick screencast to walk you through how to set this up.

    View the screencast.


    Drupalize.Me: Drupal 8: Configuration Management Walk-through

    Planet Drupal - Fri, 2014/01/03 - 4:00pm

    One thing about Drupal 7 that people have a love-hate relationship with is the Features module. Features attempts to give you the means to export database-stored site settings in code that you can put into version-control and move from server to server. In Drupal 7 using Features, when you want to make a change to your Drupal site configuration, you would need to either update the feature or make sure that setting was in a feature and (re)create it. When deploying, you would revert your Features so that your site settings match what was in code. If only things were that straight-forward!



    Subscribe to build2be/com/e aggregator