Read

Drops that you read.

CCK Module Basics

Content Construction Kit (CCK) is one the most important and at the same time most mystifying features of the Drupal platform. In this drop I'll provide a high level overview explanation of CCK and why you might want to use it on your site.

What is CCK?

CCK is a contributed module that allows you to:

  1. Add fields to an existing Drupal content type
  2. Create new custom content types

Drupal Content Types

It's important to understand a bit about Drupal content types. Drupal comes standard with blog, page and story content types. The main difference between these content types is the way they are organized by the system.

  • Blogs are associated with a particular user and will be listed at 'http://www.yoursite.com/blog' which shows all blog posts by all users. Blogs will also be listed on page that shows only posts by a particular user. The url for those pages may be something like 'http://www.yoursite.com/blogs/[username]'.
  • Pages will simply have a url " and not show up in any lists unless you take some sort of action to do add them to a list.
  • Stories are like pages except that they are automatically promoted to the front page.

The common thread across these three types of content types is that by default they contain two fields called Title and Body. But what if you want to expand a content type to add more fields? That's where CCK comes in.

Adding Fields

CCK allows you to add one or more fields to an existing content type. There are a number of reasons why you might want to do that. You could add fields to improve your workflow. If you're publishing video you might want to add a link to the video each time you post. Adding a field that is required when you submit ensures that you won't forget to add the link. See my post Adding Fields With CCK for an example.

You could also add a field to make it easier for you to organize or theme your content later. When a piece of information is entered into the body field you can't really sort that piece of information or use it if you want to create a list using views. But once a piece of information has it's own field you have much more flexibility. Using the video publishing as an example once again you might add a field that displays the duration of a video that is linked to a post.

Creating New Content Types

If you want ultimate flexibility in customizing your content types then you can use CCK to create a whole new content type that meets your specifications. Imagine that you want to be able to add information about your favorite DVDs to your Drupal site. The title and body fields probably won't meet your needs. You might want fields that list the Director of the movie, the top stars, release date, rating, an image, a link to the trailer and more. CCK was tailor made for things like this.

How Does CCK Work?

Many people are confused about how exactly to put CCK to use on their own website. You get started by downloading the module from http://drupal.org/project/cck but you will likely have to do more. The power of CCK is in the types of fields that it allows you to add to a content type. The contributed module includes several standard fields (like text and node reference) included but many of the fields you would want to add to your content type must be downloaded and enabled separately.

Here are some additional fields that are listed on the CCK module page on Drupal.org:

  • Computed field: lets you add a PHP-driven "computed field" to CCK node types
  • Date: creates an ISO or unix timestamp date field
  • Email: validated email field
  • Image field: an image field
  • Link: a URL field

There are many other fields that you could use to customize your content type. These can be found in the CCK modules section on Drupal.org. Some of the interesting fields that you might want to add are listen below.

What Next?

Your new content type is basically a list of fields that are ordered a certain way. Creating a new content type and adding fields is only part of the work you'll need to do in order to make CCK work for you on your Drupal site. Each field that you add has settings that must be attended to. You may also be concerned with how the new content type is displayed when you publish a node. The Contemplate module allows you to adjust the layout and customize the appearance of content types. If the content type you have created is brand new then you will need to use the Views module to create a page, block or RSS feed for the content.

Another thing to consider when creating a new content type is the path to the nodes that you create. By default content created on your Drupal site will have a path that looks something like 'http://www.yoursite.com/node/24'. If you're submitting the DVD content type that I mentioned above you might want to the path to be something like 'http://www.yoursite.com/dvd/[movie-title]. That's why I highly recommend the PathAuto module for automatic node url creation.

CCK Screenshots

These are screenshots that show what CCK features look like in the adminstration section of this site.

CCK FieldsCCK Field Display SettingsCCK Node Submission Fields

Bookmark and Share Bookmark Post

Top Ten Drupal Contributed Modules

Here are the latest statistics on the top ten contributed modules that people are downloading from Drupal.org. Project usage statistics is a relatively new (and very welcome feature) on Drupal.org. The very latest stats can be be found at http://drupal.org/project/usage.

