Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 40 min 13 sec ago

Web Omelette: Adding Facebook Open Graph tags to your Drupal site

Mon, 07/04/2014 - 09:10

In this article we are going to look at implementing the Facebook Open Graph (OG) tags on a Drupal site. It involves a bit of coding but nothing too major so bear with me. All the code we are going to write goes into the theme's template.php file so no need to to create a module for it. And if your theme does not yet have this file, go ahead and create it.

Why use Open Graph tags?

I'm sure by now you know that people share pages on Facebook and you want your site to be shared as much as possible. You also know that a little teaser information is made available on Facebook when you share these pages (title, image, short description).

But have you ever noticed that with some sites, when you share pages on Facebook, or like/recommend them, some random, unintented image gets used in this teaser. Or the description is not correct, or even the title is not right. Facebook is quite good at picking the right elements to show there but sometimes it doesn't manage by default. And you can't expect the random user who shares your page to make adjustments to the text or title. So what do you do? You use Open Graph meta tags.

What are the Open Graph meta tags?

These are simple <meta> tags that you put in the head of your site to specify which elements should be used by Facebook for various purposes. For instance, you specify a link to an image and then Facebook knows exactly which image to use when building the teasers. The same goes with the title, description and many others.

The tag is quite simply structured. It contains a property attribute in which you specify what this tag is for and a content attribute where you specify what should be used for this property. Let's see an example for the title:

<meta property="og:title" content="This is the article title" />

Simple. You'll also notice that the property attribute value is preceeded by og:. This stands for Open Graph and Facebook will recognize it as such. Here are some examples for other more common OG tags:

<meta property="og:url" content="http://webomelette.com/article-url" /> <meta property="og:site_name" content="Web Omelette" /> <meta property="og:type" content="blog" />

The first one is the canonical URL for the page, the second is the site title and the third is the type of site.

But how do we add them to Drupal?

I wrote a while back an article on this site in which I looked at how you can add your own custom tags into the <head> of the site. And there we learned that we use the drupal_add_html_head() function inside of a preprocess one to achieve this.

So let's say that our Article nodes don't show up properly in the Facebook teasers and we would like to specify OG tags for the title, image and description. We will do this in the theme's template.php file inside of the template_preprocess_node() function:

function theme_name_preprocess_node(&$vars) { }

Inside this function we get access to the node information being loaded and we can test to make sure we are adding our OG tags only to the pages that load these nodes:

// If the node is of type "article", add the OG tags if ($vars['type'] == 'article') { // Inside this conditional, we define and add our OG tags }

First, let's create the title tag, the simplest of them all. It will be represented by the node title:

$og_title = array( '#tag' => 'meta', '#attributes' => array( 'property' => 'og:title', 'content' => $vars['title'], ), ); drupal_add_html_head($og_title, 'og_title');

If you remember from the other article, this is how we create a new meta tag in the site header. We define a renderable array that describes the tag (type and attributes) and we use the drupal_add_html_head() function to set it. Simple. Now if you clear the cache and go to an article page you'll notice in its source a new tag:

<meta property="og:title" content="The title of the article" />

This was simple. Let's see how we can extract the image URL and specify it inside a new tag for the image Facebook will use:

$img = field_get_items('node', $vars['node'], 'field_image'); $img_url = file_create_url($img[0]['uri']); $og_image = array( '#tag' => 'meta', '#attributes' => array( 'property' => 'og:image', 'content' => $img_url, ), ); drupal_add_html_head($og_image, 'og_image');

So what happens here? First, we use the field_get_items() function to retrieve the field called field_image from the loaded node. This will return an array of one or more images (depending on how the field is set up and how many images are in it).

Next, we use the image file URI inside the file_create_url() function to turn it into an absolute URL. Then, just like above, we create the renderable array with the og:image property and the image URL as the content. The result will be:

<meta property="og:image" content="http://your-site.com/sites/all/files/your-image.jpg" />

Finally, let's see how we can get a small chunk of our body field and use that as a description for Facebook:

$body_field = field_view_field('node', $vars['node'], 'body', array('type' => 'text_plain')); $og_description = array( '#tag' => 'meta', '#attributes' => array( 'property' => 'og:description', 'content' => text_summary($body_field[0]['#markup']), ), ); drupal_add_html_head($og_description, 'og_description');

Instead of using the same function as when we retrieved the image field earlier, we use field_view_field() in this case. The reason is that it already prepares the body for output and we can specify a text format to use. We want to use plain text to avoid printing all the HTML markup that is usually found in the body field.

Next, like above, we create our renderable array. Only this time, we also use the text_summary() function to trim the text down to a reasonable default of 600 words (the defaul teaser length on the site). If you want to specify a different length, you could pass it as the third argument, like so:

text_summary($body_field[0]['#markup'], NULL, 100),

This will trim it to 100 words. One thing I noticed about this function however is that it doesn't trim nicely. It will end the chunk in the middle of the sentence even if its API says it will try to find a sensible place. For this purpose it doesn't really matter because Facebook will trim it down anyway to a shorter version.

Conclusion

So there you have it. Now you can use the Open Graph meta tags on your Drupal site to let Facebook know about your content. It's a handy social helper that can greatly improve your social presence by making your site more appealing on Facebook.

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

Harry Slaughter: One revision control system to rule them all

Mon, 07/04/2014 - 04:18

The first revision control system I ever used was called RCS. It was the pre-cursor to CVS and stored all revision data locally. It was nifty but very limited and not suited for group development. CVS was the first shared revisioning system I used. It was rock solid, IMHO. But it had a few big problems, like the inability to rename or move files. Everything had to be deleted and re-added. 

Since those days, I've used several other revisioning systems: Perforce, Bitkeeper, Clearcase, Subversion and GIT.

read more

Categories: Elsewhere

High Rock Media: Drupal 8: Attaching Core Libraries and Other Scripts to Your Theme

Mon, 07/04/2014 - 01:54

For the past six months, I've been in the process of porting my contrib theme, Gratis, to Drupal 8. One of the challenges for contrib is Drupal 8 has been a constant moving target in terms of API changes. With every new Alpha of Drupal 8, I've had to adjust many bits of theme code to adhere to these new APIs.

One of the biggest challenges has been figuring out how to add jQuery and other core scripts into the theme. That's because off the shelf, Drupal 8 does not add these for anonymous users. This seems like an odd choice by core but my guess is that is was done for Drupal 8 to be more minimalistic and nimble on its feet.

At any rate, if you have a contrib theme, most likely the first thing you'll do is add all of these back in to bring it back to a point where Drupal 7 was. To add an additional layer of complexity to all this is the fact that the manner in which this is done has changed dramatically in recent weeks.

Exit nested arrays, enter YAML

At first one added core libraries using hook_library_info which was a mess of PHP nested arrays in your theme's .theme file. Now, in true Drupal 8 fashion, we do this with a .yml or "yaml" (rhymes with camel) file. YAML is an acronym for "Yet Another Markup Language" or "Ain't Markup Language" and has become a core method for streamlining code in Drupal 8.

Here is a basic example of how you can add jQuery to a theme and a few dependencies. You'd do this by creating a *libraries.yml file in the root of your theme. So in my case my theme name is foobar so the file name would be foobar.libraries.yml.

foobar-corescripts:
  version: VERSION
  js:
    js/scripts.js: {}
  dependencies:
    - core/jquery
    - core/drupal.ajax
    - core/drupal
    - core/drupalSettings
    - core/jquery.once

With the above code, we'll be adding the core scripts jquery.js, drupal.js, ajax.js and jquery.once.js to our theme. This will make it available for anonymous users. With YAML, indentation spaces are relevant so you'll need to get that bit right. In addition, we are calling a theme relative script in the theme's js folder, scripts.js. The name -corescripts can be anything you want as long as it matches when you go to attach it in your .theme file as outlined below.

Attach the Library

The next step to actually attach the library we created with a theme preprocess function creating a variable in combination with the #attached method.

