The Aten Blog

The Aten Blog

We have things to say about design, process, and code. Read about them here, subscribe to our feed, or follow us on twitter.

OpenLayers Plus

OpenLayers is a powerful mapping framework that allows you to create beautiful maps in a short amount of time. Recently, we have been working on an OpenLayers map for a client that requested "density circles," or a way to visually show concentration of projects within a region. I remembered Alan Palazzolo mentioning a project called "OpenLayers Plus" during his session at BadCamp back in the fall.

Batch API + Cron = Queues

One of my favorite Drupal 6 features was the Batch API. The problem with the web is that processes are expected to be short lived. In other words, when you go to a URL, the web server is expected to process some data and return a result back to you within a short amount of time. If the web server takes too long, it usually hits a timeout limit and stops. All of this made processing large data sets, such as importing thousands of users, very problematic.

Filed under: 

Extending the subscriptions module: node reference subscriptions

Extending the subscriptions module can be very useful if you're feeling a little entrapped by its default capabilities. This is something we dealt with while working on a redesign for JAARS.org. We're still working on the project: look forward to a case study, another blog post, and the completed redesign over the next few weeks. But for now…

Filed under: 

Theme Breadcrumb Manipulation

Recently we ran into a theme problem in Drupal 6 where the client wanted the breadcrumb to reflect different states based on where the user came from. Some pages were tagged with multiple taxonomy terms, so the breadcrumb "should" look different based on which section of the site the user came from.

What we decided to do is serve the breadcrumb based on $_SERVER['HTTP_REFERER']. Here is the hook function in our template.php file we used:

Filed under: 
Code

Distinct results with Views relationships using References module

Let's say you have an event content type that points to a person content type and you want to show a list of people in all events. So you create a view with the event as the base type, then add a relationship to the people references by the events. You try it out and find some people show up multiple times.

Filed under: 

Custom Map Tiles from Illustration

We are currently working on several mapping projects, one of which features a highly stylized tour of a well-known historic town on the East Coast. This post documents how to configure custom artwork as a map layer tile-set.

Filed under: 
Code

JQuery "live" bug in IE 9

In working on a recent client project, I ran into the infamous "stop running this script" error in IE 9. Unfortunately this happened at the end of the project, and it was only occurring in IE 9 (go figure). After taking the JQuery apart what I found was that using JQuery's .live() feature to attach handlers to new HTML added to the DOM was causing the problem. This is a great feature for managing handlers ... when it works.

Filed under: 

Custom Commerce Checkout Panes

We've created a number of paid membership sites at Aten and as we've committed to creating new sites in Drupal 7, I was excited to take advantage of fieldable entities and the new Drupal Commerce system.

Filed under: 

Google Maps JavaScript API

The Google Maps JavaScript API is a powerful tool for mapping solutions. With a minimal amount of code you can map points and directional routes in a clean visual way. We recently used the API to implement a solution that maps an itinerary of things to do in Southwest Virginia. We used the Drupal Services module to save itineraries. Let's take a look at the code to see how easy it is to start using the JavaScript API.

Filed under: 

Using Node.js To Create Real-Time Web Applications

In case you haven't heard, Node.js is the hottest new technology that is revolutionizing the web. Some of you don't seem convinced. After all, Ruby on Rails failed to achieve global domination, so why should server-side JavaScript be any different? The biggest distinction is that Node.js is not a server-side language; it is the server. Secondly, it's an incredibly fast and efficient server that scales well.

Filed under: 

Pages

@atendesign on Twitter

DrupalCon Denver 2012 - Gold Sponsor