Project Oct 12sort icon Oct 5 Sep 28 Sep 21 Sep 14 Sep 7
Drupal 84,984 84,653 78,530 76,568 74,221 72,516
Views 38,867 39,072 34,965 33,775 32,572 31,631
Content Construction Kit (CCK) 33,867 33,998 30,115 28,937 28,119 26,813
Token 32,279 32,479 29,103 28,275 27,114 26,176
Pathauto 26,332 26,877 23,597 22,722 21,973 21,211
Update Status 20,742 20,638 19,987 20,312 20,329 20,141
Image 20,632 22,275 19,057 18,554 18,292 17,888
IMCE 15,539 15,113 14,512 13,728 13,380 12,900
FCKeditor - WYSIWYG HTML editor 14,959 16,104 13,174 12,892 12,260 11,884
CAPTCHA 14,897 14,115 13,213 13,179 13,058 12,548
Poormanscron 14,779 13,722 13,356 12,832 12,374 11,775

You will notice that this list has eleven entries because Drupal core is the number one download in the list.

Bookmark and Share Bookmark Post

Building Your Video Community

I receive a fair amount of inquiries from people who are in the process of building out video based communities on top of the Drupal platform. The most important questions center around the functionality related to uploading, transcoding and storing video. What modules or techniques can be used to fully integrate community submitted video to a Drupal site?

The Basics 

It's important to note that there are three basic functions that need to take place in order to have a fully integrated video community built on Drupal. Users will need to upload videos. Those videos usually get transcoded to Adobe Flash on the server so that they can be presented in a web based player. The video then needs to be stored and delivered on demand from a server.

There's no one single way that Drupal supports the three functions required to power a video based community. So it's on the site developer to do some research and testing to figure out the method that will work best for them.

Budget Makes A Difference

I think that the method you will use to accomplish the development of a video based community will depend greatly on  the budget you have set for building the site. The most expensive option would allow you to simply hire a Drupal-savvy developer to code a custom module that will assist with uploading, transcoding and transporting the video to a content delivery network or CDN. Less expensive options would include utilizing existing Drupal modules or integrating with a video service that has the ability to plug in to Drupal via an API. No matter what you budget I believe that your first step will involve researching the options available today. I accent the word today because the world of Drupal is ever changing. So if the module or API you need doesn't exist today it could very well exist tomorrow.

Tackle Storage and Delivery First

As far as I'm concerned it makes the most sense to figure out your video storage and delivery provider first. One reason this is so important is that your storage and delivery will greatly affect the performance of your site. And if your site is slow or frequently unavailable chances are users won't spend too much time there. Another important issue is cost. Storage and delivery of video can be very expensive. So shopping around for a reasonable deal is very important. 

If you decide to handle storage and delivery yourself you will either manage your own servers, contract with a CDN, or do a combination of both. The other option is to plug in to a service that is already geared towards the storage and delivery of video. Such a service might also handle transcoding to Flash as well.

Dealing With CDNs

A CDN will assist you with storing and delivering your content to users on the web. A true CDN will spread your content among multiple servers around the world in order to facilitate the most efficient delivery of your media. Some CDNs focus on delivering downloads, while others focus on web streaming. Some do both. In creating a video community you will want to focus on a company that specializes in streaming content over the web.

You're going to need a lot of time and patience when researching CDNs. There are many (list on Wikipedia) that exist today and the field is growing. Growth is good as it helps to expand the feature set and force down the price. But there's also a risk as smaller, newer services could fail and cause you serious problems later if that happens. Prices and service features vary widely as well. I've been involved in discussions with reps for CDNs and in some cases nailing down a price is near impossible. Prices will be based on the amount of content stored and delivered. Prices do vary widely so it would be worth your time to log quotes that you receive and compare them to see who is offering the best deals.

Some people will use Amazon S3 for storage and delivery of the media from their Drupal sites. It is imporant to note that while the Amazon service is an attractive one in terms of pricing and ease of use, it is not a true CDN. The good news is that Amazon is working on a new content delivery service that could be a game changer in the CDN space.

Powering Video Via API

An Application Programming Interface or API will allow your Drupal site to connect with a third party service that can perform transcoding storage and delivery of your media. These APIs simplify to process of building a video community but they may also come at a cost. You probably won't have control over the quality of video that is transcoded. The final videos may also have video advertisments included unless you agree to pay for the service. This is an option to consider if you have a small budget and want to get started quickly.