/**
 * Override or insert variables into the page template.
 */
function foobar_preprocess_page(&$vars, $hook) {
  // Render the library we defined in foobar.libraries.yml
  $libraries['#attached']['library'][] = 'foobar/foobar-corescripts';
  drupal_render($libraries);
}

Attaching the library above implements provider-namespaced strings i.e. 'gratis/foobar-corescripts' where previously it had an array associated with it. This is new in Drupal 8 Alpha 10 and it through me off for a while until I found a core issue that documented this change. Finally, we use function drupal_render to render the new library.

What's Next?

In a future Drupal 8 related articles, I'll get in to setting custom configuration for your Drupal 8 theme, this comes in real handy and we'll be using YAML with the added addition of using Drupal 8's CMI layer. I'll also talk more about API changes as they relate to themers, it's probably safe to do that now as Drupal 8 is most likely heading toward a beta within the next few months and it seems like many of the major core API changes have been done.

Tags 
  • Drupal
  • YAML
  • Drupal 8
  • Drupal Planet
  • Theming
Resources 
Categories: Elsewhere

David Herron: Stopping server overload, cleaning up the site front page, disabling comments, and general goodness

Sun, 06/04/2014 - 08:09

The last few days the server hosting this site was overloaded, and I finally took a look at the access log, saw a continuous stream of requests that shouldn't be occurring, and realized the "links" row of teasers on the front page needed to go away. The default links row includes one reading "Log in to post comments" but this blog doesn't allow anybody else to register for an account, and in any case comments are handled by Disqus rather than Drupal's commenting system. The link didn't need to be there at all, and the more I looked at the links row the more useless it looked.


Categories: Elsewhere

Unimity Solutions Drupal Blog: Where do you find the Drupal.org Software working group?

Sat, 05/04/2014 - 08:33

Did you know that the Drupal.org Software working group appointed by the Drupal Association provides co

Categories: Elsewhere

David Herron: Do 3rd party commenting systems (Disqus et al) support my community, or theirs?

Sat, 05/04/2014 - 02:45

It used to be that Web 2.0 was the cool new thing, and a core feature was that the audience could leave comments on websites. It's common nowadays for websites to support comments, and comment areas have become (in some cases) a war zone full of partisan bickering. It was ground-breaking the 10ish or so years ago that websites began to support 3rd party comments. Really.


Topics: Online CommunityDrupal PlanetDisqustechsparx
Categories: Elsewhere

Drupal Association News: Drupal.org team week notes #23: Drupal Dev Days Szeged

Fri, 04/04/2014 - 22:05

This week’s notes will be all about something unique, which happened last week: a 7 day long sprint for Drupal.org.

Personal blog tags: week notes
Categories: Elsewhere

Midwestern Mac, LLC: DrupalCon and DrupalCamp news + free DrupalCon ticket!

Fri, 04/04/2014 - 16:19

This week, the DrupalCon Austin sessions have been posted, and I'm thrilled to have one of my session submissions (in the DevOps track) selected: DevOps for Humans: Ansible for Drupal Deployment Victory!.

The session will go over how Ansible can be used to realize faster, easier, and more successful Drupal deployments, as well as Ansible's ability to make sure that every environment is 'like production', so you don't ever have surprises when you deploy code to its final destination.

Categories: Elsewhere

Wunderkraut blog: Getting Acquia certified

Fri, 04/04/2014 - 13:42

So I am an Acquia Certified Developer as of this week. Do I feel any different ? Not really, but i’m glad I did the test a couple of days ago, as it kinda gives you a personal status update on your global Drupal knowledge. Here’s the rundown of my experience.

Getting started


There are already a bunch of blog posts popping up sharing experiences about taking this test, even on our own Wunderkraut blog. But there are two posts I read before doing the test myself which are worth spending your time on: a post by webchick and an article by Tanay Sai. The latter has a nice overview of all the different fields of expertise, with some links to relevant documentation.

