Planet Drupal

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

Isovera Ideas & Insights: It's OK Not to Be Sexy

Tue, 15/04/2014 - 20:49

It's OK not to be sexy.  

Categories: Elsewhere

X-Team: Use Drupal Vagrant Rsync feature to maximize performance

Tue, 15/04/2014 - 20:49
We all know that Drupal doesn’t do really well under the default shared folder of VirtualBox. When we were given the task of creating a new box for one of our clients, we immediately went with NFS file system to circumvent this issue. We quickly realized two things: Vagrant is way faster with NFS enabled...
Categories: Elsewhere

DrupalCon Austin News: Calling All Mentors!

Tue, 15/04/2014 - 19:21


If you’ve ever attended a sprint, you know how important mentors are. We're asking for interested volunteers to sign up to act as mentors for the DrupalCon Austin sprints. We’re expecting 600 attendees to get involved, and need all the help we can get!

Categories: Elsewhere

DrupalCon Austin News: DrupalCon Austin 2014 Grant and Scholarship Recipients Have Been Selected

Tue, 15/04/2014 - 17:56

We’re pleased to announce that the grant and scholarship recipients for DrupalCon Austin 2014 have been selected and finalized!

Thanks to generosity from our sponsors, we were able to extend offers of financial aid to 33 individuals worldwide!

There were over 100 applicants for financial aid for DrupalCon Austin, and selecting the best candidates for the convention was difficult work. Every candidate underwent a comprehensive evaluation by a committee of volunteers from the Drupal community.

Categories: Elsewhere

Digett: Crawling vs. Indexing: Robots.txt and sitemap.xml

Tue, 15/04/2014 - 16:55

Sometimes you need to prevent a site, page or everything at a particular path from showing up in Google search. I've heard people say to just disallow the page in robots.txt file. This is actually incorrect.

read more

Categories: Elsewhere

Open Source Training: 27 Funny, Imaginative and Odd Drupal Logos

Tue, 15/04/2014 - 16:28

Some organizations are very serious about their logos. They produce exhaustive guidelines on how their logo should and should not be used.

The Drupal community takes the opposite approach. The Drupal logo is called "Druplicon" and is released under the GPL license. That licensing allows designers to do whatever they want with the logo.

That design freedom has led to some funny, imaginative and downright strange variations on the Drupal logo.

Here are 27 of our favorites from events around the world.

Categories: Elsewhere

DrupalCon Austin News: The Austin Schedule is Live

Tue, 15/04/2014 - 15:36

For a few months now, we have been telling you about all the great content and fun things to do at DrupalCon Austin. Now you can see for yourself! The schedule is live and you can see it here.

You can use the master schedule to build your own personal schedule by clicking the plus or minus on the calendar icons next to the events you wish to attend. You can also access your personal schedule from the master schedule and your profile. See the screenshot below:

Categories: Elsewhere

Drupalize.Me: What is Drupal (8)?

Tue, 15/04/2014 - 14:20

With the release of Drupal 8 approaching, it’s time again to answer and update the age old question: What is Drupal?

Categories: Elsewhere

Frederick Giasson: Registering an OSF Network in OSF for Drupal (Screencast)

Tue, 15/04/2014 - 14:05

In this screencast, I explain how we can link (register) one or multiple OSF Web Services networks to a single OSF for Drupal instance. I discuss how this OSF Web Services mechanism can be used to bring datasets from multiple different OSF instances into the same Drupal portal. I also cover how we can use the same OSF Web Services network as the backend for multiple Drupal portals (which uses OSF for Drupal).

We briefly discuss the distributed aspect of the Open Semantic Framework (OSF), but this topic will be discussed more in deep in a subsequent screencast.

 


Categories: Elsewhere

INsReady: How fast does Drupal grow in China? A perspective from DrupalCampChina 2014

Tue, 15/04/2014 - 12:37

