Subscribe to Propeople Blog feed
Updated: 1 hour 13 min ago

Propeople Wins Gold at the Danish Drupal Awards

April 14, 2014 at 5:55am

Propeople was the big winner at the first ever Danish Drupal Awards. This new competition acknowledges the agencies and companies that excel in Drupal web design and development. Propeople won gold in 5 of the 7 award categories, one in every category for which we were nominated!

Drupal agencies in Denmark were the ones who nominated, and voted for, each other (with individual companies not able to vote for themselves). It is, of course, a great recognition for the winners to have been chosen by those that make up the industry itself. As a Drupal company that started in Denmark, Propeople is incredibly proud to have received this acknowledgement and seal of approval from our colleagues in the Danish industry.


Propeople at the 2014 Danish Drupal Awards

Propeople walked away from the ceremony with awards in the following categories: Best Drupal Website, Best Drupal Media site, Best Drupal NGO Site, Best Drupal Intranet, and Best Public Drupal Site. The last three awards were won in collaboration with Bysted, one of our sister companies who, like Propeople, is a part of the Intellecta Group. The awards bestowed upon Propeople are a testament to the quality and professionalism of our team of web specialists and Drupal experts, and we couldn’t be happier about them! See below for a video recap of the awards ceremony, and a list of the winning websites. 


Video of Drupal Award 2014 - Propeople


The Winning Websites

Best Drupal Website:
Gold Award: , created for Nordisk Film by Propeople

Best Drupal NGO Site:
Gold Award:, created for Wonderful Copenhagen by Propeople and Bysted

Best Drupal Intranet:
Gold Award : KK intranet, created for the Municipality of Copenhagen by Propeople and Bysted

Best Public Drupal website:
Gold Award:, created for Wonderful Copenhagen by Propeople and Bysted
Bronze Award:, created for the Municipality of Roskilde by Propeople and Bysted

Best Drupal Media site:
Gold:, created for Nordisk Film by Propeople

The awards bestowed upon Propeople are a testament to the quality and professionalism of our team of web specialists and Drupal experts, and we couldn’t be happier about them! If you want to learn about how Propeople can make your next project a winning website, make sure to contact us.

Tags: PropeopleDrupalAwardsDenmarkCheck this option to include this post in Planet Drupal aggregator: planetTopics: Business & Strategy
Categories: Planet Drupal

Drupal Developer Days 2014

April 10, 2014 at 8:10pm

I recently had the good fortune of being a part of Drupal Developer Days 2014 in Szeged  - my first Dev Days! It was a really amazing mix of experiences for me, from visiting Hungary for the first time to meeting lots of new people and, of course, lots of Drupal.

Szeged is a beautiful city in Southern Hungary that is no stranger to Drupal (the city hosted DrupalCon Europe 2008), and was a pleasure to visit. If you’re not familiar with Drupal Developer Days, it is an event focused on bringing the Drupal community together to work on the development of the Drupal project. The event presents a great opportunity for some of the leading Drupal experts and developers to work on, and learn about, Drupal 8 in depth before it’s widely released. Dev Days featured code sprints, workshops, sessions, BoFs, after parties and was overall a great time.

Since I’m not a quite Drupal 8 ninja (yet!), I was eager to find opportunities where I could help and learn at the same time. With this in mind, I decided to pick two sprints to add to my schedule: the sprint and the Search API migration sprint. Sprint

