drupal planet
After having seen DrupliBacon and DrupliCake (there are other great adaptations of the Druplicon as well!), I decided I wanted to get some creative juices flowing this weekend. I present, DrupliGolf!

Drupligolf is the result of a round of golf, an addiction to Drupal, and a love for the best OSS mascot in existence. (The latter reason will definitely strike a chord with anybody who's shared a drink with the Druplicon in #drupal... and actually drank).
Here are a few articles that might be helpful to those following the Planet:
Below is the full-size image mockup I made for webchick to highlight the awesomeness of Drupal's (relatively) new stark theme, as seen in Drupal 7. You can download Stark for Drupal 6 as well, but it will be a nice way to quickly expose the underpinnings of Drupal's core HTML output.
(click on the image to view a larger copy)
I'll be working on at least one CSS-only theme for Drupal 7 over the next couple of months, and will hopefully release it to drupal.org by summertime. The transition from 6->7 is going to be awesome for themers!
One requirement of the Archdiocese of St. Louis' website is that group administrators are able to publish and unpublish the content inside their groups, and they should also be able to schedule posts for automated publishing and unpublishing at a later time.
To do this, I used the following modules:
- OG User Roles
- Scheduler
- Publish Content
- [EDIT: I'm now using the Override Node Options module rather than Publish Content - it gives more fine-grained control over visibility of node form options.]
After enabling these modules, I spent a while in the Permissions page, and also created a new user role, "administer nodes." Ironically, I didn't assign the 'administer nodes' permission to this role, because doing so causes a huge mess ('administer nodes' gives waaay too much power to anyone except the site admin—it's best to leave that beast unchecked in most cases).

For the 'administer nodes' role, I checked the box next to 'schedule (un)publishing of nodes', which allows users with this role to schedule the publish/unpublish time of a given node. I also checked boxes next to 'publish <content type>' and 'unpublish <content type>' for each of the content types I wanted users to be able to publish or unpublish (these permissions are under the "publishcontent module" permissions section).
Then I went into the OG User Roles module's configuration page (at admin/og/og_user_roles), and checked the box to allow the 'administer nodes' role to be set per group, and also set that as the default role to be added to any user in a group that is made an admin of that group.
The OG User Roles module basically assigns all the permissions you assign to a given role within a user's group only. So you can give some permissions that you'd be very cautious giving out otherwise, because those permissions only affect the user's group, rather than all sections of the website. (However, there are still some permissions that can wreak havoc on your access control, like 'administer nodes'—always test!).
Now, users can schedule content to be posted whenever they'd like, and they can publish or unpublish any content inside their own group(s)!

Put this in one of your theme's stylesheets - it'll change a clunky, large, and unweildy comment form into a more compact and user-friendly form:
I have been hitting my head against a wall for a few weeks now, trying to get a few different Views-created pages to appear as if they were normal pages inside an Organic Group (meaning they would appear inside og-menu-enabled menus for that particular group, and group blocks would also appear on the pages.
After reading up on the thread "Organic Groups and Views 2", I found that I could use an argument to help solve my dilemma. Here's how I set up an argument for a particular view:
On the page display (I could've also done this as a default), I added an argument ("Organic groups: Groups") with the following properties:
- Title: <none>
- Breadcrumb: <none>
-
Action to take if argument is not present: Provide default argument
-
Default argument type: Fixed entry
- Default Argument: 6116 (this is the node ID for the organic group under which this view is posted)
-
Validator options
-
Validator: Group nodes
- Argument type: Node ID
- Validate current user: <unchecked>
- Action to take if argument is not present: Hide view / Page not found (404)
-
Validator: Group nodes
-
Default argument type: Fixed entry
- Allow multiple terms per argument: <unchecked>
- Exclude the argument: <unchecked>
Doing this allows Organic Groups to treat the Views page display as if it is actually a page within that particular group. Another problem solved! (I'm really beginning to fall in love with Views... and, apparently, Views 3 is going to be even more full of win!
Another Option - Embed in Page
You can also embed a view directly in a page, using the context of that page in your view to grab the items for the group into which the view is embedded.
To do so, create a new page/story/whatever node, with 'PHP Code' as the input format. Inside the node, put in
<?php
print views_embed_view('group_newsletters');
?>
In the view you wish to embed (name it view_name as you used in the code above), add an argument like the following (with type Organic Groups: Groups):
- Title: <none>
- Breadcrumb: <none>
-
Action to take if argument is not present: Provide default argument
-
Default argument type: PHP Code
- PHP Argument Code:
-
<?php
if ($node = og_get_group_context()) {
$args[0] = $node->nid;
return $args[0];
}
else {
return NULL;
}
?>
-
Validator options
-
Validator: Group nodes
- Argument type: Node ID
- Validate current user: <unchecked>
- Action to take if argument is not present: Hide view / Page not found (404)
-
Validator: Group nodes
-
Default argument type: PHP Code
- Allow multiple terms per argument: <unchecked>
- Exclude the argument: <unchecked>
As explained on Drupal.org today, Drupal 7.0 Alpha 1 has been released, and it incorporates (among other things) a revamped user interface, custom fields (CCK) in core, image handling in core, an update manager, and a ton of 'under the hood' improvements.
This is going to be the best Drupal release to date, for two reasons:
- Drupal has reached critical mass: WhiteHouse.gov, Intel, The Grammy Awards, and heck, even Monty Python are running on Drupal. So is your cousin's Internet startup. Drupal's seen a couple years of great press, and it still hasn't hit the ceiling in potential or mindshare!
- Theming has gotten a whole lot easier: Disregarding the poor english in that description, it will be easier for themers (like me) to crack into designing for Drupal, which means more small businesses and individuals will use Drupal as an out-of-the-box website building solution. Expect a few people who've outgrown WordPress or Joomla to cross the pond... (link is to a placeholder page for now).
Besides these two points, the administration side of Drupal is much improved, and a lot of ridiculous bugs and weird elements from years past have finally been fixed. A few things will have to wait 'till Drupal 8, but for the next few years, I predict Drupal 7 is going to get a lot of traction, especially with the D7CX pledge. (I'm going to have to update my Drupal 6 theme, Airy Blue... ugh).
Why don't you go download Drupal 7 now, and kick the tires a little. It'll be a nice experience, minus the few critical bugs remaining. Once you're finished testing, dive into the issue queue and help change Drupal 7 from alpha to beta, and soon to release!
I'm going to be writing up a post on Building a Theme for Drupal 7 once I get a little time... it'll be on my other site, lifeisaprayer.com.
In one word: Awesome.
This Drupal distribution truly displays the beauty and power of Drupal—a dedicated team over at Development Seed spent a lot of time making a great Intranet-in-a-box solution built on top of Drupal, and even though it's a simple set of modules and an installation profile, you'd have to do a little digging to tell if an Open Atrium site even runs on Drupal!

I've just been tinkering with it for a local nonprofit I help with, and I see a lot of potential. In less than 20 minutes (from the download of the tgz file), I had two groups, eight users, and a calendar/wiki/blog system running for everyone. It's drop-dead simple! If you're tasked with building an internal communications site, or a full-fledged Intranet, this is probably one of the easiest/best (and most free) solutions out there. Check it out!
This weekend I am going to attend the Catholic New Media Celebration. I'll be on two plane flights, I'll be sitting at an airport for a few hours before each flight, and I'll be at a convention all day Saturday. I'm hoping to build out a new site idea I've had lurking in the back of my head for some time: Open Source Catholic.

In the past 45 minutes, I've been jumping around Drupal.org downloading all the different modules and tutorials I think I'll need. I've also saved some of my previous work on other Drupal sites in case I need to refer to a code snippet along the way while I don't have Internet access. I'm going to call it a night for now (I need to pack!), but tomorrow, beginning at the airport, I'm going to start working on the site.
Right now, there's a splash page. No theme, no Drupal installation—nothing more than a simple welcome message. By Monday, I'm hoping to have a Drupal site with a new theme (which I hope to contribute back to d.o as a zen subtheme) and all the community features I can possibly cram into it. One man, three days; almost no free time to work with. Think it can be done? I think so! Follow me as I begin this fun and crazy journey!
[UPDATES:]
- Part 1: Putting the Puzzle Together
- Part 2: Theme Development
- Part 3: Going Live...
- Part 4: [Final] Releasing a Theme on d.o!
I just finished rolling a patch for fixing node.tpl.php in Drupal 7 over on the Drupal.org issue queue; hopefully it's ready to be rolled into core, as it's been weeks months since that particular issue was started. Page.tpl.php is already complete. We still have a few more to go, including comment.tpl.php, block.tpl.php and a bunch of little .tpl.php files.
I think Drupal 7 is going to be the best release of Drupal yet, in terms of being able to have a lot of appeal to non-programmers/techies. I set up my first ever full-fledged Wordpress site a few days ago, and it was super-easy to get things going (although also severely limited in what it could do, compared to a base Drupal install with Views and CCK), choose a new theme, change some settings, and hit the ground running.
By making it easier for themers and designers to quickly customize a Drupal site to their liking, and by having some themes included with core that are either (a) beautiful and functional or (b) great for starter themes (like zen, stark, or genesis... all which are great for different reasons), we can grow the Drupal design community exponentially.
We're almost to that point; we just need to keep making patches, keep having meaningful discussions in #drupal (unlike this one) and the issue queues, and keep feeding webchick cookies (and ice cream). Let's make Drupal the best CMS for designers, themers, and everyone in-between!