Redfin Family Grows

Redfin's family grew by several ounces this morning at 8:05am. Welcome Grayson! There are so many "views" for you to enjoy...

Announcing the CashNET module for Ubercart 6.x

Redfin is pleased to announce the 1.0 release of the uc_cashnet module, a payment processor for Drupal's Ubercart 6.x that integrates with their external payment service, similar to 2Checkout.

Any feedback is welcome at this point, and we'd welcome the opportunity to further develop this module and create a similar module for Drupal Commerce / 7.x.

Enjoy!
http://drupal.org/project/uc_cashnet

Redfin Solutions in IT World Magazine: The CMS Shootout

Redfin Solutions was recently quoted in an IT World article: "Joomla vs. Drupal: An open source CMS shootout," by Daniel P. Dern of Newton Center, MA.

The article is a shootout primarily between Joomla and Drupal. In sum, the article comes to the conclusion (granted this is our particular takeaway from the article) that Joomla is a great "starter CMS" and is geared more for designers and those who need to get a simple site up quickly.

Theming Flashvideo Thumbnails with Imagecache in Views

People using the fantastic Flashvideo module, which uses FFMPEG to transcode your videos to flash for you, get only one shot to make a thumbnail image when the upload is processing.

The problem is, you rarely get a thumbnail size that applies globally. What you'd rather do is make a thumbnail image that's the largest size you want, and then use imagecache to put the thumbnails at different sizes around your site.

DrupalCon Chicago Sessions on Email Marketing and Data Import

Redfin Solutions has submitted two sessions for the Chicago 2011 DrupalCon. If you have any suggestions for the session proposals, please leave them us a comment!

Importing Data Into Drupal

Stashing stuff in $_SESSION in your form's _submit handler in Drupal

Today I was trying to figure out why in the name of all that good in the world why I couldn't use $_SESSION in my form's _submit handler.

As it turns out, I actually CAN put stuff into $_SESSION, it's just that when you want to pull something OUT of $_SESSION later, that's not where it is.

Instead, it's on the $user object in Drupal, in $user->session. After some studying, it seems this is a pipe-delimited and semi-colon delimited list of variable names and their serialized values.

Here's a function to pull stuff off of $user->session:

<?php
/**

Views "rewrite output" and you wish you had PHP? Don't always resort to customfield!

First of all, let me tell you how much I love and appreciate the Views_Customfield module, which lets you (among other things), write PHP to print out a field using views. When I need to, I can do some complex conditional-writing based on two other views fields, or I can do things like calculate a thumbnail for a photo gallery based on grabbing some fields using a raw db_query that aren't available through views, and other such craziness (note: be wary of doing this it can kill your site performance!).

Ubuntu 10.4 Based Drupal VM Partition File System ext4 to ext3 Conversion

Due to the nature of our business, we have to test our sites on all different types of OSes and browsers. I have a Macbook, for example, on which I run OS X, Ubuntu 10.4 and Windows XP.

Using drupal_execute but it's not working? Load that include!

I was struggling to use drupal_execute in a custom services call I was writing. After some time rifling through form.inc I was able to conclude that function_exists('my_submit_handler') was returning false.

But... but... my module is loading, I promise!

Doesn't matter, the .inc files aren't necessarily pulled in until they're told. Before you call that drupal_execute, make sure to include the .inc file where that submit handler resides (if there is such a thing). I was trying to automatically create a mailhandler mailbox using a services call, so I had to:

Could Not Find Custom CiviCRM Report Template

If you get the following message when attempting to create a report based on a custom CiviCRM CiviReport template,

Could not find the report template. Make sure the report template is registered and / or url is correct.

this is likely caused by an invalid template class value.

To fix this:

  1. Navigate to Administer > CiviReport > Manage Templates and click "Edit" on your custom template.

Show / Hide Fields In A Views-Generated Drupal RSS Feed

If you want to modify the fields included in a RSS feed generated by the Views 2 module, you have a few options including themeing the view, but the easiest way to simply show or hide certain fields and/or their labels is to simply go to the "RSS" tab when editing a content type's "Display Fields" settings. That's it. Below, I set a couple fields to not be included in my RSS feed since I didn't want, for example, the image name from showing up in the feed.

Format Drupal Calendar Module Mini Calendar Title View/Block

Theming the Date and Calendar modules can sometimes be a little tricky. I wanted to change the title display for a "mini" calendar in a block from "Month" to "Month YYYY" (e.g., "October 2010"). In order to do this you need to first learn how to override a theme function.

Now that you're up to par on theme overrides, we can override this theme function: /modules/date/theme/theme.inc: theme_date_nav_title. You'll have something that looks like this in Drupal 6.x.

Getting mailto links to open in Chrome on Ubuntu

I've been looking on Craig's List for a car as of late, and realize that when I want to go talk to people I have to click on a mailto: link. By default, this opens in on Ubuntu using Evolution. With the "System > Preferences > Preferred Applications," though, you can change that. It can either be a custom shell script, or just a command or link.

Since my default browser is already set to Chrome, all I need to do is "gnome-open" gmail's "compose" URL. My full command is:

gnome-open https://mail.google.com/mail/?extsrc=mailto&url=%u

OpenAtrium-beta8 + mailhandler/mailcomment = segmentation fault

A week or two ago, we upgraded our support site to the latest OpenAtrium beta8, up from beta4. We make use of the mailcomment plugin so our clients (and of course ourselves) can easily reply to notification emails. As long as we're not changing any of the other fields of the case (priority, assignee, etc), it's very convenient, and matches a lot of the greatness that BaseCamp provides.

The changing widths of CiviCRM

CiviCRM can often have some pretty wide pages, either because it's a multi-step wizard, or a large table of contacts, etc. For this reason, you might use one of the classes on your body tag to style CiviCRM pages differently... something like:

.page-civicrm #wrapper { width: 100% }

The problem, however, is that sometimes you can have some CiviCRM pages which are "front-facing," and you want THOSE CiviCRM pages to look consistent with the rest of your site. Unfortunately, you don't have a body class for that! Enter the template preprocessor for page.

Mapping additional fields (ex.g. feed original source) with Feeds

The relatively new "Feeds" module, successor to Feed API and others, is unquestionably a move in the right direction. But sometimes, the documentation and examples aren't quite there yet. I had been trying to figure out how to map an additional "source" node in an Atom feed to a CCK field. There's a lot of terminology involved with feeds, and I will assume you know what that is (if not, brush up on the Feeds Glossary).

CiviCRM Mailing Not Being Sent To All In Group

If you create a CiviCRM group with, say, 1,000 contacts in it and then go to create a mailing using the same group and it only says it will send it to 750, it's likely because some of those contacts are "on hold." On hold simply means that the system has determined the email address associated with the contact to be not worth sending to (i.e., dead). This could be caused by the emails bouncing for any number of reasons.

To avoid unnecessary continued bouncing, CiviCRM flags them as On Hold and prevents them from being included on future mailings.

Proud to Sponsor DrupalCamp Boone

We here at Redfin Solutions are proud to be Platinum sponsors of the inaugural DrupalCamp Boone. Western North Carolina's Blue Ridge Mountains are a thing of beauty, and we're excited to get down there and breathe in the fresh air. What better place for a giant blue drop than a Blue Ridge?

We also want to call attention to the other great sponsors obtained. For anyone new to Drupal, it's the community that makes Drupal such a powerful force in this world, and it wouldn't be possible without you.

Registration is open, so get on over to http://drupalcampboone.com and get involved!

Create a Redirect in Drupal's .htaccess For The Base URL

I recently needed to redirect a client's traffic from their old URL to a new one. In this case, they wanted any traffic going to plain example1.com to go to example2.com/blog and all other traffic to go to example2.com/[equivalent URI] (e.g., example1.com/about --> example2.com/about).

To do this, I messed around with rewrite rules and conditions for a while, until I decided on what seems to be a fairly straight forward solution:


# Redirect example1.com to example2.com/blog
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^$ http://example2.com/blog [r=301,L]

Redfin Launches two new Drupal sites!

It's been a crazy Saturday here at Redfin Solutions, what with getting a new server and immediately having at least one client to launch on it!

Redfin is happy to announce the redesign of Chapman Construction's new site at http://Chap-Con.com. The people at Chapman have been really great to work with. The design is by Jon Sachs, who we always enjoy working with. Living in the mountains of North Carolina, I'm happy to say Chapman has a very green focus, which brings out both the geek *AND* the hippie in me.

A GTD "trusted system" -- todo.sh

The Rave

Yesterday was the birthday of a shell script that Gina Trapani uses to (her words) "run her life." I am a huge Lifehacker fan, and when Gina started Smarterware I subscribed to its RSS as well. Though a lot of posts overlap, some do not - and it's good to keep up with what else Gina is doing. She's a very smart woman.

Uh-oh, I upgraded to Lucid Lynx but need PHP 5.2 for Drupal!

Last night I hastily decided to upgrade to Lucid Lynx on my main development machine. Generally, I try and wait a few months till things settle, but nearly 100% of the time that doesn't work. After a short battle with my wireless and some other small things, I finally settled back into "work mode" and wanted to get started working on a project I'm working on for Appalachian State University.

Redfin Now Maintains The uc_profile Module!

Have you ever wanted a user purchasing something from ubercart to fill out their user profile at the same time? uc_profile module allows you to do just that. This becomes especially handy if users are purchasing memberships on your site using uc_roles and you'd like to collect additional profile information from them at the same time.

Thanks to cooperation from indytechcook, the uc_profile module's original maintainer, Redfin Solutions now manages it and is looking forward to releasing improvements in the near future.

Network At DrupalCon

Networking in most social situations is difficult enough, but when you throw thousands of (often) socially awkward and introverted geeks together, the task becomes even more overwhelming. And these aren’t just any geeks, these are Drupal geeks, which means you’ve got a ton of smart, dedicated and interesting people to meet -- it’s just that some might need a little nudge. If you haven’t already, I highly recommend “Work the Pond!” by Darcy Rezac -- it, along with my own experiences, is what powers the following advice:

Introduce Yourself

Drupal notifications that don't work for ___ (comments, nodes, whatever)?

I spent a few hours wading through something yesterday that I hope will save some other people some headaches.

I had the notifications module on, and it was sending notifications for node creations and updates just fine, but it seemingly wasn't sending anything when I commented on a node. It would TELL ME it did ("notification sent to x other users") but I would never get an email.

PHP DateTime object has no reflection!

For hours I've been banging my head against a wall trying to figure out why Drupal's date_make_date "wasn't working." I was always getting back an empty PHP DateTime object. I traced it back down to PHP's date_create. I suspected that there was no reflection capabilities, but searching against date_create really didn't yield me much.

Eventually I decided "let's just search up a level (date_make_date empty object)" and in seconds I came across this thread: http://drupal.org/node/514560. This is just proof to me that the Drupal community is super awesome.

Theming Webform Emails

Wow, it seems that Drupal's Webform module has come a long way since I last used it (which I believe was Drupal 5.x). It's so convenient and really latches onto the new template hints and stuff from Drupal 6 (here I am talking about it while Webchick announced yesterday the D7 criticals queue is under 200, w00t!).

Happy Holidays from Redfin Solutions!

Patrick is I'm sure somewhere while all of his and Elyse's extended family brood over Madeline, their latest addition. My family was awestruck by my nephew's second Christmas. We're off to do some of that typical holiday traveling, but want to with the Drupal community and all of our clientele a happy and joyous holiday season, spent with their families or friends.

Help save Bement Camp and Conference Center!

I basically grew up at summer camp, and it has without a doubt made me who I am today (just refer to the ACA's new marketing campaign "because of camp," there's a lot of things you could fill in about me!). Redfin did some pro-bono work to develop the web site at http://savebement.org, making heavy use of CiviCRM - the open source constituent relationship management software originally developed to fill the need of grassroots movements like this one.