Setting up the test was actually quite a breeze. OK, you have to install the Sentinel software package, and you can’t use Chrome, but other than that I had no problems getting started using a Mac. To tell you the truth, I was expecting worse, and the fact that I managed to schedule the test only a few hours earlier was a nice suprise as well.

Doing the test


Well, as Angie recommended, I made sure I went to the bathroom and had plenty of liquids in arm’s reach.

Starting the test, you have 90 minutes for 60 questions, which are all multiple choice. Some questions were actually hard to grasp from the first read. Maybe it were the nerves, but I do remember a couple of questions where I only got the question after reading it for the second time. So do take your time, although you may be pressured by seeing the time ticking away on the exam screen.

The content of the test is quite broad. Being served frontend questions as a mainly backend developer is a good way of knowing what the state of your general knowledge is, outside what may be considered as your comfort zone. So if you never did any theming work, i’d recommend looking into the theming basics. 
And actually it’s the other way around as well. You’re a sitebuilder/themer? Check out some backend basics too.  

The questions can be tricky, giving multiple similar options which can make you doubt at times. Especially in these days of IDEs doing all the code completion work for you, you do need to have a clue about the inner works of Drupal.

Another thing is that the (code) formatting of the questions proved to be a issue in some cases, as it made it hard to distinguish all the different options.

Done!


I completed the test in about 60 minutes, even with reviewing some flagged questions. In hindsight, I should have taken more time, as I still had half an hour left and could've upped my score I guess. But it’s good to know that following my gut feeling, I went through the whole thing just fine. So now it's up to you.

Categories: Elsewhere

Acquia: Drupal 8 + Symfony - "This is what open source is all about"

Fri, 04/04/2014 - 13:11

Part 1 of 2 - I spoke with Richard Miller and Tom Kitchin, software engineers at SensioLabs UK and its parent company Inviqa respectively, via a Google Hangout on Air recently. I wanted to learn more about PHP and Symfony from their perspective and how they think the Drupal 8 and Symfony2 are going to affect each other. In part 2, I learn the inside story on one of the first Drupal 8 sites online, www.sensiolabs.co.uk, what their goals were and how they built it and have kept it running since May 2013, and how Drupal 8 will change the way they design applications for clients going forward.

Categories: Elsewhere

Wunderkraut blog: Grumpy Swedish developer gets tilted and need to change his name

Fri, 04/04/2014 - 12:42

So we got an old windows computer setup to do the exam. Could install teh software needed, launched Sentiel to setup up my profile, and I was told to write my name to test my speed on the keyboard. So I entered my name, and “WRONG!”. Got a password error sign. Now I got confused, I was not told enter my password. But ok, so I entered my password. “WRONG”. I tried to write my name again. “WRONG”. Bullocks.

I tried to contact support from Sentiel application. A chat window opened, and I got a welcome message from the support, nice. So I started to write  my question about the password warning error thing. I did a typo in the question, hit backspace, and Abrakadabra, my screen got tilted, and were now laying on the side. WTF. I guess some software error and mismatch on the Windows computers soft- or hardware. I guess software, you know, it’s Windows.

Opened the control panel, got the screen on right side again, and started to write in the support chat again after starting a new session. And Abrakadabra. Tilted screen. Maybe its a feature….

So I started thinking instead. You got to have a US-keyboard to do the test, and maybe Sentiel just doesnt love my lastname, Schirén. I suspected é here. So I changed the spelling of my last name, with and “e” instead. And yeah. That worked.

Doing the certification text in 20 minutes, let’s see what happens.

EDIT: I passed. Now I am an Acquia Certified Developer. But still a little bit grumpy. I will come back on the issue next week.

Image: "Confused" by Slava

Categories: Elsewhere

alexpott: What next for me? Drupal 8 funding and more

Fri, 04/04/2014 - 10:26

It's been a year since I quit my job to work on Drupal and play with Jack. Many amazingly special things have happened to me. I still remember falling off my seat when Dries asked me to be a committer and lying awake all night with excitement whilst I "slept on it".