March 22nd, 2014, we have concluded DrupalCampChina 2014 (announcement). This is the second year that Drupal Shanghai Community has teamed up with Techyizu.org (a Shanghai-based volunteer-driven organization and supporters of the China startup and tech community.) to succefully organize DrupalCamp within Barcamp. For those who don't know, Barcamp is the same style as DrupalCamp, but wider topics and larger audience. We organize Barcamp to attract a variety of people in the related industries; In Spring, 2014, this Barcamp received over 700 people. On Drupal side, we also had large attendance, fun discussion & collaboration and a rooftop afterparty. I was very happy to see large increase in presentations and people at the DrupalCamp (comparing to DrupalCampChina 2013), and therefore, I am eager to share my observation publicly.

Keynote attendance doubled
Thanks to The Drupal Community Cultivation Grant (and the Committee), this year we received the grant help again to bring in an international well-known Drupal contributor to speak at our camp keynote. John Albin Wilkins offered the favor and presented "Drupal for a Better Web". During his keynote, I realized there were around 200 people packed in this conference room. I also recognized many local Drupal community leaders from other Chinese cities, such as Beijing, Hangzhou, etc. Comparing to last year keynote, we almost had 100% increase in keynote attendance.

Sessions doubled
Last year, we had one track at the DrupalCamp, and besides a keynote, there were 4 hour-long sessions. This year, we had two tracks and total 8 sessions and a keynote. Thanks to all the presenters at DrupalCamp, you all made this camp succesfull!

Marketing presence
In the past 3 years of my volunteering and community activities in Shanghai, China. I almost exclusively interacted with developers, designers and entrepreneurs who work with Drupal on daily basis. However, at this DrupalCamp, I saw a person with professional cameras and camcorders busy recording all the sessions. I had a pleasure talking to him, and learned that he doesn't use Drupal, but he believes in his partners who develop a business on Drupal, and he decides to dedicate his efforts of Marketing and Sales for Drupal. As many people would agree, in the Drupal world, we are in high demand of talent, but we are even in higher demand of people who market Drupal well and explain what Drupal is to others. I am glad to see the presence of marketing professionals at this camp, which shows the business side of Drupal is promising in China. I believe they are good at helping companies discover and invest in Drupal as their business solution.

Future collaboration
6 Barcamps have been organized in the past 3 years in Shanghai. However, Barcamp didn't get very technical until 2013 we organized DrupalCampChina 2013. This year, we promoted DrupalCamp through the regular channels via Barcamp and media friends. Then at the camp, I saw Javascript, Node.js and a few other stacks of technologies sessions talking about Internet of things. Not only those presenters offered different choices and opinions and helped Drupal to educate the same audience on Internet or Web; but also, most of those presenters support open source and likely the Shanghai Drupal community will extend the communication to those local open source communities for future collaboration.

I am very glad how this camp turned out. I see great collaboration between local Drupal community and Drupal Association on bringing an oversee speaker, the collaboration among different communities to organize a large Barcamp and DrupalCamp, the collaboration within the camp during presentations. This collaboration builds us a good foundation to further advocate Drupal in China, and we will see a larger DrupalCamp next year!

More photos about DrupalCampChina 2014, please see the album on Google+

Files:  PANO_20140322_120703.jpg IMG_2591.JPG IMG_2624.JPG IMG_2575.JPG IMG_2592.JPGTag: Drupal PlanetDrupalCampChina
Categories: Elsewhere

David Herron: Static HTML website builders (AkashaCMS, etc) slashes web hosting costs to the bone

Tue, 15/04/2014 - 10:52

Today's web is supposedly about fancy software on both server and client, building amazingly flexible applications merging content and functionality from anywhere.  What, then, is the role of old-school HTML websites?  In particular, why am I wasting my time building AkashaCMS and not building websites with Drupal?


Categories: Elsewhere

flink: "But that's easy in Drupal, isn't it?"

Tue, 15/04/2014 - 10:17

Many a time a customer’s casual challenge of “But that’s easy in Drupal isn’t it?” has resulted in us taking up the gauntlet and putting in some hard yards to indeed "make that easy”.

Clearly 8,500 D7 modules on drupal.org is not enough.