The new YouTube API allows for video to be submitted from third-party sites. A module has been committed for Drupal 5 and there are a number of discussions on the topic over at Drupal.org. So while there appears to be no locked in solution for Drupal and YouTube at the moment, integration can be accomplished if you work with a developer who knows Drupal pretty well. 

A company called KickApps offers a single sign on (SSO) module for Drupal 4, 5 and 6. According to KickApps the SSO module allows you to create a seamless experience, which theoretically will allow users to upload videos to the KickApps service then display them on your site. The KickApps service is free if you allow advertisements but you can also pay them to "buy out" the advertising inventory.

Brightcove is one of the larger players in the online video services space. They offer integration services that can assist you with connecting Drupal to their video platform. Brightcove helps major corporations manage, store and deliver internet video so expect the price tag for integrating with their system to be on the high end. But if you have the money to spend my experience with Brightcove has been that they have got first class tools to help you manage a video community.

A Drupal Solution

If you're on a budget or are planning a smaller community that doesn't need the power of a third party service then you can build a video based community with Drupal. Check out the following modules.

FlashVideo - Travis Tidwell has built a module called FlashVideo that handles upload, transcoding and storage of video. The module is supported on Drupal 5 and 6. More recent versions allow video to be shipped off to Amazon S3 for storage and delivery. Travis has posted a very detailed tutorial on the setup and usage of this module.The module appears to do many things that video community builders will want so it is definitely worth a look.

Media Mover - This module assists with some of the background work related to storing and processing video. The most notable feature is that it will transport a video from your server to the Amazon S3 storage service and insert the proper link into your site.

Twistage - This module provides for integration with the Twistage video hosting service.

Video - This is an older module that handles upload and presentation of video files. The module also includes very basic play count statistics. This module will embed a video in your site but does not transcode the video to flash prior to doing so. A demo of this modules functionality can be seen here.

There's More

This post isn't intended to cover every tool, technique or module that can help you build a video community with Drupal. My hope is that those looking for a place to start or some direction will find this helpful. Your links to other tools and services or general suggestions about building video communities with Drupal are welcome in the comments.

Bookmark and Share Bookmark Post

A Quick Hosting Primer

I spend a good amount of time hanging around the Drupal forums and the question of Drupal site hosting comes up on a fairly regular basis. I'm always amused to see the wide variety of responses where people advocate for the hosting company that they think is the best. What Drupal site builders, especially new ones, need instead of cheerleading is a good explanation of the basic options for hosting a Drupal site.

There are four basic choices that you have when considering hosting for your Drupal site.

  1. Shared Hosting
  2. Virtual Dedicated Server
  3. Dedicated Server
  4. Hosted

Shared Hosting

Shared hosting accounts are by far the most popular type of hosting for small website builders. The value present in shared hosting is based on the low cost and general ease of use. You're likely to be paying $20 or less for a shared hosting account per month. Shared hosting also eliminates any responsibility when it comes to managing the web server. 

Shared hosting has a downside in that cost and ease of use is sacrificed in favor of performance. That's because your website sits on a server with many other websites and must share resources with all of those websites. So if a site on your server gets popular then it may slow the overall performance of your site when it needs to be delivered to a user on the web. I see a lot of people talking about how Host A is fast and Host B is slower.

The truth is that there are many factors that determine the speed of delivery of a website. Some of them are related to how your site is configured or the types of files you are serving up from your site instance. Some speed issues are related to the web browser that the person visiting your site is using or the speed of their internet connection. There are so many factors involved in site performance that I think it's very difficult for anyone to really know that one host is faster than another. Web hosts may certainly make claims that their hardware is bigger and faster than other hosts. But I would take those claims with a grain of salt. After all, they want you as a customer.

Most of you will want to start out with shared hosting. I think that the most important things to look for when considering hosting for Drupal is the Linux operating system, PHP 5 support and a simple way to create MySQL databases.  See the detailed Drupal install requirements here. Some hosts offer "One Click" or automatic installs of Drupal to your hosting account. These services should definitely be considered. If a host does offer a one click install then be sure to inquire about how they handle upgraded versions, as well as any limitations that might exist in your Drupal installation.