Without the Drupal community's support I would have had to return to work much earlier. With everyone's donations through gittip, two companies' financial support and my own savings, I've been able to continue working full time on core. However my savings are diminished and the corporate sponsorship only lasts until 18th April. Fundraising month to month is more than a little stressful when a family is involved. Therefore I plan to take some form of employment. Hopefully I will be able to find some interesting work starting at the beginning of May.

Whatever type of job I take it is important to me that I have the ability to continue to contribute as much as possible to Drupal 8 and have time for my family. What will happen to my gittip? This depends on the type of job I take. If I take a contracting job where I work less than a full work week I will reset my target so that it'll amount to extra time I will work on core. If I take a full time job that allows me to work on core I plan to create a gittip team called "Drupal Core" to which I will transfer all my gittip earnings to this. Obviously, people are free to redirect their gittips as they see fit.

Fundraising and Drupal

There are companies using Drupal that are willing to contribute to core even though the immediate benefits are not tangible. One of the companies that has funded me since December is a Drupal user, but not at all focussed on Drupal development. The only condition for receiving the money is that I do not disclose their name. This is because it is not easy from an accounting perspective for a company to donate money to an individual.

We all know that core is more complex than ever and the interests in Drupal larger. Sustaining Drupal core development is a key challenge for the community. I think we need to seriously consider extending the Drupal Association's remit to be able to coordinate the collection and distribution of funds from major Drupal users for Drupal core development. If this is impossible then this does not mean we should not still try to solve the problem.

Thanks

Feel free to contact me if you have an interesting job offer - especially if it involves Drupal 8.

Lastly, thank you to everyone for your wonderful support.

Tags:
Categories: Elsewhere

Change(b)log: Commerce Marketplace: Installation and use cases

Fri, 04/04/2014 - 09:52
This tutorial will guide you through all the steps required to replicate the Commerce Marketplace demo site on your own server, and then explain how its behaviour differs depending on various configuration settings.
Categories: Elsewhere

Darren Mothersele: Drupal Theme Generator Update

Fri, 04/04/2014 - 01:00

It's been a week now since I demoed my proof-of-concept for an automated theme generator at the Drupal show and tell event so I thought I'd collect together the feedback I've received so far and post an update.

Wrong Approach?

Almost unanimously positive feedback. In fact, it seems other people have been thinking along similar lines:

@mothersele dude! just saw http://t.co/GyV2m41eUe This is something that @jenlampton, @mortendk, @Cottser and I have discussed for 8.x twig!

— Mark Carver (@mark_carver) March 29, 2014

The one opposing view I have encountered wasn't actually against any of the ideas in the theme generator, but suggested that taking over Drupal markup was wrong and that we should be working with what Drupal provides. I know there are arguments for this, and if you want to go this route then you will need some other mechanism for documenting the conversion of your design to Drupal theme. If you want to argue this case, I'd suggest first try having that discussion with Morten, as I'm going to assume that we're all OK with the concept of taking complete control of (completely rewriting) Drupal's markup output.

Annotation

In an earlier prototype I had started working with annotations inside HTML comments but I found these increasing harder to parse as the extractions became more sophisticated. Someone in conversation brought up ideas from KSS and suggested looking at CSS comments as an alternative.

I'm still proposing this as a possible approach (see Docblock), but for now I'm going to continue to annotate the markup (not the CSS) with x- attributes, as no one has had an issue with this, and at this stage it's easier to work with QueryPath to create the extractions based on these attributes. It seems that annotating the markup with x- attributes will be acceptable as long as they are stripped from the markup during the build process.

@rootwork @illepic @micahgodbolt @EvanLovely @mothersele Interesting! Do the data attributes get stripped out during the build step?

— Brad Frost (@brad_frost) March 28, 2014

It was great to get feedback from Brad Frost as his work on Atomic Design has been influential in the development of this process.

In code, or config

In this first proof-of-concept, the generated theme is held in memory, well actually it is persisted as a Drupal variable containing a single object that holds the result of all the 'extractions' from the source. The original intention was that this would actually be a ctools exportable, so that it could be exported and managed as part of the configuration management process for the site.