As we were working on a government project last year the question popped up again and we had to rise to the occasion. The project was eventually put on ice, but during its course another module baby was born. We called it Views Aggregator Plus and set her free in Drupalland. It seemed a waste not to share it.

One thing we've learned about releasing modules: you have no idea upfront which ones will thrive. We thought we had created a niche application and planned for one install, namely that single install on that site that never happened. But the module usage statistics prove that it has found applications way beyond its initial purpose. Not bad for a module that wasn't meant to see the light outside that one web site!

As so often in Drupal, further enhancements were very much driven by the needs the community raised, thus taking the module into directions we’d never anticipated, like its application as a Webform submissions post-processor.

For your inspiration we contacted some of the early adopters we came to know through the module's issue queue and collected from them some examples of how Drupal site builders all over the world get value out of Views Aggregator Plus.

We hope you enjoy the screenshots and explanations below. Among these may be just that thing you also needed to be easy in Drupal.

Special thanks to Nick Veenhof of Acquia and Mads Bordinggaard Christensen of Rillbar Records who happily shared screenshots and application stories.

Example 1

by Nick Veenhof of Acquia

"My View displays a list of Search Cores. I configured the module to apply grouping on the customer name. The aggregation functions applied on remaining fields were summations on the column cells of selected fields. This is how the Document Count and Query Count columns were created."

 

 

 

Example 2

by Mads Bordinggaard Christensen of Rillbar Records

"My company is primarily a wholesale distributor of music on vinyl and CD’s. After each quarter I have to send out statements to all the different Record labels who deliver their products to us. The attached PDF is an example of a dummy record company, presenting the amount of sold items within the period.

Dummy Records have 2 different products in their catalogue. The CD has sold 32 items and the vinyl 20 within the period. These sales are however spread out on 6 different orders. So instead of having 6 table rows representing each order, I can use Views Aggregator Plus to compress and group the rows using a unique value, in this case the product SKU.

Before using Views Aggregator Plus each order of the given product had its own line, and it quickly became very unclear and messy. Some products sell a lot of items, but maybe only 1 or 2 on each order, so it can quickly result in a lot of rows (especially for the record labels who had to sum the amount of sold items in order to make an invoice for me).

So Views Aggregator Plus is a really important factor in creating these statements to our suppliers. Apart from that it allows us to quickly pull an exact amount of sold items from the database within a given period (using the date range as a contextual filter)."

 

Example 3

by Rik de Boer, founder of flink

Lastly the use-case for which Views Aggregator Plus was initially developed.

"I've illustrated the construction of the VAP View (bottom) through two intermediate phases, both normal Views. The top one shows a number of government projects (names omitted) by industry, their budgets and their durations (a duration is a Date field with start and end values).

After enabling the Views PHP module a PHP code snippet field (see below) was added to turn the date ranges into more readable keywords: "not started”, “underway” or “closed”. A copy of the PHP field was added thus creating an identical column (with a different title) in preparation for the next step.The duration column was excluded from display.

For the final View the format was flicked from “Table” to “Table with aggregation options”. The “Industry” field was grouped (compressed) and tallied, the budget value field was group-summed.

“No. projects underway” had the “Count (having regexp)” aggregation function applied with “underway” as the regular expression to count. The same aggregation function was applied to “No. projects closed” except that this time the counting parameter was “closed".

To make the “Totals” row, column sum functions were added for all fields except the first. And finally sorting was enabled… voila!"

<?php $start_date = strtotime($data->field_field_duration[0]['raw']['value']); $end_date = strtotime($data->field_field_duration[0]['raw']['value2']); echo time() < $start_date ? 'not started' : (time() < $end_date ? 'underway' : 'closed'); ?> File under:  Planet Drupal
Categories: Elsewhere

ThinkShout: Refactoring The iATS Drupal Commerce Module

Tue, 15/04/2014 - 09:00

Last month, we wrapped up a project for nonprofit-oriented payment processor, iATS Payments. iATS Payments wanted to invest in gaining wider adoption of their services and enlisted ThinkShout's help in building a PHP wrapper for their existing SOAP API.