Virtual Dedicated Server

Virtual dedicated servers (VDS) are a step up from shared hosting in both price and performance. These types of plans store your website file on a large shared server but use software to allocate dedicated resources to your block of hosting. So you're guaranteed to have access to a certain amount of memory and processing power no matter what happens to other sites on the server.

VDS is a helpful middle ground between shared hosting and dedicated servers as it will allow you to provide better performance at a cost that will still fall into the budgets of a lot of people. You can expect to spend $50 to $150 per month on a VDS plan depending on the amount of disk space, memory and processing power you need for your site.

In general, VDS hosting plans will require a bit more technical saavy on the part of the maintainer of the site. So when considering this I think it is best to inquire about the type of interface available to allow you to manage your sites and MySQL databases. I also like to look on the website of the hosting company to see if they have a demo of their web based interface for managing hosting accounts.

Dedicated Server

 If you plan on using Drupal to power some sort of a web application or have site that you know will get thousands of visitors per day then you will probably want to consider a dedicated server. Dedicated servers offer much more flexibility, control and power than shared or virtual plans. The cost in dollars and needed technical experience increase as well.

A dedicated server is a machine that hosts only your website. You typically get to pick the different features that are installed on the server as well as options for processor, disk space, memory and bandwidth. What you pay will generally be based on the features that you choose. You are likely looking at costs anywhere from $100 to $500 per month. You also have to factor in the additional cost of needing to have someone monitor the server. If there are problems like major traffic spikes then most of the time you will be responsible for finding the problem and fixing it. So you really need to know what you're doing with respect to server administration before you launch a site on a dedicated server.

Hosted

There are some companies that offer a hosted version of Drupal. The term "hosted" basically means that you don't have to install anything. A true hosted option should be as easy as selecting a domain name and going straight to configuring your Drupal install. Setup of a database or uploading of files should not be necessary.

Hosted installs of Drupal will work best for beginners who don't know much about creating databases or those who want to get their feet wet in Drupal with minimum effort. You're likely to pay more for a hosted plan than on a shared account but less than VDS or dedicated server hosting.

There are two potential drawbacks to hosted Drupal installs. The first is the fact that a hosted install will be on a shared server so you have the same potential performance issues as with a shared account. The second is that hosted installs typically have limitations on the types of themes and modules that can be installed. So if you're thinking of paying for a hosted type plan be sure to research what restrictions may exist.

Bookmark and Share Bookmark Post

Building Community With Comments

On many sites communities begin with comments. And the comment features found in Drupal are deep enough that they can help you turn a website into a community.

Drupal not only contains many comment related features but also settings for each content type contained within your Drupal install. So you can have different comment settings for blog posts and pages for example. The screenshots below show the standard comment settings for Drupal.

Drupal Comment Settings Drupal Comment Settings

Comment Settings

The standard comment settings contain many options to help you customize the experience for your users. You dcomments can be  threaded discussions or flat. When comments are flat each comment always appears after the previous one. Threaded discussion allow users to reply to specific comments and those replies are grouped together.

As of Drupal 6 comments are searchable. So when users search your site the returned results may include information contained in the comments. You can also provide a field that allows people to enter a title for their comment, which makes the comments have the feel of a forum. If you allow anonymous comments you can also choose to require that commenters provide contact information.

Protecting Comments

The access controls within Drupal give you the option to only make comments available to those who have registered for an account on your site. This feature provides you a certain amount of protection against malicious comments. Limiting comments to registered users can reduce the amount of comments you receive. You also have the option of editing the overall permissions for commenters so that all posted comments (or only those posted by anonymous users) will be held for approval. An example of the comment management queue is shown in the picture at left.

You can allow anonymous comments and still be protected if you add comment protection modules like Akismet or Mollom. Both of these modules call back to a central server to prevent comments that they think might be spam. I've tried both and they work well and can help keep your site protected.

A simpler option for protecting comments involves presenting a visual riddle to ensure that the poster is a human and not a machine.The captcha and recaptcha modules will add such a riddle at the end of your comment submission forms. Users must type in the correct word presented in order to successfully submit their comment. It's worth noting that captchas are not fool proof and some users get annoyed when presented with a captcha.