This is how the Panels flexible layout builder works. It has one parent layout plugin that programmatically declares child layout plugins based on the layouts you define using the layout builder tool. These child layouts are stored as exportable objects, so they can be exported using Features. The current Hyde theme generator approach is similar, except that the parent plugins (for layout or styles) programmatically declare child layout and style plugins based on the result of each extraction from the HTML source design.

Storing the result of the build in configuration or database raised some concerns, mainly over capturing the results in version control. These tweets summarise the issue:

@mothersele interesting implementation. But I believe that should definitely generate theme in code, not just DB @mcjim @MattFielding

— Tom Bamford (@waako) March 28, 2014

@waako If a prototype is always in sync with a Drupal theme, the markup *is* all in code right? // @mothersele @mcjim

— Matt Fielding (@MattFielding) March 28, 2014

Matt picks up on my original intention, in that the design/theme would be captured in code and be version-able because the translation is automatic from the design's HTML/CSS/JS.

The difficulty is in managing any changes that happen to the generated code once it becomes a Drupal theme. This is exactly the problem that using the theme generator is trying to solve. That it provides a documented, repeatable conversion process, so that design can become part of the (agile) development workflow.

However, it is going to be unavoidable that some tweaking will be needed. This covers a couple more issues that were raised at the Drupal show-and-tell event:

  • How to manage logic in template files?
  • How to capture Drupal's pre-process functions?

The approach I am looking at to solve this, is one I've seen practised by other tools that involve code generation. For example, have you seen BDD using Behat? When define a test scenario in Behat it generates stub code for any unrecognised steps in your tests. For example, if you say "Given I am in a directory", you would get the generated stub code:

/** * @Given /^I am in a directory "([^"]*)"$/ */ public function iAmInADirectory($argument1) { throw new PendingException(); }

I think the theme generator could do something similar for elements marked as requiring pre-processing in the template file. This needs some further thought and perhaps a couple of experiements.

Terminology

Still struggling with naming conventions. If this is going to be a more general tool then need generally understandable terms (like 'component'). But, need to avoid overloading terms even more, as it's already quite confusing having SMACSS modules, Drupal modules, panels, blocks, boxes, styles, layouts. urgh!

Next steps...

@mothersele @mark_carver I love it. Also love that it works w/ panels! Q: Are the layout plugins placed in the theme? @mortendk @Cottser

— Jen Lampton (@jenlampton) March 31, 2014

So, I'm going to revise the current proof-of-concept and produce a second prototype. This time as a Drush command that generates an actual Drupal theme. Rather than holding the extracted theme in configuration it will generate a theme folder, that will include all the usual Drupal theme files, plus any plugins for Panels layouts, styles, display suite etc, and the CSS/JS copied across from the source design.

This will allow Hyde to generate stub code for pre-processing or other programmatic tweaks that are needed to get Drupal's output to match the design markup. I also think people will be more accepting of this approach as it's probably more like how it is expected to work.

My worry is that people will then hack the generated theme, it will go out of sync with the source design markup, and that will break the whole process.

If you want to get involved, please drop me a line. I need input from designers, themers, and developers. In particular, I'd be interested to speak to anyone else already using Atomic Design and/or SMACSS on Drupal projects.

Categories: Elsewhere

PreviousNext: Object-oriented page callbacks for Drupal 7

Fri, 04/04/2014 - 00:45

In Drupal we use object-oriented page and form callbacks to ease our programmning burden This is a nice improvement that allows us to encapsulate the functionality of one or many page callbacks into objects, with all the benefits that brings. Is it possible for us to us object-oriented page callbacks in Drupal 7? With a few tricks, yes it is. This article shows you how.

This is part of a continuing series of using Drupal 8 programming techniques in Drupal 7.

Categories: Elsewhere

PreviousNext: Object-oriented page callbacks for Drupal 7

Fri, 04/04/2014 - 00:45

In Drupal we use object-oriented page and form callbacks to ease our programmning burden This is a nice improvement that allows us to encapsulate the functionality of one or many page callbacks into objects, with all the benefits that brings. Is it possible for us to us object-oriented page callbacks in Drupal 7? With a few tricks, yes it is. This article shows you how.