I knew Drupal user @tvn before the event and had some experience with stuff, so I figured this sprint would heat up to be llots of fun. We started with 89 open issues and 5-6 people in our team. Tasks ranged from “the tiny ones” ( to “the big problems” ( But is anything really a problem if you have @tvn, @jthorson, and @jessebeach around? These guys spent a week and closed nearly 50 issues! Yep, some of them are still in review or RBTC, but the majority are resolved. You can find more info here.

Drupal Dev Days Szeged 2014 - Photo by Dasjo

Search API Migration Sprint

If you’re familiar with Drupal, you probably know the ApacheSolr and Search API modules and their maintainers: @nick_vh and @drunken_monkey. I was lucky to have a chance to be here with them and merge these two monsters into one single pretty baby! The code is currently inside an external sandbox now ( but will be released as a new version of Search API module soon! It was here where I spent most of my days in Szeged, and was in the great company of some talented geeks: @mollux, @aspilicious, @Andrew_l, @Andre-B and others. Before Szeged Dev Days, SearchAPI 8.x was almost clean repo, but now you can already come and try the feature contrib search solution for Drupal 8. We have migrated almost all the code from 7.x version - most of it is already ported to new standards, and some of it has been covered with web and unit tests.

Szeged Drupal Dev Days was awesome, and a great opportunity to learn more about Drupal 8. I would definitely recommend attending any upcoming events like this. Where else can you meet such amazing teams, learn lots of new  stuff about Drupal 8, phpunit, symfony, etc. and feel the spirit of Open Source?

See you there!


Tags: DrupalDrupal Developer DaysDrupal eventsCheck this option to include this post in Planet Drupal aggregator: planetTopics: Community & Events
Categories: Planet Drupal

How to Configure CyberSource Secure Acceptance Web/Mobile in Drupal 7

April 1, 2014 at 11:31pm

Drupal is a great platform for ecommerce. If your business needs a Drupal website that accepts payments, a good payment system to use is CyberSource Secure Acceptance Web/Mobile. This tool allows business to accept payments made online, over the phone, and through mobile devices without ever handling toxic payment data. CyberSource is owned by Visa and integrates quite nicely with Drupal Commerce.

It consists of securely managed payment forms or as a single page payment form for processing transactions. This allows you to decrease your Payment Card Industry Data Security Standard (PCI DSS) obligations, thereby reducing any risks associated with handling or storing sensitive payment information.

In order to get this up and running on your Drupal website, you simply need to follow a few steps:

1. Create and configure Secure Acceptance profiles

2. Configure CybeSource profile with Drupal

3. See the results!


Creating a Secure Acceptance Profile

Important: For using a Secure Acceptance experience, an active profile is needed.

A Secure Acceptance profile consists of settings that you configure to create a customer checkout experience. In order to create a Secure Acceptance profile, you need to:

1. Log in to Business Center with Merchant ID:

Business Center Login

Note: If you don't have a Merchant ID you will need to create one (

2. In the left navigation panel, choose Tools & Settings > Secure Acceptance > Profiles > Create New Profile.

3. Enter Profile information

Create Profile

  • Enter profile name
  • Enter profile ID. The profile ID is case sensitive and must be exactly 7 alphanumeric characters. This field is used in each transaction to identify and display the Secure Acceptance profile.
  • Enter a profile description
  • Check Web/Mobile
  • Enter a company name
  • Check Payment Tokenization, Decision Manager, Enable Verbose Data

4. Click the Create button. The Profile Settings page appears. You must activate a profile in order to use it, and you must configure these required fields before activating a profile:

  • Payment Settings
  • Create a Security Key
  • Display a Customer Response Page

Test Profile Cybers


Configuring Payment Settings

You must select the card types that you wish to offer to the customer as payment methods. For each card type you select you can also manage currencies, CVNs, and payer authentication options.

The Card Verification Number (CVN) is a three- or four-digit number printed on the back or front of a credit card. This number helps to ensure that the customer has possession of the card at the time of the transaction.

To add a card type and enable the CVN you must:

1. On the “Profile Settings” page, click Payment Settings. The Payment Settings page appears.

2. Click Add/Edit Card Types. The Add/Edit Card Types window appears.

3. Check each card type that you wish to offer to the customer as a payment method.

CyberSource Edit Visa Settings

4. Click Update.

5. Click the pencil icon in the column for each card type. The Edit Card Settings appears.

6. Check CVN Display and CVN Required to display the CVN field on Secure Acceptance.

7. On the “Currencies” section click Select All or select a currency and use arrow to move it from the Disabled list to the Enabled list.

CyberSource Edit Visa Settings

8. Click Update

9. In the Automatic Authorization Reversals section (on the Payment Settings page) check Fails AVS check and Fails CVN check. Authorization is automatically reversed on a transaction that fails an AVS check or a CVN check.

CyberSource Payment Method

10. Click Save.


Creating a Security Key

The security script signs the request fields using the secret key and the HMAC SHA256 algorithm. To verify data, the security script generates a signature to compare with the signature returned from the Secure Acceptance server. You must have an active security key to activate a profile. A security key expires after 2 years. The security key protects each transaction from data tampering.

To create and activate a security key:

1. On the “Profile Settings”page, click Security. The Security Keys page appears.

2. Click Create New Key. The Create New Key page appears.

3. Enter a Key Name (required).

4. Chose signature version Version 1.

5. Choose signature method HMAC-SHA256.

CyberSource Create New Key

6. Click Generate Key. The Create New Key window expands and displays the new access key and secret key. This window closes after 30 seconds.

CyberSource Create New Key

7. Copy and save the access key and secret key.

  • Access key: Secure Sockets Layer (SSL) authentication with Secure Acceptance.
  • Secret key: signs the transaction data and is required for each transaction.

By default, the new security key is active.

8. Click Return to Profile home. The “Profile Settings” page appears.


Displaying a Customer Response Page

You can choose to have a transaction response page displayed to the customer at the end of the checkout process, and a cancel response page displayed during the checkout process. Enter a URL for your own customer response page or use the CyberSource hosted response pages.

To redirect a customer after Check-out:

1. On the “Profile Settings” page, click Customer Response Pages.

2. Under the Customer Redirect after Check-out heading, enter the URL for the custom page that the customer will be redirected to after checkout.

3. Click Save.


Activate Profile

To make your profile active:

1. On the "Profile Settings" page, click Promote to Active


CyberSource Promote to Active

2. Your profile is now active!

CyberSource Active


Drupal Site Configuration

1. Install the Commerce CyberSource Secure Acceptance Web/Mobile contrib module.

2. Check that the module Payment UI is enabled.

3. From the Drupal admin menu, choose Store > Configuration > Payment Methods (or access path admin/commerce/config/payment-methods).

4. Select Edit Operation for payment method rule “CyberSource Secure Acceptance Web/Mobile”

5. Edit the rule action “Enable payment method: CyberSource Secure Acceptance Web/Mobile”.

6. In the Payment Settings section enter the Secure Acceptance profile details.

7. Enter Profile ID (configured during Step 3 -  Secure Acceptance Profile)

8. Enter Access Key and Secret key you created (see “Creating a Security Key” above)

9. Select Transaction mode:

10. Set Transaction Type to “Authorize Funds”

11. Locale (ex: English - American)

12. Set Payment method to “Card”

13. Enter text for Payment Submit Button Text.

14. Click Save.

15. On the Payment methods page, enable the rule for CyberSource Secure Acceptance Web/Mobile.

Now, on the completion of order you can select Credit Card as the payment method.

CyberSource Choose Payment Type

After you click on “Continue to Next Step”you wil berl redirected to the Cybersource site.

CyberSource Details

After completion, and the display of CyberSource payments details, you will be redirected back to your Drupal site.

And that's it! If you follow all of the steps above, CyberSource Secure Acceptance Web/Mobile should be configured on your Drupal 7 site in no time. Make sure to contact us if you are looking for a technology partner to help you ensure the success of your Drupal business or ecommerce website. 

Good luck. 

Tags: DrupalDevelopmentpayment systemecommerceDrupal for BusinessCyberSourceCheck this option to include this post in Planet Drupal aggregator: planetTopics: Tech & Development
Categories: Planet Drupal

How to Make Your Drupal Project and Its Stakeholders Friends, Not Enemies

March 21, 2014 at 8:22pm

At times, client and vendor alike can get a mental picture of organizational stakeholders as the apocalyptic horsemen riding in at the last minute and ruining a perfectly good Drupal website project. The thing that we at times don’t understand is that stakeholders... are great. Some of the most honest, direct, and insightful feedback or ideas that a product owner or project manager can get are going to come from stakeholders. Stakeholders are not to be feared, there are just a few tricks to getting the big wigs involved at the right time with the right input. Let me help you do that with three simple concepts.


Drupal is a simple CMS that can be used to do very complex things. And like some of the projects that we as a Drupal company have undertaken, the organizations interested in Drupal support might look simple, but can have some complex behind-the-scenes workings. The best way to get a hold of the tiger by the tail is to talk about stakeholders as early in the process as possible. Large projects will generally have one or two main points of contact on the client side do most of the regular communication and decision making.

At Propeople, we’re making an effort to sit down with those individuals very early, and understand as much about the inner workings of their organization as possible. As the Drupal experts, it’s often up to us to spot trouble before the client even sees it coming. The better we can understand the client’s organization, the higher the chance that we can stop problems before they start. Spoiler alert, if you decide you want to do business with Propeople, keep an eye out for our “responsibility matrix” discussion in the early meetings as a project gets underway.


People familiar with web development, client contacts who have worked with vendors before, and our Drupal experts might understand how projects do and don’t work, but stakeholders probably have different things on their minds. Stakeholders care about whether or not a product is going to reflect well on the organization that they work hard to protect, and if the site is going to act the way they expect it to. To avoid problems at the eleventh hour, it’s important for client and vendor points of contact to sit down and discuss what is possible and what isn’t; making sure that information is repeated, forwarded, communicated, presented, or whatever is necessary to get it to the body of decision makers.

For instance, it’s probably important to make sure that stakeholders understand that when they sign off on designs, they’re signing off on the functionality that goes with them as well. It’s not uncommon for stakeholders to take a look at a project after all the work has been done and change their minds about functionality. If client and vendor discuss change or feature requests up front and make sure that stakeholders understand that the cost of a project is paying for real hours by real developers and not a flat fee for a website with unlimited changes, things tend to go much smoother.


When looking at how a project timeline lays out, consider the time requirements to get sign-off from every level of the food chain. If the stakeholders aren’t consulted for project feedback until the project is already “complete” both client and vendor may find themselves re-doing a lot of work that could have been done correctly the first time if stakeholder input was planned from the beginning.

Stakeholders are real people too. In fact, most stakeholders are rational, intelligent people who makes good decisions and act as team players as long as they are given the rules of the game up front. Always remember that in any given project there are lots of individuals with different goals and opinions. When client and vendor make intentional efforts to discover more about each other, educate everyone about the collaboration that is about to unfold, and plan for success, it’s amazing just how much everyone starts to like each other, and how successful a project turns out.

Feel free to contact me with any questions, or to learn more about how Propeople can work with you and your stakeholders to make your next project a success. 

Tags: DrupalStrategyproject managementDrupal for BusinessCheck this option to include this post in Planet Drupal aggregator: planetTopics: Business & Strategy
Categories: Planet Drupal

How to Master Contextual Links On Your Drupal Website

February 20, 2014 at 11:55pm

While developing Drupal websites, I have been faced with the problem of adding custom contextual links to different elements like: taxonomy terms displayed as rendered entities, blocks created with Ctools plugins, custom blocks and other.


Contextual links are links attached to elements such as nodes, blocks, views displays and others. When you hover on a specific region, a gear image appears. Upon clicking it, the image shows the list of contextual links. You can see an example below.


Some modules provide contextual links that allow users to edit views, nodes, taxonomies and other elements, but there are situations when contextual links need to be created in a custom implementation.



Add a Custom Contextual Link to the Taxonomy Term View


In my case, I have a view that shows Taxonomy terms from the Service Category vocabulary as Rendered entities, without fields.


For each term, a contextual link should be added to the page where the term information can be edited, and the link would allow privileged users access to that page. This task can be accomplished using template_preprocess_taxonomy_term() to edit variables that will be used in the template file (taxonomy-term.tpl.php or taxonomy-term--service_category.tpl.php) and hook_contextual_links_view_alter(). In the preprocess function, the contextual link element can be added in the $title_suffix array.



In hook_contextual_links_view_alter() are the altered contextual links elements before they are rendered. In this case, a new link is added.



An important thing is that a class should be added for the region wrapper that includes contextual links. This class is contextual-links-region, and it makes it possible to show the contextual links region when you hover on the gear icon.



As a result, the taxonomy term entities will be displayed with a contextual link that will allow users that have administer taxonomy permission to access the term edit page.



Custom Contextual Links as Render Elements


Contextual links can be added to elements like blocks using a renderable array. For example:




Theme function in the example is used to add a template where the wrapper with the contextual-links-region class will be added:



And the content of the template file:



Finally, the result will be a block in which content is wrapped with a contextual link region. Clicking on the gear icon will display the link to the vocabulary edit page.


You can find more info here: . Please post any comments below. And make sure to subscribe to our mailing list to receive our blog feed.



Tags: DrupalDevelopmentcontextual linksCheck this option to include this post in Planet Drupal aggregator: planetTopics: Tech & Development
Categories: Planet Drupal

It's Time to Upgrade Your Drupal 6 Site

February 11, 2014 at 10:27pm

Drupal 6 was released in February of 2008. At the time, George W. Bush was still president, XP was the latest Windows OS, songs like “Pocketful Of Sunshine” and “Just Dance” were on top of the charts, Fidel Castro was President of Cuba, some people thought that turning on the Large Hadron Collider would create a black hole and destroy Earth, and Heath Ledger - the most terrifyingly hilarious Joker to appear in a Batman movie - had not yet passed away.


Welcome to 2014. Processing speeds are faster, MacBooks and iPads are now MacBook Airs and iPad Airs, "Demons" by Imagine Dragons is now dominating the airwaves, the "God Particle" has been discovered, Batman - who is not being played by Christian Bale (which I am not okay with) - is teaming up with Superman, and Drupal 8 is just over the horizon. And much like that laptop that you bought a couple of years ago (yes...the one that you spent so much money on and was so future-proof that you swore you wouldn't need to buy one until the next decade), a lot of us are thinking it's okay, my Drupal 6 site is working just fine.


But are we right? I checked in with some of our experienced Drupal developers and asked how much better can Drupal 7 possibly be compared to its D6 little brother?

“About a million times better…”

“An awful lot”


Oh. So maybe there is something to this after all. But I hear Drupal 8 is coming out pretty soon, so shouldn’t I just wait to change my D6 site to D8 after it is released?

“All the [D8] third party integrations and futureproofing, plus a really improved front-facing UI have me pretty stoked. In-line editing, responsive out-of-the-box, Twig...”

“We aren’t seriously working with D6 nowadays, are we?!”

I’m realizing that developers are definitely excited for D8, but that’s part of the problem. Many quality developers are already ditching the D6 ship and gearing up for D8. When D8 is released, almost all valuable support for D6 will be gone and bug fixes for even the core will cease. At that point, security for D6 websites will not be up to date, and if things go wrong with a site, they are going to go very wrong. Unfortunately, it won’t be possible to just jump to D8 as soon as it’s released.

“I’d say we won’t be able to use Drupal 8 for 1 year from now at very-very minimum. The API completion phase is supposed to begin on July 1st; that’s when Drupal 8 betas will start appearing. So, ideally, we’ll have a release by the end of the year- somewhere in the 4th quarter plus some time- and maybe 4-6 months to get contrib modules in stable shape so they can be used on business-critical websites.”

You’re not laughing anymore. From a business standpoint, it can often be hard to justify upgrading to something that is going to be “second best” in the foreseeable future. Nobody wants to buy an Apple product a couple months before the newer better cheaper line of futuristic tech is about to be unveiled. Nobody wants to start liking a popular song right before everyone is about to forget about it. I didn’t want to like Heath Ledger as the best portrayer of The Joker ever right before his tragic demise made it impossible for the character to ever be played so well again. So it’s understandable when there is resistance to switching away from a D6 website. After all, my website is working just fine right? Look, my information is on the web, people are viewing my page, everything is fine.

But it’s time that we stepped swiftly into 2014 and realized that an effective web strategy involves maintaining a website just like we would maintain any other business product. Our websites are products, and when we make them change and grow with us, our audience notices. In fact, our audiences often increase as a result of SEO boosts that growing and changing websites enjoy. Expecting a website from the last decade to keep pace with the latest is like showing up to a business meeting in a 1986 Mustang and not understanding why a billion dollar company didn’t take you seriously. Don’t misunderstand me, I love the eighties, I love Mustangs, and I’m sure you take good care of it and that it runs quite reliably. But dynamic content, added features, and upgrading versions are what we have come to expect as users, so we should start expecting it when we deliver a site as well.

Let go of Drupal 6, forget about the recession of 2008, buy yourself a ticket to an Imagine Dragons concert, and start working on a shiny new Drupal 7 site with refreshed strategy, bold content, and exciting new features. Do it with the help of a leader in Drupal, like Propeople, and you’ll never regret it. While you’re at it, stay ahead of the curve and make sure that your long term web goals include a jump to Drupal 8 in two to three years when everything is really running smoothly. Build a habit of revitalizing your web presence instead of staying stagnant, and you’ll notice a lot of positive results.

If you have any questions, or simply want to know more, don’t hesitate to leave a comment below or send me an e-mail.

Tags: DrupalUpgradeDrupal 6Drupal 7Drupal 8Check this option to include this post in Planet Drupal aggregator: planetTopics: Business & Strategy
Categories: Planet Drupal

Theming Layers in Drupal

February 5, 2014 at 7:03pm

As you might already know, Drupal nodes are composed of multiple template files assembled together and displayed to the user.

An elegant and recommended solution to theme layers in Drupal is to use hook_theme(). This hook allows us to declare theme_hooks and return an array with the information about the hook, where the keys are the hook name and its values, plus general information about the hook. Here’s a simple example:


<code language="PHP">
* Implements hook_theme()
function mymodule_theme() {
 return array(
   'mymodule_template' => array( // Theme hook name.
     'template' => 'templates/mymodule-template', // Path to your template file.
     'arguments' => array(''), // Passed default arguments.


We declare the hook name after the implementation type and give the full path to the PHPtemplate file (Drupal will look for the mymodule-template.tpl.php file in the template folder).

So how will we use this hook? Suppose we use hook_menu() to declare our custom callback. In menu callback, we will call our theme hook and pass some variables to be processed.


* Implements hook_menu()
function mymodule_menu() {
 $items['mymodule/callback'] = array(
   'page callback' => 'mymodule_callback',
   'age arguments' => array(),
   'access arguments' => array('access content'),
   'type' => MENU_CALLBACK,
 return $items;


Now, let’s take a look at the menu callback. We will call the ($hook, $variables = array()) function to theme the output of the callback. The first argument is the theme’s hook name, and the second is an array of variables to be rendered.



* Menu callback.
function mymodule_callback() {
 $output = theme('my_template', array('page_title' => 'Using theme hooks', 'page_text' => 'This is some text...'));
 return $output;


Our callback will invoke the my_template hook and will render the variables passed as arguments. The result will be a page rendered with mymodule-template.tpl.php. With the content of PHPTemplate files, we can customize the html output by adding class attributes, changing markup order or  print other variables.



<div class="custom-template">
 <h2 class="title"><?php if ($page_title): print $page_title; endif; ?></h2>
 <div class="text">
   <?php if ($page_text):?>
     <p><?php print $page_text; ?></p>
   <?php endif; ?>
 <div class="alter-data">
   <?php if ($alter_data): ?>
     <p><?php print $alter_data; ?></p>
   <?php endif; ?>



You might be wondering how to override theme hooks. We can do this by using a function called THEME_HOOK(). We use it to modify variables, array structure, or alter variables before the template field is invoked with the TEMPLATE PREPROCESS function, in our case module_preprocess_HOOK(&$variables);



* Template_preprocess().
function mymodule_preprocess_my_template(&$variables) {
 $variables['page_text'] .= ' This line was added from preprocess_my_template().';



The theme layer approach is a clean an easy way to create and customize template files. Hope you find it useful!

 Tags: DrupalDevelopmentthemingCheck this option to include this post in Planet Drupal aggregator: planetTopics: Tech & Development
Categories: Planet Drupal

7 Things Your Marketing Staff Should Know About Drupal

January 29, 2014 at 1:15pm

Does your marketing department know that Drupal is great for business? Drupal is a popular Content Management System, and one of the top frameworks used by Fortune 500 companies. I can assure you, that it’s not just because those companies like the name of it. Security, scalability and flexibility make Drupal popular among the big boys, but that is not all - Drupal is also a great marketing platform! Those who know this are one step ahead of the rest. We call them the “Enlightened”.

So let’s cut to the chase, shall we? Here are seven important facts those managing your marketing efforts must know about Drupal.

You can integrate any CRM with Drupal

One of the keys to marketing success is efficient data analysis. In order to create effectively-targeted online campaigns, your marketing staff needs to know as many details about your visitors as possible. Google Analytics is a great tool to get started with, but eventually your business will need something more precise - a Customer Relationship Management tool.

Fortunately, Drupal can be integrated with any CRM tool out there. For example, Sales Force, one of the leading players in the CRM software business, has a dedicated article on their website which describes how easy it is to integrate their software with Drupal, and provides detailed information about data synchronization between your Drupal-powered site and Salesforce CRM software.

Drupal also has a bunch of great CRM modules that can be installed and configured.

Drupal is great at SEO

Times are changing, and SEO is not what it used to be. For many of us, it may seem hard to keep up with all the new trends and SEO techniques. Not for Drupal. By default, Drupal comes with a set of powerful SEO features, and these are supplemented by a collection of constantly updated and improved SEO modules.

Drupal’s well-crafted structure provides a huge SEO advantage to your website. It facilitates good optimization of any type of published content. Images and videos can be optimized on the go, and this is great! It saves time and keeps you away from that HTML code that you probably don’t want to be playing with. Another great feature of Drupal is that it gives you complete control over your URL structure. You can attribute custom URLs to any content item on your website based on your best judgement.

Everything from Drupal’s categorization system to its clever information architecture make it perfect for Search Engine indexation.

Content is king, and Drupal knows it!

Content Construction Kit! These three words represent the answer to any type of content-related question when it comes to Drupal. Content Construction Kit, CCK for short, is the module that will turn any content marketing fantasy into reality. CCK allows you to create endless content types and customize them based on your defined strategy. No programming knowledge is required.

Additionally, Drupal is flexible and extendible. These two features are critical if you need a platform to be the foundation of your marketing content. The arrangement of content on your website is very important. Manipulating the structure of your pages should be easy, and it is with Drupal.

E-Mail Campaigns? Yes.

How important is email marketing? Very important! Email is one of the main ways we interact with people around us. A well-thought email campaign can bring a lot of benefits to your business, and having a platform that helps you effectively automate your email feeds is an important advantage.

One of the most popular mailing services people integrate with Drupal these days is MailChimp. However, Drupal also provides a bunch of great alternatives for this very purpose that are easy to use and rich in possibilities. From sending out bulk email to categorizing email recipients into groups for better email targeting, it’s all covered.

Social Media Integrability

Marketing has changed dramatically because of social media’s popularity. Having a site that doesn’t give its visitors the possibility to hit “Share” is unacceptable. Social media plays a huge role in promoting your products and services.

Luckily, it’s very easy to integrate Drupal with any social network you can think of. Sharing buttons and signing up using a social media account is just the beginning of what Drupal can do.

Landing Pages

Well, this should be obvious. Every CMS should provide an easy way to create landing pages. Unfortunately not all Content Management Systems are so easy to operate. Drupal, on the other hand, is one of the top platforms when it comes to crafting and managing landing pages. By using the Panels module you can build any type of landing page for your Drupal-powered website. Including everything from video blocks to contact forms on your landing page is easy and fun with Drupal.

With Drupal you can create multiple landing pages, perform A/B testing, and then adjust them to suit your goals from your site’s backend within minutes. With the right design and Drupal’s page-creating functionality, your landing pages will be as effective as ever.

Drupal is Mobile Friendly

I’m not going to take you through the already know the importance of mobile devices in today’s web world. It doesn’t matter if it’s a web store or a simple presentation site - you want it designed for mobile devices, period.

You might have heard that Drupal is complex and mobile unfriendly. Well, let me dispel that myth for you. It might have been the case a long time ago, but now, that’s just simply not true.

Drupal’s large community of developers successfully managed to turn Drupal into a great CMS for portable devices. The large number of responsive design themes available is mindblowing. Lots of modules are also available to help you provide the best surfing experience for your visitors, no matter what device they use to find their way around your website. Perhaps the best thing about it is that Drupal isn’t just great at frontend, but it also gives you a mobile-friendly backend dashboard that makes it easy for site administrators and content managers to operate the site from phones and tablets just as easily as from any desktop computer.

If this is not enough and you’re craving more, leave a comment down below and I will be more than happy to chat. Do you have a business and are interested to know more about why Drupal is the right choice for your web presence? Drop us a line and we’ll get back to you with details.

Lastly, if you are running a Marketing Agency, then this post about Drupal marketing features is a must-read for you.

Tags: DrupalMarketingBusinessSEOCRMSalesSocial MediaCheck this option to include this post in Planet Drupal aggregator: planetTopics: Business & Strategy
Categories: Planet Drupal

Configuring Varnish for Drupal 7.20

January 20, 2014 at 4:06pm

Since the release of Drupal 7.20, all images generated by the ImageCache module have been suffixed by a token. Here’s a detailed explanation that can be found in the release notes:

The security fixes in this release change all image derivative URLs generated by Drupal to append a token as a query string. ("Image derivatives" are copies of images which the Drupal Image module automatically creates based on configured image styles; for example, thumbnail, medium, large, etc.)

Links that previously pointed to an URL like: /sites/default/files/styles/thumbnail/public/field/image/example.png will, from now on, point to something like this: /sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD.

Nobody seems to have noticed that Varnish is not caching images for authenticated users anymore. The force cache rule for static content no longer works for image derivatives because of the token:
#Always cache static files. if (req.url ~ "\.(png|gif|jpeg|jpg|ico|swf|css|js|html|htm)(\?[a-z0-9]+)?$") { unset req.http.Cookie; }

The solution we came up with at Propeople Drupal Agency is to change the regexp pattern from the above to the following:
if (req.url ~ "\.(png|gif|jpeg|jpg|ico|swf|css|js|html|htm)(\?[\w\d=\.\-]+)?$") {

The initial pattern includes (\?[a-z0-9]+)? in order to cover the css/js files cache token generated by Drupal, which looks like ?xyz. But the new parameter added to images contains more “=-_” character types.

Also, this fix will add support for caching js files like misc/jquery.js?v=1.4.4, which are not cached by default (this fix is for all Drupal versions).

If you have other blocks in varnish.vcl involving images, you should add the following regexp pattern:
# Normalize the Accept-Encoding header. if (req.http.Accept-Encoding) { if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)(\?[\w\d=\.\-]+)?$" || req.url ~ "^/robots\.txt$") {
For more details go to

# Don't set cookies on these file types. if (req.url ~ "(?i)\.(png|gif|jpeg|jpg|ico|swf|css|js|html|htm)(\?[\w\d=\.\-]+)?$") { unset beresp.http.set-cookie; }

In conclusion, all checks where png, jpg and gif extensions are involved should have (\?[\w\d=\.\-]+)?$ instead of $ and (\?[a-z0-9]+)?$.

I hope you find this article useful. If you have any questions, make sure to post them in the comments below, and I would love to help you out. And don’t forget to subscribe to our mailing list to get our Drupal blog feed directly to your mailbox.

Tags: DrupalVarnishHow toCheck this option to include this post in Planet Drupal aggregator: planetTopics: Tech & Development
Categories: Planet Drupal

Six Great Drupal Features for Marketing Agencies and Their Clients

January 9, 2014 at 9:37pm

We know first-hand how committed those of you working in marketing and branding agencies are to delivering the best in branding solutions for your clients. This requires employing the most optimal tools for whatever medium you’re working in; whether it’s classic print advertising, or cutting-edge experiential branding. When it comes to website design and development, we here at Propeople have found that Drupal provides some of the best features for agencies and clients to create a great user experience, advance a brand, and, ultimately, reach their goals. 

There are many great tools and platforms available for building websites, and, as a full-service digital agency that delivers solutions outside of Drupal, we fully understand that different issues can call for different tools. However, we believe that it’s no coincidence that Drupal has emerged as the CMS of choice for many developers and website administrators out there. Drupal’s powerful and user-friendly framework, its reputation as an enterprise level platform, and ability to fully integrate overall branding and digital marketing strategies, will likely lead many agencies’ clients to request Drupal for their web projects. Here are seven great things that Drupal has to offer to your agency, and your clients.


1. High Functionality and Ease of Use

In terms of ease of use, Drupal CMS is highly user-friendly and responsive. It can cater to both the technical and non-technical clients while at the same time providing the exact benefits and features that an advanced user would have access too. So, you might be thinking, “There has to be a catch here”. The only caveat is that Drupal can prove to have a steeper learning curve for developers than other CMS. However, it is very manageable for content administrators and end users. 

2. Drupal is a Great Tool for Social Media

To say that social media is important for a company in this day and age is a great understatement. With the amount of modules available for Twitter and Facebook integration, Drupal is the most versatile CMS when it comes to social media. As an example, the Metatag module allows for the publication of Twitter cards on the client’s website. With a Gigya Socialize module, visitors can log on to your website on their social logins and post from their own accounts be it from Facebook or Twitter, to name a few. Someone saw you a have new awesome product in your pipeline and they want to tell more people about it? Cool! They can invite a friend from Facebook or followers Twitter in mere seconds to see it. With Drupal the potential for increased viral exposure and interaction using social media is higher and less “pushy”.

3. Drupal Has Great SEO/SEM Computability (Compliant with HTML)

Any client of yours will require their website to attract a healthy flow of traffic. And so they should, because a successful web presence is usually what sets the first good impression for potential customers (at least if you can’t meet in person, of course). 

SEO is key if you want a site to be that number one hit on Google. Is your new marketing campaign getting the viral exposure it needs? Do you want your services to be noticed by potential clients? With Drupal, you have access to clean urls, meta-tags, and customizable titles and headings. With these tools, any prospective client would be able to fully take advantage of significant exposure for their product or services.

4. Built-in Google Analytics Integration

Who visits a site, and what they do while they’re there, is one of the most important things to monitor in order to optimize that site to meet a client’s needs, and the needs of their audience. Want to see which product was most viewed or which blog on the website was the most popular? These are the kinds of questions that come up most frequently when figuring out what specific features of a site garner the most attention.

Drupal makes this easy, featuring built-in integration with Google Analytics, the most popular tracking tool on the web. While there are other modules that address the statistical aggregation of your web presence, having the most commonly used, and most efficient, service out there surely guarantees your client’s ROI. 

5. Great Collaborative Community With Countless Contributors

Being an open source CMS with a highly collaborative open source community attached to it, Drupal tends to avoid any hurdles associated with proprietary systems. So, the next foreseeable question would be: “That’s all great, but how does this benefit my client?”. For one, the knowledge of a huge number of developers can be leveraged to solve a problem or create something great in terms of contributed modules that further enhances the versatility of a website. 

At the exact second this blog is being written, there are approximately one million users of Drupal around the world, with about thirty thousand being developers. Imagine a tenth of those developers working individually on a new module or a new feature. The opportunities for development and innovation become very interesting. Additionally, a client benefits from full transparency of the code that’s being used and features implemented. No tricks, no hidden fees or elements, and no problems. 

6. Countless Modules to Appeal to Every Client's Needs

Modules are community-contributed add-ons for Drupal that give you the tools to do exactly what you need to on a client’s website. We’re sure we harped enough on this in the previous items, however, this is a huge feature that adds value to Drupal. The Drupal library of thousands of modules is essential in an interactive world that is keen on available options and customized to their web presence. Whether it’s social media integration, e-commerce functionality, or different kinds of content editing, Drupal’s got you covered. 

Interested in learning more about how your agency, and your clients, can benefit from using Drupal? Feel free to contact us by e-mail or send us your questions and thoughts through our social media platforms Facebook, Twitter, Google+ or LinkedIn

Tags: DrupalAgenciesStrategyCheck this option to include this post in Planet Drupal aggregator: planetTopics: Business & Strategy
Categories: Planet Drupal

How to test Standard Search in Drupal

December 31, 2013 at 2:38pm

It’s not a secret that QA engineers work with technical specifications, but sometimes there are no specs regarding the search functionality on a site and you end up with something like “Default search module”, or your PM will just say - “Simple search, nothing to test”. In this situation you can use only your imagination. This blog post is for those quality assurance engineers who might not know what “Standard Search in Drupal 7” really means, or how to test it.

First thing you should know about the Standard Search in Drupal 7 is the way it indexes content. The content can either be reindexed manually, or be automatically marked for reindex after you add it (or edit existing content). The content that’s queued for reindexing will be indexed when cron runs. This can happen automatically through the use of a specific schedule, or, for testing purposes, you can run it manually from the Admin UI.

To run cron, you have 2 options:

  1. Use the Administration Menu module - hover over the home icon in the toolbar and click Run cron.
  2. Go to Reports > Status report (admin/reports/status), and under Cron maintenance tasks click run cron manually.

Note: If you use Apache Solr for your Search system, it may be not enough to just run cron once. It usually needs an additional 2 minutes after “run cron” to re-index results.

The best way to start testing is getting to know the search configurations done on the site. If you go to configuration-> search and metadata ->search settings, you’ll find the configurations implemented for your search. Now, lets see them more closely.

1. Drupal Search allows users with Use search permission to search for content and users separately. By default, both Node and User searches are active. In order to search for users, the user should have permission to view user profiles.

2. By default Minimum word length to index is set to 3, that means that you will not be able to do a search if you don’t have at least one 3-character word in your search query.

This also means that if you search for nodes with title ”How to find a bug” you can find it by using the keywords: “find”, “bug” and “how”.

You should get results in the following cases:

  • Whole title (ex: how to find a bug)
  • Long words (ex: find)
  • Long word and short word (ex: to find )

You should get a validation error for:

  • Only short words (ex: to a)

You should get “No results” for:

  • one long word and one word not from this sentence (ex: bug report)

Also search is indexing (saving) keywords separated by spaces. The following examples will not return any results:

  • half or part of the word (ex: fin)
  • words without spaces between them (ex: howtofind)
  • words separated by underscores or something else (ex: how_to_find_a_bug)

Results should appear for these cases:

  • With multiple spaces between words (ex: how to find a bug)
  • Or in reverse order (ex: bug a find to how)

4. Lower/upper cases - Test your search by entering words with upper and lower cases (ex: InTerVIEw). This should work out of the box in case-insensitive mode.

5. Don’t forget that this search should work not only with titles, but with all content bodies as well. Make sure to search for some keywords from the content, maybe you’ll find a little bug. You never know.

6. Permissions - To know what permission the users have, go to Modules-> Search-> Permissions (or People and select the Permissions tab).

By default, all users (Anonymous + authenticated) can view published nodes, so they should appear in the returned results (if you allow anonymous users to search, of course). In this case just unpublish the node and then enter its title in the search field. You know what result you should get.

I hope this information will make your testing easier and more pleasant! Happy New Year!

Language English Tags: DrupalDevelopmentCheck this option to include this post in Planet Drupal aggregator: planet
Categories: Planet Drupal