Extending Comment Functions

Drupal has plenty of modules that can help you add features to make comments more compelling. Comment RSS provides an RSS feed of comments for your site and for individual nodes. Comment Closer lets you shut down the comments on a particular node after a given amount of time. Comment Notify allows users to be notified automatically via email of follow up comments on a node.Comment Subscribe offers similar features to Comment Notify but allows you to only subscribe to direct replies of a particular comment.

A relatively new service called Disqus offers the ability to totally replace the Drupal comment system with a comment system manage on their servers. The Disqus module allows site owners to make that switch. Spam protection is then handled by Disqus but you also lose the ability of Drupal 6 to index the comments so that they may appear in your search results.

Tools For Site Administrators

There are a few different tools that can help a site adminstrator to stay on top of comments. By subscribing to the previously mentioned Comment RSS module you can stay abreast of recent site comments in your RSS feed reader. You could also use the comment RSS feed to create a widget (using a site like Widgetbox) that can be posted on another site or social network.

In Drupal 6 You can set up triggers and actions to generate an email each time a comment is posted on your site. The Subscriptions module appears to provide similar functionality. The Watcher module (currently only Drupal 5) allows node authors to receive notificatons of new comments via email.

Administrators also have to option of placing a recent comments block on their site. The recent comments block is a standard option in the block administration view for a Drupal install. When activated, the block will display a link to the ten most recently posted comments on your site in reverse chronological order.

Bookmark and Share Bookmark Post

Image Gallery Options

Image galleries are a favorite feature of many social networks, blogs and personal websites. So it's no surprise that many Drupal users want a solution to integrate images into the sites they are building. There are many ways to accomplish this using Drupal but I'm going to point out two that have worked well for me.

Basic

You can create a very good, basic image gallery by using the image module and taxonomy. When you add the image module a link will be added to your administration menu called image galleries. That link will allow you to define galleries that you can add your photos to. You will also see a new content type called image that allows you to upload images one at a time. You can add a description to each image and add it to a gallery that you have created. You can see an example of this basic type of gallery by going to http://learnbythedrop.com/image. The image module also provides settings that allow you to define image sizes so that you can have automatic creation of thumbnails and preview images.

I've kicked my basic image galleries up a notch by adding the very simple Lightbox2 module. Lightbox2 adds a script that allows images to be overlayed on the page when clicked. This adds a very slick effect that makes it easy for site visitors to browse your images. The Image Assist module which makes it easier to add gallery images to your posts is also very helpful.

Advanced

If you're looking for image gallery functionality with stronger features then I suggest checking out the Gallery module. Gallery is different from other Drupal modules because its main purpose is to integrate your Drupal install with another piece of software. The software that you're integrating with is the open source Gallery photo organizer, which needs to be installed on your web server before you add the Gallery drupal module. The process of combining Drupal and Gallery is a bit complicated. But once the integration is complete you get some serious features that allow you to create an excellent photo gallery for yourself or an entire community of people.

I have integrated Gallery on a private family site for myself that is powered by Drupal. I do not recommending getting started if you are in a rush. You will be most successful if you follow directions and take your time. Gallery is a system in itself and you'll want to spend time learning and exploring Galleries add on modules too. You can see a Drupal/Gallery integration in action over on the Drupal Gallery Demo Site.

Custom Gallery Creation

If you're looking for something that is truly custom then you always have the option of creating your own image publishing process by using a variety of modules. You can use Content Construction Kit (with ImageField) to create a special content type for adding images. You can use the Views module to handle the display and organization of uploaded images. The ImageCache module can take care of post-upload processing tasks like thumbnail creation. You can find a very helpful  custom image gallery recipe on Drupal.org. The post is titled Create an image gallery using only CCK and Views.

Flickr Integration

Flickr is a hugely popular image publishing service. So it's very possible that you may want to use Flickr to power the gallery on your Drupal site. There is a module called Flickr that eases integration and allows you to embed photosets and create photo blocks on your Drupal site.

Bookmark and Share Bookmark Post

Drupal Scaling And Performance

The following presentation was created and delivered by Adam Kalsey from WorkHabit at the June 2008 LA Drupal Users Group meeting. You can download a pdf version via this link. A video of the available presentation is available on Blip.tv.