This is part of a continuing series of using Drupal 8 programming techniques in Drupal 7.

Categories: Elsewhere

Wunderkraut blog: Does Acquia Certification give you personal ROI?

Thu, 03/04/2014 - 23:48

I’ve been recruiting many Drupal developers. The process is usually a mixture of random in-depth questions, a drupal.org profile review and pure intuition on the applicant’s fit for our company.

That’s why I felt genuinely interested in the recently published Acquia Certification program. Could a single test provide a trustworthy distinction between a seasoned and an unexperienced Drupal developer? I got to test myself a couple of days ago.

The Acquia Certified Developer Exam promised to analyze a testee’s knowledge of Drupal as well as web development skills in general. The covered areas are so overly wide that it is pretty hard to cover all corners with 60 multiple choice questions. Drupal was naturally present in most them while some of the other development topics were covered only by one or two.

The test time was limited to 90 minutes which I spent completely. The most time consuming part was reading the questions themselves.  I would have made the answer options tricky, not the questions. The questions were  quite lengthy, trying to mimic a real life case of an freelancer. An entreprise level questions would have had more focus on testing, scalability, deployment and documentation - not to mention drupal.org participation.

My overall feeling about the exam was positive. Althought I would have preferred the test being split into more specialized, separate tests, the certificate test gives what it promises. After completing my test, I got the results which reflected in my mind quite well my personal skills.

For sure one cannot pass the test only by guessing so the certificate is a valid testimony of prior in-depth Drupal experience. That’s why having a Acquia Certification in your CV will give you additional credibility and personal ROI. It will grow from personal ROI to corporate ROI when becoming an acknowledged selling point as well as a decision criterion in tendering processes.

 

Categories: Elsewhere

ThinkShout: Reflections on Drupal Day: Creating a One-Size-Fits-All Day for Nonprofit Professionals and Technologists

Thu, 03/04/2014 - 17:00

Originally published March 26 on NTEN.org

Learning a new technology can be incredibly intimidating, especially if you’re going at it alone. There’s great comfort in knowing that you’re not the only one with those particular questions or having this recurring, frustrating problem. Stranding yourself on a technological island is so unnecessary, especially given how accessible learning resources are these days. This is the beauty of the modern technology communities.

Specifically, the Drupal community. It’s everywhere, it’s friendly, and it’s full of helpful people excited to share their expertise and bring new talent into the fold. I spent the last four months preparing for Drupal Day, a Drupal-centric, day-long workshop that ThinkShout coordinates as part of NTEN’s Nonprofit Technology Conference (NTC). I didn’t quite understand the scope of this community until those months finally culminated in the big day.

The process was an interesting one for me especially, as it was not only my very first Drupal Day but also my first experience at the NTC. How do you create a one-size-fits-all day for a large group of people, both nonprofit professionals and technologists, with a wide range of technical competency levels?

It may not be a perfect fit, but so long as there are options, your attendees remain in control and are able to choose the sessions relevant to their interests. With the collaborative efforts of our sponsors and nonprofit feedback, we were able to put together a day jam-packed with content.

My experience with Drupal Day left me with a few key takeaways for those looking to dive into Drupal:

1. The Drupal community really is awesome.

Drupal.org is only the beginning, but it’s a fantastic beginning full of answers. There are forums, an archive of resources, and even a live chat if that’s more your speed. There’s a wealth of information available to you online, all of it curated by the people that know and love Drupal best. This community isn’t purely digital, either. If you live in a large city, chances are there’s a Drupal meetup near you. If you’d prefer to meet face to face, you can, whether it’s through a local event, full-blown DrupalCon, or nonprofit summits at NYC Camp, and BADCamp. You can also access paid training on BuildAModule, but the best part is that you can meet Christ Shattuck, the BuildAModule instructor, in person at a ton of these events. You’re going to start recognizing people quickly, and it’s going to be more helpful than you might think.