Being a bunch of software engineers who have implemented our fair share of APIs (both good and bad), we knew we had to achieve certain goals if we were going to ease the adoption of iATS Payments within PHP applications:

  • Comprehensive: The wrapper handles all communication with the iATS Payments SOAP API, validation of API calls, and error handling.
  • Well documented: We made use of phpDocumentor to generate easily browsable documentation from our code comments.
  • Reliable: Via a comprehensive test suite covering every API call written in PHPUnit.

With the new PHP wrapper finished and unit tests passing, our attention shifted to the project we felt would most benefit from the work we'd done: the Commerce iATS Drupal module. This module leverages Drupal Commerce to facilitate payment processing via iATS Payments on any Drupal website.

We had already integrated Commerce iATS into some of our clients' websites, so we knew it was a great module, but it was written before there was a standard iATS Payments PHP wrapper and contained some unwieldy code that could be eliminated by using the new PHP wrapper. With support from the community and sponsorship from iATS, we rewrote the module, drastically reducing complexity, which any engineer can appreciate, and improved stability, which site owners love even more. We're excited to replicate the success of our partnership with MailChimp, which created a win for the community, the vendor, and, yes, ThinkShout.

Refactoring Commerce iATS

In refactoring Commerce iATS, we didn't just plug in the PHP wrapper and call it a day. While Commerce iATS was originally written with support for only credit card payments, our PHP wrapper supports all payment methods provided by iATS Payments and we wanted to make sure Commerce iATS had room to grow and take advantage of those payment methods.

Some of the problems

Looking through the code of the existing Commerce iATS module, we realized the current design would not scale well as we added additional payment methods.

As an example, take a look at the 2.x-dev release of Commerce iATS.

Here the function commerce_iats_soap_process_submit_form_submit() is being used to handle a lot more logic than a form submit handler ideally would. Breaking it down:

A lot of code in commerce_iats_soap_process_submit_form_submit() is later duplicated when commerce_iats_customer_code_charge_submit_form_submit() is called.

The refactor

We set out to redesign the module's architecture and rebuild it with modularity and expansion in mind. Here's what we did.

Created a new standard payment processing function
  • This function handles the API call, response handling, transaction creation and logging.
  • To handle multiple payment methods, the function accepts a callback function as a parameter. This callback function is the function that makes the API call via the PHP Wrapper and returns the response.

The first lines of commerce_iats_process_payment() demonstrate how the callback function is used:

<?php function commerce_iats_process_payment($payment_method, $payment_data, $order, $charge, $payment_callback) { // Process the payment using the defined callback method. $response = $payment_callback($payment_method, $payment_data, $order, $charge); Broke payment methods out into their own include files

As an example, here's the credit card payment method. Each payment method file contains these standard Commerce functions (where credit_card is the payment method:)

  • commerce_iats_credit_card_settings_form()
  • commerce_iats_credit_card_submit_form()
  • commerce_iats_credit_card_submit_form_validate()
  • commerce_iats_credit_card_submit_form_submit()

Then we added our own callback function, commerce_iats_process_credit_card_payment().

The callback function handles building the API request and getting a response from the API. To show how this works, here's a line from commerce_iats_credit_card_submit_form_submit():

<?php return commerce_iats_process_payment($payment_method, $payment_data, $order, $charge, 'commerce_iats_process_credit_card_payment');

As you can see, all the payment information from the form submit handler is being passed into commerce_iats_process_payment(). That function then calls the callback function commerce_iats_process_credit_card_payment() to make the API call and get the response.

This design is very easy to extend and allows us to add as many additional payment methods as we need in a very clean way. We were able to use this design to implement Commerce Card on File as a submodule of Commerce iATS, eliminating that dependency from the base module.

Roadmap and next steps

All our work on Commerce iATS is currently available in the 2.0-beta1 release. Please take a look and let us know if you have any feedback.

We're already hard at work along with our partners at iATS Payments to integrate more of their payment processing facilities into the Commerce iATS module. While the module currently only supports credit card payments, ACH/EFT and Direct Debit payments will arive before DrupalCon Austin. Speaking of, both ThinkShout and iATS Payments will be attending and spending some time at the iATS booth, number 508. Come find us to say hello and talk some e-commerce.

Keep an eye on the Commerce iATS project page and this blog for more updates.

Categories: Elsewhere

Forum One: Big on Drupal in the Big Apple – NYC Camp 2014

Mon, 14/04/2014 - 22:27

We’re back from another successful Drupal NYC Camp!

A great event as always (thanks to Forest Mars and all the other volunteers and organizers that made the event possible), this year the event attracted more than 800 attendees and was held at a truly awesome venue: the United Nations.

Forum One’s presence this year was bigger than ever! Five of us attended, four of whom spoke at five different sessions covering a variety of topics:
Keenan Holloway talked to a packed room with his tongue-twisting, alliteratively-titled session: Paraphrasing Panels, Panelizer and Panopoly;
Chaz Chumley showed his extensive knowledge of the upcoming Drupal 8 Theming system – look for his book on the same topic later this year;
Michaela Hackner joined forces with Chaz Chumley to highlight some of our recent work with the American Red Cross on the Global Disaster Preparedness Center in a session called Designing for Disasters: An Iterative Progression Towards a More Prepared World;
• and William Hurley (that’s me!) was honored to have the opportunity to talk about Building Interactive Web Applications with Drupal, as well as Developing Locally with Virtual Machines at the DevOps summit (this latter one, sadly, wasn’t recorded due to some technical difficulties). I was blown away by the attendance at both of my sessions and was honored to be able to share some of our challenges and solutions at each.

These camps aren’t solely about sessions, of course. While not all of us were able to stay the whole weekend, Kalpana Goel stayed through Monday to work on some of the Drupal 8 sprints that were going on.

We love the opportunity to give back to the community in as many ways as possible, in code contributions to Drupal 8, contributed modules and also attending and speaking whenever possible. If you appreciate our expertise and would like us to speak at an event, drop us a line at marketing (at) forumone (dot) com and we’ll be happy to participate!

Back from the Big Apple, we highlight our participation in the 2014 NYC Drupal Camp and share the recordings of the five sessions that our team rocked at the event, which was held at the United Nations building in New York City.

Categories: Elsewhere

Drupal Association News: Submit Your Design Proposals for DrupalCon Latin America!

Mon, 14/04/2014 - 21:19

Though DrupalCon Latin America - Bogotá, Columbia is just under a year away, we’re already getting the ball rolling on planning and organization— and we need your help!

Categories: Elsewhere

ImageX Media: An inheritable install profile architecture for Drupal

Mon, 14/04/2014 - 20:55

Drupal core comes with a built-in structure called an installation profile. An install profile is a specific set of features and configurations that get built when the site is installed. Drupal has almost always had some variety of install profile, but with Drupal 7 they became a whole lot easier to create and understand.

Categories: Elsewhere

Frederick Giasson: Installing OSF for Drupal using the OSF Installer (Screencast)

Mon, 14/04/2014 - 20:01

The Open Semantic Framework (OSF) for Drupal is a middleware layer that allows structured data (RDF) and associated vocabularies (ontologies) to “drive” tailored tools and data displays within Drupal. The basic OSF for Drupal modules provide two types of capabilities. First, there are a series of connector modules such as OSF Entities, OSF SearchAPI and OSF Field Storage to integrate an OSF instance into Drupal’s core APIs. Second, there is a series of module tools used to administer all of these capabilities.

By using OSF for Drupal, you may create, read, update and delete any kind of content in a OSF instance. You may also search, browse, import and export structured datasets from an OSF instance.

OSF for Drupal connects to the underlying structured (RDF) data via the separately available open-source OSF Web Services. OSF Web Services is a mostly RESTful Web services layer that allows standalone or multiple Drupal installations to share and collaborate structured data with one another via user access rights and privileges to registered datasets. Collaboration networks may be established directly to distributed OSF Web Services servers, also allowing non-Drupal installations to participate in the network.

OSF for Drupal can also act as a linked data platform. With Drupal’s other emerging RDF capabilities, content generated by Drupal can be ingested by the OSF Web Services and managed via the OSF for Drupal tools, including the publication and exposure on the Web of linked data with query and Web service endpoints.

OSF for Drupal has dependencies on OSF Web Services, which means an operational OSF for Drupal website only requires access to a fully operational OSF instance. For instance, you can check the Installing Core OSF (Open Semantic Framework) screencast to see how you can deploy your own OSF Web Services instance.

Installing OSF for Drupal using the OSF Installer

In this screencast, we will cover how to install OSF for Drupal using the OSF Installer command line tool.

Categories: Elsewhere

AGLOBALWAY: Mobile First?

Mon, 14/04/2014 - 18:57
Much has been said over the last number of years since the publication of Luke Wroblewski’s Mobile First in 2011, as part of the A Book Apart series, marked as “brief books for people who make websites.”  The series offers valuable tools about designing for and working in the web business, and Luke’s contribution is no small one.   And while a few years have come and gone, has anything really changed? I don’t think so. But perhaps some clarification of terms is in order.    One of the hallmarks of “mobile first” is asking tough questions about what we actually put on the page. For example, if we determine that something is not necessary for the mobile experience of a website, it can be worth calling into question whether it is valuable for the “full desktop experience” as well.    Given the restrictions of the viewport on mobile devices, it makes perfect sense to limit the things that can take away from a quality experience of your website. Ideally, a user’s focus would be on the content, which (hopefully) is the reason to be on your site in the first place. So let’s get rid of everything else!   Behold the pendulum swinging, babies thrown out with the bathwater.   While nobody would deny the increase in the use of mobile devices, desktop browsers are still king of the hill when it comes to how people access the internet. Given the numbers (a quick Google search will give you a general idea), it is understandable that people get scared that by eliminating things from the mobile experience of your site, we may be getting rid of too much. And indeed, there have no doubt been many cases of this happening.   Mobile first, not mobile only.   What needs bearing in mind, however, is the idea of designing for mobile first. I’m sure Mr. Wroblewski reflected on the terms carefully, deciding not to title his book Designing for Mobile, as though it were a separate thing - indeed, if it is separate, we now know it ought not be. Thankfully, he had the foresight to be able to craft the right message, even if it fell on a few deaf ears.   More and more, mobile users area demanding a complete experience to be possible for them as well. This was certainly to be expected. Should we really be assuming that mobile users are necessarily “on the go” and therefore should not expect what they might experience on a desktop?  We all know what they say about making assumptions…   There are many, many challenges when it comes to building responsive websites, and I believe that designing for the mobile experience is chief among them. Not a small part of which is understanding the technical implications of such designs - this is a certainly justification for placing the mobile experience “first” in the design stage. And yet, rather than being limited by screen size in designing for mobile, we actually have an opportunity to take advantage of the power of the device. Perhaps the mobile experience could even be a superior one because of its capabilities.   So should we still be designing for mobile first? Yes - so long as it remains part of an holistic overall design for the user experience. I’m sure Luke would agree. Tags: Mobiledrupal planet
Categories: Elsewhere

NYC Camp News & Announcements: Free Drupal trainings at NYC Camp

Mon, 14/04/2014 - 18:53
Body: 

Did you know NYC Camp has a massive list of completely free Drupal trainings scheduled for Thursday April 10th??? Check out the line-up and sign up!

Don't Forget To Register!

Make sure you create an account and register for NYC Camp 2014, Registration is completely free but the UN security is fairly strict so please register for the camp and then you can go ahead and sign up for a free training on any of the training description pages!

Date: Monday, April 14, 2014
Categories: Elsewhere

Fred Parke | The Web Developer: Creating content types and fields using a custom module in Drupal 7

Mon, 14/04/2014 - 18:44

I was writing a custom module recently which used a custom content type or two. I wanted to make the module as reusable as possible but I also wanted to avoid including a feature inside of the module to add these content types.

Categories: Elsewhere

Pages