Bookmark and Share Bookmark Post

Sharing Posted Content

Once you've begun to post content on your Drupal site it is likely that you will want to provide visitors a method for sharing that content with other people. Thankfully there is no shortage of services that allow you to facilitate the process of sharing content you've posted to your site. Each node can have one or more links that make it simple for visitors to bookmark or forward content to others. Allow me to present you with a few options for sharing that I frequently implement on my Drupal sites.

Service Links

The Service Links module is very simple to implement. The module provides a variety of settings that allow you to choose the appropriate services, while controlling how or when the links to those services display. You can choose from a wide variety of content sharing sites. On this site I've chosen to offer Del.icio.us, Digg and StumbleUpon as options for sharing each node.

The images at left show examples of the settings and implementation for the service links module.

 

Forward

The Forward module allows site vistors to email posts to other people. The module adds an email this link to each node that allows the user to send a link to the post, plus a personal message to one or more email addresses. The module includes a variety of settings that allow site builders to customize the experience, including html email templates. Forward tracking allows administrators to know which posts were shared. A most emailed block lets you share popular content with your site visitors.

The image to the left shows an example of the form presented to the user when they choose to email the post.

 

Custom Javascript

Every social bookmarking site that's worth a damn will provide a bit of javascript that you can insert into your templates. Digg is by far the most popular content sharing site on the internet today. You can use Digg tools for webmasters to add code to your Drupal site that allows for submission and display of the number of Diggs for the post. I've implemented this within a block on the right side of this page. Del.icio.us is another very popular content sharing site. They offer a couple of very basic save page buttons that you can add to your site as well.

Some services exist simply to provide a wide variety of sharing options for your content. Add This and Share This offer very similar services to site builders. They provide a bit of javascript that presents the user with a variety of options for sharing or bookmarking website content. I've taken advantage of the Add This service by adding the code to my node templates that presents the Bookmark Post link at the bottom right corner of each post.

Administrators that are not comfortable editing templates should also consider adding these codes to blocks in the sidebar of pages they want to share. Follow this link to see an example of a page that utilizes the Share This service code in the right sidebar to simplifying the sharing of  a blog on a Drupal powered website.

Bookmark and Share Bookmark Post

Creating Activity Streams

Have you ever wanted to gather content you publish on different websites and pull it in to your Drupal powered website? This could be content that is published by one person or by many people. This content could include blog posts, pictures, audio or video. The content could come from sites like Flickr, YouTube, Delicious, personal blogs or any site that offers an RSS feed for published content.  If you've thought of doing this then you'll be happy to know that you can accomplish such a task by using Drupal.

The final result of gathering content from other sites is called an activity stream. An activity stream is merely a list of content items that have been posted to the web, typically in reverse chronological order. Activity streams created by a single person are also called lifestreams. If you're a member of different websites that allow you to publish or bookmark content, you might want to create an activity stream to make it easier for people to keep track of what you are doing. The stream allows you to have all of your recent web activity summarized on one page with links to all of the original items. You can also use activity streams to create an online content network that gathers feeds from a variety of different sources related to the same topic.

Activity Stream Module

The activity stream module simplifies the process of creating an activity stream. This module can pull data from Del.icio.us, Digg, Flickr, Last.fm, Twitter, and any other site that provides a feed. The streams are published based on settings in each user's profile. So you'll need to have the core profile module enabled in order for activity stream to work properly.

Individual users on your site have a stream at 'http://example.com/stream/{your-user-id}'. The entire site also has a stream at the address 'http://example.com/stream'. Activity streams are updated each time cron is run. Content items that are captured by this module are also added to your site as nodes, which means that they can be found using the core Drupal search function. It also means that the captured content items can have comments and be manipulated using the views module. Access to the nodes via views also means that you can create a single RSS feed for all of your published content. The activity stream module also generates a block that lists recent activity.

Activity stream displays the favicons from each website next to content items. The favicon is a good visual cue for that provides the reader with an idea of the source or type of content being published. At this time activity stream has an official release for Drupal 5 and a dev release for Drupal 6. See all activity stream releases here.

 

The images at left show the user settings, an example of a block and an example of a page generated by this module.

 

 

 

 