2. Learn from others’ stories and share your own.

One of the draws of Drupal Day is that it’s a great opportunity to hear from nonprofit decision makers about their experiences with Drupal. This year, every single one of our speakers represented a nonprofit with a successful Drupal story and each came from different technological backgrounds. We chose speakers that we believed had great, impactful stories that Drupal Day attendees could learn from. This year, Erin Harrington from The Salmon Project, Jess Snyder from WETA, Porter Mason from UNICEF, Milo Sybrant from the International Rescue Committee, and Tony Kopetchny from Pew Charitable Trusts joined us to share their experiences. You can learn more about their projects by clicking through to their websites.

3. Every question is a good question.

There really aren’t any dumb questions, especially when it comes to Drupal. The community embraces newcomers and fosters a great environment for learning. No matter your technical competency level, they’ve got an answer for you. This is why we structured Drupal Day 2014 the way we did: nonprofit speakers in the morning talking about their personal accounts of their organization’s experience with Drupal, followed by an afternoon of twelve breakout sessions covering a variety of topics, where guests could move from classroom to classroom easily. We collaborated with our developer sponsors and nonprofit attendees to determine what information was most relevant to nonprofits. We crafted a day around the topics they wanted to learn about. Everything from Google Analytics to content creation had a place at Drupal Day.

The Drupal community is one that needs to be experienced to truly understand its value. It’s a wonderful stage for nonprofits, no matter where their organization is at technology-wise. Drupal Day is a prime example of that, but there are many more events on the horizon, which I highly recommend if you’re on the fence about diving into Drupal. Of course, I also encourage everyone to come out to Drupal Day at the next NTC and see just what exactly it feels like to be part of this fantastic community.

Categories: Elsewhere

drupalsear.ch: This week in Search API - Meeting notes 01/04/2014

Thu, 03/04/2014 - 16:59

On Tuesday, April first we had our first Search API Online meeting using Google Hangout. The following is a result of what was decided and said. It's also a start of this week in Search API so that we allow you to follow along.

What have we done

Frederick fixed the batch process, needs to be tested
During Drupal Dev Days we made 322 commits
Heaviest hours were from 09:00 till 19:00 and then it went up again from 22:00 till 24:00. Thanks to freblasty we even had commits during the middle of the night, 9 of them at 04:00.
Wednesday was our most productive day with 75 commits. Saturday was our low point with only 36 commits, I guess that has something to do with the party on Friday evening…!
20834 lines were added, 11996 were removed
In total we had 15 contributors!!!!
A blog post with more details will be posted soon.
http://drupalsear.ch/rocketship/all/all now features the issues from the sandbox also. If you see issues in Needs Review, please go in and review and/or put your opinion.

What will we do

In General more tests for the processors is our main focus
The indexing logic needs to be reviewed and tested
We’ll move to the proper Search API project once basic functionality is working and we want to work on features.
freblasty is going to move all the issues from the google doc to the sandbox issue queue.
drunkenmonkey will review if the information is clear enough on the main Search API Module page so that people are guided towards best practices and they can join the effort.
Nick_vh will figure how search api tests quickly locally using drupal.org docker images.
Nick_vh will figure out how to proceed with a this week in Search API blog post (which is what you are more or less reading right now).
Nick_vh will register drupalsear.ch and link d8searchapi.acquia.com to it.

For your information

freblasty has a holiday and seems he has time to work on some harder issues. He needs some cheering!
We decided that we'll talk about multiple entity types per index next meeting.
Before committing/pushing, we will always run tests.

Tags:
Categories: Elsewhere

Blink Reaction: How to Add the Current Date to a View in Drupal 7

Thu, 03/04/2014 - 15:31

Today, someone in IRC asked how to add the current date to a View they were working on. Seemed simple enough, and I offered to help, thinking it was just a matter of sticking a token in the View header. And it was...sort of. Incredibly, Google searches turned up only code-based solutions. Overkill. Here's a UI-based approach.

To add the current date to the top of a View, follow these steps:

Categories: Elsewhere

Pages