FriendFeed Module

The FriendFeed module allows you to present an activity stream that is powered by the FriendFeed service. This is accomplished via a connection to the FriendFeed API. Like the activity stream module, FriendFeed uses cron to schedule updates to your stream. Unlike activity stream, the items displayed are merely linked and not captured to your site as nodes. This approach offers less flexibility (not searchable, can't create views or feeds) in managing the content items, but it also takes much of the burden off of your server.

The FriendFeed module does not provide a page view at this time. The resulting stream can be integrated into a page by either dropping the block into a content region or adding a snippet of code provided by the module developer to a new page. The picture at left shows an example of what the FriendFeed block looks like.

The FriendFeed module is still in the development phase, with releases available for both Drupal 5 and Drupal 6.

Other Options

Activity Stream and FriendFeed are relatively new modules. There are a number of contributed modules that have been around for a while that might be worth checking out if the two mentioned here leave something to be desired in your implementation. I've listed some of those options in an earlier post titled, Options For Importing Content.

Bookmark and Share Bookmark Post

Techniques For Publishing Video

Many people want to use Drupal as a platform for distributing video. Drupal is a great tool for video distribution because there are so many ways to get it done. And Drupal is a pain in the neck because there are so many ways to get it done. It all depends on your perspective I guess. With this post I'll offer some solutions that can help you choose between some of the more reliable options for publishing video.

Host Your Own

There are plenty of modules that can assist you with creating your own 'DruTube' if you will. I will warn you that there are some pitfalls to this approach. If your site is hosted on a shared server you could slow down your entire site if your video gets popular. Hosting your own video on a shared server can work fine if you have light traffic. So don't be disuaded by my disclaimer.

The video module (Drupal 5 only) handles upload, display and basic statistics for videos. With this module you have the choice of uploading a file or linking to a file that is already on your site. It's important to know that if you're uploading files greater than 7MB you might need to adjust the php.ini file on your web server. This method works for QuickTime (.mov), Windows Media (.wmv) and Flash (.flv) formats.

FLV Media Player with XSPF Playlist (both Drupal 5) is an option for publishing Flash video files. This option integrates with Jeroen Wijering's excellent flash player to provide flash video playback withing nodes. If you use this method you will need to convert your files to Flash format prior to uploading to the site.

The Flash Video module (Drupal 5 and 6) aims to provide a soup-to-nuts 'DruTube' like solution that allows for upload, conversion to Flash and display of video. For more detailed information see the flash video tutorial created by the module developer.

Utilize YouTube

You can let YouTube do the heavy lifting for you and embed the flash video back into your Drupal site. I recommend reading my previous drop titled Many Ways To Do YouTube on Drupal to find out more about this method. One shortcoming of a pure YouTube approach is that you can't make your published videos available as a downloadable podcast via iTunes or other podcast subscription software.

Hybrid Approach

The hybrid approach is very simple. You host your videos elsewhere and come back to your Drupal site to post videos (and maybe even link directly to a download file) within a node on your site. This approach takes a little more work because it means you publish twice. First you upload to your video hosting provider. Then you come back to your Drupal site to include your video in a post. Some video hosting sites (like Blip.tv for instance) allow you to cross post directly from their sites over to your Drupal site.

There are a few notable benefits to the hybrid approach. The load from delivering the video won't affect your site since the media is hosted elsewhere. Transcoding of the video from your source format (probably QuickTime or Windows Media) will be handled by your video host. You also usually get a nice flash video player that you can embed on multiple sites.

Test Before Commiting

Before you commit to a particular approach I highly recommend that you do a bit of testing. Try out different methods and video hosts to see if they are going to work for you. For example, YouTube encodes video in a relatively small player. So if you want your videos to show in a large player then the YouTube approach probably won't work for you. Most third-party video hosts add their own branding to the player that they provide you. So the hybrid approach might not work if you really need a non-descript or even custom player for the flash version of your videos.

It can hurt to get very deep into the development of a production site when you find out that your video process just won't work. Consider the time and effort you put into experimenting an investment that will yield a video publishing solution that works for both you and the visitors to the site you're building.

Bookmark and Share Bookmark Post
Syndicate content (C01 _th3me_)